From 5ce408b7d10bb12fd24ebbaf43e34e7499296076 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 17:12:37 +0000 Subject: [PATCH] Deploy to GitHub pages --- .nojekyll | 0 ...sor_2views_2index_mapper_8hpp-example.html | 541 + _formulas.tex | 34 + _formulas_dark.tex | 36 + annotated.html | 657 + annotated_dup.js | 548 + bc_s.png | Bin 0 -> 676 bytes bc_sd.png | Bin 0 -> 635 bytes classes.html | 183 + ...const__array_3_01_t_00_01_n_01_4_01_4.html | 131 + ...1const__array_3_01_t_00_01_n_01_4_01_4.png | Bin 0 -> 926 bytes ..._1fixed__shape_3_01_n_8_8_8_01_4_01_4.html | 131 + ...1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.png | Bin 0 -> 1066 bytes ..._01_t_00_01_start_00_01_end_01_4_01_4.html | 131 + ...3_01_t_00_01_start_00_01_end_01_4_01_4.png | Bin 0 -> 1245 bytes classxt_1_1aligned__array-members.html | 121 + classxt_1_1aligned__array.html | 166 + classxt_1_1aligned__array.png | Bin 0 -> 745 bytes classxt_1_1broadcast__error-members.html | 121 + classxt_1_1broadcast__error.html | 167 + classxt_1_1broadcast__error.png | Bin 0 -> 549 bytes classxt_1_1concatenate__error-members.html | 121 + classxt_1_1concatenate__error.html | 167 + classxt_1_1concatenate__error.png | Bin 0 -> 556 bytes ...nsion_1_1xbroadcast__optional-members.html | 127 + ..._1_1extension_1_1xbroadcast__optional.html | 320 + ...t_1_1extension_1_1xbroadcast__optional.png | Bin 0 -> 1215 bytes ...1_1xcontainer__optional__base-members.html | 130 + ...tension_1_1xcontainer__optional__base.html | 402 + ...xtension_1_1xcontainer__optional__base.png | Bin 0 -> 1162 bytes ...n_1_1xdynamic__view__optional-members.html | 133 + ...extension_1_1xdynamic__view__optional.html | 462 + ...1extension_1_1xdynamic__view__optional.png | Bin 0 -> 1415 bytes ..._1_1xfunction__optional__base-members.html | 131 + ...xtension_1_1xfunction__optional__base.html | 430 + ...extension_1_1xfunction__optional__base.png | Bin 0 -> 1208 bytes ...n_1_1xfunctor__view__optional-members.html | 133 + ...extension_1_1xfunctor__view__optional.html | 462 + ...1extension_1_1xfunctor__view__optional.png | Bin 0 -> 1250 bytes ...nsion_1_1xgenerator__optional-members.html | 131 + ..._1_1extension_1_1xgenerator__optional.html | 400 + ...t_1_1extension_1_1xgenerator__optional.png | Bin 0 -> 1275 bytes ...ion_1_1xindex__view__optional-members.html | 133 + ..._1extension_1_1xindex__view__optional.html | 462 + ...1_1extension_1_1xindex__view__optional.png | Bin 0 -> 1227 bytes ...ion_1_1xoptional__empty__base-members.html | 123 + ..._1extension_1_1xoptional__empty__base.html | 229 + ...1_1extension_1_1xoptional__empty__base.png | Bin 0 -> 1090 bytes ...tension_1_1xreducer__optional-members.html | 133 + ...xt_1_1extension_1_1xreducer__optional.html | 440 + ...sxt_1_1extension_1_1xreducer__optional.png | Bin 0 -> 1292 bytes ...xtension_1_1xrepeat__optional-members.html | 127 + ...sxt_1_1extension_1_1xrepeat__optional.html | 263 + classxt_1_1extension_1_1xrepeat__optional.png | Bin 0 -> 1168 bytes ...on_1_1xscalar__optional__base-members.html | 130 + ...1extension_1_1xscalar__optional__base.html | 402 + ..._1extension_1_1xscalar__optional__base.png | Bin 0 -> 1136 bytes ...n_1_1xstrided__view__optional-members.html | 133 + ...extension_1_1xstrided__view__optional.html | 462 + ...1extension_1_1xstrided__view__optional.png | Bin 0 -> 1395 bytes ...1extension_1_1xview__optional-members.html | 133 + classxt_1_1extension_1_1xview__optional.html | 462 + classxt_1_1extension_1_1xview__optional.png | Bin 0 -> 1179 bytes classxt_1_1fixed__shape-members.html | 135 + classxt_1_1fixed__shape.html | 573 + ..._00_01_slices_8_8_8_01_4_01_4-members.html | 141 + ...ontainer_00_01_slices_8_8_8_01_4_01_4.html | 890 + ..._container_00_01_slices_8_8_8_01_4_01_4.js | 11 + classxt_1_1linear__assigner-members.html | 121 + classxt_1_1linear__assigner.html | 171 + ...near__assigner_3_01false_01_4-members.html | 122 + ...xt_1_1linear__assigner_3_01false_01_4.html | 201 + classxt_1_1noalias__proxy-members.html | 148 + classxt_1_1noalias__proxy.html | 822 + ...print__options_1_1edge__items-members.html | 123 + classxt_1_1print__options_1_1edge__items.html | 234 + ...print__options_1_1line__width-members.html | 123 + classxt_1_1print__options_1_1line__width.html | 234 + ..._1print__options_1_1precision-members.html | 123 + classxt_1_1print__options_1_1precision.html | 234 + ..._1print__options_1_1threshold-members.html | 123 + classxt_1_1print__options_1_1threshold.html | 234 + classxt_1_1sequence__view-members.html | 148 + classxt_1_1sequence__view.html | 772 + classxt_1_1stepper__assigner-members.html | 132 + classxt_1_1stepper__assigner.html | 453 + ...xt_1_1strided__loop__assigner-members.html | 128 + classxt_1_1strided__loop__assigner.html | 355 + classxt_1_1svector-members.html | 196 + classxt_1_1svector.html | 2350 ++ classxt_1_1transpose__error-members.html | 121 + classxt_1_1transpose__error.html | 167 + classxt_1_1transpose__error.png | Bin 0 -> 556 bytes classxt_1_1uvector-members.html | 177 + classxt_1_1uvector.html | 1807 ++ classxt_1_1xaccessible-members.html | 160 + classxt_1_1xaccessible.html | 754 + classxt_1_1xaccessible.js | 10 + classxt_1_1xaccessible.png | Bin 0 -> 12782 bytes classxt_1_1xall-members.html | 134 + classxt_1_1xall.html | 563 + classxt_1_1xall.png | Bin 0 -> 521 bytes classxt_1_1xarray__adaptor-members.html | 282 + classxt_1_1xarray__adaptor.html | 1816 ++ classxt_1_1xarray__adaptor.js | 8 + classxt_1_1xarray__adaptor.png | Bin 0 -> 7165 bytes classxt_1_1xarray__container-members.html | 301 + classxt_1_1xarray__container.html | 2321 ++ classxt_1_1xarray__container.js | 18 + classxt_1_1xarray__container.png | Bin 0 -> 7123 bytes classxt_1_1xassign__traits-members.html | 128 + classxt_1_1xassign__traits.html | 379 + classxt_1_1xaxis__iterator-members.html | 136 + classxt_1_1xaxis__iterator.html | 621 + classxt_1_1xaxis__iterator.js | 10 + ...sxt_1_1xaxis__slice__iterator-members.html | 137 + classxt_1_1xaxis__slice__iterator.html | 635 + classxt_1_1xaxis__slice__iterator.js | 10 + classxt_1_1xblockwise__reducer-members.html | 140 + classxt_1_1xblockwise__reducer.html | 640 + classxt_1_1xbounded__iterator-members.html | 138 + classxt_1_1xbounded__iterator.html | 580 + classxt_1_1xbounded__iterator.png | Bin 0 -> 2049 bytes classxt_1_1xbroadcast-members.html | 211 + classxt_1_1xbroadcast.html | 1606 ++ classxt_1_1xbroadcast.js | 15 + classxt_1_1xbroadcast.png | Bin 0 -> 3257 bytes classxt_1_1xbuffer__adaptor-members.html | 144 + classxt_1_1xbuffer__adaptor.html | 620 + classxt_1_1xbuffer__adaptor.png | Bin 0 -> 1756 bytes ...sxt_1_1xbuffer__adaptor__base-members.html | 162 + classxt_1_1xbuffer__adaptor__base.html | 1114 + classxt_1_1xbuffer__adaptor__base.png | Bin 0 -> 966 bytes classxt_1_1xchunk__iterator-members.html | 140 + classxt_1_1xchunk__iterator.html | 625 + classxt_1_1xchunk__iterator.png | Bin 0 -> 760 bytes classxt_1_1xchunked__array-members.html | 291 + classxt_1_1xchunked__array.html | 2771 +++ classxt_1_1xchunked__array.png | Bin 0 -> 4316 bytes classxt_1_1xchunked__assigner-members.html | 122 + classxt_1_1xchunked__assigner.html | 196 + classxt_1_1xchunked__semantic-members.html | 194 + classxt_1_1xchunked__semantic.html | 646 + classxt_1_1xchunked__semantic.png | Bin 0 -> 1098 bytes classxt_1_1xchunked__view-members.html | 150 + classxt_1_1xchunked__view.html | 930 + classxt_1_1xconst__accessible-members.html | 146 + classxt_1_1xconst__accessible.html | 732 + classxt_1_1xconst__accessible.js | 12 + classxt_1_1xconst__accessible.png | Bin 0 -> 23988 bytes classxt_1_1xconst__iterable-members.html | 180 + classxt_1_1xconst__iterable.html | 1715 ++ classxt_1_1xconst__iterable.js | 19 + classxt_1_1xconst__iterable.png | Bin 0 -> 36269 bytes classxt_1_1xcontainer-members.html | 308 + classxt_1_1xcontainer.html | 3145 +++ classxt_1_1xcontainer.js | 26 + classxt_1_1xcontainer.png | Bin 0 -> 39032 bytes classxt_1_1xcontainer__semantic-members.html | 194 + classxt_1_1xcontainer__semantic.html | 688 + classxt_1_1xcontainer__semantic.js | 4 + classxt_1_1xcontainer__semantic.png | Bin 0 -> 28568 bytes classxt_1_1xcontiguous__iterable-members.html | 198 + classxt_1_1xcontiguous__iterable.html | 2104 ++ classxt_1_1xcontiguous__iterable.js | 27 + classxt_1_1xcontiguous__iterable.png | Bin 0 -> 43039 bytes classxt_1_1xdrop__slice-members.html | 137 + classxt_1_1xdrop__slice.html | 683 + classxt_1_1xdrop__slice.png | Bin 0 -> 655 bytes classxt_1_1xdummy__iterator-members.html | 136 + classxt_1_1xdummy__iterator.html | 564 + classxt_1_1xdummy__iterator.png | Bin 0 -> 2282 bytes classxt_1_1xdynamic__view-members.html | 356 + classxt_1_1xdynamic__view.html | 2715 +++ classxt_1_1xdynamic__view.js | 10 + classxt_1_1xdynamic__view.png | Bin 0 -> 7814 bytes classxt_1_1xexpression-members.html | 130 + classxt_1_1xexpression.html | 311 + classxt_1_1xexpression.js | 6 + classxt_1_1xexpression.png | Bin 0 -> 10207 bytes classxt_1_1xexpression__assigner-members.html | 125 + classxt_1_1xexpression__assigner.html | 324 + classxt_1_1xexpression__assigner.png | Bin 0 -> 873 bytes classxt_1_1xexpression__assigner__base.html | 134 + classxt_1_1xexpression__assigner__base.png | Bin 0 -> 873 bytes ...ptional__expression__tag_01_4-members.html | 121 + ...e_3_01xoptional__expression__tag_01_4.html | 173 + ...xtensor__expression__tag_01_4-members.html | 121 + ...ase_3_01xtensor__expression__tag_01_4.html | 173 + classxt_1_1xexpression__holder-members.html | 131 + classxt_1_1xexpression__holder.html | 420 + classxt_1_1xfiltration-members.html | 137 + classxt_1_1xfiltration.html | 595 + classxt_1_1xfiltration.js | 10 + classxt_1_1xfixed__adaptor-members.html | 283 + classxt_1_1xfixed__adaptor.html | 1918 ++ classxt_1_1xfixed__adaptor.js | 11 + classxt_1_1xfixed__adaptor.png | Bin 0 -> 5125 bytes classxt_1_1xfixed__container-members.html | 292 + classxt_1_1xfixed__container.html | 2066 ++ classxt_1_1xfixed__container.js | 12 + classxt_1_1xfixed__container.png | Bin 0 -> 5107 bytes classxt_1_1xfunction-members.html | 234 + classxt_1_1xfunction.html | 2363 ++ classxt_1_1xfunction.js | 19 + classxt_1_1xfunction.png | Bin 0 -> 3215 bytes classxt_1_1xfunction__iterator-members.html | 138 + classxt_1_1xfunction__iterator.html | 635 + classxt_1_1xfunction__iterator.png | Bin 0 -> 1999 bytes classxt_1_1xfunction__stepper-members.html | 143 + classxt_1_1xfunction__stepper.html | 738 + classxt_1_1xfunctor__adaptor-members.html | 253 + classxt_1_1xfunctor__adaptor.html | 1296 ++ classxt_1_1xfunctor__adaptor.js | 4 + classxt_1_1xfunctor__adaptor.png | Bin 0 -> 4205 bytes ...xt_1_1xfunctor__applier__base-members.html | 267 + classxt_1_1xfunctor__applier__base.html | 4123 ++++ classxt_1_1xfunctor__applier__base.js | 48 + classxt_1_1xfunctor__applier__base.png | Bin 0 -> 1768 bytes classxt_1_1xfunctor__iterator-members.html | 139 + classxt_1_1xfunctor__iterator.html | 599 + classxt_1_1xfunctor__iterator.png | Bin 0 -> 2610 bytes classxt_1_1xfunctor__stepper-members.html | 139 + classxt_1_1xfunctor__stepper.html | 541 + classxt_1_1xfunctor__view-members.html | 249 + classxt_1_1xfunctor__view.html | 1197 + classxt_1_1xfunctor__view.js | 4 + classxt_1_1xfunctor__view.png | Bin 0 -> 4096 bytes classxt_1_1xgenerator-members.html | 213 + classxt_1_1xgenerator.html | 1699 ++ classxt_1_1xgenerator.js | 12 + classxt_1_1xgenerator.png | Bin 0 -> 3398 bytes classxt_1_1xindex__view-members.html | 276 + classxt_1_1xindex__view.html | 2750 +++ classxt_1_1xindex__view.js | 22 + classxt_1_1xindex__view.png | Bin 0 -> 3936 bytes classxt_1_1xindexed__stepper-members.html | 138 + classxt_1_1xindexed__stepper.html | 588 + classxt_1_1xiterable-members.html | 195 + classxt_1_1xiterable.html | 1534 ++ classxt_1_1xiterable.js | 11 + classxt_1_1xiterable.png | Bin 0 -> 17198 bytes classxt_1_1xiterator-members.html | 143 + classxt_1_1xiterator.html | 704 + classxt_1_1xiterator.png | Bin 0 -> 2340 bytes classxt_1_1xiterator__adaptor-members.html | 142 + classxt_1_1xiterator__adaptor.html | 667 + classxt_1_1xiterator__adaptor.png | Bin 0 -> 1041 bytes ..._1_1xiterator__owner__adaptor-members.html | 141 + classxt_1_1xiterator__owner__adaptor.html | 770 + classxt_1_1xiterator__owner__adaptor.png | Bin 0 -> 1171 bytes classxt_1_1xkeep__slice-members.html | 137 + classxt_1_1xkeep__slice.html | 683 + classxt_1_1xkeep__slice.png | Bin 0 -> 659 bytes classxt_1_1xmasked__value.html | 125 + classxt_1_1xmasked__view-members.html | 302 + classxt_1_1xmasked__view.html | 2804 +++ classxt_1_1xmasked__view.js | 24 + classxt_1_1xmasked__view.png | Bin 0 -> 3412 bytes ...sxt_1_1xmasked__view__stepper-members.html | 141 + classxt_1_1xmasked__view__stepper.html | 685 + classxt_1_1xmultiindex__iterator-members.html | 135 + classxt_1_1xmultiindex__iterator.html | 513 + classxt_1_1xnewaxis-members.html | 133 + classxt_1_1xnewaxis.html | 531 + classxt_1_1xnewaxis.png | Bin 0 -> 644 bytes classxt_1_1xoptional__assembly-members.html | 263 + classxt_1_1xoptional__assembly.html | 2204 ++ classxt_1_1xoptional__assembly.js | 20 + classxt_1_1xoptional__assembly.png | Bin 0 -> 3481 bytes ...1xoptional__assembly__adaptor-members.html | 247 + classxt_1_1xoptional__assembly__adaptor.html | 1580 ++ classxt_1_1xoptional__assembly__adaptor.js | 5 + classxt_1_1xoptional__assembly__adaptor.png | Bin 0 -> 3928 bytes ..._1_1xoptional__assembly__base-members.html | 279 + classxt_1_1xoptional__assembly__base.html | 3881 ++++ classxt_1_1xoptional__assembly__base.js | 40 + classxt_1_1xoptional__assembly__base.png | Bin 0 -> 1613 bytes ...l__assembly__linear__iterator-members.html | 139 + ...xoptional__assembly__linear__iterator.html | 650 + ...1xoptional__assembly__linear__iterator.png | Bin 0 -> 1696 bytes ...1xoptional__assembly__stepper-members.html | 141 + classxt_1_1xoptional__assembly__stepper.html | 687 + ...1xoptional__assembly__storage-members.html | 172 + classxt_1_1xoptional__assembly__storage.html | 1592 ++ classxt_1_1xrange-members.html | 135 + classxt_1_1xrange.html | 596 + classxt_1_1xrange.png | Bin 0 -> 633 bytes classxt_1_1xreducer-members.html | 223 + classxt_1_1xreducer.html | 1907 ++ classxt_1_1xreducer.js | 12 + classxt_1_1xreducer.png | Bin 0 -> 3839 bytes classxt_1_1xreducer__stepper-members.html | 140 + classxt_1_1xreducer__stepper.html | 669 + classxt_1_1xrepeat-members.html | 209 + classxt_1_1xrepeat.html | 1644 ++ classxt_1_1xrepeat.js | 14 + classxt_1_1xrepeat.png | Bin 0 -> 3111 bytes classxt_1_1xrepeat__stepper-members.html | 143 + classxt_1_1xrepeat__stepper.html | 685 + classxt_1_1xscalar-members.html | 276 + classxt_1_1xscalar.html | 3548 +++ classxt_1_1xscalar.js | 5 + classxt_1_1xscalar.png | Bin 0 -> 2601 bytes classxt_1_1xscalar__stepper-members.html | 140 + classxt_1_1xscalar__stepper.html | 650 + classxt_1_1xsemantic__base-members.html | 181 + classxt_1_1xsemantic__base.html | 1561 ++ classxt_1_1xsemantic__base.js | 28 + classxt_1_1xsemantic__base.png | Bin 0 -> 96543 bytes classxt_1_1xsharable__expression-members.html | 136 + classxt_1_1xsharable__expression.html | 226 + classxt_1_1xsharable__expression.png | Bin 0 -> 10196 bytes classxt_1_1xshared__expression-members.html | 207 + classxt_1_1xshared__expression.html | 2683 +++ classxt_1_1xshared__expression.js | 5 + classxt_1_1xshared__expression.png | Bin 0 -> 822 bytes classxt_1_1xslice-members.html | 129 + classxt_1_1xslice.html | 246 + classxt_1_1xslice.png | Bin 0 -> 1049 bytes classxt_1_1xstepped__range-members.html | 135 + classxt_1_1xstepped__range.html | 601 + classxt_1_1xstepped__range.png | Bin 0 -> 750 bytes classxt_1_1xstepper-members.html | 144 + classxt_1_1xstepper.html | 723 + classxt_1_1xstrided__container-members.html | 321 + classxt_1_1xstrided__container.html | 1726 ++ classxt_1_1xstrided__container.js | 8 + classxt_1_1xstrided__container.png | Bin 0 -> 31499 bytes classxt_1_1xstrided__view-members.html | 307 + classxt_1_1xstrided__view.html | 2747 +++ classxt_1_1xstrided__view.js | 19 + classxt_1_1xstrided__view.png | Bin 0 -> 9961 bytes classxt_1_1xstrided__view__base-members.html | 221 + classxt_1_1xstrided__view__base.html | 2101 ++ classxt_1_1xstrided__view__base.js | 23 + classxt_1_1xstrided__view__base.png | Bin 0 -> 14375 bytes classxt_1_1xtensor__adaptor-members.html | 282 + classxt_1_1xtensor__adaptor.html | 1816 ++ classxt_1_1xtensor__adaptor.js | 8 + classxt_1_1xtensor__adaptor.png | Bin 0 -> 6927 bytes classxt_1_1xtensor__container-members.html | 296 + classxt_1_1xtensor__container.html | 2105 ++ classxt_1_1xtensor__container.js | 12 + classxt_1_1xtensor__container.png | Bin 0 -> 6866 bytes classxt_1_1xtensor__view-members.html | 282 + classxt_1_1xtensor__view.html | 1781 ++ classxt_1_1xtensor__view.js | 8 + classxt_1_1xtensor__view.png | Bin 0 -> 6740 bytes classxt_1_1xvectorizer-members.html | 124 + classxt_1_1xvectorizer.html | 235 + classxt_1_1xview-members.html | 345 + classxt_1_1xview.html | 4544 ++++ classxt_1_1xview.js | 21 + classxt_1_1xview.png | Bin 0 -> 7785 bytes classxt_1_1xview__semantic-members.html | 194 + classxt_1_1xview__semantic.html | 696 + classxt_1_1xview__semantic.js | 4 + classxt_1_1xview__semantic.png | Bin 0 -> 24227 bytes classxt_1_1xview__stepper-members.html | 139 + classxt_1_1xview__stepper.html | 634 + classxt__simd_1_1aligned__allocator.html | 125 + clipboard.js | 61 + closed.png | Bin 0 -> 132 bytes concepts.html | 140 + concepts.js | 24 + conceptxt_1_1contiguous__view__concept.html | 125 + ...t_1_1fixed__shape__container__concept.html | 125 + ...ptxt_1_1has__data__interface__concept.html | 126 + ..._1_1has__iterator__interface__concept.html | 126 + ...ptxt_1_1has__simd__interface__concept.html | 126 + conceptxt_1_1iterator__concept.html | 126 + conceptxt_1_1strided__view__concept.html | 125 + ...txt_1_1with__memory__address__concept.html | 126 + ..._1_1without__memory__address__concept.html | 126 + conceptxt_1_1xbroadcast__concept.html | 126 + conceptxt_1_1xexpression__concept.html | 125 + conceptxt_1_1xgenerator__concept.html | 126 + conceptxt_1_1xscalar__concept.html | 125 + conceptxtl_1_1complex__concept.html | 125 + conceptxtl_1_1integral__concept.html | 125 + conceptxtl_1_1non__integral__concept.html | 125 + conceptxtl_1_1pointer__concept.html | 125 + cookie.js | 58 + deprecated.html | 122 + dir_0d75396b9e02a3c29319113837a95cad.html | 132 + dir_0d75396b9e02a3c29319113837a95cad.js | 8 + dir_5dbc63e3e208067190e586da41725baf.html | 160 + dir_5dbc63e3e208067190e586da41725baf.js | 22 + dir_72c9924f54f34c9a9a500349a94b928a.html | 128 + dir_72c9924f54f34c9a9a500349a94b928a.js | 6 + dir_7614d47be9b26b68b6e19faab3d8cf3d.html | 130 + dir_7614d47be9b26b68b6e19faab3d8cf3d.js | 7 + dir_8a589290beb6e41d95922675c5a252d5.html | 134 + dir_8a589290beb6e41d95922675c5a252d5.js | 9 + dir_a756a6382b5a8aa8dbc0087dac27d23d.html | 152 + dir_a756a6382b5a8aa8dbc0087dac27d23d.js | 18 + dir_c04393294c6204f6f7005e440fd4c48c.html | 138 + dir_c04393294c6204f6f7005e440fd4c48c.js | 11 + dir_c7391fa963006b3dcc74b1e23f2b5aa5.html | 128 + dir_c7391fa963006b3dcc74b1e23f2b5aa5.js | 6 + dir_cd476e4823af9724af1911969b947d0c.html | 140 + dir_cd476e4823af9724af1911969b947d0c.js | 12 + dir_d44c64559bbebec7f509842c48db8b23.html | 118 + dir_d44c64559bbebec7f509842c48db8b23.js | 4 + dir_ea185b87f60949e3b1bf14314f33a519.html | 142 + dir_ea185b87f60949e3b1bf14314f33a519.js | 13 + dir_eadb0ec9a1f66a1e2a37a75175ba90a3.html | 128 + dir_eadb0ec9a1f66a1e2a37a75175ba90a3.js | 6 + doc.svg | 12 + docd.svg | 12 + doxygen.css | 2255 ++ doxygen.svg | 28 + doxygen_crawl.html | 1988 ++ dynsections.js | 205 + examples.html | 120 + examples.js | 4 + files.html | 208 + files_dup.js | 4 + folderclosed.svg | 11 + folderclosedd.svg | 11 + folderopen.svg | 17 + folderopend.svg | 12 + functions.html | 121 + functions_b.html | 125 + functions_c.html | 125 + functions_d.html | 123 + functions_dup.js | 21 + functions_e.html | 122 + functions_f.html | 122 + functions_func.html | 121 + functions_func.js | 20 + functions_func_b.html | 125 + functions_func_c.html | 124 + functions_func_d.html | 123 + functions_func_e.html | 122 + functions_func_f.html | 122 + functions_func_h.html | 120 + functions_func_i.html | 119 + functions_func_l.html | 119 + functions_func_m.html | 123 + functions_func_o.html | 132 + functions_func_p.html | 120 + functions_func_r.html | 122 + functions_func_s.html | 123 + functions_func_u.html | 120 + functions_func_v.html | 120 + functions_func_x.html | 142 + functions_h.html | 120 + functions_i.html | 119 + functions_l.html | 119 + functions_m.html | 123 + functions_n.html | 122 + functions_o.html | 132 + functions_p.html | 120 + functions_r.html | 123 + functions_s.html | 123 + functions_type.html | 119 + functions_u.html | 120 + functions_v.html | 121 + functions_vars.html | 120 + functions_x.html | 142 + group__acc__functions.html | 231 + group__acc__functions.js | 5 + group__arithmetic__operators.html | 451 + group__arithmetic__operators.js | 10 + group__basic__functions.html | 1159 + group__basic__functions.js | 24 + group__bitwise__operators.html | 506 + group__bitwise__operators.js | 11 + group__casting__operators.html | 169 + group__casting__operators.js | 4 + group__classif__functions.html | 378 + group__classif__functions.js | 8 + group__comparison__operators.html | 699 + group__comparison__operators.js | 15 + group__digitize.html | 182 + group__digitize.js | 4 + group__err__functions.html | 297 + group__err__functions.js | 7 + group__exp__functions.html | 426 + group__exp__functions.js | 10 + group__histogram.html | 775 + group__histogram.js | 14 + group__hyper__functions.html | 383 + group__hyper__functions.js | 9 + group__logical__operators.html | 833 + group__logical__operators.js | 18 + group__nan__functions.html | 695 + group__nan__functions.js | 13 + group__nearint__functions.html | 383 + group__nearint__functions.js | 9 + group__pow__functions.html | 444 + group__pow__functions.js | 10 + group__red__functions.html | 1196 + group__red__functions.js | 23 + group__searchsorted.html | 182 + group__searchsorted.js | 4 + group__trigo__functions.html | 432 + group__trigo__functions.js | 10 + group__xt__xadapt.html | 1012 + group__xt__xadapt.js | 18 + group__xt__xchunked__array.html | 305 + group__xt__xchunked__array.js | 6 + group__xt__xcomplex.html | 384 + group__xt__xcomplex.js | 9 + group__xt__xeval.html | 228 + group__xt__xeval.js | 5 + group__xt__xfunctor__view.html | 135 + group__xt__xfunctor__view.js | 9 + group__xt__xmanipulation.html | 1332 ++ group__xt__xmanipulation.js | 28 + group__xt__xshape.html | 362 + group__xt__xshape.js | 7 + group__xt__xsort.html | 831 + group__xt__xsort.js | 23 + group__xt__xstrides.html | 430 + group__xt__xstrides.js | 13 + hierarchy.html | 1250 ++ hierarchy.js | 1389 ++ index.html | 118 + index__mapper_8hpp_source.html | 550 + jquery.js | 204 + minus.svg | 8 + minusd.svg | 8 + namespacemembers.html | 153 + namespacemembers_b.html | 121 + namespacemembers_c.html | 135 + namespacemembers_d.html | 128 + namespacemembers_dup.js | 27 + namespacemembers_e.html | 130 + namespacemembers_enum.html | 123 + namespacemembers_f.html | 134 + namespacemembers_func.html | 152 + namespacemembers_func.js | 27 + namespacemembers_func_b.html | 121 + namespacemembers_func_c.html | 135 + namespacemembers_func_d.html | 128 + namespacemembers_func_e.html | 130 + namespacemembers_func_f.html | 134 + namespacemembers_func_g.html | 120 + namespacemembers_func_h.html | 124 + namespacemembers_func_i.html | 128 + namespacemembers_func_k.html | 119 + namespacemembers_func_l.html | 130 + namespacemembers_func_m.html | 127 + namespacemembers_func_n.html | 143 + namespacemembers_func_o.html | 140 + namespacemembers_func_p.html | 122 + namespacemembers_func_q.html | 119 + namespacemembers_func_r.html | 134 + namespacemembers_func_s.html | 137 + namespacemembers_func_t.html | 129 + namespacemembers_func_u.html | 120 + namespacemembers_func_v.html | 122 + namespacemembers_func_w.html | 119 + namespacemembers_func_x.html | 119 + namespacemembers_func_z.html | 120 + namespacemembers_g.html | 120 + namespacemembers_h.html | 125 + namespacemembers_i.html | 128 + namespacemembers_k.html | 119 + namespacemembers_l.html | 131 + namespacemembers_m.html | 127 + namespacemembers_n.html | 144 + namespacemembers_o.html | 140 + namespacemembers_p.html | 123 + namespacemembers_q.html | 120 + namespacemembers_r.html | 134 + namespacemembers_s.html | 140 + namespacemembers_t.html | 129 + namespacemembers_type.html | 127 + namespacemembers_u.html | 120 + namespacemembers_v.html | 122 + namespacemembers_w.html | 119 + namespacemembers_x.html | 128 + namespacemembers_z.html | 120 + namespaces.html | 122 + namespaces_dup.js | 4 + namespacext.html | 18375 ++++++++++++++++ namespacext.js | 696 + nav_f.png | Bin 0 -> 153 bytes nav_fd.png | Bin 0 -> 169 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes nav_hd.png | Bin 0 -> 114 bytes navtree.css | 149 + navtree.js | 483 + navtreedata.js | 73 + navtreeindex0.js | 253 + navtreeindex1.js | 253 + navtreeindex2.js | 253 + navtreeindex3.js | 253 + navtreeindex4.js | 253 + navtreeindex5.js | 253 + navtreeindex6.js | 253 + navtreeindex7.js | 253 + navtreeindex8.js | 253 + navtreeindex9.js | 137 + open.png | Bin 0 -> 123 bytes pages.html | 122 + plus.svg | 9 + plusd.svg | 9 + resize.js | 147 + search/all_0.js | 65 + search/all_1.js | 23 + search/all_10.js | 43 + search/all_11.js | 70 + search/all_12.js | 40 + search/all_13.js | 11 + search/all_14.js | 12 + search/all_15.js | 7 + search/all_16.js | 616 + search/all_17.js | 5 + search/all_2.js | 71 + search/all_3.js | 24 + search/all_4.js | 37 + search/all_5.js | 54 + search/all_6.js | 20 + search/all_7.js | 46 + search/all_8.js | 62 + search/all_9.js | 5 + search/all_a.js | 31 + search/all_b.js | 24 + search/all_c.js | 61 + search/all_d.js | 49 + search/all_e.js | 18 + search/all_f.js | 6 + search/classes_0.js | 18 + search/classes_1.js | 9 + search/classes_10.js | 35 + search/classes_11.js | 27 + search/classes_12.js | 6 + search/classes_13.js | 5 + search/classes_14.js | 601 + search/classes_2.js | 37 + search/classes_3.js | 8 + search/classes_4.js | 19 + search/classes_5.js | 26 + search/classes_6.js | 16 + search/classes_7.js | 30 + search/classes_8.js | 45 + search/classes_9.js | 4 + search/classes_a.js | 13 + search/classes_b.js | 10 + search/classes_c.js | 25 + search/classes_d.js | 11 + search/classes_e.js | 8 + search/classes_f.js | 21 + search/close.svg | 18 + search/concepts_0.js | 5 + search/concepts_1.js | 4 + search/concepts_2.js | 6 + search/concepts_3.js | 5 + search/concepts_4.js | 4 + search/concepts_5.js | 4 + search/concepts_6.js | 4 + search/concepts_7.js | 5 + search/concepts_8.js | 7 + search/enums_0.js | 4 + search/enums_1.js | 4 + search/enums_2.js | 4 + search/enums_3.js | 4 + search/enums_4.js | 4 + search/enums_5.js | 5 + search/enumvalues_0.js | 4 + search/enumvalues_1.js | 4 + search/enumvalues_2.js | 4 + search/enumvalues_3.js | 4 + search/enumvalues_4.js | 4 + search/enumvalues_5.js | 5 + search/enumvalues_6.js | 4 + search/enumvalues_7.js | 4 + search/enumvalues_8.js | 5 + search/enumvalues_9.js | 4 + search/enumvalues_a.js | 4 + search/enumvalues_b.js | 5 + search/enumvalues_c.js | 4 + search/enumvalues_d.js | 4 + search/functions_0.js | 40 + search/functions_1.js | 13 + search/functions_10.js | 23 + search/functions_11.js | 25 + search/functions_12.js | 14 + search/functions_13.js | 7 + search/functions_14.js | 9 + search/functions_15.js | 4 + search/functions_16.js | 28 + search/functions_17.js | 5 + search/functions_2.js | 26 + search/functions_3.js | 17 + search/functions_4.js | 18 + search/functions_5.js | 23 + search/functions_6.js | 5 + search/functions_7.js | 11 + search/functions_8.js | 13 + search/functions_9.js | 4 + search/functions_a.js | 16 + search/functions_b.js | 17 + search/functions_c.js | 28 + search/functions_d.js | 38 + search/functions_e.js | 9 + search/functions_f.js | 4 + search/groups_0.js | 12 + search/groups_1.js | 6 + search/groups_10.js | 5 + search/groups_11.js | 4 + search/groups_2.js | 10 + search/groups_3.js | 4 + search/groups_4.js | 6 + search/groups_5.js | 10 + search/groups_6.js | 5 + search/groups_7.js | 6 + search/groups_8.js | 6 + search/groups_9.js | 5 + search/groups_a.js | 4 + search/groups_b.js | 6 + search/groups_c.js | 6 + search/groups_d.js | 5 + search/groups_e.js | 4 + search/groups_f.js | 10 + search/mag.svg | 24 + search/mag_d.svg | 24 + search/mag_sel.svg | 31 + search/mag_seld.svg | 31 + search/namespaces_0.js | 4 + search/pages_0.js | 4 + search/pages_1.js | 4 + search/search.css | 286 + search/search.js | 694 + search/searchdata.js | 45 + search/typedefs_0.js | 4 + search/typedefs_1.js | 4 + search/typedefs_2.js | 4 + search/typedefs_3.js | 4 + search/typedefs_4.js | 4 + search/typedefs_5.js | 12 + search/variables_0.js | 7 + splitbar.png | Bin 0 -> 314 bytes splitbard.png | Bin 0 -> 282 bytes structxt_1_1acquire__ownership.html | 124 + structxt_1_1aligned__mode.html | 124 + ..._1_1big__promote__value__type-members.html | 121 + structxt_1_1big__promote__value__type.html | 153 + structxt_1_1buffer__inner__types.html | 125 + ...c_p_00_01_o_00_01_a_01_4_01_4-members.html | 133 + ...or_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html | 393 + ...or_3_01_i_00_01_c_i_01_4_01_4-members.html | 134 + ...r__adaptor_3_01_i_00_01_c_i_01_4_01_4.html | 413 + ...or_3_01_c_00_01_i_g_01_4_01_4-members.html | 134 + ...r__adaptor_3_01_c_00_01_i_g_01_4_01_4.html | 413 + structxt_1_1can__assign.html | 131 + structxt_1_1can__assign.png | Bin 0 -> 808 bytes ...1_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html | 134 + ...01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.png | Bin 0 -> 2645 bytes structxt_1_1check__policy_1_1full.html | 124 + structxt_1_1check__policy_1_1none.html | 124 + structxt_1_1check__strides__overlap.html | 125 + ...t__type_1_1column__major_01_4-members.html | 121 + ..._01layout__type_1_1column__major_01_4.html | 168 + ...yout__type_1_1row__major_01_4-members.html | 121 + ...p_3_01layout__type_1_1row__major_01_4.html | 168 + ...t_1_1common__difference__type-members.html | 121 + structxt_1_1common__difference__type.html | 153 + ...1common__difference__type_3_4-members.html | 122 + structxt_1_1common__difference__type_3_4.html | 168 + structxt_1_1common__size__type-members.html | 121 + structxt_1_1common__size__type.html | 153 + ...txt_1_1common__size__type_3_4-members.html | 122 + structxt_1_1common__size__type_3_4.html | 168 + structxt_1_1common__tensor__type.html | 131 + structxt_1_1common__tensor__type.png | Bin 0 -> 1108 bytes structxt_1_1common__value__type-members.html | 121 + structxt_1_1common__value__type.html | 153 + structxt_1_1conditional__cast__functor.html | 125 + ..._cast__functor_3_01false_00_01_t_01_4.html | 131 + ...__cast__functor_3_01false_00_01_t_01_4.png | Bin 0 -> 715 bytes ...functor_3_01true_00_01_t_01_4-members.html | 121 + ...__cast__functor_3_01true_00_01_t_01_4.html | 167 + structxt_1_1const__array-members.html | 146 + structxt_1_1const__array.html | 824 + structxt_1_1const__value-members.html | 127 + structxt_1_1const__value.html | 295 + structxt_1_1const__xclosure-members.html | 121 + structxt_1_1const__xclosure.html | 153 + ...ecay__t_3_01_e_01_4_01_4_01_4-members.html | 122 + ...std_1_1decay__t_3_01_e_01_4_01_4_01_4.html | 171 + ...ble__if__t_3_01true_01_4_01_4-members.html | 122 + ...d_1_1enable__if__t_3_01true_01_4_01_4.html | 171 + ...ctxt_1_1container__simd__return__type.html | 131 + structxt_1_1container__simd__return__type.png | Bin 0 -> 1574 bytes structxt_1_1convolve__mode_1_1full.html | 124 + structxt_1_1convolve__mode_1_1valid.html | 124 + structxt_1_1decay__all.html | 125 + ...3_01_s_3_01_x_8_8_8_01_4_01_4-members.html | 121 + ...ay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html | 153 + structxt_1_1disable__indexed__stepper.html | 131 + structxt_1_1disable__indexed__stepper.png | Bin 0 -> 1095 bytes structxt_1_1driven__align__mode-members.html | 121 + structxt_1_1driven__align__mode.html | 153 + structxt_1_1enable__indexed__stepper.html | 131 + structxt_1_1enable__indexed__stepper.png | Bin 0 -> 1080 bytes ...aluation__strategy_1_1immediate__type.html | 130 + ...valuation__strategy_1_1immediate__type.png | Bin 0 -> 815 bytes ...1_1evaluation__strategy_1_1lazy__type.html | 130 + ..._1_1evaluation__strategy_1_1lazy__type.png | Bin 0 -> 786 bytes ..._1_1extension_1_1expression__tag__and.html | 125 + ...__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html | 134 + ...n__tag__and_3_01_t1_00_01_t_8_8_8_01_4.png | Bin 0 -> 1206 bytes ..._tag__and_3_01_t_00_01_t_01_4-members.html | 121 + ...ression__tag__and_3_01_t_00_01_t_01_4.html | 153 + ...xtensor__expression__tag_01_4-members.html | 121 + ..._t_00_01xtensor__expression__tag_01_4.html | 143 + ...1_t_00_01xtensor__expression__tag_01_4.png | Bin 0 -> 1191 bytes ...ression__tag__and_3_01_t_01_4-members.html | 121 + ...n_1_1expression__tag__and_3_01_t_01_4.html | 153 + ..._expression__tag_00_01_t_01_4-members.html | 121 + ...xtensor__expression__tag_00_01_t_01_4.html | 162 + ...1xtensor__expression__tag_00_01_t_01_4.png | Bin 0 -> 1192 bytes ...xtensor__expression__tag_01_4-members.html | 121 + ...ag_00_01xtensor__expression__tag_01_4.html | 150 + ...n_1_1expression__tag__and_3_4-members.html | 121 + ...extension_1_1expression__tag__and_3_4.html | 150 + ...nsion_1_1get__expression__tag-members.html | 121 + ..._1_1extension_1_1get__expression__tag.html | 143 + ...t_1_1extension_1_1get__expression__tag.png | Bin 0 -> 951 bytes ...onal_3_01_t_00_01_b_01_4_01_4-members.html | 121 + ...1_1xoptional_3_01_t_00_01_b_01_4_01_4.html | 165 + ..._1_1xoptional_3_01_t_00_01_b_01_4_01_4.png | Bin 0 -> 1321 bytes ...1_1get__expression__tag__impl-members.html | 121 + ...tension_1_1get__expression__tag__impl.html | 163 + ...xtension_1_1get__expression__tag__impl.png | Bin 0 -> 1710 bytes ...1_1de048c22abe806a8cb61aa0c08ab63f2de.html | 171 + ...1_1de4e085c648bbd1efca51f7b5461e984a5.html | 122 + ...1_1extension_1_1xarray__adaptor__base.html | 125 + ...ptional__expression__tag_01_4-members.html | 122 + ..._00_01xoptional__expression__tag_01_4.html | 173 + ...xtensor__expression__tag_01_4-members.html | 121 + ..._c_00_01xtensor__expression__tag_01_4.html | 153 + ...ay__adaptor__optional__traits-members.html | 127 + ..._1_1xarray__adaptor__optional__traits.html | 175 + ...n_1_1xarray__adaptor__optional__traits.png | Bin 0 -> 1271 bytes ...1extension_1_1xarray__container__base.html | 125 + ...ptional__expression__tag_01_4-members.html | 122 + ..._00_01xoptional__expression__tag_01_4.html | 173 + ...xtensor__expression__tag_01_4-members.html | 121 + ..._c_00_01xtensor__expression__tag_01_4.html | 153 + ...__container__optional__traits-members.html | 127 + ..._1xarray__container__optional__traits.html | 175 + ...1_1xarray__container__optional__traits.png | Bin 0 -> 1282 bytes ...n_1_1xarray__optional__traits-members.html | 126 + ...extension_1_1xarray__optional__traits.html | 263 + ...1extension_1_1xarray__optional__traits.png | Bin 0 -> 1756 bytes ...ctxt_1_1extension_1_1xbroadcast__base.html | 134 + structxt_1_1extension_1_1xbroadcast__base.png | Bin 0 -> 1289 bytes ..._1extension_1_1xbroadcast__base__impl.html | 125 + ...n__tag_00_01_c_t_00_01_x_01_4-members.html | 121 + ...xpression__tag_00_01_c_t_00_01_x_01_4.html | 153 + ...n__tag_00_01_c_t_00_01_x_01_4-members.html | 121 + ...xpression__tag_00_01_c_t_00_01_x_01_4.html | 153 + ..._1_1extension_1_1xdynamic__view__base.html | 134 + ...t_1_1extension_1_1xdynamic__view__base.png | Bin 0 -> 1469 bytes ...tension_1_1xdynamic__view__base__impl.html | 125 + ..._c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html | 153 + ...t_00_b6d8a7e2879c1a8ee678dc4152371fc6.html | 121 + ..._c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html | 153 + ...00_01aef227a96c9a95959d74cc8b3d2137ea.html | 121 + structxt_1_1extension_1_1xfunction__base.html | 134 + structxt_1_1extension_1_1xfunction__base.png | Bin 0 -> 1267 bytes ...1_1extension_1_1xfunction__base__impl.html | 125 + ..._00_01_f_00_01_c_t_8_8_8_01_4-members.html | 121 + ...ion__tag_00_01_f_00_01_c_t_8_8_8_01_4.html | 153 + ..._00_01_f_00_01_c_t_8_8_8_01_4-members.html | 121 + ...ion__tag_00_01_f_00_01_c_t_8_8_8_01_4.html | 153 + ..._1_1extension_1_1xfunctor__view__base.html | 134 + ...t_1_1extension_1_1xfunctor__view__base.png | Bin 0 -> 1316 bytes ...tension_1_1xfunctor__view__base__impl.html | 125 + ...n__tag_00_01_f_00_01_c_t_01_4-members.html | 121 + ...xpression__tag_00_01_f_00_01_c_t_01_4.html | 153 + ...n__tag_00_01_f_00_01_c_t_01_4-members.html | 121 + ...xpression__tag_00_01_f_00_01_c_t_01_4.html | 153 + ...ctxt_1_1extension_1_1xgenerator__base.html | 134 + structxt_1_1extension_1_1xgenerator__base.png | Bin 0 -> 1327 bytes ..._1extension_1_1xgenerator__base__impl.html | 125 + ..._00_01_f_00_01_r_00_01_s_01_4-members.html | 121 + ...ion__tag_00_01_f_00_01_r_00_01_s_01_4.html | 153 + ..._00_01_f_00_01_r_00_01_s_01_4-members.html | 121 + ...ion__tag_00_01_f_00_01_r_00_01_s_01_4.html | 153 + ...xt_1_1extension_1_1xindex__view__base.html | 134 + ...txt_1_1extension_1_1xindex__view__base.png | Bin 0 -> 1294 bytes ...extension_1_1xindex__view__base__impl.html | 125 + ...n__tag_00_01_c_t_00_01_i_01_4-members.html | 121 + ...xpression__tag_00_01_c_t_00_01_i_01_4.html | 153 + ...n__tag_00_01_c_t_00_01_i_01_4-members.html | 121 + ...xpression__tag_00_01_c_t_00_01_i_01_4.html | 153 + structxt_1_1extension_1_1xreducer__base.html | 134 + structxt_1_1extension_1_1xreducer__base.png | Bin 0 -> 1360 bytes ..._1_1extension_1_1xreducer__base__impl.html | 125 + ...0_01_c_t_00_01_x_00_01_o_01_4-members.html | 121 + ...0_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html | 153 + ...0_01_c_t_00_01_x_00_01_o_01_4-members.html | 121 + ...0_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html | 153 + structxt_1_1extension_1_1xrepeat__base.html | 134 + structxt_1_1extension_1_1xrepeat__base.png | Bin 0 -> 1253 bytes ...t_1_1extension_1_1xrepeat__base__impl.html | 125 + ...n__tag_00_01_c_t_00_01_x_01_4-members.html | 121 + ...xpression__tag_00_01_c_t_00_01_x_01_4.html | 153 + ...n__tag_00_01_c_t_00_01_x_01_4-members.html | 121 + ...xpression__tag_00_01_c_t_00_01_x_01_4.html | 153 + structxt_1_1extension_1_1xscalar__base.html | 134 + structxt_1_1extension_1_1xscalar__base.png | Bin 0 -> 1342 bytes ...t_1_1extension_1_1xscalar__base__impl.html | 125 + ...xpression__tag_00_01_c_t_01_4-members.html | 121 + ...ional__expression__tag_00_01_c_t_01_4.html | 153 + ...xpression__tag_00_01_c_t_01_4-members.html | 121 + ...ensor__expression__tag_00_01_c_t_01_4.html | 153 + ..._1_1xscalar__optional__traits-members.html | 137 + ...xtension_1_1xscalar__optional__traits.html | 498 + ..._1_1extension_1_1xstrided__view__base.html | 134 + ...t_1_1extension_1_1xstrided__view__base.png | Bin 0 -> 1437 bytes ...tension_1_1xstrided__view__base__impl.html | 125 + ..._c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html | 153 + ...t_00_4a6b46e0ed70869936639a514f730fbb.html | 121 + ..._c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html | 153 + ...00_01b284f3952f1f4d8d4ad036b645dd2641.html | 121 + ..._1extension_1_1xtensor__adaptor__base.html | 125 + ...ptional__expression__tag_01_4-members.html | 122 + ..._00_01xoptional__expression__tag_01_4.html | 173 + ...xtensor__expression__tag_01_4-members.html | 121 + ..._l_00_01xtensor__expression__tag_01_4.html | 153 + ...or__adaptor__optional__traits-members.html | 127 + ...1_1xtensor__adaptor__optional__traits.html | 175 + ..._1_1xtensor__adaptor__optional__traits.png | Bin 0 -> 1204 bytes ...extension_1_1xtensor__container__base.html | 125 + ...ptional__expression__tag_01_4-members.html | 122 + ..._00_01xoptional__expression__tag_01_4.html | 173 + ...xtensor__expression__tag_01_4-members.html | 121 + ..._l_00_01xtensor__expression__tag_01_4.html | 153 + ...__container__optional__traits-members.html | 127 + ...1xtensor__container__optional__traits.html | 175 + ..._1xtensor__container__optional__traits.png | Bin 0 -> 1216 bytes ...nsion_1_1xtensor__empty__base-members.html | 121 + ..._1_1extension_1_1xtensor__empty__base.html | 150 + ..._1_1xtensor__optional__traits-members.html | 126 + ...xtension_1_1xtensor__optional__traits.html | 264 + ...extension_1_1xtensor__optional__traits.png | Bin 0 -> 2062 bytes ...t_1_1extension_1_1xtensor__view__base.html | 125 + ...ptional__expression__tag_01_4-members.html | 122 + ..._00_01xoptional__expression__tag_01_4.html | 173 + ...xtensor__expression__tag_01_4-members.html | 121 + ..._l_00_01xtensor__expression__tag_01_4.html | 153 + ...ensor__view__optional__traits-members.html | 127 + ...on_1_1xtensor__view__optional__traits.html | 175 + ...ion_1_1xtensor__view__optional__traits.png | Bin 0 -> 1180 bytes structxt_1_1extension_1_1xview__base.html | 134 + structxt_1_1extension_1_1xview__base.png | Bin 0 -> 1261 bytes ...txt_1_1extension_1_1xview__base__impl.html | 125 + ..._00_01_c_t_00_01_s_8_8_8_01_4-members.html | 121 + ...ion__tag_00_01_c_t_00_01_s_8_8_8_01_4.html | 153 + ..._00_01_c_t_00_01_s_8_8_8_01_4-members.html | 121 + ...ion__tag_00_01_c_t_00_01_s_8_8_8_01_4.html | 153 + structxt_1_1filter__fixed__shape.html | 131 + structxt_1_1filter__fixed__shape.png | Bin 0 -> 846 bytes structxt_1_1fixed__xreducer__shape__type.html | 125 + ..._shape_3_01_j_8_8_8_01_4_01_4-members.html | 121 + ...01fixed__shape_3_01_j_8_8_8_01_4_01_4.html | 156 + structxt_1_1forbid__simd.html | 131 + structxt_1_1forbid__simd.png | Bin 0 -> 574 bytes ..._1_1vector_3_01bool_00_01_a_01_4_01_4.html | 131 + ...d_1_1vector_3_01bool_00_01_a_01_4_01_4.png | Bin 0 -> 1277 bytes ...amic__bitset_3_01_b_00_01_a_01_4_01_4.html | 131 + ...namic__bitset_3_01_b_00_01_a_01_4_01_4.png | Bin 0 -> 1395 bytes ..._1_1vector_3_01bool_00_01_a_01_4_01_4.html | 131 + ...d_1_1vector_3_01bool_00_01_a_01_4_01_4.png | Bin 0 -> 1037 bytes ...amic__bitset_3_01_b_00_01_a_01_4_01_4.html | 131 + ...namic__bitset_3_01_b_00_01_a_01_4_01_4.png | Bin 0 -> 1298 bytes structxt_1_1get__init__type.html | 125 + ..._shape_3_01_x_8_8_8_01_4_01_4-members.html | 121 + ...01fixed__shape_3_01_x_8_8_8_01_4_01_4.html | 153 + structxt_1_1get__rank-members.html | 121 + structxt_1_1get__rank.html | 161 + ..._1_1rank_00_01void_07_08_08_4-members.html | 122 + ..._08_01_e_1_1rank_00_01void_07_08_08_4.html | 187 + structxt_1_1get__strides__type-members.html | 121 + structxt_1_1get__strides__type.html | 153 + ..._shape_3_01_i_8_8_8_01_4_01_4-members.html | 122 + ...01fixed__shape_3_01_i_8_8_8_01_4_01_4.html | 171 + ...c_p_00_01_o_00_01_a_01_4_01_4-members.html | 122 + ...or_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html | 174 + structxt_1_1get__value__type-members.html | 121 + structxt_1_1get__value__type.html | 153 + ...01_t_1_1value__type_01_4_01_4-members.html | 122 + ...ypename_01_t_1_1value__type_01_4_01_4.html | 171 + ...xt_1_1has__assign__conversion-members.html | 123 + structxt_1_1has__assign__conversion.html | 208 + structxt_1_1has__assign__to.html | 131 + structxt_1_1has__assign__to.png | Bin 0 -> 749 bytes ...1cons059ed553ffd14856020f06c40d9ce771.html | 131 + ...01cons059ed553ffd14856020f06c40d9ce771.png | Bin 0 -> 2067 bytes structxt_1_1has__data__interface.html | 131 + structxt_1_1has__data__interface.png | Bin 0 -> 737 bytes ...01_e_01_4_07_08_8data_07_08_08_4_01_4.html | 131 + ..._01_e_01_4_07_08_8data_07_08_08_4_01_4.png | Bin 0 -> 1616 bytes structxt_1_1has__fixed__rank-members.html | 121 + structxt_1_1has__fixed__rank.html | 153 + structxt_1_1has__iterator__interface.html | 131 + structxt_1_1has__iterator__interface.png | Bin 0 -> 750 bytes ...1_e_01_4_07_08_8begin_07_08_08_4_01_4.html | 131 + ...01_e_01_4_07_08_8begin_07_08_08_4_01_4.png | Bin 0 -> 1656 bytes structxt_1_1has__memory__address.html | 131 + structxt_1_1has__memory__address.png | Bin 0 -> 773 bytes ...d_1_1e8ed49541169f10cfa05c619e2da0ead.html | 131 + ...td_1_1e8ed49541169f10cfa05c619e2da0ead.png | Bin 0 -> 1919 bytes structxt_1_1has__rank-members.html | 121 + structxt_1_1has__rank.html | 153 + ...ctxt_1_1has__sign__conversion-members.html | 123 + structxt_1_1has__sign__conversion.html | 206 + structxt_1_1has__simd__apply.html | 131 + structxt_1_1has__simd__apply.png | Bin 0 -> 1139 bytes structxt_1_1has__simd__interface.html | 131 + structxt_1_1has__simd__interface.png | Bin 0 -> 2171 bytes ...1_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html | 131 + ...01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.png | Bin 0 -> 4352 bytes ...or_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html | 134 + ...tor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png | Bin 0 -> 6142 bytes ...pplier__base_3_01_d_01_4_00_01_t_01_4.html | 131 + ...applier__base_3_01_d_01_4_00_01_t_01_4.png | Bin 0 -> 4993 bytes ...ew_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html | 134 + ...iew_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png | Bin 0 -> 5701 bytes ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 131 + ..._c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png | Bin 0 -> 2720 bytes structxt_1_1has__simd__type.html | 131 + structxt_1_1has__simd__type.png | Bin 0 -> 1247 bytes structxt_1_1has__storage__type.html | 131 + structxt_1_1has__storage__type.png | Bin 0 -> 748 bytes ...3_01_650a1762a9f827a241fdd5fca766bcf6.html | 131 + ..._3_01_650a1762a9f827a241fdd5fca766bcf6.png | Bin 0 -> 2582 bytes structxt_1_1has__strides.html | 131 + structxt_1_1has__strides.png | Bin 0 -> 662 bytes ...e_01_4_07_08_8strides_07_08_08_4_01_4.html | 131 + ..._e_01_4_07_08_8strides_07_08_08_4_01_4.png | Bin 0 -> 1555 bytes structxt_1_1index__from__shape-members.html | 121 + structxt_1_1index__from__shape.html | 153 + structxt_1_1index__mapper.html | 139 + ...txt_1_1initializer__dimension-members.html | 121 + structxt_1_1initializer__dimension.html | 161 + structxt_1_1inner__aligned__mode.html | 124 + structxt_1_1inner__reference-members.html | 122 + structxt_1_1inner__reference.html | 177 + structxt_1_1invalid__type.html | 124 + structxt_1_1is__chunked__t.html | 131 + structxt_1_1is__chunked__t.png | Bin 0 -> 712 bytes structxt_1_1is__contiguous__container.html | 131 + structxt_1_1is__contiguous__container.png | Bin 0 -> 712 bytes ...tor_3_01_st_00_01_s_00_01_l_01_4_01_4.html | 131 + ...ator_3_01_st_00_01_s_00_01_l_01_4_01_4.png | Bin 0 -> 1356 bytes ...r__adaptor_3_01_i_00_01_c_i_01_4_01_4.html | 134 + ...or__adaptor_3_01_i_00_01_c_i_01_4_01_4.png | Bin 0 -> 2107 bytes ...r__adaptor_3_01_c_00_01_i_g_01_4_01_4.html | 134 + ...er__adaptor_3_01_c_00_01_i_g_01_4_01_4.png | Bin 0 -> 2304 bytes structxt_1_1is__evaluation__strategy.html | 131 + structxt_1_1is__evaluation__strategy.png | Bin 0 -> 1090 bytes structxt_1_1is__indexed__stepper-members.html | 121 + structxt_1_1is__indexed__stepper.html | 161 + ...pper_3_01_t_00_01_b_01_4_01_4-members.html | 122 + ...xed__stepper_3_01_t_00_01_b_01_4_01_4.html | 187 + structxt_1_1is__iterator.html | 131 + structxt_1_1is__iterator.png | Bin 0 -> 663 bytes ..._01_41da12c429c255d2c81e18d875fbe6e98.html | 131 + ...e_01_41da12c429c255d2c81e18d875fbe6e98.png | Bin 0 -> 3151 bytes ..._1_1is__narrowing__conversion-members.html | 123 + structxt_1_1is__narrowing__conversion.html | 210 + structxt_1_1is__not__xdummy__iterator.html | 131 + structxt_1_1is__not__xdummy__iterator.png | Bin 0 -> 717 bytes ...tor_3_01is__const_00_01_c_t_01_4_01_4.html | 131 + ...ator_3_01is__const_00_01_c_t_01_4_01_4.png | Bin 0 -> 1398 bytes structxt_1_1is__reducer__options.html | 134 + structxt_1_1is__reducer__options.png | Bin 0 -> 1393 bytes structxt_1_1is__reducer__options__impl.html | 131 + structxt_1_1is__reducer__options__impl.png | Bin 0 -> 729 bytes ...01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html | 131 + ..._01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.png | Bin 0 -> 1324 bytes structxt_1_1is__specialization__of.html | 131 + structxt_1_1is__specialization__of.png | Bin 0 -> 713 bytes ...t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html | 131 + ..._t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1036 bytes structxt_1_1is__xoptional__expression.html | 131 + structxt_1_1is__xoptional__expression.png | Bin 0 -> 1167 bytes structxt_1_1is__xtensor__expression.html | 131 + structxt_1_1is__xtensor__expression.png | Bin 0 -> 1116 bytes structxt_1_1keep__dims__type.html | 130 + structxt_1_1keep__dims__type.png | Bin 0 -> 601 bytes structxt_1_1make__invalid__type-members.html | 121 + structxt_1_1make__invalid__type.html | 153 + structxt_1_1make__void-members.html | 121 + structxt_1_1make__void.html | 153 + structxt_1_1math_1_1abs__fun-members.html | 122 + structxt_1_1math_1_1abs__fun.html | 196 + structxt_1_1math_1_1acos__fun-members.html | 122 + structxt_1_1math_1_1acos__fun.html | 196 + structxt_1_1math_1_1acosh__fun-members.html | 122 + structxt_1_1math_1_1acosh__fun.html | 196 + structxt_1_1math_1_1arg__fun-members.html | 122 + structxt_1_1math_1_1arg__fun.html | 196 + structxt_1_1math_1_1asin__fun-members.html | 122 + structxt_1_1math_1_1asin__fun.html | 196 + structxt_1_1math_1_1asinh__fun-members.html | 122 + structxt_1_1math_1_1asinh__fun.html | 196 + structxt_1_1math_1_1atan2__fun-members.html | 122 + structxt_1_1math_1_1atan2__fun.html | 204 + structxt_1_1math_1_1atan__fun-members.html | 122 + structxt_1_1math_1_1atan__fun.html | 196 + structxt_1_1math_1_1atanh__fun-members.html | 122 + structxt_1_1math_1_1atanh__fun.html | 196 + structxt_1_1math_1_1cbrt__fun-members.html | 122 + structxt_1_1math_1_1cbrt__fun.html | 196 + structxt_1_1math_1_1ceil__fun-members.html | 122 + structxt_1_1math_1_1ceil__fun.html | 196 + structxt_1_1math_1_1clamp__fun-members.html | 122 + structxt_1_1math_1_1clamp__fun.html | 214 + structxt_1_1math_1_1conj__fun-members.html | 122 + structxt_1_1math_1_1conj__fun.html | 196 + ...xt_1_1math_1_1conj__impl__fun-members.html | 122 + structxt_1_1math_1_1conj__impl__fun.html | 196 + structxt_1_1math_1_1cos__fun-members.html | 122 + structxt_1_1math_1_1cos__fun.html | 196 + structxt_1_1math_1_1cosh__fun-members.html | 122 + structxt_1_1math_1_1cosh__fun.html | 196 + structxt_1_1math_1_1deg2rad-members.html | 124 + structxt_1_1math_1_1deg2rad.html | 260 + structxt_1_1math_1_1erf__fun-members.html | 122 + structxt_1_1math_1_1erf__fun.html | 196 + structxt_1_1math_1_1erfc__fun-members.html | 122 + structxt_1_1math_1_1erfc__fun.html | 196 + structxt_1_1math_1_1exp2__fun-members.html | 122 + structxt_1_1math_1_1exp2__fun.html | 196 + structxt_1_1math_1_1exp__fun-members.html | 122 + structxt_1_1math_1_1exp__fun.html | 196 + structxt_1_1math_1_1expm1__fun-members.html | 122 + structxt_1_1math_1_1expm1__fun.html | 196 + structxt_1_1math_1_1fabs__fun-members.html | 122 + structxt_1_1math_1_1fabs__fun.html | 196 + structxt_1_1math_1_1fdim__fun-members.html | 122 + structxt_1_1math_1_1fdim__fun.html | 204 + structxt_1_1math_1_1floor__fun-members.html | 122 + structxt_1_1math_1_1floor__fun.html | 196 + structxt_1_1math_1_1fma__fun-members.html | 122 + structxt_1_1math_1_1fma__fun.html | 214 + structxt_1_1math_1_1fmax__fun-members.html | 122 + structxt_1_1math_1_1fmax__fun.html | 204 + structxt_1_1math_1_1fmin__fun-members.html | 122 + structxt_1_1math_1_1fmin__fun.html | 204 + structxt_1_1math_1_1fmod__fun-members.html | 122 + structxt_1_1math_1_1fmod__fun.html | 204 + structxt_1_1math_1_1hypot__fun-members.html | 122 + structxt_1_1math_1_1hypot__fun.html | 204 + ...ctxt_1_1math_1_1isfinite__fun-members.html | 122 + structxt_1_1math_1_1isfinite__fun.html | 196 + structxt_1_1math_1_1isinf__fun-members.html | 122 + structxt_1_1math_1_1isinf__fun.html | 196 + structxt_1_1math_1_1isnan__fun-members.html | 122 + structxt_1_1math_1_1isnan__fun.html | 196 + structxt_1_1math_1_1lgamma__fun-members.html | 122 + structxt_1_1math_1_1lgamma__fun.html | 196 + structxt_1_1math_1_1log10__fun-members.html | 122 + structxt_1_1math_1_1log10__fun.html | 196 + structxt_1_1math_1_1log1p__fun-members.html | 122 + structxt_1_1math_1_1log1p__fun.html | 196 + structxt_1_1math_1_1log2__fun-members.html | 122 + structxt_1_1math_1_1log2__fun.html | 196 + structxt_1_1math_1_1log__fun-members.html | 122 + structxt_1_1math_1_1log__fun.html | 196 + structxt_1_1math_1_1maximum-members.html | 122 + structxt_1_1math_1_1maximum.html | 209 + structxt_1_1math_1_1minimum-members.html | 122 + structxt_1_1math_1_1minimum.html | 209 + ...txt_1_1math_1_1nearbyint__fun-members.html | 122 + structxt_1_1math_1_1nearbyint__fun.html | 196 + structxt_1_1math_1_1norm__fun-members.html | 122 + structxt_1_1math_1_1norm__fun.html | 196 + structxt_1_1math_1_1pow__fun-members.html | 122 + structxt_1_1math_1_1pow__fun.html | 204 + structxt_1_1math_1_1rad2deg-members.html | 124 + structxt_1_1math_1_1rad2deg.html | 260 + ...txt_1_1math_1_1remainder__fun-members.html | 122 + structxt_1_1math_1_1remainder__fun.html | 204 + structxt_1_1math_1_1rint__fun-members.html | 122 + structxt_1_1math_1_1rint__fun.html | 196 + structxt_1_1math_1_1round__fun-members.html | 122 + structxt_1_1math_1_1round__fun.html | 196 + structxt_1_1math_1_1sign__fun-members.html | 121 + structxt_1_1math_1_1sign__fun.html | 164 + structxt_1_1math_1_1sign__impl-members.html | 123 + structxt_1_1math_1_1sign__impl.html | 235 + ...onal_3_01_t_00_01_b_01_4_01_4-members.html | 124 + ...1_1xoptional_3_01_t_00_01_b_01_4_01_4.html | 251 + structxt_1_1math_1_1sin__fun-members.html | 122 + structxt_1_1math_1_1sin__fun.html | 196 + structxt_1_1math_1_1sinh__fun-members.html | 122 + structxt_1_1math_1_1sinh__fun.html | 196 + structxt_1_1math_1_1sqrt__fun-members.html | 122 + structxt_1_1math_1_1sqrt__fun.html | 196 + structxt_1_1math_1_1tan__fun-members.html | 122 + structxt_1_1math_1_1tan__fun.html | 196 + structxt_1_1math_1_1tanh__fun-members.html | 122 + structxt_1_1math_1_1tanh__fun.html | 196 + structxt_1_1math_1_1tgamma__fun-members.html | 122 + structxt_1_1math_1_1tgamma__fun.html | 196 + structxt_1_1math_1_1trunc__fun-members.html | 122 + structxt_1_1math_1_1trunc__fun.html | 196 + structxt_1_1memory__range-members.html | 125 + structxt_1_1memory__range.html | 246 + structxt_1_1meta__identity-members.html | 121 + structxt_1_1meta__identity.html | 153 + structxt_1_1missing__type.html | 124 + ..._1_1nested__initializer__list-members.html | 121 + structxt_1_1nested__initializer__list.html | 153 + ...izer__list_3_01_t_00_010_01_4-members.html | 122 + ..._initializer__list_3_01_t_00_010_01_4.html | 171 + structxt_1_1no__ownership.html | 124 + structxt_1_1norm__type-members.html | 122 + structxt_1_1norm__type.html | 230 + structxt_1_1norm__type.png | Bin 0 -> 756 bytes structxt_1_1numeric__constants-members.html | 132 + structxt_1_1numeric__constants.html | 469 + ...1overlapping__memory__checker-members.html | 125 + structxt_1_1overlapping__memory__checker.html | 185 + structxt_1_1overlapping__memory__checker.png | Bin 0 -> 1114 bytes ...__add979fb9a8b7b1983c9fb733f357d6c2fa.html | 215 + ...y__add979fb9a8b7b1983c9fb733f357d6c2fa.png | Bin 0 -> 2107 bytes ...__adde5366ae3ec1ca90ac06c86ce5f91b997.html | 126 + ...apping__memory__checker__base-members.html | 124 + ...1_1overlapping__memory__checker__base.html | 228 + ..._1_1overlapping__memory__checker__base.png | Bin 0 -> 2563 bytes ...ping__memory__checker__traits-members.html | 121 + ...1overlapping__memory__checker__traits.html | 168 + ...memor0ee187b84159790ec139479eaf101d7d.html | 122 + ...memor4c750fb1ec54f24555f6fb27c3a9d4ec.html | 201 + ...emory61f92cb9f43b9bde0b3e9ee531d2d26a.html | 124 + ...emory7631490e58e2e554d47f900b4789ad50.html | 277 + ...emory9f28c8bceb6a84ea6f46c1fa50db17c9.html | 201 + ...emoryb7020c6a878800e42153f327d9b044ed.html | 122 + ...__checker__traits_3_01_e_01_4-members.html | 123 + ...__memory__checker__traits_3_01_e_01_4.html | 238 + ...1_1placeholders_1_1rangemaker-members.html | 121 + structxt_1_1placeholders_1_1rangemaker.html | 153 + ...r_3_01_a_00_01_b_00_01_c_01_4-members.html | 123 + ...angemaker_3_01_a_00_01_b_00_01_c_01_4.html | 207 + ...angemaker_3_01_a_00_01_b_01_4-members.html | 123 + ...ers_1_1rangemaker_3_01_a_00_01_b_01_4.html | 207 + structxt_1_1placeholders_1_1xtuph.html | 124 + ...tions_1_1print__options__impl-members.html | 124 + ...rint__options_1_1print__options__impl.html | 204 + structxt_1_1promote__shape-members.html | 121 + structxt_1_1promote__shape.html | 153 + structxt_1_1promote__strides-members.html | 121 + structxt_1_1promote__strides.html | 153 + structxt_1_1rebind__container.html | 125 + ...01_c_3_01_t_00_01_a_01_4_01_4-members.html | 123 + ...01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html | 193 + ...01_c_3_01_t_00_01_n_01_4_01_4-members.html | 121 + ...01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html | 153 + ...1_n_00_01_a_00_01_b_01_4_01_4-members.html | 123 + ...1_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html | 193 + structxt_1_1reducer__options-members.html | 130 + structxt_1_1reducer__options.html | 394 + structxt_1_1reducer__options.js | 6 + ..._1reducer__options_1_1initial__tester.html | 132 + ...1_1reducer__options_1_1initial__tester.png | Bin 0 -> 913 bytes ...3_01const_01xinitial_3_01_x_01_4_01_4.html | 132 + ..._3_01const_01xinitial_3_01_x_01_4_01_4.png | Bin 0 -> 1481 bytes ..._tester_3_01xinitial_3_01_x_01_4_01_4.html | 132 + ...__tester_3_01xinitial_3_01_x_01_4_01_4.png | Bin 0 -> 1418 bytes structxt_1_1remove__class.html | 125 + ...07_args_8_8_8_08_01const_01_4-members.html | 121 + ..._1_5_08_07_args_8_8_8_08_01const_01_4.html | 153 + ...c_1_1_5_08_07_args_8_8_8_08_4-members.html | 121 + ...01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html | 153 + ...1_1select__dim__mapping__type-members.html | 121 + structxt_1_1select__dim__mapping__type.html | 153 + ..._shape_3_01_i_8_8_8_01_4_01_4-members.html | 122 + ...01fixed__shape_3_01_i_8_8_8_01_4_01_4.html | 171 + ...txt_1_1select__iterable__base-members.html | 121 + structxt_1_1select__iterable__base.html | 153 + structxt_1_1select__layout-members.html | 123 + structxt_1_1select__layout.html | 227 + structxt_1_1squared__norm__type-members.html | 122 + structxt_1_1squared__norm__type.html | 234 + structxt_1_1squared__norm__type.png | Bin 0 -> 819 bytes structxt_1_1static__dimension-members.html | 121 + structxt_1_1static__dimension.html | 163 + structxt_1_1static__string-members.html | 124 + structxt_1_1static__string.html | 238 + structxt_1_1stepper__tools-members.html | 132 + structxt_1_1stepper__tools.html | 413 + ...il_1_1check__strides__functor-members.html | 126 + ...gn__detail_1_1check__strides__functor.html | 326 + ...strided__assign__detail_1_1idx__tools.html | 125 + ...t__type_1_1column__major_01_4-members.html | 122 + ..._01layout__type_1_1column__major_01_4.html | 209 + ...yout__type_1_1row__major_01_4-members.html | 122 + ...s_3_01layout__type_1_1row__major_01_4.html | 209 + ...ign__detail_1_1loop__sizes__t-members.html | 126 + ...ded__assign__detail_1_1loop__sizes__t.html | 240 + structxt_1_1temporary__container-members.html | 121 + structxt_1_1temporary__container.html | 153 + ...c_p_00_01_o_00_01_a_01_4_01_4-members.html | 122 + ...or_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html | 171 + ...or_3_01_i_00_01_c_i_01_4_01_4-members.html | 122 + ...r__adaptor_3_01_i_00_01_c_i_01_4_01_4.html | 171 + ...or_3_01_c_00_01_i_g_01_4_01_4-members.html | 122 + ...r__adaptor_3_01_c_00_01_i_g_01_4_01_4.html | 171 + structxt_1_1temporary__type-members.html | 121 + structxt_1_1temporary__type.html | 153 + ..._1_1temporary__type_01_4_01_4-members.html | 122 + ...1_t_01_4_1_1temporary__type_01_4_01_4.html | 171 + structxt_1_1temporary__type__from__tag.html | 125 + ..._expression__tag_00_01_t_01_4-members.html | 125 + ...xtensor__expression__tag_00_01_t_01_4.html | 246 + structxt_1_1tracking__allocator-members.html | 130 + structxt_1_1tracking__allocator.html | 341 + structxt_1_1tracking__allocator.js | 4 + structxt_1_1tracking__allocator.png | Bin 0 -> 618 bytes ...tracking__allocator_1_1rebind-members.html | 122 + ...ctxt_1_1tracking__allocator_1_1rebind.html | 178 + ...il_1_1norm__of__array__elements__impl.html | 125 + ..._t_00_01false_00_01false_01_4-members.html | 122 + ...mpl_3_01_t_00_01false_00_01false_01_4.html | 173 + ...1_t_00_01false_00_01true_01_4-members.html | 122 + ...impl_3_01_t_00_01false_00_01true_01_4.html | 173 + ...1_t_00_01true_00_01false_01_4-members.html | 122 + ...impl_3_01_t_00_01true_00_01false_01_4.html | 173 + ...ble_00_01false_00_01true_01_4-members.html | 122 + ...ng_01double_00_01false_00_01true_01_4.html | 168 + ..._5_00_01false_00_01false_01_4-members.html | 122 + ...1void_01_5_00_01false_00_01false_01_4.html | 168 + ...its__detail_1_1norm__of__scalar__impl.html | 125 + ...__impl_3_01_t_00_01false_01_4-members.html | 123 + ...__scalar__impl_3_01_t_00_01false_01_4.html | 206 + ...r__impl_3_01_t_00_01true_01_4-members.html | 123 + ...f__scalar__impl_3_01_t_00_01true_01_4.html | 206 + ...ail_1_1norm__of__vector__impl-members.html | 126 + ...its__detail_1_1norm__of__vector__impl.html | 237 + ...s__detail_1_1norm__type__base-members.html | 124 + ...1_1traits__detail_1_1norm__type__base.html | 226 + structxt_1_1tuple__idx__of-members.html | 121 + structxt_1_1tuple__idx__of.html | 161 + structxt_1_1tuple__idx__of__impl.html | 125 + ...t_00_01_types_8_8_8_01_4_01_4-members.html | 121 + ...le_3_01_t_00_01_types_8_8_8_01_4_01_4.html | 161 + ...u_00_01_types_8_8_8_01_4_01_4-members.html | 121 + ...le_3_01_u_00_01_types_8_8_8_01_4_01_4.html | 161 + ..._t_00_01std_1_1tuple_3_4_01_4-members.html | 121 + ..._i_00_01_t_00_01std_1_1tuple_3_4_01_4.html | 161 + structxt_1_1unaligned__mode.html | 124 + ...ctxt_1_1view__temporary__type-members.html | 121 + structxt_1_1view__temporary__type.html | 158 + ...ctxt_1_1xaccumulator__functor-members.html | 128 + structxt_1_1xaccumulator__functor.html | 345 + structxt_1_1xaccumulator__functor.png | Bin 0 -> 1364 bytes structxt_1_1xall__tag-members.html | 121 + structxt_1_1xall__tag.html | 164 + structxt_1_1xclosure-members.html | 121 + structxt_1_1xclosure.html | 153 + ...ecay__t_3_01_e_01_4_01_4_01_4-members.html | 122 + ...std_1_1decay__t_3_01_e_01_4_01_4_01_4.html | 171 + ...ble__if__t_3_01true_01_4_01_4-members.html | 122 + ...d_1_1enable__if__t_3_01true_01_4_01_4.html | 171 + structxt_1_1xcontainer__inner__types.html | 125 + ...00_01_s_c_00_01_tag_01_4_01_4-members.html | 132 + ...00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html | 386 + ...00_01_s_c_00_01_tag_01_4_01_4-members.html | 132 + ...00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html | 386 + ...st_3_01_c_t_00_01_x_01_4_01_4-members.html | 124 + ...xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html | 213 + ..._3_01chunk__storage_01_4_01_4-members.html | 126 + ...d__array_3_01chunk__storage_01_4_01_4.html | 253 + ...00_01_l_00_01_f_s_t_01_4_01_4-members.html | 131 + ...00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html | 366 + ...00_01_s_h_00_01_tag_01_4_01_4-members.html | 132 + ...00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html | 386 + ...00_01_s_h_00_01_tag_01_4_01_4-members.html | 132 + ...00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html | 386 + ...1_f_00_01_c_t_8_8_8_01_4_01_4-members.html | 125 + ...tion_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html | 236 + ...or_3_01_f_00_01_c_t_01_4_01_4-members.html | 127 + ...r__adaptor_3_01_f_00_01_c_t_01_4_01_4.html | 273 + ...ew_3_01_f_00_01_c_t_01_4_01_4-members.html | 127 + ...ctor__view_3_01_f_00_01_c_t_01_4_01_4.html | 273 + ...1_c_00_01_r_00_01_s_01_4_01_4-members.html | 123 + ...ator_3_01_c_00_01_r_00_01_s_01_4_01_4.html | 193 + ...ew_3_01_c_t_00_01_i_01_4_01_4-members.html | 122 + ...ndex__view_3_01_c_t_00_01_i_01_4_01_4.html | 173 + ...1_c_t_d_00_01_c_t_m_01_4_01_4-members.html | 131 + ...view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html | 353 + ..._3_01_v_e_00_01_f_e_01_4_01_4-members.html | 126 + ...assembly_3_01_v_e_00_01_f_e_01_4_01_4.html | 253 + ...1_v_e_c_00_01_f_e_c_01_4_01_4-members.html | 126 + ...ptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html | 261 + ...c_t_00_01_x_00_01_o_01_4_01_4-members.html | 130 + ...f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html | 337 + ..._01xscalar_3_01_c_t_01_4_01_4-members.html | 124 + ..._types_3_01xscalar_3_01_c_t_01_4_01_4.html | 213 + ...00_01_l_00_01_f_s_t_01_4_01_4-members.html | 132 + ...00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html | 388 + ...n_00_01_l_00_01_tag_01_4_01_4-members.html | 132 + ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 386 + ...n_00_01_l_00_01_tag_01_4_01_4-members.html | 132 + ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 386 + ...n_00_01_l_00_01_tag_01_4_01_4-members.html | 132 + ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 386 + ...1_c_t_00_01_s_8_8_8_01_4_01_4-members.html | 129 + ...view_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html | 344 + ..._1xcontainer__iterable__types-members.html | 123 + structxt_1_1xcontainer__iterable__types.html | 193 + structxt_1_1xcsv__config-members.html | 125 + structxt_1_1xcsv__config.html | 232 + structxt_1_1xellipsis__tag-members.html | 121 + structxt_1_1xellipsis__tag.html | 164 + structxt_1_1xexpression__tag-members.html | 121 + structxt_1_1xexpression__tag.html | 155 + structxt_1_1xfunction__cache.html | 131 + structxt_1_1xfunction__cache.png | Bin 0 -> 1055 bytes ...unctor__view__temporary__type-members.html | 121 + ...xt_1_1xfunctor__view__temporary__type.html | 153 + structxt_1_1xinitial-members.html | 123 + structxt_1_1xinitial.html | 227 + structxt_1_1xinitial.png | Bin 0 -> 546 bytes structxt_1_1xiterable__inner__types.html | 125 + ...00_01_s_c_00_01_tag_01_4_01_4-members.html | 119 + ...00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html | 147 + ..._00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png | Bin 0 -> 1433 bytes ...00_01_s_c_00_01_tag_01_4_01_4-members.html | 119 + ...00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html | 147 + ..._00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png | Bin 0 -> 1434 bytes ...st_3_01_c_t_00_01_x_01_4_01_4-members.html | 124 + ...xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html | 213 + ..._3_01chunk__storage_01_4_01_4-members.html | 124 + ...d__array_3_01chunk__storage_01_4_01_4.html | 213 + ...00_01_l_00_01_f_s_t_01_4_01_4-members.html | 125 + ...00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html | 233 + ...00_01_s_h_00_01_tag_01_4_01_4-members.html | 119 + ...00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html | 147 + ..._00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png | Bin 0 -> 1469 bytes ...00_01_s_h_00_01_tag_01_4_01_4-members.html | 119 + ...00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html | 147 + ..._00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png | Bin 0 -> 1448 bytes ...1_f_00_01_c_t_8_8_8_01_4_01_4-members.html | 123 + ...tion_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html | 193 + ...1_c_00_01_r_00_01_s_01_4_01_4-members.html | 123 + ...ator_3_01_c_00_01_r_00_01_s_01_4_01_4.html | 193 + ...ew_3_01_c_t_00_01_i_01_4_01_4-members.html | 123 + ...ndex__view_3_01_c_t_00_01_i_01_4_01_4.html | 193 + ...1_c_t_d_00_01_c_t_m_01_4_01_4-members.html | 124 + ...view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html | 213 + ..._3_01_v_e_00_01_f_e_01_4_01_4-members.html | 124 + ...assembly_3_01_v_e_00_01_f_e_01_4_01_4.html | 213 + ...1_v_e_c_00_01_f_e_c_01_4_01_4-members.html | 124 + ...ptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html | 213 + ...c_t_00_01_x_00_01_o_01_4_01_4-members.html | 124 + ...f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html | 218 + ...at_3_01_c_t_00_01_r_01_4_01_4-members.html | 125 + ..._01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html | 233 + ..._01xscalar_3_01_c_t_01_4_01_4-members.html | 125 + ..._types_3_01xscalar_3_01_c_t_01_4_01_4.html | 233 + ...00_01_l_00_01_f_s_t_01_4_01_4-members.html | 125 + ...00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html | 244 + ...n_00_01_l_00_01_tag_01_4_01_4-members.html | 119 + ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 147 + ..._c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png | Bin 0 -> 1385 bytes ...n_00_01_l_00_01_tag_01_4_01_4-members.html | 119 + ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 147 + ..._c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png | Bin 0 -> 1378 bytes ...n_00_01_l_00_01_tag_01_4_01_4-members.html | 119 + ...c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html | 147 + ..._c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png | Bin 0 -> 1355 bytes ...1_c_t_00_01_s_8_8_8_01_4_01_4-members.html | 126 + ...view_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html | 290 + structxt_1_1xnewaxis__tag-members.html | 121 + structxt_1_1xnewaxis__tag.html | 164 + ...bly__linear__iterator__traits-members.html | 126 + ...l__assembly__linear__iterator__traits.html | 261 + structxt_1_1xoptional__comparable.html | 131 + structxt_1_1xoptional__comparable.png | Bin 0 -> 1384 bytes structxt_1_1xoptional__expression__tag.html | 124 + structxt_1_1xproxy__inner__types-members.html | 122 + structxt_1_1xproxy__inner__types.html | 173 + structxt_1_1xrange__adaptor-members.html | 125 + structxt_1_1xrange__adaptor.html | 301 + structxt_1_1xreducer__functors-members.html | 135 + structxt_1_1xreducer__functors.html | 559 + structxt_1_1xreducer__functors.png | Bin 0 -> 1312 bytes ...ctxt_1_1xreducer__shape__type-members.html | 121 + structxt_1_1xreducer__shape__type.html | 153 + ..._01_j_8_8_8_01_4_00_01_o_01_4-members.html | 122 + ..._shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html | 171 + ..._i2_0113732d5b63b22c20cb89d3a7b591d8f.html | 171 + ..._i2_027fcc88fe66eb75490a0dba142ef545f.html | 122 + ..._i2_02aafc87a49290e02ea3938a932d6c334.html | 123 + ..._i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html | 214 + ...3_01_9c73ff706755e2a1205ad25fb933e4d8.html | 122 + ...3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html | 171 + ...3_01_dd68458bef343598f52e1cee8de7e66e.html | 122 + ...3_01_f0fe2e231e25d4e5852b877ba4b36e02.html | 171 + structxt_1_1xtensor__expression__tag.html | 124 + structxt_1_1xview__shape__type-members.html | 121 + structxt_1_1xview__shape__type.html | 153 + ...8_8_8_01_4_00_01_s_8_8_8_01_4-members.html | 122 + ..._3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html | 171 + ..._01_l_01_4_00_01_s_8_8_8_01_4-members.html | 122 + ..._01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html | 171 + structxt__simd_1_1aligned__mode.html | 124 + ..._simd_1_1allocator__alignment-members.html | 121 + structxt__simd_1_1allocator__alignment.html | 153 + ..._simd_1_1container__alignment-members.html | 121 + structxt__simd_1_1container__alignment.html | 153 + structxt__simd_1_1is__batch__bool.html | 131 + structxt__simd_1_1is__batch__bool.png | Bin 0 -> 677 bytes structxt__simd_1_1is__batch__complex.html | 131 + structxt__simd_1_1is__batch__complex.png | Bin 0 -> 723 bytes ..._simd_1_1revert__simd__traits-members.html | 122 + structxt__simd_1_1revert__simd__traits.html | 186 + structxt__simd_1_1simd__condition.html | 131 + structxt__simd_1_1simd__condition.png | Bin 0 -> 706 bytes structxt__simd_1_1simd__traits-members.html | 124 + structxt__simd_1_1simd__traits.html | 226 + structxt__simd_1_1unaligned__mode.html | 124 + structxtl_1_1conjunction-members.html | 121 + structxtl_1_1conjunction.html | 161 + sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_ad.png | Bin 0 -> 135 bytes tab_b.png | Bin 0 -> 169 bytes tab_bd.png | Bin 0 -> 173 bytes tab_h.png | Bin 0 -> 177 bytes tab_hd.png | Bin 0 -> 180 bytes tab_s.png | Bin 0 -> 184 bytes tab_sd.png | Bin 0 -> 188 bytes tabs.css | 1 + topics.html | 149 + topics.js | 31 + xaccessible_8hpp_source.html | 433 + xaccumulator_8hpp_source.html | 483 + xadapt_8hpp_source.html | 602 + xarray_8hpp_source.html | 738 + xassign_8hpp_source.html | 1518 ++ xaxis__iterator_8hpp_source.html | 404 + xaxis__slice__iterator_8hpp_source.html | 423 + xblockwise__reducer_8hpp_source.html | 658 + ...ckwise__reducer__functors_8hpp_source.html | 640 + xbroadcast_8hpp_source.html | 556 + xbuffer__adaptor_8hpp_source.html | 1442 ++ xbuilder_8hpp_source.html | 1235 ++ xchunked__array_8hpp_source.html | 779 + xchunked__assign_8hpp_source.html | 514 + xchunked__view_8hpp_source.html | 424 + xcomplex_8hpp_source.html | 354 + xcontainer_8hpp_source.html | 1199 + xcsv_8hpp_source.html | 402 + xdynamic__view_8hpp_source.html | 978 + xeval_8hpp_source.html | 254 + xexception_8hpp_source.html | 503 + xexpression_8hpp_source.html | 906 + xexpression__holder_8hpp_source.html | 393 + xexpression__traits_8hpp_source.html | 350 + xfft_8hpp_source.html | 355 + xfixed_8hpp_source.html | 1034 + xfunction_8hpp_source.html | 1245 ++ xfunctor__view_8hpp_source.html | 1599 ++ xgenerator_8hpp_source.html | 616 + xhistogram_8hpp_source.html | 637 + xindex__view_8hpp_source.html | 838 + xinfo_8hpp_source.html | 267 + xio_8hpp_source.html | 891 + xiterable_8hpp_source.html | 1225 ++ xiterator_8hpp_source.html | 1442 ++ xjson_8hpp_source.html | 287 + xlayout_8hpp_source.html | 213 + xmanipulation_8hpp_source.html | 1098 + xmasked__view_8hpp_source.html | 735 + xmath_8hpp_source.html | 2722 +++ xmime_8hpp_source.html | 566 + xmultiindex__iterator_8hpp_source.html | 253 + xnoalias_8hpp_source.html | 353 + xnorm_8hpp_source.html | 662 + xnpy_8hpp_source.html | 909 + xoffset__view_8hpp_source.html | 203 + xoperation_8hpp_source.html | 838 + xoptional_8hpp_source.html | 1617 ++ xoptional__assembly_8hpp_source.html | 811 + xoptional__assembly__base_8hpp_source.html | 1042 + xoptional__assembly__storage_8hpp_source.html | 700 + xpad_8hpp_source.html | 401 + xrandom_8hpp_source.html | 871 + xreducer_8hpp_source.html | 2035 ++ xrepeat_8hpp_source.html | 795 + xscalar_8hpp_source.html | 1259 ++ xsemantic_8hpp_source.html | 805 + xset__operation_8hpp_source.html | 283 + xshape_8hpp_source.html | 685 + xslice_8hpp_source.html | 1707 ++ xsort_8hpp_source.html | 1306 ++ xstorage_8hpp_source.html | 2110 ++ xstrided__view_8hpp_source.html | 1011 + xstrided__view__base_8hpp_source.html | 1016 + xstrides_8hpp_source.html | 997 + xtensor_8hpp_source.html | 1031 + xtensor__config_8hpp_source.html | 258 + xtensor__forward_8hpp_source.html | 267 + xtensor__simd_8hpp_source.html | 514 + xtl__concepts_8hpp_source.html | 153 + xutils_8hpp_source.html | 1297 ++ xvectorize_8hpp_source.html | 227 + xview_8hpp_source.html | 2352 ++ xview__utils_8hpp_source.html | 412 + 1616 files changed, 378736 insertions(+) create mode 100644 .nojekyll create mode 100644 _2home_2runner_2work_2xtensor_2xtensor_2include_2xtensor_2views_2index_mapper_8hpp-example.html create mode 100644 _formulas.tex create mode 100644 _formulas_dark.tex create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 bc_s.png create mode 100644 bc_sd.png create mode 100644 classes.html create mode 100644 classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html create mode 100644 classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.png create mode 100644 classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html create mode 100644 classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.png create mode 100644 classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html create mode 100644 classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.png create mode 100644 classxt_1_1aligned__array-members.html create mode 100644 classxt_1_1aligned__array.html create mode 100644 classxt_1_1aligned__array.png create mode 100644 classxt_1_1broadcast__error-members.html create mode 100644 classxt_1_1broadcast__error.html create mode 100644 classxt_1_1broadcast__error.png create mode 100644 classxt_1_1concatenate__error-members.html create mode 100644 classxt_1_1concatenate__error.html create mode 100644 classxt_1_1concatenate__error.png create mode 100644 classxt_1_1extension_1_1xbroadcast__optional-members.html create mode 100644 classxt_1_1extension_1_1xbroadcast__optional.html create mode 100644 classxt_1_1extension_1_1xbroadcast__optional.png create mode 100644 classxt_1_1extension_1_1xcontainer__optional__base-members.html create mode 100644 classxt_1_1extension_1_1xcontainer__optional__base.html create mode 100644 classxt_1_1extension_1_1xcontainer__optional__base.png create mode 100644 classxt_1_1extension_1_1xdynamic__view__optional-members.html create mode 100644 classxt_1_1extension_1_1xdynamic__view__optional.html create mode 100644 classxt_1_1extension_1_1xdynamic__view__optional.png create mode 100644 classxt_1_1extension_1_1xfunction__optional__base-members.html create mode 100644 classxt_1_1extension_1_1xfunction__optional__base.html create mode 100644 classxt_1_1extension_1_1xfunction__optional__base.png create mode 100644 classxt_1_1extension_1_1xfunctor__view__optional-members.html create mode 100644 classxt_1_1extension_1_1xfunctor__view__optional.html create mode 100644 classxt_1_1extension_1_1xfunctor__view__optional.png create mode 100644 classxt_1_1extension_1_1xgenerator__optional-members.html create mode 100644 classxt_1_1extension_1_1xgenerator__optional.html create mode 100644 classxt_1_1extension_1_1xgenerator__optional.png create mode 100644 classxt_1_1extension_1_1xindex__view__optional-members.html create mode 100644 classxt_1_1extension_1_1xindex__view__optional.html create mode 100644 classxt_1_1extension_1_1xindex__view__optional.png create mode 100644 classxt_1_1extension_1_1xoptional__empty__base-members.html create mode 100644 classxt_1_1extension_1_1xoptional__empty__base.html create mode 100644 classxt_1_1extension_1_1xoptional__empty__base.png create mode 100644 classxt_1_1extension_1_1xreducer__optional-members.html create mode 100644 classxt_1_1extension_1_1xreducer__optional.html create mode 100644 classxt_1_1extension_1_1xreducer__optional.png create mode 100644 classxt_1_1extension_1_1xrepeat__optional-members.html create mode 100644 classxt_1_1extension_1_1xrepeat__optional.html create mode 100644 classxt_1_1extension_1_1xrepeat__optional.png create mode 100644 classxt_1_1extension_1_1xscalar__optional__base-members.html create mode 100644 classxt_1_1extension_1_1xscalar__optional__base.html create mode 100644 classxt_1_1extension_1_1xscalar__optional__base.png create mode 100644 classxt_1_1extension_1_1xstrided__view__optional-members.html create mode 100644 classxt_1_1extension_1_1xstrided__view__optional.html create mode 100644 classxt_1_1extension_1_1xstrided__view__optional.png create mode 100644 classxt_1_1extension_1_1xview__optional-members.html create mode 100644 classxt_1_1extension_1_1xview__optional.html create mode 100644 classxt_1_1extension_1_1xview__optional.png create mode 100644 classxt_1_1fixed__shape-members.html create mode 100644 classxt_1_1fixed__shape.html create mode 100644 classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4-members.html create mode 100644 classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html create mode 100644 classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.js create mode 100644 classxt_1_1linear__assigner-members.html create mode 100644 classxt_1_1linear__assigner.html create mode 100644 classxt_1_1linear__assigner_3_01false_01_4-members.html create mode 100644 classxt_1_1linear__assigner_3_01false_01_4.html create mode 100644 classxt_1_1noalias__proxy-members.html create mode 100644 classxt_1_1noalias__proxy.html create mode 100644 classxt_1_1print__options_1_1edge__items-members.html create mode 100644 classxt_1_1print__options_1_1edge__items.html create mode 100644 classxt_1_1print__options_1_1line__width-members.html create mode 100644 classxt_1_1print__options_1_1line__width.html create mode 100644 classxt_1_1print__options_1_1precision-members.html create mode 100644 classxt_1_1print__options_1_1precision.html create mode 100644 classxt_1_1print__options_1_1threshold-members.html create mode 100644 classxt_1_1print__options_1_1threshold.html create mode 100644 classxt_1_1sequence__view-members.html create mode 100644 classxt_1_1sequence__view.html create mode 100644 classxt_1_1stepper__assigner-members.html create mode 100644 classxt_1_1stepper__assigner.html create mode 100644 classxt_1_1strided__loop__assigner-members.html create mode 100644 classxt_1_1strided__loop__assigner.html create mode 100644 classxt_1_1svector-members.html create mode 100644 classxt_1_1svector.html create mode 100644 classxt_1_1transpose__error-members.html create mode 100644 classxt_1_1transpose__error.html create mode 100644 classxt_1_1transpose__error.png create mode 100644 classxt_1_1uvector-members.html create mode 100644 classxt_1_1uvector.html create mode 100644 classxt_1_1xaccessible-members.html create mode 100644 classxt_1_1xaccessible.html create mode 100644 classxt_1_1xaccessible.js create mode 100644 classxt_1_1xaccessible.png create mode 100644 classxt_1_1xall-members.html create mode 100644 classxt_1_1xall.html create mode 100644 classxt_1_1xall.png create mode 100644 classxt_1_1xarray__adaptor-members.html create mode 100644 classxt_1_1xarray__adaptor.html create mode 100644 classxt_1_1xarray__adaptor.js create mode 100644 classxt_1_1xarray__adaptor.png create mode 100644 classxt_1_1xarray__container-members.html create mode 100644 classxt_1_1xarray__container.html create mode 100644 classxt_1_1xarray__container.js create mode 100644 classxt_1_1xarray__container.png create mode 100644 classxt_1_1xassign__traits-members.html create mode 100644 classxt_1_1xassign__traits.html create mode 100644 classxt_1_1xaxis__iterator-members.html create mode 100644 classxt_1_1xaxis__iterator.html create mode 100644 classxt_1_1xaxis__iterator.js create mode 100644 classxt_1_1xaxis__slice__iterator-members.html create mode 100644 classxt_1_1xaxis__slice__iterator.html create mode 100644 classxt_1_1xaxis__slice__iterator.js create mode 100644 classxt_1_1xblockwise__reducer-members.html create mode 100644 classxt_1_1xblockwise__reducer.html create mode 100644 classxt_1_1xbounded__iterator-members.html create mode 100644 classxt_1_1xbounded__iterator.html create mode 100644 classxt_1_1xbounded__iterator.png create mode 100644 classxt_1_1xbroadcast-members.html create mode 100644 classxt_1_1xbroadcast.html create mode 100644 classxt_1_1xbroadcast.js create mode 100644 classxt_1_1xbroadcast.png create mode 100644 classxt_1_1xbuffer__adaptor-members.html create mode 100644 classxt_1_1xbuffer__adaptor.html create mode 100644 classxt_1_1xbuffer__adaptor.png create mode 100644 classxt_1_1xbuffer__adaptor__base-members.html create mode 100644 classxt_1_1xbuffer__adaptor__base.html create mode 100644 classxt_1_1xbuffer__adaptor__base.png create mode 100644 classxt_1_1xchunk__iterator-members.html create mode 100644 classxt_1_1xchunk__iterator.html create mode 100644 classxt_1_1xchunk__iterator.png create mode 100644 classxt_1_1xchunked__array-members.html create mode 100644 classxt_1_1xchunked__array.html create mode 100644 classxt_1_1xchunked__array.png create mode 100644 classxt_1_1xchunked__assigner-members.html create mode 100644 classxt_1_1xchunked__assigner.html create mode 100644 classxt_1_1xchunked__semantic-members.html create mode 100644 classxt_1_1xchunked__semantic.html create mode 100644 classxt_1_1xchunked__semantic.png create mode 100644 classxt_1_1xchunked__view-members.html create mode 100644 classxt_1_1xchunked__view.html create mode 100644 classxt_1_1xconst__accessible-members.html create mode 100644 classxt_1_1xconst__accessible.html create mode 100644 classxt_1_1xconst__accessible.js create mode 100644 classxt_1_1xconst__accessible.png create mode 100644 classxt_1_1xconst__iterable-members.html create mode 100644 classxt_1_1xconst__iterable.html create mode 100644 classxt_1_1xconst__iterable.js create mode 100644 classxt_1_1xconst__iterable.png create mode 100644 classxt_1_1xcontainer-members.html create mode 100644 classxt_1_1xcontainer.html create mode 100644 classxt_1_1xcontainer.js create mode 100644 classxt_1_1xcontainer.png create mode 100644 classxt_1_1xcontainer__semantic-members.html create mode 100644 classxt_1_1xcontainer__semantic.html create mode 100644 classxt_1_1xcontainer__semantic.js create mode 100644 classxt_1_1xcontainer__semantic.png create mode 100644 classxt_1_1xcontiguous__iterable-members.html create mode 100644 classxt_1_1xcontiguous__iterable.html create mode 100644 classxt_1_1xcontiguous__iterable.js create mode 100644 classxt_1_1xcontiguous__iterable.png create mode 100644 classxt_1_1xdrop__slice-members.html create mode 100644 classxt_1_1xdrop__slice.html create mode 100644 classxt_1_1xdrop__slice.png create mode 100644 classxt_1_1xdummy__iterator-members.html create mode 100644 classxt_1_1xdummy__iterator.html create mode 100644 classxt_1_1xdummy__iterator.png create mode 100644 classxt_1_1xdynamic__view-members.html create mode 100644 classxt_1_1xdynamic__view.html create mode 100644 classxt_1_1xdynamic__view.js create mode 100644 classxt_1_1xdynamic__view.png create mode 100644 classxt_1_1xexpression-members.html create mode 100644 classxt_1_1xexpression.html create mode 100644 classxt_1_1xexpression.js create mode 100644 classxt_1_1xexpression.png create mode 100644 classxt_1_1xexpression__assigner-members.html create mode 100644 classxt_1_1xexpression__assigner.html create mode 100644 classxt_1_1xexpression__assigner.png create mode 100644 classxt_1_1xexpression__assigner__base.html create mode 100644 classxt_1_1xexpression__assigner__base.png create mode 100644 classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4-members.html create mode 100644 classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html create mode 100644 classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4-members.html create mode 100644 classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html create mode 100644 classxt_1_1xexpression__holder-members.html create mode 100644 classxt_1_1xexpression__holder.html create mode 100644 classxt_1_1xfiltration-members.html create mode 100644 classxt_1_1xfiltration.html create mode 100644 classxt_1_1xfiltration.js create mode 100644 classxt_1_1xfixed__adaptor-members.html create mode 100644 classxt_1_1xfixed__adaptor.html create mode 100644 classxt_1_1xfixed__adaptor.js create mode 100644 classxt_1_1xfixed__adaptor.png create mode 100644 classxt_1_1xfixed__container-members.html create mode 100644 classxt_1_1xfixed__container.html create mode 100644 classxt_1_1xfixed__container.js create mode 100644 classxt_1_1xfixed__container.png create mode 100644 classxt_1_1xfunction-members.html create mode 100644 classxt_1_1xfunction.html create mode 100644 classxt_1_1xfunction.js create mode 100644 classxt_1_1xfunction.png create mode 100644 classxt_1_1xfunction__iterator-members.html create mode 100644 classxt_1_1xfunction__iterator.html create mode 100644 classxt_1_1xfunction__iterator.png create mode 100644 classxt_1_1xfunction__stepper-members.html create mode 100644 classxt_1_1xfunction__stepper.html create mode 100644 classxt_1_1xfunctor__adaptor-members.html create mode 100644 classxt_1_1xfunctor__adaptor.html create mode 100644 classxt_1_1xfunctor__adaptor.js create mode 100644 classxt_1_1xfunctor__adaptor.png create mode 100644 classxt_1_1xfunctor__applier__base-members.html create mode 100644 classxt_1_1xfunctor__applier__base.html create mode 100644 classxt_1_1xfunctor__applier__base.js create mode 100644 classxt_1_1xfunctor__applier__base.png create mode 100644 classxt_1_1xfunctor__iterator-members.html create mode 100644 classxt_1_1xfunctor__iterator.html create mode 100644 classxt_1_1xfunctor__iterator.png create mode 100644 classxt_1_1xfunctor__stepper-members.html create mode 100644 classxt_1_1xfunctor__stepper.html create mode 100644 classxt_1_1xfunctor__view-members.html create mode 100644 classxt_1_1xfunctor__view.html create mode 100644 classxt_1_1xfunctor__view.js create mode 100644 classxt_1_1xfunctor__view.png create mode 100644 classxt_1_1xgenerator-members.html create mode 100644 classxt_1_1xgenerator.html create mode 100644 classxt_1_1xgenerator.js create mode 100644 classxt_1_1xgenerator.png create mode 100644 classxt_1_1xindex__view-members.html create mode 100644 classxt_1_1xindex__view.html create mode 100644 classxt_1_1xindex__view.js create mode 100644 classxt_1_1xindex__view.png create mode 100644 classxt_1_1xindexed__stepper-members.html create mode 100644 classxt_1_1xindexed__stepper.html create mode 100644 classxt_1_1xiterable-members.html create mode 100644 classxt_1_1xiterable.html create mode 100644 classxt_1_1xiterable.js create mode 100644 classxt_1_1xiterable.png create mode 100644 classxt_1_1xiterator-members.html create mode 100644 classxt_1_1xiterator.html create mode 100644 classxt_1_1xiterator.png create mode 100644 classxt_1_1xiterator__adaptor-members.html create mode 100644 classxt_1_1xiterator__adaptor.html create mode 100644 classxt_1_1xiterator__adaptor.png create mode 100644 classxt_1_1xiterator__owner__adaptor-members.html create mode 100644 classxt_1_1xiterator__owner__adaptor.html create mode 100644 classxt_1_1xiterator__owner__adaptor.png create mode 100644 classxt_1_1xkeep__slice-members.html create mode 100644 classxt_1_1xkeep__slice.html create mode 100644 classxt_1_1xkeep__slice.png create mode 100644 classxt_1_1xmasked__value.html create mode 100644 classxt_1_1xmasked__view-members.html create mode 100644 classxt_1_1xmasked__view.html create mode 100644 classxt_1_1xmasked__view.js create mode 100644 classxt_1_1xmasked__view.png create mode 100644 classxt_1_1xmasked__view__stepper-members.html create mode 100644 classxt_1_1xmasked__view__stepper.html create mode 100644 classxt_1_1xmultiindex__iterator-members.html create mode 100644 classxt_1_1xmultiindex__iterator.html create mode 100644 classxt_1_1xnewaxis-members.html create mode 100644 classxt_1_1xnewaxis.html create mode 100644 classxt_1_1xnewaxis.png create mode 100644 classxt_1_1xoptional__assembly-members.html create mode 100644 classxt_1_1xoptional__assembly.html create mode 100644 classxt_1_1xoptional__assembly.js create mode 100644 classxt_1_1xoptional__assembly.png create mode 100644 classxt_1_1xoptional__assembly__adaptor-members.html create mode 100644 classxt_1_1xoptional__assembly__adaptor.html create mode 100644 classxt_1_1xoptional__assembly__adaptor.js create mode 100644 classxt_1_1xoptional__assembly__adaptor.png create mode 100644 classxt_1_1xoptional__assembly__base-members.html create mode 100644 classxt_1_1xoptional__assembly__base.html create mode 100644 classxt_1_1xoptional__assembly__base.js create mode 100644 classxt_1_1xoptional__assembly__base.png create mode 100644 classxt_1_1xoptional__assembly__linear__iterator-members.html create mode 100644 classxt_1_1xoptional__assembly__linear__iterator.html create mode 100644 classxt_1_1xoptional__assembly__linear__iterator.png create mode 100644 classxt_1_1xoptional__assembly__stepper-members.html create mode 100644 classxt_1_1xoptional__assembly__stepper.html create mode 100644 classxt_1_1xoptional__assembly__storage-members.html create mode 100644 classxt_1_1xoptional__assembly__storage.html create mode 100644 classxt_1_1xrange-members.html create mode 100644 classxt_1_1xrange.html create mode 100644 classxt_1_1xrange.png create mode 100644 classxt_1_1xreducer-members.html create mode 100644 classxt_1_1xreducer.html create mode 100644 classxt_1_1xreducer.js create mode 100644 classxt_1_1xreducer.png create mode 100644 classxt_1_1xreducer__stepper-members.html create mode 100644 classxt_1_1xreducer__stepper.html create mode 100644 classxt_1_1xrepeat-members.html create mode 100644 classxt_1_1xrepeat.html create mode 100644 classxt_1_1xrepeat.js create mode 100644 classxt_1_1xrepeat.png create mode 100644 classxt_1_1xrepeat__stepper-members.html create mode 100644 classxt_1_1xrepeat__stepper.html create mode 100644 classxt_1_1xscalar-members.html create mode 100644 classxt_1_1xscalar.html create mode 100644 classxt_1_1xscalar.js create mode 100644 classxt_1_1xscalar.png create mode 100644 classxt_1_1xscalar__stepper-members.html create mode 100644 classxt_1_1xscalar__stepper.html create mode 100644 classxt_1_1xsemantic__base-members.html create mode 100644 classxt_1_1xsemantic__base.html create mode 100644 classxt_1_1xsemantic__base.js create mode 100644 classxt_1_1xsemantic__base.png create mode 100644 classxt_1_1xsharable__expression-members.html create mode 100644 classxt_1_1xsharable__expression.html create mode 100644 classxt_1_1xsharable__expression.png create mode 100644 classxt_1_1xshared__expression-members.html create mode 100644 classxt_1_1xshared__expression.html create mode 100644 classxt_1_1xshared__expression.js create mode 100644 classxt_1_1xshared__expression.png create mode 100644 classxt_1_1xslice-members.html create mode 100644 classxt_1_1xslice.html create mode 100644 classxt_1_1xslice.png create mode 100644 classxt_1_1xstepped__range-members.html create mode 100644 classxt_1_1xstepped__range.html create mode 100644 classxt_1_1xstepped__range.png create mode 100644 classxt_1_1xstepper-members.html create mode 100644 classxt_1_1xstepper.html create mode 100644 classxt_1_1xstrided__container-members.html create mode 100644 classxt_1_1xstrided__container.html create mode 100644 classxt_1_1xstrided__container.js create mode 100644 classxt_1_1xstrided__container.png create mode 100644 classxt_1_1xstrided__view-members.html create mode 100644 classxt_1_1xstrided__view.html create mode 100644 classxt_1_1xstrided__view.js create mode 100644 classxt_1_1xstrided__view.png create mode 100644 classxt_1_1xstrided__view__base-members.html create mode 100644 classxt_1_1xstrided__view__base.html create mode 100644 classxt_1_1xstrided__view__base.js create mode 100644 classxt_1_1xstrided__view__base.png create mode 100644 classxt_1_1xtensor__adaptor-members.html create mode 100644 classxt_1_1xtensor__adaptor.html create mode 100644 classxt_1_1xtensor__adaptor.js create mode 100644 classxt_1_1xtensor__adaptor.png create mode 100644 classxt_1_1xtensor__container-members.html create mode 100644 classxt_1_1xtensor__container.html create mode 100644 classxt_1_1xtensor__container.js create mode 100644 classxt_1_1xtensor__container.png create mode 100644 classxt_1_1xtensor__view-members.html create mode 100644 classxt_1_1xtensor__view.html create mode 100644 classxt_1_1xtensor__view.js create mode 100644 classxt_1_1xtensor__view.png create mode 100644 classxt_1_1xvectorizer-members.html create mode 100644 classxt_1_1xvectorizer.html create mode 100644 classxt_1_1xview-members.html create mode 100644 classxt_1_1xview.html create mode 100644 classxt_1_1xview.js create mode 100644 classxt_1_1xview.png create mode 100644 classxt_1_1xview__semantic-members.html create mode 100644 classxt_1_1xview__semantic.html create mode 100644 classxt_1_1xview__semantic.js create mode 100644 classxt_1_1xview__semantic.png create mode 100644 classxt_1_1xview__stepper-members.html create mode 100644 classxt_1_1xview__stepper.html create mode 100644 classxt__simd_1_1aligned__allocator.html create mode 100644 clipboard.js create mode 100644 closed.png create mode 100644 concepts.html create mode 100644 concepts.js create mode 100644 conceptxt_1_1contiguous__view__concept.html create mode 100644 conceptxt_1_1fixed__shape__container__concept.html create mode 100644 conceptxt_1_1has__data__interface__concept.html create mode 100644 conceptxt_1_1has__iterator__interface__concept.html create mode 100644 conceptxt_1_1has__simd__interface__concept.html create mode 100644 conceptxt_1_1iterator__concept.html create mode 100644 conceptxt_1_1strided__view__concept.html create mode 100644 conceptxt_1_1with__memory__address__concept.html create mode 100644 conceptxt_1_1without__memory__address__concept.html create mode 100644 conceptxt_1_1xbroadcast__concept.html create mode 100644 conceptxt_1_1xexpression__concept.html create mode 100644 conceptxt_1_1xgenerator__concept.html create mode 100644 conceptxt_1_1xscalar__concept.html create mode 100644 conceptxtl_1_1complex__concept.html create mode 100644 conceptxtl_1_1integral__concept.html create mode 100644 conceptxtl_1_1non__integral__concept.html create mode 100644 conceptxtl_1_1pointer__concept.html create mode 100644 cookie.js create mode 100644 deprecated.html create mode 100644 dir_0d75396b9e02a3c29319113837a95cad.html create mode 100644 dir_0d75396b9e02a3c29319113837a95cad.js create mode 100644 dir_5dbc63e3e208067190e586da41725baf.html create mode 100644 dir_5dbc63e3e208067190e586da41725baf.js create mode 100644 dir_72c9924f54f34c9a9a500349a94b928a.html create mode 100644 dir_72c9924f54f34c9a9a500349a94b928a.js create mode 100644 dir_7614d47be9b26b68b6e19faab3d8cf3d.html create mode 100644 dir_7614d47be9b26b68b6e19faab3d8cf3d.js create mode 100644 dir_8a589290beb6e41d95922675c5a252d5.html create mode 100644 dir_8a589290beb6e41d95922675c5a252d5.js create mode 100644 dir_a756a6382b5a8aa8dbc0087dac27d23d.html create mode 100644 dir_a756a6382b5a8aa8dbc0087dac27d23d.js create mode 100644 dir_c04393294c6204f6f7005e440fd4c48c.html create mode 100644 dir_c04393294c6204f6f7005e440fd4c48c.js create mode 100644 dir_c7391fa963006b3dcc74b1e23f2b5aa5.html create mode 100644 dir_c7391fa963006b3dcc74b1e23f2b5aa5.js create mode 100644 dir_cd476e4823af9724af1911969b947d0c.html create mode 100644 dir_cd476e4823af9724af1911969b947d0c.js create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.js create mode 100644 dir_ea185b87f60949e3b1bf14314f33a519.html create mode 100644 dir_ea185b87f60949e3b1bf14314f33a519.js create mode 100644 dir_eadb0ec9a1f66a1e2a37a75175ba90a3.html create mode 100644 dir_eadb0ec9a1f66a1e2a37a75175ba90a3.js create mode 100644 doc.svg create mode 100644 docd.svg create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 doxygen_crawl.html create mode 100644 dynsections.js create mode 100644 examples.html create mode 100644 examples.js create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 folderclosed.svg create mode 100644 folderclosedd.svg create mode 100644 folderopen.svg create mode 100644 folderopend.svg create mode 100644 functions.html create mode 100644 functions_b.html create mode 100644 functions_c.html create mode 100644 functions_d.html create mode 100644 functions_dup.js create mode 100644 functions_e.html create mode 100644 functions_f.html create mode 100644 functions_func.html create mode 100644 functions_func.js create mode 100644 functions_func_b.html create mode 100644 functions_func_c.html create mode 100644 functions_func_d.html create mode 100644 functions_func_e.html create mode 100644 functions_func_f.html create mode 100644 functions_func_h.html create mode 100644 functions_func_i.html create mode 100644 functions_func_l.html create mode 100644 functions_func_m.html create mode 100644 functions_func_o.html create mode 100644 functions_func_p.html create mode 100644 functions_func_r.html create mode 100644 functions_func_s.html create mode 100644 functions_func_u.html create mode 100644 functions_func_v.html create mode 100644 functions_func_x.html create mode 100644 functions_h.html create mode 100644 functions_i.html create mode 100644 functions_l.html create mode 100644 functions_m.html create mode 100644 functions_n.html create mode 100644 functions_o.html create mode 100644 functions_p.html create mode 100644 functions_r.html create mode 100644 functions_s.html create mode 100644 functions_type.html create mode 100644 functions_u.html create mode 100644 functions_v.html create mode 100644 functions_vars.html create mode 100644 functions_x.html create mode 100644 group__acc__functions.html create mode 100644 group__acc__functions.js create mode 100644 group__arithmetic__operators.html create mode 100644 group__arithmetic__operators.js create mode 100644 group__basic__functions.html create mode 100644 group__basic__functions.js create mode 100644 group__bitwise__operators.html create mode 100644 group__bitwise__operators.js create mode 100644 group__casting__operators.html create mode 100644 group__casting__operators.js create mode 100644 group__classif__functions.html create mode 100644 group__classif__functions.js create mode 100644 group__comparison__operators.html create mode 100644 group__comparison__operators.js create mode 100644 group__digitize.html create mode 100644 group__digitize.js create mode 100644 group__err__functions.html create mode 100644 group__err__functions.js create mode 100644 group__exp__functions.html create mode 100644 group__exp__functions.js create mode 100644 group__histogram.html create mode 100644 group__histogram.js create mode 100644 group__hyper__functions.html create mode 100644 group__hyper__functions.js create mode 100644 group__logical__operators.html create mode 100644 group__logical__operators.js create mode 100644 group__nan__functions.html create mode 100644 group__nan__functions.js create mode 100644 group__nearint__functions.html create mode 100644 group__nearint__functions.js create mode 100644 group__pow__functions.html create mode 100644 group__pow__functions.js create mode 100644 group__red__functions.html create mode 100644 group__red__functions.js create mode 100644 group__searchsorted.html create mode 100644 group__searchsorted.js create mode 100644 group__trigo__functions.html create mode 100644 group__trigo__functions.js create mode 100644 group__xt__xadapt.html create mode 100644 group__xt__xadapt.js create mode 100644 group__xt__xchunked__array.html create mode 100644 group__xt__xchunked__array.js create mode 100644 group__xt__xcomplex.html create mode 100644 group__xt__xcomplex.js create mode 100644 group__xt__xeval.html create mode 100644 group__xt__xeval.js create mode 100644 group__xt__xfunctor__view.html create mode 100644 group__xt__xfunctor__view.js create mode 100644 group__xt__xmanipulation.html create mode 100644 group__xt__xmanipulation.js create mode 100644 group__xt__xshape.html create mode 100644 group__xt__xshape.js create mode 100644 group__xt__xsort.html create mode 100644 group__xt__xsort.js create mode 100644 group__xt__xstrides.html create mode 100644 group__xt__xstrides.js create mode 100644 hierarchy.html create mode 100644 hierarchy.js create mode 100644 index.html create mode 100644 index__mapper_8hpp_source.html create mode 100644 jquery.js create mode 100644 minus.svg create mode 100644 minusd.svg create mode 100644 namespacemembers.html create mode 100644 namespacemembers_b.html create mode 100644 namespacemembers_c.html create mode 100644 namespacemembers_d.html create mode 100644 namespacemembers_dup.js create mode 100644 namespacemembers_e.html create mode 100644 namespacemembers_enum.html create mode 100644 namespacemembers_f.html create mode 100644 namespacemembers_func.html create mode 100644 namespacemembers_func.js create mode 100644 namespacemembers_func_b.html create mode 100644 namespacemembers_func_c.html create mode 100644 namespacemembers_func_d.html create mode 100644 namespacemembers_func_e.html create mode 100644 namespacemembers_func_f.html create mode 100644 namespacemembers_func_g.html create mode 100644 namespacemembers_func_h.html create mode 100644 namespacemembers_func_i.html create mode 100644 namespacemembers_func_k.html create mode 100644 namespacemembers_func_l.html create mode 100644 namespacemembers_func_m.html create mode 100644 namespacemembers_func_n.html create mode 100644 namespacemembers_func_o.html create mode 100644 namespacemembers_func_p.html create mode 100644 namespacemembers_func_q.html create mode 100644 namespacemembers_func_r.html create mode 100644 namespacemembers_func_s.html create mode 100644 namespacemembers_func_t.html create mode 100644 namespacemembers_func_u.html create mode 100644 namespacemembers_func_v.html create mode 100644 namespacemembers_func_w.html create mode 100644 namespacemembers_func_x.html create mode 100644 namespacemembers_func_z.html create mode 100644 namespacemembers_g.html create mode 100644 namespacemembers_h.html create mode 100644 namespacemembers_i.html create mode 100644 namespacemembers_k.html create mode 100644 namespacemembers_l.html create mode 100644 namespacemembers_m.html create mode 100644 namespacemembers_n.html create mode 100644 namespacemembers_o.html create mode 100644 namespacemembers_p.html create mode 100644 namespacemembers_q.html create mode 100644 namespacemembers_r.html create mode 100644 namespacemembers_s.html create mode 100644 namespacemembers_t.html create mode 100644 namespacemembers_type.html create mode 100644 namespacemembers_u.html create mode 100644 namespacemembers_v.html create mode 100644 namespacemembers_w.html create mode 100644 namespacemembers_x.html create mode 100644 namespacemembers_z.html create mode 100644 namespaces.html create mode 100644 namespaces_dup.js create mode 100644 namespacext.html create mode 100644 namespacext.js create mode 100644 nav_f.png create mode 100644 nav_fd.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 nav_hd.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 navtreeindex1.js create mode 100644 navtreeindex2.js create mode 100644 navtreeindex3.js create mode 100644 navtreeindex4.js create mode 100644 navtreeindex5.js create mode 100644 navtreeindex6.js create mode 100644 navtreeindex7.js create mode 100644 navtreeindex8.js create mode 100644 navtreeindex9.js create mode 100644 open.png create mode 100644 pages.html create mode 100644 plus.svg create mode 100644 plusd.svg create mode 100644 resize.js create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_10.js create mode 100644 search/all_11.js create mode 100644 search/all_12.js create mode 100644 search/all_13.js create mode 100644 search/all_14.js create mode 100644 search/all_15.js create mode 100644 search/all_16.js create mode 100644 search/all_17.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/classes_1.js create mode 100644 search/classes_10.js create mode 100644 search/classes_11.js create mode 100644 search/classes_12.js create mode 100644 search/classes_13.js create mode 100644 search/classes_14.js create mode 100644 search/classes_2.js create mode 100644 search/classes_3.js create mode 100644 search/classes_4.js create mode 100644 search/classes_5.js create mode 100644 search/classes_6.js create mode 100644 search/classes_7.js create mode 100644 search/classes_8.js create mode 100644 search/classes_9.js create mode 100644 search/classes_a.js create mode 100644 search/classes_b.js create mode 100644 search/classes_c.js create mode 100644 search/classes_d.js create mode 100644 search/classes_e.js create mode 100644 search/classes_f.js create mode 100644 search/close.svg create mode 100644 search/concepts_0.js create mode 100644 search/concepts_1.js create mode 100644 search/concepts_2.js create mode 100644 search/concepts_3.js create mode 100644 search/concepts_4.js create mode 100644 search/concepts_5.js create mode 100644 search/concepts_6.js create mode 100644 search/concepts_7.js create mode 100644 search/concepts_8.js create mode 100644 search/enums_0.js create mode 100644 search/enums_1.js create mode 100644 search/enums_2.js create mode 100644 search/enums_3.js create mode 100644 search/enums_4.js create mode 100644 search/enums_5.js create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.js create mode 100644 search/enumvalues_4.js create mode 100644 search/enumvalues_5.js create mode 100644 search/enumvalues_6.js create mode 100644 search/enumvalues_7.js create mode 100644 search/enumvalues_8.js create mode 100644 search/enumvalues_9.js create mode 100644 search/enumvalues_a.js create mode 100644 search/enumvalues_b.js create mode 100644 search/enumvalues_c.js create mode 100644 search/enumvalues_d.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_10.js create mode 100644 search/functions_11.js create mode 100644 search/functions_12.js create mode 100644 search/functions_13.js create mode 100644 search/functions_14.js create mode 100644 search/functions_15.js create mode 100644 search/functions_16.js create mode 100644 search/functions_17.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/functions_5.js create mode 100644 search/functions_6.js create mode 100644 search/functions_7.js create mode 100644 search/functions_8.js create mode 100644 search/functions_9.js create mode 100644 search/functions_a.js create mode 100644 search/functions_b.js create mode 100644 search/functions_c.js create mode 100644 search/functions_d.js create mode 100644 search/functions_e.js create mode 100644 search/functions_f.js create mode 100644 search/groups_0.js create mode 100644 search/groups_1.js create mode 100644 search/groups_10.js create mode 100644 search/groups_11.js create mode 100644 search/groups_2.js create mode 100644 search/groups_3.js create mode 100644 search/groups_4.js create mode 100644 search/groups_5.js create mode 100644 search/groups_6.js create mode 100644 search/groups_7.js create mode 100644 search/groups_8.js create mode 100644 search/groups_9.js create mode 100644 search/groups_a.js create mode 100644 search/groups_b.js create mode 100644 search/groups_c.js create mode 100644 search/groups_d.js create mode 100644 search/groups_e.js create mode 100644 search/groups_f.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/namespaces_0.js create mode 100644 search/pages_0.js create mode 100644 search/pages_1.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.js create mode 100644 search/typedefs_3.js create mode 100644 search/typedefs_4.js create mode 100644 search/typedefs_5.js create mode 100644 search/variables_0.js create mode 100644 splitbar.png create mode 100644 splitbard.png create mode 100644 structxt_1_1acquire__ownership.html create mode 100644 structxt_1_1aligned__mode.html create mode 100644 structxt_1_1big__promote__value__type-members.html create mode 100644 structxt_1_1big__promote__value__type.html create mode 100644 structxt_1_1buffer__inner__types.html create mode 100644 structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html create mode 100644 structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html create mode 100644 structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html create mode 100644 structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html create mode 100644 structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html create mode 100644 structxt_1_1can__assign.html create mode 100644 structxt_1_1can__assign.png create mode 100644 structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html create mode 100644 structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.png create mode 100644 structxt_1_1check__policy_1_1full.html create mode 100644 structxt_1_1check__policy_1_1none.html create mode 100644 structxt_1_1check__strides__overlap.html create mode 100644 structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4-members.html create mode 100644 structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html create mode 100644 structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4-members.html create mode 100644 structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html create mode 100644 structxt_1_1common__difference__type-members.html create mode 100644 structxt_1_1common__difference__type.html create mode 100644 structxt_1_1common__difference__type_3_4-members.html create mode 100644 structxt_1_1common__difference__type_3_4.html create mode 100644 structxt_1_1common__size__type-members.html create mode 100644 structxt_1_1common__size__type.html create mode 100644 structxt_1_1common__size__type_3_4-members.html create mode 100644 structxt_1_1common__size__type_3_4.html create mode 100644 structxt_1_1common__tensor__type.html create mode 100644 structxt_1_1common__tensor__type.png create mode 100644 structxt_1_1common__value__type-members.html create mode 100644 structxt_1_1common__value__type.html create mode 100644 structxt_1_1conditional__cast__functor.html create mode 100644 structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html create mode 100644 structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.png create mode 100644 structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4-members.html create mode 100644 structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html create mode 100644 structxt_1_1const__array-members.html create mode 100644 structxt_1_1const__array.html create mode 100644 structxt_1_1const__value-members.html create mode 100644 structxt_1_1const__value.html create mode 100644 structxt_1_1const__xclosure-members.html create mode 100644 structxt_1_1const__xclosure.html create mode 100644 structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html create mode 100644 structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html create mode 100644 structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html create mode 100644 structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html create mode 100644 structxt_1_1container__simd__return__type.html create mode 100644 structxt_1_1container__simd__return__type.png create mode 100644 structxt_1_1convolve__mode_1_1full.html create mode 100644 structxt_1_1convolve__mode_1_1valid.html create mode 100644 structxt_1_1decay__all.html create mode 100644 structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1disable__indexed__stepper.html create mode 100644 structxt_1_1disable__indexed__stepper.png create mode 100644 structxt_1_1driven__align__mode-members.html create mode 100644 structxt_1_1driven__align__mode.html create mode 100644 structxt_1_1enable__indexed__stepper.html create mode 100644 structxt_1_1enable__indexed__stepper.png create mode 100644 structxt_1_1evaluation__strategy_1_1immediate__type.html create mode 100644 structxt_1_1evaluation__strategy_1_1immediate__type.png create mode 100644 structxt_1_1evaluation__strategy_1_1lazy__type.html create mode 100644 structxt_1_1evaluation__strategy_1_1lazy__type.png create mode 100644 structxt_1_1extension_1_1expression__tag__and.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.png create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.png create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.png create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_4-members.html create mode 100644 structxt_1_1extension_1_1expression__tag__and_3_4.html create mode 100644 structxt_1_1extension_1_1get__expression__tag-members.html create mode 100644 structxt_1_1extension_1_1get__expression__tag.html create mode 100644 structxt_1_1extension_1_1get__expression__tag.png create mode 100644 structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4-members.html create mode 100644 structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html create mode 100644 structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.png create mode 100644 structxt_1_1extension_1_1get__expression__tag__impl-members.html create mode 100644 structxt_1_1extension_1_1get__expression__tag__impl.html create mode 100644 structxt_1_1extension_1_1get__expression__tag__impl.png create mode 100644 structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de048c22abe806a8cb61aa0c08ab63f2de.html create mode 100644 structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de4e085c648bbd1efca51f7b5461e984a5.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__base.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__optional__traits.html create mode 100644 structxt_1_1extension_1_1xarray__adaptor__optional__traits.png create mode 100644 structxt_1_1extension_1_1xarray__container__base.html create mode 100644 structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xarray__container__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xarray__container__optional__traits.html create mode 100644 structxt_1_1extension_1_1xarray__container__optional__traits.png create mode 100644 structxt_1_1extension_1_1xarray__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xarray__optional__traits.html create mode 100644 structxt_1_1extension_1_1xarray__optional__traits.png create mode 100644 structxt_1_1extension_1_1xbroadcast__base.html create mode 100644 structxt_1_1extension_1_1xbroadcast__base.png create mode 100644 structxt_1_1extension_1_1xbroadcast__base__impl.html create mode 100644 structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html create mode 100644 structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html create mode 100644 structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html create mode 100644 structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html create mode 100644 structxt_1_1extension_1_1xdynamic__view__base.html create mode 100644 structxt_1_1extension_1_1xdynamic__view__base.png create mode 100644 structxt_1_1extension_1_1xdynamic__view__base__impl.html create mode 100644 structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html create mode 100644 structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_b6d8a7e2879c1a8ee678dc4152371fc6.html create mode 100644 structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html create mode 100644 structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01aef227a96c9a95959d74cc8b3d2137ea.html create mode 100644 structxt_1_1extension_1_1xfunction__base.html create mode 100644 structxt_1_1extension_1_1xfunction__base.png create mode 100644 structxt_1_1extension_1_1xfunction__base__impl.html create mode 100644 structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html create mode 100644 structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html create mode 100644 structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html create mode 100644 structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html create mode 100644 structxt_1_1extension_1_1xfunctor__view__base.html create mode 100644 structxt_1_1extension_1_1xfunctor__view__base.png create mode 100644 structxt_1_1extension_1_1xfunctor__view__base__impl.html create mode 100644 structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html create mode 100644 structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html create mode 100644 structxt_1_1extension_1_1xgenerator__base.html create mode 100644 structxt_1_1extension_1_1xgenerator__base.png create mode 100644 structxt_1_1extension_1_1xgenerator__base__impl.html create mode 100644 structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html create mode 100644 structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html create mode 100644 structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html create mode 100644 structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html create mode 100644 structxt_1_1extension_1_1xindex__view__base.html create mode 100644 structxt_1_1extension_1_1xindex__view__base.png create mode 100644 structxt_1_1extension_1_1xindex__view__base__impl.html create mode 100644 structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4-members.html create mode 100644 structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html create mode 100644 structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4-members.html create mode 100644 structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html create mode 100644 structxt_1_1extension_1_1xreducer__base.html create mode 100644 structxt_1_1extension_1_1xreducer__base.png create mode 100644 structxt_1_1extension_1_1xreducer__base__impl.html create mode 100644 structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html create mode 100644 structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html create mode 100644 structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html create mode 100644 structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html create mode 100644 structxt_1_1extension_1_1xrepeat__base.html create mode 100644 structxt_1_1extension_1_1xrepeat__base.png create mode 100644 structxt_1_1extension_1_1xrepeat__base__impl.html create mode 100644 structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html create mode 100644 structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html create mode 100644 structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html create mode 100644 structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html create mode 100644 structxt_1_1extension_1_1xscalar__base.html create mode 100644 structxt_1_1extension_1_1xscalar__base.png create mode 100644 structxt_1_1extension_1_1xscalar__base__impl.html create mode 100644 structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html create mode 100644 structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4-members.html create mode 100644 structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html create mode 100644 structxt_1_1extension_1_1xscalar__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xscalar__optional__traits.html create mode 100644 structxt_1_1extension_1_1xstrided__view__base.html create mode 100644 structxt_1_1extension_1_1xstrided__view__base.png create mode 100644 structxt_1_1extension_1_1xstrided__view__base__impl.html create mode 100644 structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html create mode 100644 structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_4a6b46e0ed70869936639a514f730fbb.html create mode 100644 structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html create mode 100644 structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01b284f3952f1f4d8d4ad036b645dd2641.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__base.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html create mode 100644 structxt_1_1extension_1_1xtensor__adaptor__optional__traits.png create mode 100644 structxt_1_1extension_1_1xtensor__container__base.html create mode 100644 structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xtensor__container__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xtensor__container__optional__traits.html create mode 100644 structxt_1_1extension_1_1xtensor__container__optional__traits.png create mode 100644 structxt_1_1extension_1_1xtensor__empty__base-members.html create mode 100644 structxt_1_1extension_1_1xtensor__empty__base.html create mode 100644 structxt_1_1extension_1_1xtensor__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xtensor__optional__traits.html create mode 100644 structxt_1_1extension_1_1xtensor__optional__traits.png create mode 100644 structxt_1_1extension_1_1xtensor__view__base.html create mode 100644 structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html create mode 100644 structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html create mode 100644 structxt_1_1extension_1_1xtensor__view__optional__traits-members.html create mode 100644 structxt_1_1extension_1_1xtensor__view__optional__traits.html create mode 100644 structxt_1_1extension_1_1xtensor__view__optional__traits.png create mode 100644 structxt_1_1extension_1_1xview__base.html create mode 100644 structxt_1_1extension_1_1xview__base.png create mode 100644 structxt_1_1extension_1_1xview__base__impl.html create mode 100644 structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html create mode 100644 structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html create mode 100644 structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html create mode 100644 structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html create mode 100644 structxt_1_1filter__fixed__shape.html create mode 100644 structxt_1_1filter__fixed__shape.png create mode 100644 structxt_1_1fixed__xreducer__shape__type.html create mode 100644 structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1forbid__simd.html create mode 100644 structxt_1_1forbid__simd.png create mode 100644 structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.png create mode 100644 structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.png create mode 100644 structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.png create mode 100644 structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.png create mode 100644 structxt_1_1get__init__type.html create mode 100644 structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1get__rank-members.html create mode 100644 structxt_1_1get__rank.html create mode 100644 structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4-members.html create mode 100644 structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html create mode 100644 structxt_1_1get__strides__type-members.html create mode 100644 structxt_1_1get__strides__type.html create mode 100644 structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html create mode 100644 structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1get__value__type-members.html create mode 100644 structxt_1_1get__value__type.html create mode 100644 structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4-members.html create mode 100644 structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html create mode 100644 structxt_1_1has__assign__conversion-members.html create mode 100644 structxt_1_1has__assign__conversion.html create mode 100644 structxt_1_1has__assign__to.html create mode 100644 structxt_1_1has__assign__to.png create mode 100644 structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html create mode 100644 structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.png create mode 100644 structxt_1_1has__data__interface.html create mode 100644 structxt_1_1has__data__interface.png create mode 100644 structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html create mode 100644 structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.png create mode 100644 structxt_1_1has__fixed__rank-members.html create mode 100644 structxt_1_1has__fixed__rank.html create mode 100644 structxt_1_1has__iterator__interface.html create mode 100644 structxt_1_1has__iterator__interface.png create mode 100644 structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html create mode 100644 structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.png create mode 100644 structxt_1_1has__memory__address.html create mode 100644 structxt_1_1has__memory__address.png create mode 100644 structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html create mode 100644 structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.png create mode 100644 structxt_1_1has__rank-members.html create mode 100644 structxt_1_1has__rank.html create mode 100644 structxt_1_1has__sign__conversion-members.html create mode 100644 structxt_1_1has__sign__conversion.html create mode 100644 structxt_1_1has__simd__apply.html create mode 100644 structxt_1_1has__simd__apply.png create mode 100644 structxt_1_1has__simd__interface.html create mode 100644 structxt_1_1has__simd__interface.png create mode 100644 structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html create mode 100644 structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.png create mode 100644 structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html create mode 100644 structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png create mode 100644 structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html create mode 100644 structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.png create mode 100644 structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html create mode 100644 structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png create mode 100644 structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1has__simd__type.html create mode 100644 structxt_1_1has__simd__type.png create mode 100644 structxt_1_1has__storage__type.html create mode 100644 structxt_1_1has__storage__type.png create mode 100644 structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html create mode 100644 structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.png create mode 100644 structxt_1_1has__strides.html create mode 100644 structxt_1_1has__strides.png create mode 100644 structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html create mode 100644 structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.png create mode 100644 structxt_1_1index__from__shape-members.html create mode 100644 structxt_1_1index__from__shape.html create mode 100644 structxt_1_1index__mapper.html create mode 100644 structxt_1_1initializer__dimension-members.html create mode 100644 structxt_1_1initializer__dimension.html create mode 100644 structxt_1_1inner__aligned__mode.html create mode 100644 structxt_1_1inner__reference-members.html create mode 100644 structxt_1_1inner__reference.html create mode 100644 structxt_1_1invalid__type.html create mode 100644 structxt_1_1is__chunked__t.html create mode 100644 structxt_1_1is__chunked__t.png create mode 100644 structxt_1_1is__contiguous__container.html create mode 100644 structxt_1_1is__contiguous__container.png create mode 100644 structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html create mode 100644 structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.png create mode 100644 structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html create mode 100644 structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.png create mode 100644 structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html create mode 100644 structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.png create mode 100644 structxt_1_1is__evaluation__strategy.html create mode 100644 structxt_1_1is__evaluation__strategy.png create mode 100644 structxt_1_1is__indexed__stepper-members.html create mode 100644 structxt_1_1is__indexed__stepper.html create mode 100644 structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4-members.html create mode 100644 structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html create mode 100644 structxt_1_1is__iterator.html create mode 100644 structxt_1_1is__iterator.png create mode 100644 structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html create mode 100644 structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.png create mode 100644 structxt_1_1is__narrowing__conversion-members.html create mode 100644 structxt_1_1is__narrowing__conversion.html create mode 100644 structxt_1_1is__not__xdummy__iterator.html create mode 100644 structxt_1_1is__not__xdummy__iterator.png create mode 100644 structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html create mode 100644 structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.png create mode 100644 structxt_1_1is__reducer__options.html create mode 100644 structxt_1_1is__reducer__options.png create mode 100644 structxt_1_1is__reducer__options__impl.html create mode 100644 structxt_1_1is__reducer__options__impl.png create mode 100644 structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.png create mode 100644 structxt_1_1is__specialization__of.html create mode 100644 structxt_1_1is__specialization__of.png create mode 100644 structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 structxt_1_1is__xoptional__expression.html create mode 100644 structxt_1_1is__xoptional__expression.png create mode 100644 structxt_1_1is__xtensor__expression.html create mode 100644 structxt_1_1is__xtensor__expression.png create mode 100644 structxt_1_1keep__dims__type.html create mode 100644 structxt_1_1keep__dims__type.png create mode 100644 structxt_1_1make__invalid__type-members.html create mode 100644 structxt_1_1make__invalid__type.html create mode 100644 structxt_1_1make__void-members.html create mode 100644 structxt_1_1make__void.html create mode 100644 structxt_1_1math_1_1abs__fun-members.html create mode 100644 structxt_1_1math_1_1abs__fun.html create mode 100644 structxt_1_1math_1_1acos__fun-members.html create mode 100644 structxt_1_1math_1_1acos__fun.html create mode 100644 structxt_1_1math_1_1acosh__fun-members.html create mode 100644 structxt_1_1math_1_1acosh__fun.html create mode 100644 structxt_1_1math_1_1arg__fun-members.html create mode 100644 structxt_1_1math_1_1arg__fun.html create mode 100644 structxt_1_1math_1_1asin__fun-members.html create mode 100644 structxt_1_1math_1_1asin__fun.html create mode 100644 structxt_1_1math_1_1asinh__fun-members.html create mode 100644 structxt_1_1math_1_1asinh__fun.html create mode 100644 structxt_1_1math_1_1atan2__fun-members.html create mode 100644 structxt_1_1math_1_1atan2__fun.html create mode 100644 structxt_1_1math_1_1atan__fun-members.html create mode 100644 structxt_1_1math_1_1atan__fun.html create mode 100644 structxt_1_1math_1_1atanh__fun-members.html create mode 100644 structxt_1_1math_1_1atanh__fun.html create mode 100644 structxt_1_1math_1_1cbrt__fun-members.html create mode 100644 structxt_1_1math_1_1cbrt__fun.html create mode 100644 structxt_1_1math_1_1ceil__fun-members.html create mode 100644 structxt_1_1math_1_1ceil__fun.html create mode 100644 structxt_1_1math_1_1clamp__fun-members.html create mode 100644 structxt_1_1math_1_1clamp__fun.html create mode 100644 structxt_1_1math_1_1conj__fun-members.html create mode 100644 structxt_1_1math_1_1conj__fun.html create mode 100644 structxt_1_1math_1_1conj__impl__fun-members.html create mode 100644 structxt_1_1math_1_1conj__impl__fun.html create mode 100644 structxt_1_1math_1_1cos__fun-members.html create mode 100644 structxt_1_1math_1_1cos__fun.html create mode 100644 structxt_1_1math_1_1cosh__fun-members.html create mode 100644 structxt_1_1math_1_1cosh__fun.html create mode 100644 structxt_1_1math_1_1deg2rad-members.html create mode 100644 structxt_1_1math_1_1deg2rad.html create mode 100644 structxt_1_1math_1_1erf__fun-members.html create mode 100644 structxt_1_1math_1_1erf__fun.html create mode 100644 structxt_1_1math_1_1erfc__fun-members.html create mode 100644 structxt_1_1math_1_1erfc__fun.html create mode 100644 structxt_1_1math_1_1exp2__fun-members.html create mode 100644 structxt_1_1math_1_1exp2__fun.html create mode 100644 structxt_1_1math_1_1exp__fun-members.html create mode 100644 structxt_1_1math_1_1exp__fun.html create mode 100644 structxt_1_1math_1_1expm1__fun-members.html create mode 100644 structxt_1_1math_1_1expm1__fun.html create mode 100644 structxt_1_1math_1_1fabs__fun-members.html create mode 100644 structxt_1_1math_1_1fabs__fun.html create mode 100644 structxt_1_1math_1_1fdim__fun-members.html create mode 100644 structxt_1_1math_1_1fdim__fun.html create mode 100644 structxt_1_1math_1_1floor__fun-members.html create mode 100644 structxt_1_1math_1_1floor__fun.html create mode 100644 structxt_1_1math_1_1fma__fun-members.html create mode 100644 structxt_1_1math_1_1fma__fun.html create mode 100644 structxt_1_1math_1_1fmax__fun-members.html create mode 100644 structxt_1_1math_1_1fmax__fun.html create mode 100644 structxt_1_1math_1_1fmin__fun-members.html create mode 100644 structxt_1_1math_1_1fmin__fun.html create mode 100644 structxt_1_1math_1_1fmod__fun-members.html create mode 100644 structxt_1_1math_1_1fmod__fun.html create mode 100644 structxt_1_1math_1_1hypot__fun-members.html create mode 100644 structxt_1_1math_1_1hypot__fun.html create mode 100644 structxt_1_1math_1_1isfinite__fun-members.html create mode 100644 structxt_1_1math_1_1isfinite__fun.html create mode 100644 structxt_1_1math_1_1isinf__fun-members.html create mode 100644 structxt_1_1math_1_1isinf__fun.html create mode 100644 structxt_1_1math_1_1isnan__fun-members.html create mode 100644 structxt_1_1math_1_1isnan__fun.html create mode 100644 structxt_1_1math_1_1lgamma__fun-members.html create mode 100644 structxt_1_1math_1_1lgamma__fun.html create mode 100644 structxt_1_1math_1_1log10__fun-members.html create mode 100644 structxt_1_1math_1_1log10__fun.html create mode 100644 structxt_1_1math_1_1log1p__fun-members.html create mode 100644 structxt_1_1math_1_1log1p__fun.html create mode 100644 structxt_1_1math_1_1log2__fun-members.html create mode 100644 structxt_1_1math_1_1log2__fun.html create mode 100644 structxt_1_1math_1_1log__fun-members.html create mode 100644 structxt_1_1math_1_1log__fun.html create mode 100644 structxt_1_1math_1_1maximum-members.html create mode 100644 structxt_1_1math_1_1maximum.html create mode 100644 structxt_1_1math_1_1minimum-members.html create mode 100644 structxt_1_1math_1_1minimum.html create mode 100644 structxt_1_1math_1_1nearbyint__fun-members.html create mode 100644 structxt_1_1math_1_1nearbyint__fun.html create mode 100644 structxt_1_1math_1_1norm__fun-members.html create mode 100644 structxt_1_1math_1_1norm__fun.html create mode 100644 structxt_1_1math_1_1pow__fun-members.html create mode 100644 structxt_1_1math_1_1pow__fun.html create mode 100644 structxt_1_1math_1_1rad2deg-members.html create mode 100644 structxt_1_1math_1_1rad2deg.html create mode 100644 structxt_1_1math_1_1remainder__fun-members.html create mode 100644 structxt_1_1math_1_1remainder__fun.html create mode 100644 structxt_1_1math_1_1rint__fun-members.html create mode 100644 structxt_1_1math_1_1rint__fun.html create mode 100644 structxt_1_1math_1_1round__fun-members.html create mode 100644 structxt_1_1math_1_1round__fun.html create mode 100644 structxt_1_1math_1_1sign__fun-members.html create mode 100644 structxt_1_1math_1_1sign__fun.html create mode 100644 structxt_1_1math_1_1sign__impl-members.html create mode 100644 structxt_1_1math_1_1sign__impl.html create mode 100644 structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4-members.html create mode 100644 structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html create mode 100644 structxt_1_1math_1_1sin__fun-members.html create mode 100644 structxt_1_1math_1_1sin__fun.html create mode 100644 structxt_1_1math_1_1sinh__fun-members.html create mode 100644 structxt_1_1math_1_1sinh__fun.html create mode 100644 structxt_1_1math_1_1sqrt__fun-members.html create mode 100644 structxt_1_1math_1_1sqrt__fun.html create mode 100644 structxt_1_1math_1_1tan__fun-members.html create mode 100644 structxt_1_1math_1_1tan__fun.html create mode 100644 structxt_1_1math_1_1tanh__fun-members.html create mode 100644 structxt_1_1math_1_1tanh__fun.html create mode 100644 structxt_1_1math_1_1tgamma__fun-members.html create mode 100644 structxt_1_1math_1_1tgamma__fun.html create mode 100644 structxt_1_1math_1_1trunc__fun-members.html create mode 100644 structxt_1_1math_1_1trunc__fun.html create mode 100644 structxt_1_1memory__range-members.html create mode 100644 structxt_1_1memory__range.html create mode 100644 structxt_1_1meta__identity-members.html create mode 100644 structxt_1_1meta__identity.html create mode 100644 structxt_1_1missing__type.html create mode 100644 structxt_1_1nested__initializer__list-members.html create mode 100644 structxt_1_1nested__initializer__list.html create mode 100644 structxt_1_1nested__initializer__list_3_01_t_00_010_01_4-members.html create mode 100644 structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html create mode 100644 structxt_1_1no__ownership.html create mode 100644 structxt_1_1norm__type-members.html create mode 100644 structxt_1_1norm__type.html create mode 100644 structxt_1_1norm__type.png create mode 100644 structxt_1_1numeric__constants-members.html create mode 100644 structxt_1_1numeric__constants.html create mode 100644 structxt_1_1overlapping__memory__checker-members.html create mode 100644 structxt_1_1overlapping__memory__checker.html create mode 100644 structxt_1_1overlapping__memory__checker.png create mode 100644 structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html create mode 100644 structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.png create mode 100644 structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__adde5366ae3ec1ca90ac06c86ce5f91b997.html create mode 100644 structxt_1_1overlapping__memory__checker__base-members.html create mode 100644 structxt_1_1overlapping__memory__checker__base.html create mode 100644 structxt_1_1overlapping__memory__checker__base.png create mode 100644 structxt_1_1overlapping__memory__checker__traits-members.html create mode 100644 structxt_1_1overlapping__memory__checker__traits.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor0ee187b84159790ec139479eaf101d7d.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory61f92cb9f43b9bde0b3e9ee531d2d26a.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memoryb7020c6a878800e42153f327d9b044ed.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4-members.html create mode 100644 structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html create mode 100644 structxt_1_1placeholders_1_1rangemaker-members.html create mode 100644 structxt_1_1placeholders_1_1rangemaker.html create mode 100644 structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4-members.html create mode 100644 structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html create mode 100644 structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4-members.html create mode 100644 structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html create mode 100644 structxt_1_1placeholders_1_1xtuph.html create mode 100644 structxt_1_1print__options_1_1print__options__impl-members.html create mode 100644 structxt_1_1print__options_1_1print__options__impl.html create mode 100644 structxt_1_1promote__shape-members.html create mode 100644 structxt_1_1promote__shape.html create mode 100644 structxt_1_1promote__strides-members.html create mode 100644 structxt_1_1promote__strides.html create mode 100644 structxt_1_1rebind__container.html create mode 100644 structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4-members.html create mode 100644 structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4-members.html create mode 100644 structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html create mode 100644 structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4-members.html create mode 100644 structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html create mode 100644 structxt_1_1reducer__options-members.html create mode 100644 structxt_1_1reducer__options.html create mode 100644 structxt_1_1reducer__options.js create mode 100644 structxt_1_1reducer__options_1_1initial__tester.html create mode 100644 structxt_1_1reducer__options_1_1initial__tester.png create mode 100644 structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html create mode 100644 structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.png create mode 100644 structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html create mode 100644 structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.png create mode 100644 structxt_1_1remove__class.html create mode 100644 structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4-members.html create mode 100644 structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html create mode 100644 structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4-members.html create mode 100644 structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html create mode 100644 structxt_1_1select__dim__mapping__type-members.html create mode 100644 structxt_1_1select__dim__mapping__type.html create mode 100644 structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1select__iterable__base-members.html create mode 100644 structxt_1_1select__iterable__base.html create mode 100644 structxt_1_1select__layout-members.html create mode 100644 structxt_1_1select__layout.html create mode 100644 structxt_1_1squared__norm__type-members.html create mode 100644 structxt_1_1squared__norm__type.html create mode 100644 structxt_1_1squared__norm__type.png create mode 100644 structxt_1_1static__dimension-members.html create mode 100644 structxt_1_1static__dimension.html create mode 100644 structxt_1_1static__string-members.html create mode 100644 structxt_1_1static__string.html create mode 100644 structxt_1_1stepper__tools-members.html create mode 100644 structxt_1_1stepper__tools.html create mode 100644 structxt_1_1strided__assign__detail_1_1check__strides__functor-members.html create mode 100644 structxt_1_1strided__assign__detail_1_1check__strides__functor.html create mode 100644 structxt_1_1strided__assign__detail_1_1idx__tools.html create mode 100644 structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4-members.html create mode 100644 structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html create mode 100644 structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4-members.html create mode 100644 structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html create mode 100644 structxt_1_1strided__assign__detail_1_1loop__sizes__t-members.html create mode 100644 structxt_1_1strided__assign__detail_1_1loop__sizes__t.html create mode 100644 structxt_1_1temporary__container-members.html create mode 100644 structxt_1_1temporary__container.html create mode 100644 structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html create mode 100644 structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html create mode 100644 structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html create mode 100644 structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html create mode 100644 structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html create mode 100644 structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html create mode 100644 structxt_1_1temporary__type-members.html create mode 100644 structxt_1_1temporary__type.html create mode 100644 structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4-members.html create mode 100644 structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html create mode 100644 structxt_1_1temporary__type__from__tag.html create mode 100644 structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4-members.html create mode 100644 structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html create mode 100644 structxt_1_1tracking__allocator-members.html create mode 100644 structxt_1_1tracking__allocator.html create mode 100644 structxt_1_1tracking__allocator.js create mode 100644 structxt_1_1tracking__allocator.png create mode 100644 structxt_1_1tracking__allocator_1_1rebind-members.html create mode 100644 structxt_1_1tracking__allocator_1_1rebind.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__scalar__impl.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__vector__impl-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__of__vector__impl.html create mode 100644 structxt_1_1traits__detail_1_1norm__type__base-members.html create mode 100644 structxt_1_1traits__detail_1_1norm__type__base.html create mode 100644 structxt_1_1tuple__idx__of-members.html create mode 100644 structxt_1_1tuple__idx__of.html create mode 100644 structxt_1_1tuple__idx__of__impl.html create mode 100644 structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4-members.html create mode 100644 structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html create mode 100644 structxt_1_1unaligned__mode.html create mode 100644 structxt_1_1view__temporary__type-members.html create mode 100644 structxt_1_1view__temporary__type.html create mode 100644 structxt_1_1xaccumulator__functor-members.html create mode 100644 structxt_1_1xaccumulator__functor.html create mode 100644 structxt_1_1xaccumulator__functor.png create mode 100644 structxt_1_1xall__tag-members.html create mode 100644 structxt_1_1xall__tag.html create mode 100644 structxt_1_1xclosure-members.html create mode 100644 structxt_1_1xclosure.html create mode 100644 structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html create mode 100644 structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html create mode 100644 structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html create mode 100644 structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1xcontainer__iterable__types-members.html create mode 100644 structxt_1_1xcontainer__iterable__types.html create mode 100644 structxt_1_1xcsv__config-members.html create mode 100644 structxt_1_1xcsv__config.html create mode 100644 structxt_1_1xellipsis__tag-members.html create mode 100644 structxt_1_1xellipsis__tag.html create mode 100644 structxt_1_1xexpression__tag-members.html create mode 100644 structxt_1_1xexpression__tag.html create mode 100644 structxt_1_1xfunction__cache.html create mode 100644 structxt_1_1xfunction__cache.png create mode 100644 structxt_1_1xfunctor__view__temporary__type-members.html create mode 100644 structxt_1_1xfunctor__view__temporary__type.html create mode 100644 structxt_1_1xinitial-members.html create mode 100644 structxt_1_1xinitial.html create mode 100644 structxt_1_1xinitial.png create mode 100644 structxt_1_1xiterable__inner__types.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png create mode 100644 structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4-members.html create mode 100644 structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html create mode 100644 structxt_1_1xnewaxis__tag-members.html create mode 100644 structxt_1_1xnewaxis__tag.html create mode 100644 structxt_1_1xoptional__assembly__linear__iterator__traits-members.html create mode 100644 structxt_1_1xoptional__assembly__linear__iterator__traits.html create mode 100644 structxt_1_1xoptional__comparable.html create mode 100644 structxt_1_1xoptional__comparable.png create mode 100644 structxt_1_1xoptional__expression__tag.html create mode 100644 structxt_1_1xproxy__inner__types-members.html create mode 100644 structxt_1_1xproxy__inner__types.html create mode 100644 structxt_1_1xrange__adaptor-members.html create mode 100644 structxt_1_1xrange__adaptor.html create mode 100644 structxt_1_1xreducer__functors-members.html create mode 100644 structxt_1_1xreducer__functors.html create mode 100644 structxt_1_1xreducer__functors.png create mode 100644 structxt_1_1xreducer__shape__type-members.html create mode 100644 structxt_1_1xreducer__shape__type.html create mode 100644 structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4-members.html create mode 100644 structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html create mode 100644 structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html create mode 100644 structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_027fcc88fe66eb75490a0dba142ef545f.html create mode 100644 structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_02aafc87a49290e02ea3938a932d6c334.html create mode 100644 structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html create mode 100644 structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_9c73ff706755e2a1205ad25fb933e4d8.html create mode 100644 structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html create mode 100644 structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_dd68458bef343598f52e1cee8de7e66e.html create mode 100644 structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html create mode 100644 structxt_1_1xtensor__expression__tag.html create mode 100644 structxt_1_1xview__shape__type-members.html create mode 100644 structxt_1_1xview__shape__type.html create mode 100644 structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4-members.html create mode 100644 structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html create mode 100644 structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4-members.html create mode 100644 structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html create mode 100644 structxt__simd_1_1aligned__mode.html create mode 100644 structxt__simd_1_1allocator__alignment-members.html create mode 100644 structxt__simd_1_1allocator__alignment.html create mode 100644 structxt__simd_1_1container__alignment-members.html create mode 100644 structxt__simd_1_1container__alignment.html create mode 100644 structxt__simd_1_1is__batch__bool.html create mode 100644 structxt__simd_1_1is__batch__bool.png create mode 100644 structxt__simd_1_1is__batch__complex.html create mode 100644 structxt__simd_1_1is__batch__complex.png create mode 100644 structxt__simd_1_1revert__simd__traits-members.html create mode 100644 structxt__simd_1_1revert__simd__traits.html create mode 100644 structxt__simd_1_1simd__condition.html create mode 100644 structxt__simd_1_1simd__condition.png create mode 100644 structxt__simd_1_1simd__traits-members.html create mode 100644 structxt__simd_1_1simd__traits.html create mode 100644 structxt__simd_1_1unaligned__mode.html create mode 100644 structxtl_1_1conjunction-members.html create mode 100644 structxtl_1_1conjunction.html create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_ad.png create mode 100644 tab_b.png create mode 100644 tab_bd.png create mode 100644 tab_h.png create mode 100644 tab_hd.png create mode 100644 tab_s.png create mode 100644 tab_sd.png create mode 100644 tabs.css create mode 100644 topics.html create mode 100644 topics.js create mode 100644 xaccessible_8hpp_source.html create mode 100644 xaccumulator_8hpp_source.html create mode 100644 xadapt_8hpp_source.html create mode 100644 xarray_8hpp_source.html create mode 100644 xassign_8hpp_source.html create mode 100644 xaxis__iterator_8hpp_source.html create mode 100644 xaxis__slice__iterator_8hpp_source.html create mode 100644 xblockwise__reducer_8hpp_source.html create mode 100644 xblockwise__reducer__functors_8hpp_source.html create mode 100644 xbroadcast_8hpp_source.html create mode 100644 xbuffer__adaptor_8hpp_source.html create mode 100644 xbuilder_8hpp_source.html create mode 100644 xchunked__array_8hpp_source.html create mode 100644 xchunked__assign_8hpp_source.html create mode 100644 xchunked__view_8hpp_source.html create mode 100644 xcomplex_8hpp_source.html create mode 100644 xcontainer_8hpp_source.html create mode 100644 xcsv_8hpp_source.html create mode 100644 xdynamic__view_8hpp_source.html create mode 100644 xeval_8hpp_source.html create mode 100644 xexception_8hpp_source.html create mode 100644 xexpression_8hpp_source.html create mode 100644 xexpression__holder_8hpp_source.html create mode 100644 xexpression__traits_8hpp_source.html create mode 100644 xfft_8hpp_source.html create mode 100644 xfixed_8hpp_source.html create mode 100644 xfunction_8hpp_source.html create mode 100644 xfunctor__view_8hpp_source.html create mode 100644 xgenerator_8hpp_source.html create mode 100644 xhistogram_8hpp_source.html create mode 100644 xindex__view_8hpp_source.html create mode 100644 xinfo_8hpp_source.html create mode 100644 xio_8hpp_source.html create mode 100644 xiterable_8hpp_source.html create mode 100644 xiterator_8hpp_source.html create mode 100644 xjson_8hpp_source.html create mode 100644 xlayout_8hpp_source.html create mode 100644 xmanipulation_8hpp_source.html create mode 100644 xmasked__view_8hpp_source.html create mode 100644 xmath_8hpp_source.html create mode 100644 xmime_8hpp_source.html create mode 100644 xmultiindex__iterator_8hpp_source.html create mode 100644 xnoalias_8hpp_source.html create mode 100644 xnorm_8hpp_source.html create mode 100644 xnpy_8hpp_source.html create mode 100644 xoffset__view_8hpp_source.html create mode 100644 xoperation_8hpp_source.html create mode 100644 xoptional_8hpp_source.html create mode 100644 xoptional__assembly_8hpp_source.html create mode 100644 xoptional__assembly__base_8hpp_source.html create mode 100644 xoptional__assembly__storage_8hpp_source.html create mode 100644 xpad_8hpp_source.html create mode 100644 xrandom_8hpp_source.html create mode 100644 xreducer_8hpp_source.html create mode 100644 xrepeat_8hpp_source.html create mode 100644 xscalar_8hpp_source.html create mode 100644 xsemantic_8hpp_source.html create mode 100644 xset__operation_8hpp_source.html create mode 100644 xshape_8hpp_source.html create mode 100644 xslice_8hpp_source.html create mode 100644 xsort_8hpp_source.html create mode 100644 xstorage_8hpp_source.html create mode 100644 xstrided__view_8hpp_source.html create mode 100644 xstrided__view__base_8hpp_source.html create mode 100644 xstrides_8hpp_source.html create mode 100644 xtensor_8hpp_source.html create mode 100644 xtensor__config_8hpp_source.html create mode 100644 xtensor__forward_8hpp_source.html create mode 100644 xtensor__simd_8hpp_source.html create mode 100644 xtl__concepts_8hpp_source.html create mode 100644 xutils_8hpp_source.html create mode 100644 xvectorize_8hpp_source.html create mode 100644 xview_8hpp_source.html create mode 100644 xview__utils_8hpp_source.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/_2home_2runner_2work_2xtensor_2xtensor_2include_2xtensor_2views_2index_mapper_8hpp-example.html b/_2home_2runner_2work_2xtensor_2xtensor_2include_2xtensor_2views_2index_mapper_8hpp-example.html new file mode 100644 index 000000000..d709fd96c --- /dev/null +++ b/_2home_2runner_2work_2xtensor_2xtensor_2include_2xtensor_2views_2index_mapper_8hpp-example.html @@ -0,0 +1,541 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
/home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp
+
+
+
xt::xarray<double> a = xt::arange(24).reshape({2, 3, 4});
+
auto view1 = xt::view(a, 1, xt::all(), xt::all()); // Fixed first dimension
+
index_mapper<decltype(view1)> mapper;
+
+
// Map view indices (i,j) to container indices (1,i,j)
+
double val = mapper.map(a, view1, 0, 0); // Returns a(1, 0, 0)
+
double val2 = mapper.map(a, view1, 1, 2); // Returns a(1, 1, 2)
+
bool all(E &&e)
Any.
+
auto arange(T start, T stop, S step=1) noexcept
Generates numbers evenly spaced within given half-open interval [start, stop).
Definition xbuilder.hpp:432
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
auto view(E &&e, S &&... slices)
Constructs and returns a view on the specified xexpression.
Definition xview.hpp:1823
+
/***************************************************************************
+
* Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
+
* Copyright (c) QuantStack *
+
* *
+
* Distributed under the terms of the BSD 3-Clause License. *
+
* *
+
* The full license is in the file LICENSE, distributed with this software. *
+
****************************************************************************/
+
+
#ifndef XTENSOR_INDEX_MAPPER_HPP
+
#define XTENSOR_INDEX_MAPPER_HPP
+
+
#include <cassert>
+
+
#include "xview.hpp"
+
+
namespace xt
+
{
+
+
template <class UndefinedView>
+
struct index_mapper;
+
+
enum class access_t
+
{
+
SAFE,
+ +
};
+
+
template <class UnderlyingContainer, class... Slices>
+
class index_mapper<xt::xview<UnderlyingContainer, Slices...>>
+
{
+
public:
+
+
using view_type = xt::xview<UnderlyingContainer, Slices...>;
+
+
using reference = typename xt::xview<UnderlyingContainer, Slices...>::reference;
+
+
using const_reference = typename xt::xview<UnderlyingContainer, Slices...>::const_reference;
+
+
static constexpr size_t n_slices = sizeof...(Slices);
+
+
static constexpr size_t nb_integral_slices = (std::is_integral_v<Slices> + ...);
+
+
static constexpr size_t nb_new_axis_slices = (xt::detail::is_newaxis_v<Slices> + ...);
+
+
template <std::integral... Indices>
+
static constexpr size_t n_indices_full_v = size_t(sizeof...(Indices) + nb_integral_slices);
+
+
template <std::integral... Indices>
+
reference map(UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
+
+
template <std::integral... Indices>
+
const_reference
+
cmap(const UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
+
+
template <std::integral... Indices>
+
reference map_at(UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
+
+
template <std::integral... Indices>
+
const_reference
+
cmap_at(const UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
+
+
size_t dimension(const UnderlyingContainer& container) const;
+
+
private:
+
+
template <bool IS_CONST>
+
using conditional_reference = std::conditional_t<IS_CONST, const_reference, reference>;
+
+
template <size_t I>
+
using slice_type = std::tuple_element_t<I, std::tuple<Slices...>>;
+
+
template <size_t I>
+
static consteval bool is_slice_integral();
+
+
template <size_t I>
+
static consteval bool is_slice_new_axis();
+
+
template <size_t first, size_t bound, size_t... indices>
+
struct indices_sequence_helper
+
{
+
// we add the current axis
+
using not_new_axis_type = typename indices_sequence_helper<first + 1, bound, indices..., first>::type;
+
+
// we skip the current axis
+
using new_axis_type = typename indices_sequence_helper<first + 1, bound, indices...>::type;
+
+
// NOTE: is_slice_new_axis works even if first >= sizeof...(Slices)
+
using type = std::conditional_t<is_slice_new_axis<first>(), new_axis_type, not_new_axis_type>;
+
};
+
+
template <size_t bound, size_t... indices>
+
struct indices_sequence_helper<bound, bound, indices...>
+
{
+
using type = std::index_sequence<indices...>;
+
};
+
+
template <size_t bound>
+
using indices_sequence = indices_sequence_helper<0, bound>::type;
+
+
template <size_t I, std::integral Index>
+
size_t map_ith_index(const view_type& view, const Index i) const;
+
+
template <bool IS_CONST, access_t ACCESS, std::integral FirstIndice, std::integral... OtherIndices>
+
conditional_reference<IS_CONST> map_main(
+
std::bool_constant<IS_CONST> /* is_const */,
+
std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
+
std::integral_constant<access_t, ACCESS> /* access */,
+
const view_type& view,
+
const FirstIndice firstIndice,
+
const OtherIndices... otherIndices
+
) const;
+
+
template <bool IS_CONST, access_t ACCESS>
+
conditional_reference<IS_CONST> map_main(
+
std::bool_constant<IS_CONST> /* is_const */,
+
std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
+
std::integral_constant<access_t, ACCESS> /* access */,
+
const view_type& view
+
) const;
+
+
template <bool IS_CONST, access_t ACCESS, size_t n_indices, size_t... Is>
+
conditional_reference<IS_CONST> map_all_indices(
+
std::bool_constant<IS_CONST> /* is_const */,
+
std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
+
std::integral_constant<access_t, ACCESS> /* access */,
+
const view_type& view,
+
std::index_sequence<Is...> /* is_seq */,
+
const std::array<size_t, n_indices>& indices
+
) const;
+
+
template <std::integral... Indices>
+
std::array<size_t, n_indices_full_v<Indices...>> get_indices_full(const Indices... indices) const;
+
};
+
+
/*******************************
+
* index_mapper implementation *
+
*******************************/
+
+
template <class UnderlyingContainer, class... Slices>
+
template <size_t I>
+
consteval bool index_mapper<xt::xview<UnderlyingContainer, Slices...>>::is_slice_integral()
+
{
+
if constexpr (I < sizeof...(Slices))
+
{
+
return std::is_integral_v<slice_type<I>>;
+
}
+
else
+
{
+
return false;
+
}
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <size_t I>
+
consteval bool index_mapper<xt::xview<UnderlyingContainer, Slices...>>::is_slice_new_axis()
+
{
+
if constexpr (I < sizeof...(Slices))
+
{
+
return xt::detail::is_newaxis_v<slice_type<I>>;
+
}
+
else
+
{
+
return false;
+
}
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <std::integral... Indices>
+
auto
+
index_mapper<xt::xview<UnderlyingContainer, Slices...>>::get_indices_full(const Indices... indices) const
+
-> std::array<size_t, n_indices_full_v<Indices...>>
+
{
+
constexpr size_t n_indices_full = n_indices_full_v<Indices...>;
+
+
std::array<size_t, sizeof...(indices)> args{size_t(indices)...};
+
std::array<size_t, n_indices_full> args_full;
+
+
const auto fill_args_full = [&args_full, &args]<size_t... Is>(std::index_sequence<Is...>)
+
{
+
auto it = std::cbegin(args);
+
+
((args_full[Is] = (is_slice_integral<Is>()) ? size_t(0) : *it++), ...);
+
};
+
+
fill_args_full(std::make_index_sequence<n_indices_full>{});
+
+
return args_full;
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <std::integral... Indices>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map(
+
UnderlyingContainer& container,
+
const view_type& view,
+
const Indices... indices
+
) const -> reference
+
{
+
return map_main(
+
std::false_type{},
+
container,
+
std::integral_constant<access_t, access_t::UNSAFE>{},
+ +
indices...
+
);
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <std::integral... Indices>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::cmap(
+
const UnderlyingContainer& container,
+
const view_type& view,
+
const Indices... indices
+
) const -> const_reference
+
{
+
return map_main(
+
std::true_type{},
+
container,
+
std::integral_constant<access_t, access_t::UNSAFE>{},
+ +
indices...
+
);
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <std::integral... Indices>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_at(
+
UnderlyingContainer& container,
+
const view_type& view,
+
const Indices... indices
+
) const -> reference
+
{
+
return map_main(
+
std::false_type{},
+
container,
+
std::integral_constant<access_t, access_t::SAFE>{},
+ +
indices...
+
);
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <std::integral... Indices>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::cmap_at(
+
const UnderlyingContainer& container,
+
const view_type& view,
+
const Indices... indices
+
) const -> const_reference
+
{
+
return map_main(
+
std::true_type{},
+
container,
+
std::integral_constant<access_t, access_t::SAFE>{},
+ +
indices...
+
);
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <bool IS_CONST, access_t ACCESS, std::integral FirstIndice, std::integral... OtherIndices>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_main(
+
std::bool_constant<IS_CONST> is_const,
+
std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
+
std::integral_constant<access_t, ACCESS> access,
+
const view_type& view,
+
const FirstIndice firstIndice,
+
const OtherIndices... otherIndices
+
) const -> conditional_reference<IS_CONST>
+
{
+
constexpr size_t n_indices_full = n_indices_full_v<FirstIndice, OtherIndices...>;
+
+
constexpr size_t underlying_n_dimensions = xt::static_dimension<
+
typename std::decay_t<UnderlyingContainer>::shape_type>::value;
+
+
// If there is too many indices, we need to drop the first ones.
+
// If the number of dimensions of the underlying container is known at compile time we can drop them
+
// at compile time Else a runtime-test is requires, which, breaks vectorization.
+
// I don't know if we can do it in another way.
+
+
if constexpr (underlying_n_dimensions != size_t(-1))
+
{
+
// the number of dimensions of the underlying container is known at compile time.
+
constexpr size_t n_dimensions = underlying_n_dimensions - nb_integral_slices + nb_new_axis_slices;
+
+
// we can perform compile time checks
+
if constexpr (1 + sizeof...(OtherIndices) > n_dimensions)
+
{
+
return map_main(is_const, container, access, view, otherIndices...);
+
}
+
else
+
{
+
return map_all_indices(
+
is_const,
+
container,
+
access,
+ +
indices_sequence<n_indices_full>{},
+
get_indices_full(firstIndice, otherIndices...)
+
);
+
}
+
}
+
else
+
{
+
// we need execution time checks
+
if (1 + sizeof...(OtherIndices) > dimension(container))
+
{
+
return map_main(is_const, container, access, view, otherIndices...);
+
}
+
else
+
{
+
return map_all_indices(
+
is_const,
+
container,
+
access,
+ +
indices_sequence<n_indices_full>{},
+
get_indices_full(firstIndice, otherIndices...)
+
);
+
}
+
}
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <bool IS_CONST, access_t ACCESS>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_main(
+
std::bool_constant<IS_CONST> is_const,
+
std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
+
std::integral_constant<access_t, ACCESS> access,
+
const view_type& view
+
) const -> conditional_reference<IS_CONST>
+
{
+
constexpr size_t n_indices_full = n_indices_full_v<>;
+
+
return map_all_indices(
+
is_const,
+
container,
+
access,
+ +
indices_sequence<n_indices_full>{},
+
get_indices_full()
+
);
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <bool IS_CONST, access_t ACCESS, size_t n_indices, size_t... Is>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_all_indices(
+
std::bool_constant<IS_CONST> /* is_const */,
+
std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
+
std::integral_constant<access_t, ACCESS> /* access */,
+
const view_type& view,
+
std::index_sequence<Is...> /* is_seq */,
+
const std::array<size_t, n_indices>& indices
+
) const -> conditional_reference<IS_CONST>
+
{
+
if constexpr (ACCESS == access_t::SAFE)
+
{
+
return container.at(map_ith_index<Is>(view, indices[Is])...);
+
}
+
else
+
{
+
return container(map_ith_index<Is>(view, indices[Is])...);
+
}
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
template <size_t I, std::integral Index>
+
auto
+
index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_ith_index(const view_type& view, const Index i) const
+
-> size_t
+
{
+
if constexpr (I < sizeof...(Slices))
+
{
+
// if the slice is explicitly specified, use it
+
using current_slice = std::tuple_element_t<I, std::tuple<Slices...>>;
+
+
static_assert(not xt::detail::is_newaxis_v<current_slice>);
+
+
const auto& slice = std::get<I>(view.slices());
+
+
if constexpr (std::is_integral_v<current_slice>)
+
{
+
assert(i == 0);
+
return size_t(slice);
+
}
+
else
+
{
+
assert(i < slice.size());
+
return size_t(slice(i));
+
}
+
}
+
else
+
{
+
// else assume xt::all
+
return i;
+
}
+
}
+
+
template <class UnderlyingContainer, class... Slices>
+
auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::dimension(const UnderlyingContainer& container
+
) const -> size_t
+
{
+
return container.dimension() - nb_integral_slices + nb_new_axis_slices;
+
}
+
+
} // namespace xt
+
+
#endif // XTENSOR_INDEX_MAPPER_HPP
+
Multidimensional view with tensor semantic.
Definition xview.hpp:365
+
standard mathematical functions for xexpressions
+
access_t
Defines the access policy for the underlying container.
+
@ UNSAFE
Use operator() accessor (no bounds checking).
+
@ SAFE
Use .at() accessor (bounds checked).
+ +
+
+ + + + diff --git a/_formulas.tex b/_formulas.tex new file mode 100644 index 000000000..ee292d983 --- /dev/null +++ b/_formulas.tex @@ -0,0 +1,34 @@ +\documentclass{article} +\usepackage{iftex} +\usepackage{ifthen} +\usepackage{epsfig} +\usepackage[utf8]{inputenc} +\usepackage{xcolor} +\ifPDFTeX +\usepackage{newunicodechar} + \makeatletter + \def\doxynewunicodechar#1#2{% + \@tempswafalse + \edef\nuc@tempa{\detokenize{#1}}% + \if\relax\nuc@tempa\relax + \nuc@emptyargerr + \else + \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}% + \nuc@check + \if@tempswa + \@namedef{u8:\nuc@tempa}{#2}% + \fi + \fi + } + \makeatother + \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus + \doxynewunicodechar{²}{${}^{2}$}% Superscript two + \doxynewunicodechar{³}{${}^{3}$}% Superscript three + +\fi +\pagestyle{empty} +\begin{document} +$ 2 \pi $ +\pagebreak + +\end{document} diff --git a/_formulas_dark.tex b/_formulas_dark.tex new file mode 100644 index 000000000..03a6e1444 --- /dev/null +++ b/_formulas_dark.tex @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{iftex} +\usepackage{ifthen} +\usepackage{epsfig} +\usepackage[utf8]{inputenc} +\usepackage{xcolor} +\color{white} +\pagecolor{black} +\ifPDFTeX +\usepackage{newunicodechar} + \makeatletter + \def\doxynewunicodechar#1#2{% + \@tempswafalse + \edef\nuc@tempa{\detokenize{#1}}% + \if\relax\nuc@tempa\relax + \nuc@emptyargerr + \else + \edef\@tempb{\expandafter\@car\nuc@tempa\@nil}% + \nuc@check + \if@tempswa + \@namedef{u8:\nuc@tempa}{#2}% + \fi + \fi + } + \makeatother + \doxynewunicodechar{⁻}{${}^{-}$}% Superscript minus + \doxynewunicodechar{²}{${}^{2}$}% Superscript two + \doxynewunicodechar{³}{${}^{3}$}% Superscript three + +\fi +\pagestyle{empty} +\begin{document} +$ 2 \pi $ +\pagebreak + +\end{document} diff --git a/annotated.html b/annotated.html new file mode 100644 index 000000000..bdccc6bc4 --- /dev/null +++ b/annotated.html @@ -0,0 +1,657 @@ + + + + + + + +xtensor: Class List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 123]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nstd
 NxtStandard mathematical functions for xexpressions
 Nxt_simd
 Nxtl
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 000000000..df4bb493b --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,548 @@ +var annotated_dup = +[ + [ "std", null, [ + [ "tuple_size< xt::const_array< T, N > >", "classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html", null ], + [ "tuple_size< xt::fixed_shape< N... > >", "classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html", null ], + [ "tuple_size< xt::sequence_view< T, Start, End > >", "classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html", null ] + ] ], + [ "xt", "namespacext.html", [ + [ "check_policy", null, [ + [ "full", "structxt_1_1check__policy_1_1full.html", null ], + [ "none", "structxt_1_1check__policy_1_1none.html", null ] + ] ], + [ "convolve_mode", null, [ + [ "full", "structxt_1_1convolve__mode_1_1full.html", null ], + [ "valid", "structxt_1_1convolve__mode_1_1valid.html", null ] + ] ], + [ "evaluation_strategy", null, [ + [ "immediate_type", "structxt_1_1evaluation__strategy_1_1immediate__type.html", null ], + [ "lazy_type", "structxt_1_1evaluation__strategy_1_1lazy__type.html", null ] + ] ], + [ "extension", null, [ + [ "expression_tag_and", "structxt_1_1extension_1_1expression__tag__and.html", null ], + [ "expression_tag_and< T >", "structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html", null ], + [ "expression_tag_and< T, T >", "structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html", null ], + [ "expression_tag_and< T, xtensor_expression_tag >", "structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html", null ], + [ "expression_tag_and< T1, T... >", "structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html", null ], + [ "expression_tag_and< xtensor_expression_tag, T >", "structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html", null ], + [ "expression_tag_and< xtensor_expression_tag, xtensor_expression_tag >", "structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html", null ], + [ "expression_tag_and<>", "structxt_1_1extension_1_1expression__tag__and_3_4.html", null ], + [ "get_expression_tag", "structxt_1_1extension_1_1get__expression__tag.html", null ], + [ "get_expression_tag< xtl::xoptional< T, B > >", "structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "get_expression_tag_impl", "structxt_1_1extension_1_1get__expression__tag__impl.html", null ], + [ "get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >", "structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de048c22abe806a8cb61aa0c08ab63f2de.html", null ], + [ "xarray_adaptor_base", "structxt_1_1extension_1_1xarray__adaptor__base.html", null ], + [ "xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >", "structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html", null ], + [ "xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >", "structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html", null ], + [ "xarray_adaptor_optional_traits", "structxt_1_1extension_1_1xarray__adaptor__optional__traits.html", null ], + [ "xarray_container_base", "structxt_1_1extension_1_1xarray__container__base.html", null ], + [ "xarray_container_base< EC, L, SC, xoptional_expression_tag >", "structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html", null ], + [ "xarray_container_base< EC, L, SC, xtensor_expression_tag >", "structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html", null ], + [ "xarray_container_optional_traits", "structxt_1_1extension_1_1xarray__container__optional__traits.html", null ], + [ "xarray_optional_traits", "structxt_1_1extension_1_1xarray__optional__traits.html", null ], + [ "xbroadcast_base", "structxt_1_1extension_1_1xbroadcast__base.html", null ], + [ "xbroadcast_base_impl", "structxt_1_1extension_1_1xbroadcast__base__impl.html", null ], + [ "xbroadcast_base_impl< xoptional_expression_tag, CT, X >", "structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "xbroadcast_base_impl< xtensor_expression_tag, CT, X >", "structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "xbroadcast_optional", "classxt_1_1extension_1_1xbroadcast__optional.html", null ], + [ "xcontainer_optional_base", "classxt_1_1extension_1_1xcontainer__optional__base.html", null ], + [ "xdynamic_view_base", "structxt_1_1extension_1_1xdynamic__view__base.html", null ], + [ "xdynamic_view_base_impl", "structxt_1_1extension_1_1xdynamic__view__base__impl.html", null ], + [ "xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "xdynamic_view_optional", "classxt_1_1extension_1_1xdynamic__view__optional.html", null ], + [ "xfunction_base", "structxt_1_1extension_1_1xfunction__base.html", null ], + [ "xfunction_base_impl", "structxt_1_1extension_1_1xfunction__base__impl.html", null ], + [ "xfunction_base_impl< xoptional_expression_tag, F, CT... >", "structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html", null ], + [ "xfunction_base_impl< xtensor_expression_tag, F, CT... >", "structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html", null ], + [ "xfunction_optional_base", "classxt_1_1extension_1_1xfunction__optional__base.html", null ], + [ "xfunctor_view_base", "structxt_1_1extension_1_1xfunctor__view__base.html", null ], + [ "xfunctor_view_base_impl", "structxt_1_1extension_1_1xfunctor__view__base__impl.html", null ], + [ "xfunctor_view_base_impl< xoptional_expression_tag, F, CT >", "structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html", null ], + [ "xfunctor_view_base_impl< xtensor_expression_tag, F, CT >", "structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html", null ], + [ "xfunctor_view_optional", "classxt_1_1extension_1_1xfunctor__view__optional.html", null ], + [ "xgenerator_base", "structxt_1_1extension_1_1xgenerator__base.html", null ], + [ "xgenerator_base_impl", "structxt_1_1extension_1_1xgenerator__base__impl.html", null ], + [ "xgenerator_base_impl< xoptional_expression_tag, F, R, S >", "structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html", null ], + [ "xgenerator_base_impl< xtensor_expression_tag, F, R, S >", "structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html", null ], + [ "xgenerator_optional", "classxt_1_1extension_1_1xgenerator__optional.html", null ], + [ "xindex_view_base", "structxt_1_1extension_1_1xindex__view__base.html", null ], + [ "xindex_view_base_impl", "structxt_1_1extension_1_1xindex__view__base__impl.html", null ], + [ "xindex_view_base_impl< xoptional_expression_tag, CT, I >", "structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html", null ], + [ "xindex_view_base_impl< xtensor_expression_tag, CT, I >", "structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html", null ], + [ "xindex_view_optional", "classxt_1_1extension_1_1xindex__view__optional.html", null ], + [ "xoptional_empty_base", "classxt_1_1extension_1_1xoptional__empty__base.html", null ], + [ "xreducer_base", "structxt_1_1extension_1_1xreducer__base.html", null ], + [ "xreducer_base_impl", "structxt_1_1extension_1_1xreducer__base__impl.html", null ], + [ "xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html", null ], + [ "xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html", null ], + [ "xreducer_optional", "classxt_1_1extension_1_1xreducer__optional.html", null ], + [ "xrepeat_base", "structxt_1_1extension_1_1xrepeat__base.html", null ], + [ "xrepeat_base_impl", "structxt_1_1extension_1_1xrepeat__base__impl.html", null ], + [ "xrepeat_base_impl< xoptional_expression_tag, CT, X >", "structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "xrepeat_base_impl< xtensor_expression_tag, CT, X >", "structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "xrepeat_optional", "classxt_1_1extension_1_1xrepeat__optional.html", null ], + [ "xscalar_base", "structxt_1_1extension_1_1xscalar__base.html", null ], + [ "xscalar_base_impl", "structxt_1_1extension_1_1xscalar__base__impl.html", null ], + [ "xscalar_base_impl< xoptional_expression_tag, CT >", "structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html", null ], + [ "xscalar_base_impl< xtensor_expression_tag, CT >", "structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html", null ], + [ "xscalar_optional_base", "classxt_1_1extension_1_1xscalar__optional__base.html", null ], + [ "xscalar_optional_traits", "structxt_1_1extension_1_1xscalar__optional__traits.html", null ], + [ "xstrided_view_base", "structxt_1_1extension_1_1xstrided__view__base.html", null ], + [ "xstrided_view_base_impl", "structxt_1_1extension_1_1xstrided__view__base__impl.html", null ], + [ "xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "xstrided_view_optional", "classxt_1_1extension_1_1xstrided__view__optional.html", null ], + [ "xtensor_adaptor_base", "structxt_1_1extension_1_1xtensor__adaptor__base.html", null ], + [ "xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >", "structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html", null ], + [ "xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >", "structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html", null ], + [ "xtensor_adaptor_optional_traits", "structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html", null ], + [ "xtensor_container_base", "structxt_1_1extension_1_1xtensor__container__base.html", null ], + [ "xtensor_container_base< EC, N, L, xoptional_expression_tag >", "structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html", null ], + [ "xtensor_container_base< EC, N, L, xtensor_expression_tag >", "structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html", null ], + [ "xtensor_container_optional_traits", "structxt_1_1extension_1_1xtensor__container__optional__traits.html", null ], + [ "xtensor_empty_base", "structxt_1_1extension_1_1xtensor__empty__base.html", null ], + [ "xtensor_optional_traits", "structxt_1_1extension_1_1xtensor__optional__traits.html", null ], + [ "xtensor_view_base", "structxt_1_1extension_1_1xtensor__view__base.html", null ], + [ "xtensor_view_base< EC, N, L, xoptional_expression_tag >", "structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html", null ], + [ "xtensor_view_base< EC, N, L, xtensor_expression_tag >", "structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html", null ], + [ "xtensor_view_optional_traits", "structxt_1_1extension_1_1xtensor__view__optional__traits.html", null ], + [ "xview_base", "structxt_1_1extension_1_1xview__base.html", null ], + [ "xview_base_impl", "structxt_1_1extension_1_1xview__base__impl.html", null ], + [ "xview_base_impl< xoptional_expression_tag, CT, S... >", "structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html", null ], + [ "xview_base_impl< xtensor_expression_tag, CT, S... >", "structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html", null ], + [ "xview_optional", "classxt_1_1extension_1_1xview__optional.html", null ] + ] ], + [ "math", null, [ + [ "abs_fun", "structxt_1_1math_1_1abs__fun.html", null ], + [ "acos_fun", "structxt_1_1math_1_1acos__fun.html", null ], + [ "acosh_fun", "structxt_1_1math_1_1acosh__fun.html", null ], + [ "arg_fun", "structxt_1_1math_1_1arg__fun.html", null ], + [ "asin_fun", "structxt_1_1math_1_1asin__fun.html", null ], + [ "asinh_fun", "structxt_1_1math_1_1asinh__fun.html", null ], + [ "atan2_fun", "structxt_1_1math_1_1atan2__fun.html", null ], + [ "atan_fun", "structxt_1_1math_1_1atan__fun.html", null ], + [ "atanh_fun", "structxt_1_1math_1_1atanh__fun.html", null ], + [ "cbrt_fun", "structxt_1_1math_1_1cbrt__fun.html", null ], + [ "ceil_fun", "structxt_1_1math_1_1ceil__fun.html", null ], + [ "clamp_fun", "structxt_1_1math_1_1clamp__fun.html", null ], + [ "conj_fun", "structxt_1_1math_1_1conj__fun.html", null ], + [ "conj_impl_fun", "structxt_1_1math_1_1conj__impl__fun.html", null ], + [ "cos_fun", "structxt_1_1math_1_1cos__fun.html", null ], + [ "cosh_fun", "structxt_1_1math_1_1cosh__fun.html", null ], + [ "deg2rad", "structxt_1_1math_1_1deg2rad.html", null ], + [ "erf_fun", "structxt_1_1math_1_1erf__fun.html", null ], + [ "erfc_fun", "structxt_1_1math_1_1erfc__fun.html", null ], + [ "exp2_fun", "structxt_1_1math_1_1exp2__fun.html", null ], + [ "exp_fun", "structxt_1_1math_1_1exp__fun.html", null ], + [ "expm1_fun", "structxt_1_1math_1_1expm1__fun.html", null ], + [ "fabs_fun", "structxt_1_1math_1_1fabs__fun.html", null ], + [ "fdim_fun", "structxt_1_1math_1_1fdim__fun.html", null ], + [ "floor_fun", "structxt_1_1math_1_1floor__fun.html", null ], + [ "fma_fun", "structxt_1_1math_1_1fma__fun.html", null ], + [ "fmax_fun", "structxt_1_1math_1_1fmax__fun.html", null ], + [ "fmin_fun", "structxt_1_1math_1_1fmin__fun.html", null ], + [ "fmod_fun", "structxt_1_1math_1_1fmod__fun.html", null ], + [ "hypot_fun", "structxt_1_1math_1_1hypot__fun.html", null ], + [ "isfinite_fun", "structxt_1_1math_1_1isfinite__fun.html", null ], + [ "isinf_fun", "structxt_1_1math_1_1isinf__fun.html", null ], + [ "isnan_fun", "structxt_1_1math_1_1isnan__fun.html", null ], + [ "lgamma_fun", "structxt_1_1math_1_1lgamma__fun.html", null ], + [ "log10_fun", "structxt_1_1math_1_1log10__fun.html", null ], + [ "log1p_fun", "structxt_1_1math_1_1log1p__fun.html", null ], + [ "log2_fun", "structxt_1_1math_1_1log2__fun.html", null ], + [ "log_fun", "structxt_1_1math_1_1log__fun.html", null ], + [ "maximum", "structxt_1_1math_1_1maximum.html", null ], + [ "minimum", "structxt_1_1math_1_1minimum.html", null ], + [ "nearbyint_fun", "structxt_1_1math_1_1nearbyint__fun.html", null ], + [ "norm_fun", "structxt_1_1math_1_1norm__fun.html", null ], + [ "pow_fun", "structxt_1_1math_1_1pow__fun.html", null ], + [ "rad2deg", "structxt_1_1math_1_1rad2deg.html", null ], + [ "remainder_fun", "structxt_1_1math_1_1remainder__fun.html", null ], + [ "rint_fun", "structxt_1_1math_1_1rint__fun.html", null ], + [ "round_fun", "structxt_1_1math_1_1round__fun.html", null ], + [ "sign_fun", "structxt_1_1math_1_1sign__fun.html", null ], + [ "sign_impl", "structxt_1_1math_1_1sign__impl.html", null ], + [ "sign_impl< xtl::xoptional< T, B > >", "structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "sin_fun", "structxt_1_1math_1_1sin__fun.html", null ], + [ "sinh_fun", "structxt_1_1math_1_1sinh__fun.html", null ], + [ "sqrt_fun", "structxt_1_1math_1_1sqrt__fun.html", null ], + [ "tan_fun", "structxt_1_1math_1_1tan__fun.html", null ], + [ "tanh_fun", "structxt_1_1math_1_1tanh__fun.html", null ], + [ "tgamma_fun", "structxt_1_1math_1_1tgamma__fun.html", null ], + [ "trunc_fun", "structxt_1_1math_1_1trunc__fun.html", null ] + ] ], + [ "placeholders", null, [ + [ "rangemaker", "structxt_1_1placeholders_1_1rangemaker.html", null ], + [ "rangemaker< A, B >", "structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html", null ], + [ "rangemaker< A, B, C >", "structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html", null ], + [ "xtuph", "structxt_1_1placeholders_1_1xtuph.html", null ] + ] ], + [ "print_options", null, [ + [ "edge_items", "classxt_1_1print__options_1_1edge__items.html", null ], + [ "line_width", "classxt_1_1print__options_1_1line__width.html", null ], + [ "precision", "classxt_1_1print__options_1_1precision.html", null ], + [ "print_options_impl", "structxt_1_1print__options_1_1print__options__impl.html", null ], + [ "threshold", "classxt_1_1print__options_1_1threshold.html", null ] + ] ], + [ "strided_assign_detail", null, [ + [ "check_strides_functor", "structxt_1_1strided__assign__detail_1_1check__strides__functor.html", null ], + [ "idx_tools", "structxt_1_1strided__assign__detail_1_1idx__tools.html", null ], + [ "idx_tools< layout_type::column_major >", "structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html", null ], + [ "idx_tools< layout_type::row_major >", "structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html", null ], + [ "loop_sizes_t", "structxt_1_1strided__assign__detail_1_1loop__sizes__t.html", null ] + ] ], + [ "traits_detail", null, [ + [ "norm_of_array_elements_impl", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html", null ], + [ "norm_of_array_elements_impl< long double, false, true >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html", null ], + [ "norm_of_array_elements_impl< T, false, false >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html", null ], + [ "norm_of_array_elements_impl< T, false, true >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html", null ], + [ "norm_of_array_elements_impl< T, true, false >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html", null ], + [ "norm_of_array_elements_impl< void *, false, false >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html", null ], + [ "norm_of_scalar_impl", "structxt_1_1traits__detail_1_1norm__of__scalar__impl.html", null ], + [ "norm_of_scalar_impl< T, false >", "structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html", null ], + [ "norm_of_scalar_impl< T, true >", "structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html", null ], + [ "norm_of_vector_impl", "structxt_1_1traits__detail_1_1norm__of__vector__impl.html", null ], + [ "norm_type_base", "structxt_1_1traits__detail_1_1norm__type__base.html", null ] + ] ], + [ "acquire_ownership", "structxt_1_1acquire__ownership.html", null ], + [ "aligned_array", "classxt_1_1aligned__array.html", null ], + [ "aligned_mode", "structxt_1_1aligned__mode.html", null ], + [ "big_promote_value_type", "structxt_1_1big__promote__value__type.html", null ], + [ "broadcast_error", "classxt_1_1broadcast__error.html", null ], + [ "buffer_inner_types", "structxt_1_1buffer__inner__types.html", null ], + [ "buffer_inner_types< xbuffer_adaptor< CP, O, A > >", "structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "buffer_inner_types< xiterator_adaptor< I, CI > >", "structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "buffer_inner_types< xiterator_owner_adaptor< C, IG > >", "structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "can_assign", "structxt_1_1can__assign.html", null ], + [ "can_assign< xstrided_view< CT, S, L, FST >, RHS >", "structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html", null ], + [ "check_strides_overlap", "structxt_1_1check__strides__overlap.html", null ], + [ "check_strides_overlap< layout_type::column_major >", "structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html", null ], + [ "check_strides_overlap< layout_type::row_major >", "structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html", null ], + [ "common_difference_type", "structxt_1_1common__difference__type.html", null ], + [ "common_difference_type<>", "structxt_1_1common__difference__type_3_4.html", null ], + [ "common_size_type", "structxt_1_1common__size__type.html", null ], + [ "common_size_type<>", "structxt_1_1common__size__type_3_4.html", null ], + [ "common_tensor_type", "structxt_1_1common__tensor__type.html", null ], + [ "common_value_type", "structxt_1_1common__value__type.html", null ], + [ "concatenate_error", "classxt_1_1concatenate__error.html", null ], + [ "conditional_cast_functor", "structxt_1_1conditional__cast__functor.html", null ], + [ "conditional_cast_functor< false, T >", "structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html", null ], + [ "conditional_cast_functor< true, T >", "structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html", null ], + [ "const_array", "structxt_1_1const__array.html", null ], + [ "const_value", "structxt_1_1const__value.html", null ], + [ "const_xclosure", "structxt_1_1const__xclosure.html", null ], + [ "const_xclosure< E, disable_xexpression< std::decay_t< E > > >", "structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html", null ], + [ "const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >", "structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html", null ], + [ "container_simd_return_type", "structxt_1_1container__simd__return__type.html", null ], + [ "decay_all", "structxt_1_1decay__all.html", null ], + [ "decay_all< S< X... > >", "structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "disable_indexed_stepper", "structxt_1_1disable__indexed__stepper.html", null ], + [ "driven_align_mode", "structxt_1_1driven__align__mode.html", null ], + [ "enable_indexed_stepper", "structxt_1_1enable__indexed__stepper.html", null ], + [ "filter_fixed_shape", "structxt_1_1filter__fixed__shape.html", null ], + [ "fixed_shape", "classxt_1_1fixed__shape.html", null ], + [ "fixed_xreducer_shape_type", "structxt_1_1fixed__xreducer__shape__type.html", null ], + [ "fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >", "structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html", null ], + [ "forbid_simd", "structxt_1_1forbid__simd.html", null ], + [ "forbid_simd< const std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "forbid_simd< const xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "forbid_simd< std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "forbid_simd< xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "get_init_type", "structxt_1_1get__init__type.html", null ], + [ "get_init_type< V, fixed_shape< X... > >", "structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "get_rank", "structxt_1_1get__rank.html", null ], + [ "get_rank< E, decltype((void) E::rank, void())>", "structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html", null ], + [ "get_strides_type", "structxt_1_1get__strides__type.html", null ], + [ "get_strides_type< fixed_shape< I... > >", "structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html", null ], + [ "get_strides_type< xbuffer_adaptor< CP, O, A > >", "structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "get_value_type", "structxt_1_1get__value__type.html", null ], + [ "get_value_type< T, void_t< typename T::value_type > >", "structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html", null ], + [ "has_assign_conversion", "structxt_1_1has__assign__conversion.html", null ], + [ "has_assign_to", "structxt_1_1has__assign__to.html", null ], + [ "has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >", "structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html", null ], + [ "has_data_interface", "structxt_1_1has__data__interface.html", null ], + [ "has_data_interface< E, void_t< decltype(std::declval< E >().data())> >", "structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html", null ], + [ "has_fixed_rank", "structxt_1_1has__fixed__rank.html", null ], + [ "has_iterator_interface", "structxt_1_1has__iterator__interface.html", null ], + [ "has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >", "structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html", null ], + [ "has_memory_address", "structxt_1_1has__memory__address.html", null ], + [ "has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >", "structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html", null ], + [ "has_rank", "structxt_1_1has__rank.html", null ], + [ "has_sign_conversion", "structxt_1_1has__sign__conversion.html", null ], + [ "has_simd_apply", "structxt_1_1has__simd__apply.html", null ], + [ "has_simd_interface", "structxt_1_1has__simd__interface.html", null ], + [ "has_simd_interface< xfunction< F, CT... >, T >", "structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xfunctor_adaptor< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xfunctor_applier_base< D >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xfunctor_view< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xtensor_view< EC, N, L, Tag > >", "structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "has_simd_type", "structxt_1_1has__simd__type.html", null ], + [ "has_storage_type", "structxt_1_1has__storage__type.html", null ], + [ "has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >", "structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html", null ], + [ "has_strides", "structxt_1_1has__strides.html", null ], + [ "has_strides< E, void_t< decltype(std::declval< E >().strides())> >", "structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html", null ], + [ "index_from_shape", "structxt_1_1index__from__shape.html", null ], + [ "index_mapper", "structxt_1_1index__mapper.html", null ], + [ "index_mapper< xt::xview< UnderlyingContainer, Slices... > >", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4" ], + [ "initializer_dimension", "structxt_1_1initializer__dimension.html", null ], + [ "inner_aligned_mode", "structxt_1_1inner__aligned__mode.html", null ], + [ "inner_reference", "structxt_1_1inner__reference.html", null ], + [ "invalid_type", "structxt_1_1invalid__type.html", null ], + [ "is_chunked_t", "structxt_1_1is__chunked__t.html", null ], + [ "is_contiguous_container", "structxt_1_1is__contiguous__container.html", null ], + [ "is_contiguous_container< xiterator< St, S, L > >", "structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html", null ], + [ "is_contiguous_container< xiterator_adaptor< I, CI > >", "structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "is_contiguous_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "is_evaluation_strategy", "structxt_1_1is__evaluation__strategy.html", null ], + [ "is_indexed_stepper", "structxt_1_1is__indexed__stepper.html", null ], + [ "is_indexed_stepper< xindexed_stepper< T, B > >", "structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "is_iterator", "structxt_1_1is__iterator.html", null ], + [ "is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >", "structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html", null ], + [ "is_narrowing_conversion", "structxt_1_1is__narrowing__conversion.html", null ], + [ "is_not_xdummy_iterator", "structxt_1_1is__not__xdummy__iterator.html", null ], + [ "is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >", "structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html", null ], + [ "is_reducer_options", "structxt_1_1is__reducer__options.html", null ], + [ "is_reducer_options_impl", "structxt_1_1is__reducer__options__impl.html", null ], + [ "is_reducer_options_impl< std::tuple< X... > >", "structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "is_specialization_of", "structxt_1_1is__specialization__of.html", null ], + [ "is_specialization_of< TT, TT< Ts... > >", "structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html", null ], + [ "is_xoptional_expression", "structxt_1_1is__xoptional__expression.html", null ], + [ "is_xtensor_expression", "structxt_1_1is__xtensor__expression.html", null ], + [ "keep_dims_type", "structxt_1_1keep__dims__type.html", null ], + [ "linear_assigner", "classxt_1_1linear__assigner.html", null ], + [ "linear_assigner< false >", "classxt_1_1linear__assigner_3_01false_01_4.html", null ], + [ "make_invalid_type", "structxt_1_1make__invalid__type.html", null ], + [ "make_void", "structxt_1_1make__void.html", null ], + [ "memory_range", "structxt_1_1memory__range.html", null ], + [ "meta_identity", "structxt_1_1meta__identity.html", null ], + [ "missing_type", "structxt_1_1missing__type.html", null ], + [ "nested_initializer_list", "structxt_1_1nested__initializer__list.html", null ], + [ "nested_initializer_list< T, 0 >", "structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html", null ], + [ "no_ownership", "structxt_1_1no__ownership.html", null ], + [ "noalias_proxy", "classxt_1_1noalias__proxy.html", null ], + [ "norm_type", "structxt_1_1norm__type.html", null ], + [ "numeric_constants", "structxt_1_1numeric__constants.html", null ], + [ "overlapping_memory_checker", "structxt_1_1overlapping__memory__checker.html", null ], + [ "overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >", "structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html", null ], + [ "overlapping_memory_checker_base", "structxt_1_1overlapping__memory__checker__base.html", null ], + [ "overlapping_memory_checker_traits", "structxt_1_1overlapping__memory__checker__traits.html", null ], + [ "overlapping_memory_checker_traits< E >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html", null ], + [ "overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html", null ], + [ "overlapping_memory_checker_traits< E, std::enable_if_t::value &&is_crtp_base_of< xview_semantic, E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html", null ], + [ "overlapping_memory_checker_traits< E, std::enable_if_t::value &&is_specialization_of< xfunction, E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html", null ], + [ "promote_shape", "structxt_1_1promote__shape.html", null ], + [ "promote_strides", "structxt_1_1promote__strides.html", null ], + [ "rebind_container", "structxt_1_1rebind__container.html", null ], + [ "rebind_container< X, C< T, A > >", "structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html", null ], + [ "rebind_container< X, C< T, N > >", "structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html", null ], + [ "rebind_container< X, svector< T, N, A, B > >", "structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html", null ], + [ "reducer_options", "structxt_1_1reducer__options.html", "structxt_1_1reducer__options" ], + [ "remove_class", "structxt_1_1remove__class.html", null ], + [ "remove_class< R(C::*)(Args...) const >", "structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html", null ], + [ "remove_class< R(C::*)(Args...)>", "structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html", null ], + [ "select_dim_mapping_type", "structxt_1_1select__dim__mapping__type.html", null ], + [ "select_dim_mapping_type< fixed_shape< I... > >", "structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html", null ], + [ "select_iterable_base", "structxt_1_1select__iterable__base.html", null ], + [ "select_layout", "structxt_1_1select__layout.html", null ], + [ "sequence_view", "classxt_1_1sequence__view.html", null ], + [ "squared_norm_type", "structxt_1_1squared__norm__type.html", null ], + [ "static_dimension", "structxt_1_1static__dimension.html", null ], + [ "static_string", "structxt_1_1static__string.html", null ], + [ "stepper_assigner", "classxt_1_1stepper__assigner.html", null ], + [ "stepper_tools", "structxt_1_1stepper__tools.html", null ], + [ "strided_loop_assigner", "classxt_1_1strided__loop__assigner.html", null ], + [ "svector", "classxt_1_1svector.html", null ], + [ "temporary_container", "structxt_1_1temporary__container.html", null ], + [ "temporary_container< xbuffer_adaptor< CP, O, A > >", "structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "temporary_container< xiterator_adaptor< I, CI > >", "structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "temporary_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "temporary_type", "structxt_1_1temporary__type.html", null ], + [ "temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >", "structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html", null ], + [ "temporary_type_from_tag", "structxt_1_1temporary__type__from__tag.html", null ], + [ "temporary_type_from_tag< xtensor_expression_tag, T >", "structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html", null ], + [ "tracking_allocator", "structxt_1_1tracking__allocator.html", "structxt_1_1tracking__allocator" ], + [ "transpose_error", "classxt_1_1transpose__error.html", null ], + [ "tuple_idx_of", "structxt_1_1tuple__idx__of.html", null ], + [ "tuple_idx_of_impl", "structxt_1_1tuple__idx__of__impl.html", null ], + [ "tuple_idx_of_impl< I, T, std::tuple< T, Types... > >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html", null ], + [ "tuple_idx_of_impl< I, T, std::tuple< U, Types... > >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html", null ], + [ "tuple_idx_of_impl< I, T, std::tuple<> >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html", null ], + [ "unaligned_mode", "structxt_1_1unaligned__mode.html", null ], + [ "uvector", "classxt_1_1uvector.html", null ], + [ "view_temporary_type", "structxt_1_1view__temporary__type.html", null ], + [ "xaccessible", "classxt_1_1xaccessible.html", "classxt_1_1xaccessible" ], + [ "xaccumulator_functor", "structxt_1_1xaccumulator__functor.html", null ], + [ "xall", "classxt_1_1xall.html", null ], + [ "xall_tag", "structxt_1_1xall__tag.html", null ], + [ "xarray_adaptor", "classxt_1_1xarray__adaptor.html", "classxt_1_1xarray__adaptor" ], + [ "xarray_container", "classxt_1_1xarray__container.html", "classxt_1_1xarray__container" ], + [ "xassign_traits", "classxt_1_1xassign__traits.html", null ], + [ "xaxis_iterator", "classxt_1_1xaxis__iterator.html", "classxt_1_1xaxis__iterator" ], + [ "xaxis_slice_iterator", "classxt_1_1xaxis__slice__iterator.html", "classxt_1_1xaxis__slice__iterator" ], + [ "xblockwise_reducer", "classxt_1_1xblockwise__reducer.html", null ], + [ "xbounded_iterator", "classxt_1_1xbounded__iterator.html", null ], + [ "xbroadcast", "classxt_1_1xbroadcast.html", "classxt_1_1xbroadcast" ], + [ "xbuffer_adaptor", "classxt_1_1xbuffer__adaptor.html", null ], + [ "xbuffer_adaptor_base", "classxt_1_1xbuffer__adaptor__base.html", null ], + [ "xchunk_iterator", "classxt_1_1xchunk__iterator.html", null ], + [ "xchunked_array", "classxt_1_1xchunked__array.html", null ], + [ "xchunked_assigner", "classxt_1_1xchunked__assigner.html", null ], + [ "xchunked_semantic", "classxt_1_1xchunked__semantic.html", null ], + [ "xchunked_view", "classxt_1_1xchunked__view.html", null ], + [ "xclosure", "structxt_1_1xclosure.html", null ], + [ "xclosure< E, disable_xexpression< std::decay_t< E > > >", "structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html", null ], + [ "xclosure< xshared_expression< E >, std::enable_if_t< true > >", "structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html", null ], + [ "xconst_accessible", "classxt_1_1xconst__accessible.html", "classxt_1_1xconst__accessible" ], + [ "xconst_iterable", "classxt_1_1xconst__iterable.html", "classxt_1_1xconst__iterable" ], + [ "xcontainer", "classxt_1_1xcontainer.html", "classxt_1_1xcontainer" ], + [ "xcontainer_inner_types", "structxt_1_1xcontainer__inner__types.html", null ], + [ "xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xbroadcast< CT, X > >", "structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xchunked_array< chunk_storage > >", "structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >", "structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfunction< F, CT... > >", "structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfunctor_adaptor< F, CT > >", "structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfunctor_view< F, CT > >", "structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xgenerator< C, R, S > >", "structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xindex_view< CT, I > >", "structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xmasked_view< CTD, CTM > >", "structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xoptional_assembly< VE, FE > >", "structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >", "structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xreducer< F, CT, X, O > >", "structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xscalar< CT > >", "structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xstrided_view< CT, S, L, FST > >", "structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xview< CT, S... > >", "structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html", null ], + [ "xcontainer_iterable_types", "structxt_1_1xcontainer__iterable__types.html", null ], + [ "xcontainer_semantic", "classxt_1_1xcontainer__semantic.html", "classxt_1_1xcontainer__semantic" ], + [ "xcontiguous_iterable", "classxt_1_1xcontiguous__iterable.html", "classxt_1_1xcontiguous__iterable" ], + [ "xcsv_config", "structxt_1_1xcsv__config.html", null ], + [ "xdrop_slice", "classxt_1_1xdrop__slice.html", null ], + [ "xdummy_iterator", "classxt_1_1xdummy__iterator.html", null ], + [ "xdynamic_view", "classxt_1_1xdynamic__view.html", "classxt_1_1xdynamic__view" ], + [ "xellipsis_tag", "structxt_1_1xellipsis__tag.html", null ], + [ "xexpression", "classxt_1_1xexpression.html", "classxt_1_1xexpression" ], + [ "xexpression_assigner", "classxt_1_1xexpression__assigner.html", null ], + [ "xexpression_assigner_base", "classxt_1_1xexpression__assigner__base.html", null ], + [ "xexpression_assigner_base< xoptional_expression_tag >", "classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html", null ], + [ "xexpression_assigner_base< xtensor_expression_tag >", "classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html", null ], + [ "xexpression_holder", "classxt_1_1xexpression__holder.html", null ], + [ "xexpression_tag", "structxt_1_1xexpression__tag.html", null ], + [ "xfiltration", "classxt_1_1xfiltration.html", "classxt_1_1xfiltration" ], + [ "xfixed_adaptor", "classxt_1_1xfixed__adaptor.html", "classxt_1_1xfixed__adaptor" ], + [ "xfixed_container", "classxt_1_1xfixed__container.html", "classxt_1_1xfixed__container" ], + [ "xfunction", "classxt_1_1xfunction.html", "classxt_1_1xfunction" ], + [ "xfunction_cache", "structxt_1_1xfunction__cache.html", null ], + [ "xfunction_iterator", "classxt_1_1xfunction__iterator.html", null ], + [ "xfunction_stepper", "classxt_1_1xfunction__stepper.html", null ], + [ "xfunctor_adaptor", "classxt_1_1xfunctor__adaptor.html", "classxt_1_1xfunctor__adaptor" ], + [ "xfunctor_applier_base", "classxt_1_1xfunctor__applier__base.html", "classxt_1_1xfunctor__applier__base" ], + [ "xfunctor_iterator", "classxt_1_1xfunctor__iterator.html", null ], + [ "xfunctor_stepper", "classxt_1_1xfunctor__stepper.html", null ], + [ "xfunctor_view", "classxt_1_1xfunctor__view.html", "classxt_1_1xfunctor__view" ], + [ "xfunctor_view_temporary_type", "structxt_1_1xfunctor__view__temporary__type.html", null ], + [ "xgenerator", "classxt_1_1xgenerator.html", "classxt_1_1xgenerator" ], + [ "xindex_view", "classxt_1_1xindex__view.html", "classxt_1_1xindex__view" ], + [ "xindexed_stepper", "classxt_1_1xindexed__stepper.html", null ], + [ "xinitial", "structxt_1_1xinitial.html", null ], + [ "xiterable", "classxt_1_1xiterable.html", "classxt_1_1xiterable" ], + [ "xiterable_inner_types", "structxt_1_1xiterable__inner__types.html", null ], + [ "xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xbroadcast< CT, X > >", "structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html", null ], + [ "xiterable_inner_types< xchunked_array< chunk_storage > >", "structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html", null ], + [ "xiterable_inner_types< xdynamic_view< CT, S, L, FST > >", "structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xfunction< F, CT... > >", "structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html", null ], + [ "xiterable_inner_types< xgenerator< C, R, S > >", "structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html", null ], + [ "xiterable_inner_types< xindex_view< CT, I > >", "structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html", null ], + [ "xiterable_inner_types< xmasked_view< CTD, CTM > >", "structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html", null ], + [ "xiterable_inner_types< xoptional_assembly< VE, FE > >", "structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html", null ], + [ "xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >", "structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html", null ], + [ "xiterable_inner_types< xreducer< F, CT, X, O > >", "structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html", null ], + [ "xiterable_inner_types< xrepeat< CT, R > >", "structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html", null ], + [ "xiterable_inner_types< xscalar< CT > >", "structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html", null ], + [ "xiterable_inner_types< xstrided_view< CT, S, L, FST > >", "structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xview< CT, S... > >", "structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html", null ], + [ "xiterator", "classxt_1_1xiterator.html", null ], + [ "xiterator_adaptor", "classxt_1_1xiterator__adaptor.html", null ], + [ "xiterator_owner_adaptor", "classxt_1_1xiterator__owner__adaptor.html", null ], + [ "xkeep_slice", "classxt_1_1xkeep__slice.html", null ], + [ "xmasked_value", "classxt_1_1xmasked__value.html", null ], + [ "xmasked_view", "classxt_1_1xmasked__view.html", "classxt_1_1xmasked__view" ], + [ "xmasked_view_stepper", "classxt_1_1xmasked__view__stepper.html", null ], + [ "xmultiindex_iterator", "classxt_1_1xmultiindex__iterator.html", null ], + [ "xnewaxis", "classxt_1_1xnewaxis.html", null ], + [ "xnewaxis_tag", "structxt_1_1xnewaxis__tag.html", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html", "classxt_1_1xoptional__assembly" ], + [ "xoptional_assembly_adaptor", "classxt_1_1xoptional__assembly__adaptor.html", "classxt_1_1xoptional__assembly__adaptor" ], + [ "xoptional_assembly_base", "classxt_1_1xoptional__assembly__base.html", "classxt_1_1xoptional__assembly__base" ], + [ "xoptional_assembly_linear_iterator", "classxt_1_1xoptional__assembly__linear__iterator.html", null ], + [ "xoptional_assembly_linear_iterator_traits", "structxt_1_1xoptional__assembly__linear__iterator__traits.html", null ], + [ "xoptional_assembly_stepper", "classxt_1_1xoptional__assembly__stepper.html", null ], + [ "xoptional_assembly_storage", "classxt_1_1xoptional__assembly__storage.html", null ], + [ "xoptional_comparable", "structxt_1_1xoptional__comparable.html", null ], + [ "xoptional_expression_tag", "structxt_1_1xoptional__expression__tag.html", null ], + [ "xproxy_inner_types", "structxt_1_1xproxy__inner__types.html", null ], + [ "xrange", "classxt_1_1xrange.html", null ], + [ "xrange_adaptor", "structxt_1_1xrange__adaptor.html", null ], + [ "xreducer", "classxt_1_1xreducer.html", "classxt_1_1xreducer" ], + [ "xreducer_functors", "structxt_1_1xreducer__functors.html", null ], + [ "xreducer_shape_type", "structxt_1_1xreducer__shape__type.html", null ], + [ "xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html", null ], + [ "xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html", null ], + [ "xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html", null ], + [ "xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >", "structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html", null ], + [ "xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >", "structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html", null ], + [ "xreducer_stepper", "classxt_1_1xreducer__stepper.html", null ], + [ "xrepeat", "classxt_1_1xrepeat.html", "classxt_1_1xrepeat" ], + [ "xrepeat_stepper", "classxt_1_1xrepeat__stepper.html", null ], + [ "xscalar", "classxt_1_1xscalar.html", "classxt_1_1xscalar" ], + [ "xscalar_stepper", "classxt_1_1xscalar__stepper.html", null ], + [ "xsemantic_base", "classxt_1_1xsemantic__base.html", "classxt_1_1xsemantic__base" ], + [ "xsharable_expression", "classxt_1_1xsharable__expression.html", null ], + [ "xshared_expression", "classxt_1_1xshared__expression.html", "classxt_1_1xshared__expression" ], + [ "xslice", "classxt_1_1xslice.html", null ], + [ "xstepped_range", "classxt_1_1xstepped__range.html", null ], + [ "xstepper", "classxt_1_1xstepper.html", null ], + [ "xstrided_container", "classxt_1_1xstrided__container.html", "classxt_1_1xstrided__container" ], + [ "xstrided_view", "classxt_1_1xstrided__view.html", "classxt_1_1xstrided__view" ], + [ "xstrided_view_base", "classxt_1_1xstrided__view__base.html", "classxt_1_1xstrided__view__base" ], + [ "xtensor_adaptor", "classxt_1_1xtensor__adaptor.html", "classxt_1_1xtensor__adaptor" ], + [ "xtensor_container", "classxt_1_1xtensor__container.html", "classxt_1_1xtensor__container" ], + [ "xtensor_expression_tag", "structxt_1_1xtensor__expression__tag.html", null ], + [ "xtensor_view", "classxt_1_1xtensor__view.html", "classxt_1_1xtensor__view" ], + [ "xvectorizer", "classxt_1_1xvectorizer.html", null ], + [ "xview", "classxt_1_1xview.html", "classxt_1_1xview" ], + [ "xview_semantic", "classxt_1_1xview__semantic.html", "classxt_1_1xview__semantic" ], + [ "xview_shape_type", "structxt_1_1xview__shape__type.html", null ], + [ "xview_shape_type< fixed_shape< I... >, S... >", "structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html", null ], + [ "xview_shape_type< std::array< I, L >, S... >", "structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html", null ], + [ "xview_stepper", "classxt_1_1xview__stepper.html", null ] + ] ], + [ "xt_simd", null, [ + [ "aligned_allocator", "classxt__simd_1_1aligned__allocator.html", null ], + [ "aligned_mode", "structxt__simd_1_1aligned__mode.html", null ], + [ "allocator_alignment", "structxt__simd_1_1allocator__alignment.html", null ], + [ "container_alignment", "structxt__simd_1_1container__alignment.html", null ], + [ "is_batch_bool", "structxt__simd_1_1is__batch__bool.html", null ], + [ "is_batch_complex", "structxt__simd_1_1is__batch__complex.html", null ], + [ "revert_simd_traits", "structxt__simd_1_1revert__simd__traits.html", null ], + [ "simd_condition", "structxt__simd_1_1simd__condition.html", null ], + [ "simd_traits", "structxt__simd_1_1simd__traits.html", null ], + [ "unaligned_mode", "structxt__simd_1_1unaligned__mode.html", null ] + ] ], + [ "xtl", null, [ + [ "conjunction", "structxtl_1_1conjunction.html", null ] + ] ] +]; \ No newline at end of file diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca888dc71049713b35c351933a8d0f36180bf1 GIT binary patch literal 635 zcmV->0)+jEP)Jwi0r1~gdSq#w{Bu1q z`craw(p2!hu$4C_$Oc3X(sI6e=9QSTwPt{G) z=htT&^~&c~L2~e{r5_5SYe7#Is-$ln>~Kd%$F#tC65?{LvQ}8O`A~RBB0N~`2M+waajO;5>3B&-viHGJeEK2TQOiPRa zfDKyqwMc4wfaEh4jt>H`nW_Zidwk@Bowp`}(VUaj-pSI(-1L>FJVsX}Yl9~JsqgsZ zUD9(rMwf23Gez6KPa|wwInZodP-2}9@fK0Ga_9{8SOjU&4l`pH4@qlQp83>>HT$xW zER^U>)MyV%t(Lu=`d=Y?{k1@}&r7ZGkFQ%z%N+sE9BtYjovzxyxCPxN6&@wLK{soQ zSmkj$aLI}miuE^p@~4}mg9OjDfGEkgY4~^XzLRUBB*O{+&vq<3v(E%+k_i%=`~j%{ Vj14gnt9}3g002ovPDHLkV1n!oC4m3{ literal 0 HcmV?d00001 diff --git a/classes.html b/classes.html new file mode 100644 index 000000000..ada8d34cf --- /dev/null +++ b/classes.html @@ -0,0 +1,183 @@ + + + + + + + +xtensor: Class Index + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Class Index
+
+
+
A | B | C | D | E | F | G | H | I | K | L | M | N | O | P | R | S | T | U | V | X
+
+
+
A
+
abs_fun (xt::math)
acos_fun (xt::math)
acosh_fun (xt::math)
acquire_ownership (xt)
aligned_allocator (xt_simd)
aligned_array (xt)
aligned_mode (xt)
aligned_mode (xt_simd)
allocator_alignment (xt_simd)
arg_fun (xt::math)
asin_fun (xt::math)
asinh_fun (xt::math)
atan2_fun (xt::math)
atan_fun (xt::math)
atanh_fun (xt::math)
+
+
B
+
big_promote_value_type (xt)
broadcast_error (xt)
buffer_inner_types (xt)
buffer_inner_types< xbuffer_adaptor< CP, O, A > > (xt)
buffer_inner_types< xiterator_adaptor< I, CI > > (xt)
buffer_inner_types< xiterator_owner_adaptor< C, IG > > (xt)
+
+
C
+
can_assign (xt)
can_assign< xstrided_view< CT, S, L, FST >, RHS > (xt)
cbrt_fun (xt::math)
ceil_fun (xt::math)
check_strides_functor (xt::strided_assign_detail)
check_strides_overlap (xt)
check_strides_overlap< layout_type::column_major > (xt)
check_strides_overlap< layout_type::row_major > (xt)
clamp_fun (xt::math)
common_difference_type (xt)
common_difference_type<> (xt)
common_size_type (xt)
common_size_type<> (xt)
common_tensor_type (xt)
common_value_type (xt)
concatenate_error (xt)
conditional_cast_functor (xt)
conditional_cast_functor< false, T > (xt)
conditional_cast_functor< true, T > (xt)
conj_fun (xt::math)
conj_impl_fun (xt::math)
conjunction (xtl)
const_array (xt)
const_value (xt)
const_xclosure (xt)
const_xclosure< E, disable_xexpression< std::decay_t< E > > > (xt)
const_xclosure< xshared_expression< E > &, std::enable_if_t< true > > (xt)
container_alignment (xt_simd)
container_simd_return_type (xt)
cos_fun (xt::math)
cosh_fun (xt::math)
+
+
D
+
decay_all (xt)
decay_all< S< X... > > (xt)
deg2rad (xt::math)
disable_indexed_stepper (xt)
driven_align_mode (xt)
+
+
E
+
edge_items (xt::print_options)
enable_indexed_stepper (xt)
erf_fun (xt::math)
erfc_fun (xt::math)
exp2_fun (xt::math)
exp_fun (xt::math)
expm1_fun (xt::math)
expression_tag_and (xt::extension)
expression_tag_and< T > (xt::extension)
expression_tag_and< T, T > (xt::extension)
expression_tag_and< T, xtensor_expression_tag > (xt::extension)
expression_tag_and< T1, T... > (xt::extension)
expression_tag_and< xtensor_expression_tag, T > (xt::extension)
expression_tag_and< xtensor_expression_tag, xtensor_expression_tag > (xt::extension)
expression_tag_and<> (xt::extension)
+
+
F
+
fabs_fun (xt::math)
fdim_fun (xt::math)
filter_fixed_shape (xt)
fixed_shape (xt)
fixed_xreducer_shape_type (xt)
fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > > (xt)
floor_fun (xt::math)
fma_fun (xt::math)
fmax_fun (xt::math)
fmin_fun (xt::math)
fmod_fun (xt::math)
forbid_simd (xt)
forbid_simd< const std::vector< bool, A > > (xt)
forbid_simd< const xtl::xdynamic_bitset< B, A > > (xt)
forbid_simd< std::vector< bool, A > > (xt)
forbid_simd< xtl::xdynamic_bitset< B, A > > (xt)
full (xt::check_policy)
full (xt::convolve_mode)
+
+
G
+
get_expression_tag (xt::extension)
get_expression_tag< xtl::xoptional< T, B > > (xt::extension)
get_expression_tag_impl (xt::extension)
get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > > (xt::extension)
get_init_type (xt)
get_init_type< V, fixed_shape< X... > > (xt)
get_rank (xt)
get_rank< E, decltype((void) E::rank, void())> (xt)
get_strides_type (xt)
get_strides_type< fixed_shape< I... > > (xt)
get_strides_type< xbuffer_adaptor< CP, O, A > > (xt)
get_value_type (xt)
get_value_type< T, void_t< typename T::value_type > > (xt)
+
+
H
+
has_assign_conversion (xt)
has_assign_to (xt)
has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> > (xt)
has_data_interface (xt)
has_data_interface< E, void_t< decltype(std::declval< E >().data())> > (xt)
has_fixed_rank (xt)
has_iterator_interface (xt)
has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> > (xt)
has_memory_address (xt)
has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> > (xt)
has_rank (xt)
has_sign_conversion (xt)
has_simd_apply (xt)
has_simd_interface (xt)
has_simd_interface< xfunction< F, CT... >, T > (xt)
has_simd_interface< xfunctor_adaptor< F, CT >, T > (xt)
has_simd_interface< xfunctor_applier_base< D >, T > (xt)
has_simd_interface< xfunctor_view< F, CT >, T > (xt)
has_simd_interface< xtensor_view< EC, N, L, Tag > > (xt)
has_simd_type (xt)
has_storage_type (xt)
has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > > (xt)
has_strides (xt)
has_strides< E, void_t< decltype(std::declval< E >().strides())> > (xt)
hypot_fun (xt::math)
+
+
I
+
idx_tools (xt::strided_assign_detail)
idx_tools< layout_type::column_major > (xt::strided_assign_detail)
idx_tools< layout_type::row_major > (xt::strided_assign_detail)
immediate_type (xt::evaluation_strategy)
index_from_shape (xt)
index_mapper (xt)
index_mapper< xt::xview< UnderlyingContainer, Slices... > > (xt)
reducer_options::initial_tester (xt)
reducer_options::initial_tester< const xinitial< X > > (xt)
reducer_options::initial_tester< xinitial< X > > (xt)
initializer_dimension (xt)
inner_aligned_mode (xt)
inner_reference (xt)
invalid_type (xt)
is_batch_bool (xt_simd)
is_batch_complex (xt_simd)
is_chunked_t (xt)
is_contiguous_container (xt)
is_contiguous_container< xiterator< St, S, L > > (xt)
is_contiguous_container< xiterator_adaptor< I, CI > > (xt)
is_contiguous_container< xiterator_owner_adaptor< C, IG > > (xt)
is_evaluation_strategy (xt)
is_indexed_stepper (xt)
is_indexed_stepper< xindexed_stepper< T, B > > (xt)
is_iterator (xt)
is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> > (xt)
is_narrowing_conversion (xt)
is_not_xdummy_iterator (xt)
is_not_xdummy_iterator< xdummy_iterator< is_const, CT > > (xt)
is_reducer_options (xt)
is_reducer_options_impl (xt)
is_reducer_options_impl< std::tuple< X... > > (xt)
is_specialization_of (xt)
is_specialization_of< TT, TT< Ts... > > (xt)
is_xoptional_expression (xt)
is_xtensor_expression (xt)
isfinite_fun (xt::math)
isinf_fun (xt::math)
isnan_fun (xt::math)
+
+
K
+
keep_dims_type (xt)
+
+
L
+
lazy_type (xt::evaluation_strategy)
lgamma_fun (xt::math)
line_width (xt::print_options)
linear_assigner (xt)
linear_assigner< false > (xt)
log10_fun (xt::math)
log1p_fun (xt::math)
log2_fun (xt::math)
log_fun (xt::math)
loop_sizes_t (xt::strided_assign_detail)
+
+
M
+
make_invalid_type (xt)
make_void (xt)
maximum (xt::math)
memory_range (xt)
meta_identity (xt)
minimum (xt::math)
missing_type (xt)
+
+
N
+
nearbyint_fun (xt::math)
nested_initializer_list (xt)
nested_initializer_list< T, 0 > (xt)
no_ownership (xt)
noalias_proxy (xt)
none (xt::check_policy)
norm_fun (xt::math)
norm_of_array_elements_impl (xt::traits_detail)
norm_of_array_elements_impl< long double, false, true > (xt::traits_detail)
norm_of_array_elements_impl< T, false, false > (xt::traits_detail)
norm_of_array_elements_impl< T, false, true > (xt::traits_detail)
norm_of_array_elements_impl< T, true, false > (xt::traits_detail)
norm_of_array_elements_impl< void *, false, false > (xt::traits_detail)
norm_of_scalar_impl (xt::traits_detail)
norm_of_scalar_impl< T, false > (xt::traits_detail)
norm_of_scalar_impl< T, true > (xt::traits_detail)
norm_of_vector_impl (xt::traits_detail)
norm_type (xt)
norm_type_base (xt::traits_detail)
numeric_constants (xt)
+
+
O
+
overlapping_memory_checker (xt)
overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > > (xt)
overlapping_memory_checker_base (xt)
overlapping_memory_checker_traits (xt)
overlapping_memory_checker_traits< E > (xt)
overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > > (xt)
overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > > (xt)
overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > > (xt)
+
+
P
+
pow_fun (xt::math)
precision (xt::print_options)
print_options_impl (xt::print_options)
promote_shape (xt)
promote_strides (xt)
+
+
R
+
rad2deg (xt::math)
rangemaker (xt::placeholders)
rangemaker< A, B > (xt::placeholders)
rangemaker< A, B, C > (xt::placeholders)
tracking_allocator::rebind (xt)
rebind_container (xt)
rebind_container< X, C< T, A > > (xt)
rebind_container< X, C< T, N > > (xt)
rebind_container< X, svector< T, N, A, B > > (xt)
reducer_options (xt)
remainder_fun (xt::math)
remove_class (xt)
remove_class< R(C::*)(Args...) const > (xt)
remove_class< R(C::*)(Args...)> (xt)
revert_simd_traits (xt_simd)
rint_fun (xt::math)
round_fun (xt::math)
+
+
S
+
select_dim_mapping_type (xt)
select_dim_mapping_type< fixed_shape< I... > > (xt)
select_iterable_base (xt)
select_layout (xt)
sequence_view (xt)
sign_fun (xt::math)
sign_impl (xt::math)
sign_impl< xtl::xoptional< T, B > > (xt::math)
simd_condition (xt_simd)
simd_traits (xt_simd)
sin_fun (xt::math)
sinh_fun (xt::math)
sqrt_fun (xt::math)
squared_norm_type (xt)
static_dimension (xt)
static_string (xt)
stepper_assigner (xt)
stepper_tools (xt)
strided_loop_assigner (xt)
svector (xt)
+
+
T
+
tan_fun (xt::math)
tanh_fun (xt::math)
temporary_container (xt)
temporary_container< xbuffer_adaptor< CP, O, A > > (xt)
temporary_container< xiterator_adaptor< I, CI > > (xt)
temporary_container< xiterator_owner_adaptor< C, IG > > (xt)
temporary_type (xt)
temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > > (xt)
temporary_type_from_tag (xt)
temporary_type_from_tag< xtensor_expression_tag, T > (xt)
tgamma_fun (xt::math)
threshold (xt::print_options)
tracking_allocator (xt)
transpose_error (xt)
trunc_fun (xt::math)
tuple_idx_of (xt)
tuple_idx_of_impl (xt)
tuple_idx_of_impl< I, T, std::tuple< T, Types... > > (xt)
tuple_idx_of_impl< I, T, std::tuple< U, Types... > > (xt)
tuple_idx_of_impl< I, T, std::tuple<> > (xt)
tuple_size< xt::const_array< T, N > > (std)
tuple_size< xt::fixed_shape< N... > > (std)
tuple_size< xt::sequence_view< T, Start, End > > (std)
+
+
U
+
unaligned_mode (xt)
unaligned_mode (xt_simd)
uvector (xt)
+
+
V
+
valid (xt::convolve_mode)
view_temporary_type (xt)
+
+
X
+
xaccessible (xt)
xaccumulator_functor (xt)
xall (xt)
xall_tag (xt)
xarray_adaptor (xt)
xarray_adaptor_base (xt::extension)
xarray_adaptor_base< EC, L, SC, xoptional_expression_tag > (xt::extension)
xarray_adaptor_base< EC, L, SC, xtensor_expression_tag > (xt::extension)
xarray_adaptor_optional_traits (xt::extension)
xarray_container (xt)
xarray_container_base (xt::extension)
xarray_container_base< EC, L, SC, xoptional_expression_tag > (xt::extension)
xarray_container_base< EC, L, SC, xtensor_expression_tag > (xt::extension)
xarray_container_optional_traits (xt::extension)
xarray_optional_traits (xt::extension)
xassign_traits (xt)
xaxis_iterator (xt)
xaxis_slice_iterator (xt)
xblockwise_reducer (xt)
xbounded_iterator (xt)
xbroadcast (xt)
xbroadcast_base (xt::extension)
xbroadcast_base_impl (xt::extension)
xbroadcast_base_impl< xoptional_expression_tag, CT, X > (xt::extension)
xbroadcast_base_impl< xtensor_expression_tag, CT, X > (xt::extension)
xbroadcast_optional (xt::extension)
xbuffer_adaptor (xt)
xbuffer_adaptor_base (xt)
xchunk_iterator (xt)
xchunked_array (xt)
xchunked_assigner (xt)
xchunked_semantic (xt)
xchunked_view (xt)
xclosure (xt)
xclosure< E, disable_xexpression< std::decay_t< E > > > (xt)
xclosure< xshared_expression< E >, std::enable_if_t< true > > (xt)
xconst_accessible (xt)
xconst_iterable (xt)
xcontainer (xt)
xcontainer_inner_types (xt)
xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > > (xt)
xcontainer_inner_types< xarray_container< EC, L, SC, Tag > > (xt)
xcontainer_inner_types< xbroadcast< CT, X > > (xt)
xcontainer_inner_types< xchunked_array< chunk_storage > > (xt)
xcontainer_inner_types< xdynamic_view< CT, S, L, FST > > (xt)
xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > (xt)
xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > > (xt)
xcontainer_inner_types< xfunction< F, CT... > > (xt)
xcontainer_inner_types< xfunctor_adaptor< F, CT > > (xt)
xcontainer_inner_types< xfunctor_view< F, CT > > (xt)
xcontainer_inner_types< xgenerator< C, R, S > > (xt)
xcontainer_inner_types< xindex_view< CT, I > > (xt)
xcontainer_inner_types< xmasked_view< CTD, CTM > > (xt)
xcontainer_inner_types< xoptional_assembly< VE, FE > > (xt)
xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > > (xt)
xcontainer_inner_types< xreducer< F, CT, X, O > > (xt)
xcontainer_inner_types< xscalar< CT > > (xt)
xcontainer_inner_types< xstrided_view< CT, S, L, FST > > (xt)
xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > > (xt)
xcontainer_inner_types< xtensor_container< EC, N, L, Tag > > (xt)
xcontainer_inner_types< xtensor_view< EC, N, L, Tag > > (xt)
xcontainer_inner_types< xview< CT, S... > > (xt)
xcontainer_iterable_types (xt)
xcontainer_optional_base (xt::extension)
xcontainer_semantic (xt)
xcontiguous_iterable (xt)
xcsv_config (xt)
xdrop_slice (xt)
xdummy_iterator (xt)
xdynamic_view (xt)
xdynamic_view_base (xt::extension)
xdynamic_view_base_impl (xt::extension)
xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST > (xt::extension)
xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST > (xt::extension)
xdynamic_view_optional (xt::extension)
xellipsis_tag (xt)
xexpression (xt)
xexpression_assigner (xt)
xexpression_assigner_base (xt)
xexpression_assigner_base< xoptional_expression_tag > (xt)
xexpression_assigner_base< xtensor_expression_tag > (xt)
xexpression_holder (xt)
xexpression_tag (xt)
xfiltration (xt)
xfixed_adaptor (xt)
xfixed_container (xt)
xfunction (xt)
xfunction_base (xt::extension)
xfunction_base_impl (xt::extension)
xfunction_base_impl< xoptional_expression_tag, F, CT... > (xt::extension)
xfunction_base_impl< xtensor_expression_tag, F, CT... > (xt::extension)
xfunction_cache (xt)
xfunction_iterator (xt)
xfunction_optional_base (xt::extension)
xfunction_stepper (xt)
xfunctor_adaptor (xt)
xfunctor_applier_base (xt)
xfunctor_iterator (xt)
xfunctor_stepper (xt)
xfunctor_view (xt)
xfunctor_view_base (xt::extension)
xfunctor_view_base_impl (xt::extension)
xfunctor_view_base_impl< xoptional_expression_tag, F, CT > (xt::extension)
xfunctor_view_base_impl< xtensor_expression_tag, F, CT > (xt::extension)
xfunctor_view_optional (xt::extension)
xfunctor_view_temporary_type (xt)
xgenerator (xt)
xgenerator_base (xt::extension)
xgenerator_base_impl (xt::extension)
xgenerator_base_impl< xoptional_expression_tag, F, R, S > (xt::extension)
xgenerator_base_impl< xtensor_expression_tag, F, R, S > (xt::extension)
xgenerator_optional (xt::extension)
xindex_view (xt)
xindex_view_base (xt::extension)
xindex_view_base_impl (xt::extension)
xindex_view_base_impl< xoptional_expression_tag, CT, I > (xt::extension)
xindex_view_base_impl< xtensor_expression_tag, CT, I > (xt::extension)
xindex_view_optional (xt::extension)
xindexed_stepper (xt)
xinitial (xt)
xiterable (xt)
xiterable_inner_types (xt)
xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > > (xt)
xiterable_inner_types< xarray_container< EC, L, SC, Tag > > (xt)
xiterable_inner_types< xbroadcast< CT, X > > (xt)
xiterable_inner_types< xchunked_array< chunk_storage > > (xt)
xiterable_inner_types< xdynamic_view< CT, S, L, FST > > (xt)
xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > (xt)
xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > > (xt)
xiterable_inner_types< xfunction< F, CT... > > (xt)
xiterable_inner_types< xgenerator< C, R, S > > (xt)
xiterable_inner_types< xindex_view< CT, I > > (xt)
xiterable_inner_types< xmasked_view< CTD, CTM > > (xt)
xiterable_inner_types< xoptional_assembly< VE, FE > > (xt)
xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > > (xt)
xiterable_inner_types< xreducer< F, CT, X, O > > (xt)
xiterable_inner_types< xrepeat< CT, R > > (xt)
xiterable_inner_types< xscalar< CT > > (xt)
xiterable_inner_types< xstrided_view< CT, S, L, FST > > (xt)
xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > > (xt)
xiterable_inner_types< xtensor_container< EC, N, L, Tag > > (xt)
xiterable_inner_types< xtensor_view< EC, N, L, Tag > > (xt)
xiterable_inner_types< xview< CT, S... > > (xt)
xiterator (xt)
xiterator_adaptor (xt)
xiterator_owner_adaptor (xt)
xkeep_slice (xt)
xmasked_value (xt)
xmasked_view (xt)
xmasked_view_stepper (xt)
xmultiindex_iterator (xt)
xnewaxis (xt)
xnewaxis_tag (xt)
xoptional_assembly (xt)
xoptional_assembly_adaptor (xt)
xoptional_assembly_base (xt)
xoptional_assembly_linear_iterator (xt)
xoptional_assembly_linear_iterator_traits (xt)
xoptional_assembly_stepper (xt)
xoptional_assembly_storage (xt)
xoptional_comparable (xt)
xoptional_empty_base (xt::extension)
xoptional_expression_tag (xt)
xproxy_inner_types (xt)
xrange (xt)
xrange_adaptor (xt)
xreducer (xt)
xreducer_base (xt::extension)
xreducer_base_impl (xt::extension)
xreducer_base_impl< xoptional_expression_tag, F, CT, X, O > (xt::extension)
xreducer_base_impl< xtensor_expression_tag, F, CT, X, O > (xt::extension)
xreducer_functors (xt)
xreducer_optional (xt::extension)
xreducer_shape_type (xt)
xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O > (xt)
xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type > (xt)
xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type > (xt)
xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type > (xt)
xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type > (xt)
xreducer_stepper (xt)
xrepeat (xt)
xrepeat_base (xt::extension)
xrepeat_base_impl (xt::extension)
xrepeat_base_impl< xoptional_expression_tag, CT, X > (xt::extension)
xrepeat_base_impl< xtensor_expression_tag, CT, X > (xt::extension)
xrepeat_optional (xt::extension)
xrepeat_stepper (xt)
xscalar (xt)
xscalar_base (xt::extension)
xscalar_base_impl (xt::extension)
xscalar_base_impl< xoptional_expression_tag, CT > (xt::extension)
xscalar_base_impl< xtensor_expression_tag, CT > (xt::extension)
xscalar_optional_base (xt::extension)
xscalar_optional_traits (xt::extension)
xscalar_stepper (xt)
xsemantic_base (xt)
xsharable_expression (xt)
xshared_expression (xt)
xslice (xt)
xstepped_range (xt)
xstepper (xt)
xstrided_container (xt)
xstrided_view (xt)
xstrided_view_base (xt::extension)
xstrided_view_base (xt)
xstrided_view_base_impl (xt::extension)
xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST > (xt::extension)
xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST > (xt::extension)
xstrided_view_optional (xt::extension)
xtensor_adaptor (xt)
xtensor_adaptor_base (xt::extension)
xtensor_adaptor_base< EC, N, L, xoptional_expression_tag > (xt::extension)
xtensor_adaptor_base< EC, N, L, xtensor_expression_tag > (xt::extension)
xtensor_adaptor_optional_traits (xt::extension)
xtensor_container (xt)
xtensor_container_base (xt::extension)
xtensor_container_base< EC, N, L, xoptional_expression_tag > (xt::extension)
xtensor_container_base< EC, N, L, xtensor_expression_tag > (xt::extension)
xtensor_container_optional_traits (xt::extension)
xtensor_empty_base (xt::extension)
xtensor_expression_tag (xt)
xtensor_optional_traits (xt::extension)
xtensor_view (xt)
xtensor_view_base (xt::extension)
xtensor_view_base< EC, N, L, xoptional_expression_tag > (xt::extension)
xtensor_view_base< EC, N, L, xtensor_expression_tag > (xt::extension)
xtensor_view_optional_traits (xt::extension)
xtuph (xt::placeholders)
xvectorizer (xt)
xview (xt)
xview_base (xt::extension)
xview_base_impl (xt::extension)
xview_base_impl< xoptional_expression_tag, CT, S... > (xt::extension)
xview_base_impl< xtensor_expression_tag, CT, S... > (xt::extension)
xview_optional (xt::extension)
xview_semantic (xt)
xview_shape_type (xt)
xview_shape_type< fixed_shape< I... >, S... > (xt)
xview_shape_type< std::array< I, L >, S... > (xt)
xview_stepper (xt)
+
+
+
+ + + + diff --git a/classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html b/classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html new file mode 100644 index 000000000..da6306d2c --- /dev/null +++ b/classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: std::tuple_size< xt::const_array< T, N > > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
std::tuple_size< xt::const_array< T, N > > Class Template Reference
+
+
+
+Inheritance diagram for std::tuple_size< xt::const_array< T, N > >:
+
+
+ +
+

Detailed Description

+
template<class T, std::size_t N>
+class std::tuple_size< xt::const_array< T, N > >
+

Definition at line 1946 of file xstorage.hpp.

+

The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.png b/classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2534f3c05cd62431aefad4ad3d496e1e9b5ed824 GIT binary patch literal 926 zcmV;P17ZA$P)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0009i zNkl1BeZM{@9+I}PGFIBeN z9#n?B-y`g6*-m5`XGQKZFuL2d;a2VU?)Gu^tjMjgi+9_!skKG7+ECTWb2D|NRdsS( z6MKA1>QVJ&k_*?n{fOv|D{q+@+J0|vvIwE&a?AgfyAdV(B z07TKm27oA<*Z>ek6B_`cXkr6E6isXZh@y!N08uot0U(MdHULD?#0G#Un%DpkMH3qU zepM-@6i-N!6ipLblA>s0OHve7*!j;scZf+RNawM;65UTSkUMj29`eg2+Z?Jcsw-KTTR{o>|;O-O#s+c!72w^y6;tIPJ&RO}v0QcpW} zlFCSu9fvt%waitEJ42GH(KG9;<_K>g>6#y7yYe?j40dhV`{xkrckYGd{H^NYaF4w8 zqyNTk<(#iKNo5=&*aG)Oehs^7A+Gq=MPKL_u&X`g%2d~+RO1LcXM6x|TUsNTy=+S= z!yalBS9Pk5-7E4#6>UMdj6KeFlFF#CbE6yI?NX=y@|D)qtM1X=?qCn^w&Odw+opTu z_Gy6cck*Jj?&MYP^4}0wT{8^b5xZAohD;}5nZJ*ci9Z#noe_R_oR%u3QNomzc{ z`d`cTQ(j!gmZbkj6I+s^XktrJ6uq!hN-3QF0RHqTHL=r{761SM07*qoM6N<$f)|F$ A)Bpeg literal 0 HcmV?d00001 diff --git a/classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html b/classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..0fb793684 --- /dev/null +++ b/classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: std::tuple_size< xt::fixed_shape< N... > > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
std::tuple_size< xt::fixed_shape< N... > > Class Template Reference
+
+
+
+Inheritance diagram for std::tuple_size< xt::fixed_shape< N... > >:
+
+
+ +
+

Detailed Description

+
template<std::size_t... N>
+class std::tuple_size< xt::fixed_shape< N... > >
+

Definition at line 1951 of file xstorage.hpp.

+

The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.png b/classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c623ccf1e5fed2e39044af4a71272763120f17d8 GIT binary patch literal 1066 zcmeAS@N?(olHy`uVBq!ia0y~yU=#wf12~w03f*F8(FfeDDeT9L6d8?<3V@L(#+qt)^9xL#) zxSP+d{I7mb#qL1ChP{QG<9E-GQQPXs@k8*Dn4sXwUyc(}R@rp6sQ4md-br7R*K7B- zKhaBk+tar9mZS{dh4AxfLb=Xsmfik;+Cy*Mug4x9MGH;~+DTO}{8FPBIko9Y=EogV z;`K|X*zEH<{V3J2;;&xl)XR6%Om9|Qk<*&~*00Ps!bV4T{q|MUt0knb3Fl8(vwDUS z=cXwN-Ye}_?OJaoo|UzqJ2% znbWbl|JTc8&m{cLWq&t;hlhXSjfB+fHxK40L^@qc3tPoE;mtnn&woAmlGAh(S7HV zQX4D(%`um*&y$_g_>gmwmb!o59MhM^8L9piXL~oRmF&JXTY9;j#p?D+FWJrg%$pZW zr=S0jZhlVZXi3lQX6H%bU&GWV{i)k)KGn|fzT>6hyPG1*e@}j*9@6{m*@XMuN0O(j z)Gt=Me(g7VyUPD?RiQ~H$k=v*i_4N#>uz4Le9M=&(%Vn2>y7?xb;vA9 z+H&>jwJZM@{lC3Oi zlhmZLz;C(Qg(}q=S6-R#eYGKa$LDjYmdAS&`2!|d#Woey6s%L!Tz)`o&-@9xC)O)O z)|mdz(L0;;pw2dIlF0>D4fmI&0xX*~CWd(3U751*rdb*Lapfetytha1`cJ&mJ!yhh z=7cq#-z}zZdARTS<)R0-RYP`GpZO4_H*@XxJiVJtm8bu)J^t659H)QJB6Z94`(KW| z{4_%)_WH$x6PK*ayHhl&BwSwR-|Y!|gzh?8cwLHrb>eBhgOca}0DHksmA~`7R3@b$ h<0^&D4v*0D^3Pv*%Z1#zWB|<744$rjF6*2UngDq8*MR^4 literal 0 HcmV?d00001 diff --git a/classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html b/classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html new file mode 100644 index 000000000..10d1b5c6d --- /dev/null +++ b/classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: std::tuple_size< xt::sequence_view< T, Start, End > > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
std::tuple_size< xt::sequence_view< T, Start, End > > Class Template Reference
+
+
+
+Inheritance diagram for std::tuple_size< xt::sequence_view< T, Start, End > >:
+
+
+ +
+

Detailed Description

+
template<class T, std::ptrdiff_t Start, std::ptrdiff_t End>
+class std::tuple_size< xt::sequence_view< T, Start, End > >
+

Definition at line 1956 of file xstorage.hpp.

+

The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.png b/classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7e89f3f9cbad67082b0ae4307e22cecc76e78ac4 GIT binary patch literal 1245 zcmeAS@N?(olHy`uVBq!ia0y~yU4pU3rpddq-din~+~&(6^ug0(y@9dz%$Z9$-6p9{@(D6jJsBe!Jn2j* zjB)iy$^W7=U*+{L?iZb&8kk`^|3Oi6>95z%j;)QH{6^XC*0!vVw)%Akzxd|ZpPQn> zy!SMac-wMs&s(`hg}BdW4t_CaJMUogyr z$if(jYX)0g%51Yv9Gh&Tnz=g8u-CZu)a4&6lNX=*dLEsVeELm02nB>+k)O zS#r6`%DT_%P^4{adi>tM($5SpZ_ZhjoeYKNxCZ;S%@|v_$YnjT-)o=!Tu<_`Fy!z&zB!i!~I_sNO zs>Hr7zwhSo{NwYkl`6en3BM$lrmv98;y%gZdyBt~ zxrFR{>#w5c9v03hyJn}pvftqGx7%-9j_p>P@4~4ab*$mGVaq;C$BKPF z^ktRJwqE6Bj)jrJf2X|4?B}}lLC0V9>%-nA_RUdeBPG(F-O)>5_V>44`Ml-p+>01Lw8&rVv!Bnf U4QLnT1{OpNp00i_>zopr02{J!4gdfE literal 0 HcmV?d00001 diff --git a/classxt_1_1aligned__array-members.html b/classxt_1_1aligned__array-members.html new file mode 100644 index 000000000..d3aae7a82 --- /dev/null +++ b/classxt_1_1aligned__array-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::aligned_array< T, N, Align > Member List
+
+
+ +

This is the complete list of members for xt::aligned_array< T, N, Align >, including all inherited members.

+ + +
allocator_type typedef (defined in xt::aligned_array< T, N, Align >)xt::aligned_array< T, N, Align >
+
+ + + + diff --git a/classxt_1_1aligned__array.html b/classxt_1_1aligned__array.html new file mode 100644 index 000000000..882c1d02c --- /dev/null +++ b/classxt_1_1aligned__array.html @@ -0,0 +1,166 @@ + + + + + + + +xtensor: xt::aligned_array< T, N, Align > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::aligned_array< T, N, Align > Class Template Reference
+
+
+ +

This array class is modeled after std::array but adds optional alignment through a template parameter. + More...

+ +

#include <xstorage.hpp>

+
+Inheritance diagram for xt::aligned_array< T, N, Align >:
+
+
+ +
+ + + + +

+Public Types

using allocator_type = std::conditional_t<Align != 0, xt_simd::aligned_allocator<T, Align>, std::allocator<T>>
 
+

Detailed Description

+
template<class T, std::size_t N, std::size_t Align = ( 0 != 0 ? 0: alignof(T))>
+class xt::aligned_array< T, N, Align >

This array class is modeled after std::array but adds optional alignment through a template parameter.

+

To be moved to xtl, along with the rest of xstorage.hpp

+ +

Definition at line 1425 of file xstorage.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type

+ +
+
+
+template<class T, std::size_t N, std::size_t Align = ( 0 != 0 ? 0: alignof(T))>
+ + + + +
using xt::aligned_array< T, N, Align >::allocator_type = std::conditional_t<Align != 0, xt_simd::aligned_allocator<T, Align>, std::allocator<T>>
+
+ +

Definition at line 1431 of file xstorage.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1aligned__array.png b/classxt_1_1aligned__array.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cf335d68678fd74dea29869b763bb278431e92 GIT binary patch literal 745 zcmeAS@N?(olHy`uVBq!ia0vp^2Z1<%gBeIpU-r-gNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cwk@ZbSZ-1KbN5}+JsNswPK1CS2}=1jA%FfcHcc)B=-R4~4sd$;Jd0#8f0 z`OVt@>g)V@o}J%uW$ocaH{%>31&ow~PVOvXnlxv1HA~{z-lY%! zt?>Q(NW$Lt!kSx|cAg*3KmILXzI5rsi2KgJk5?;nrDTa7{5jvF$j4sQz-a59&DwP> zjazo=6t3g=^hfC=<6VUn=F`uLNCr;+%JE1(-{{V%Mbi{Q(v@zo2d!Dh;Utr1bZ5mA zqr$Gw_8gO#&Kn$jYzQc6(&3`Dc?f(1tgOPtu*&aFg;rJPc z-Tj;Ie&dMxKIv20kpoLsot(0DMUqyeO_{WP(Z4qoQ(Q^qUoYpcUSO>qYF-c zPTHss|$^N`WZE2X`oGXqh9HIN;RU?<5d3i2Y zgt_ES#B%e%zf4QwjEi2y1>I}A|KzrRd3mCB;lsuDrY;v2+SewkioWG%(7VHb{6SIw zq$^k7Uf|s=e@@Bsm;O_hNhaZb3ZBJV1!v4$yGDPf$eRM)q}vX_M9JXk>gTe~DWM4f D1O;2b literal 0 HcmV?d00001 diff --git a/classxt_1_1broadcast__error-members.html b/classxt_1_1broadcast__error-members.html new file mode 100644 index 000000000..a26dabc37 --- /dev/null +++ b/classxt_1_1broadcast__error-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::broadcast_error Member List
+
+
+ +

This is the complete list of members for xt::broadcast_error, including all inherited members.

+ + +
broadcast_error(const char *msg) (defined in xt::broadcast_error)xt::broadcast_errorinlineexplicit
+
+ + + + diff --git a/classxt_1_1broadcast__error.html b/classxt_1_1broadcast__error.html new file mode 100644 index 000000000..3d9cf8c62 --- /dev/null +++ b/classxt_1_1broadcast__error.html @@ -0,0 +1,167 @@ + + + + + + + +xtensor: xt::broadcast_error Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::broadcast_error Class Reference
+
+
+
+Inheritance diagram for xt::broadcast_error:
+
+
+ +
+ + + + +

+Public Member Functions

 broadcast_error (const char *msg)
 
+

Detailed Description

+
+

Definition at line 63 of file xexception.hpp.

+

Constructor & Destructor Documentation

+ +

◆ broadcast_error()

+ +
+
+ + + + + +
+ + + + + + + +
xt::broadcast_error::broadcast_error (const char * msg)
+
+inlineexplicit
+
+ +

Definition at line 67 of file xexception.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xexception.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1broadcast__error.png b/classxt_1_1broadcast__error.png new file mode 100644 index 0000000000000000000000000000000000000000..54810cc48ebe216c4ad37cb6bcef83d7ddb6fa24 GIT binary patch literal 549 zcmeAS@N?(olHy`uVBq!ia0vp^{mhF84;}!;P0xlc0m^Zf1o;Is0Qq2G&NTZ90|Vm*PZ!6K3dXl{FHUP#;BiTh zv-e0m6X)qwOC0nlVoo`&?XjuZ!E;w^v$p5kua0*zEKaBY`j)m!zgYDp z@6(ub+?@R4)pF5H?6Ye#?i~A;sb>COnuq;P zNriP|jr+;%e_skseO)m>{^7a$y4lw)fSeWU>LL$(ta`m@_qnB0qK*8Jd`a|$*) z>z{wp`+4uFUe*_{EcNd?=)SUCwn?;i{d1#Z<$wK-oxXbJP0V9EBcPMO?&|cO^!+t^ YoOoaT-kzFVdQ&MBb@0AF$lp#T5? literal 0 HcmV?d00001 diff --git a/classxt_1_1concatenate__error-members.html b/classxt_1_1concatenate__error-members.html new file mode 100644 index 000000000..3b54ea3de --- /dev/null +++ b/classxt_1_1concatenate__error-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::concatenate_error Member List
+
+
+ +

This is the complete list of members for xt::concatenate_error, including all inherited members.

+ + +
concatenate_error(const char *msg) (defined in xt::concatenate_error)xt::concatenate_errorinlineexplicit
+
+ + + + diff --git a/classxt_1_1concatenate__error.html b/classxt_1_1concatenate__error.html new file mode 100644 index 000000000..51496ce0e --- /dev/null +++ b/classxt_1_1concatenate__error.html @@ -0,0 +1,167 @@ + + + + + + + +xtensor: xt::concatenate_error Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::concatenate_error Class Reference
+
+
+
+Inheritance diagram for xt::concatenate_error:
+
+
+ +
+ + + + +

+Public Member Functions

 concatenate_error (const char *msg)
 
+

Detailed Description

+
+

Definition at line 80 of file xexception.hpp.

+

Constructor & Destructor Documentation

+ +

◆ concatenate_error()

+ +
+
+ + + + + +
+ + + + + + + +
xt::concatenate_error::concatenate_error (const char * msg)
+
+inlineexplicit
+
+ +

Definition at line 84 of file xexception.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xexception.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1concatenate__error.png b/classxt_1_1concatenate__error.png new file mode 100644 index 0000000000000000000000000000000000000000..a6b2baac9f873d762679d965a56222418b79f3cf GIT binary patch literal 556 zcmV+{0@MA8P)x~0000RP)t-s|Ns90 z008Lh^>vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0005E zNkle%9Oo+K1z)oL5lCuqzq`8(52_Y$H z2(h^zA>P}*vx5&IBOfGcI%<10 zdNNK`aQUj4v)vbFI^ zv{Cye1f{A5!iR>$sIOngksW^i5Q4tB4C!V^9b4;?oPP7Oy#{0_4JB!0`3IH|l7bS# zL6GER1Aq_h1^~0|3J|y31t_inac7uMaS4dbj)VY!XbF)J0D=-CApis=L_z=vN{EC2 z5R?!J0U+pCAV_kyfo5iNEg=%Z%z{o3uMmy;zP_tVL9FGHvPVOymIv?8v$Gbl+4;|N zEvuBmIs8e`>?Hr_I>*gh%^l5Zdl4MrI<`H zUHAV%)Ga)Ph{xXR6=U;Q>ls7{lvcsieIHF(w uY_9OEYWBCV`5M~yX5DtPQC)*$FU!Ii+sV_(X0000 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xbroadcast_optional< CT, X > Member List
+
+ +
+ + + + diff --git a/classxt_1_1extension_1_1xbroadcast__optional.html b/classxt_1_1extension_1_1xbroadcast__optional.html new file mode 100644 index 000000000..275b4e02f --- /dev/null +++ b/classxt_1_1extension_1_1xbroadcast__optional.html @@ -0,0 +1,320 @@ + + + + + + + +xtensor: xt::extension::xbroadcast_optional< CT, X > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xbroadcast_optional< CT, X > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xbroadcast_optional< CT, X >:
+
+
+ + +xt::extension::xoptional_empty_base< xbroadcast< CT, X > > + +
+ + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using value_expression = xbroadcast<xt::detail::value_expression_t<CT>, X>
 
using flag_expression = xbroadcast<xt::detail::flag_expression_t<CT>, X>
 
using const_value_expression = value_expression
 
using const_flag_expression = flag_expression
 
- Public Types inherited from xt::extension::xoptional_empty_base< xbroadcast< CT, X > >
using expression_tag
 
+ + + + + +

+Public Member Functions

const_value_expression value () const
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xbroadcast< CT, X > >
xbroadcast< CT, X > & derived_cast () noexcept
 
const xbroadcast< CT, X > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT, class X>
+class xt::extension::xbroadcast_optional< CT, X >
+

Definition at line 559 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xbroadcast_optional< CT, X >::const_flag_expression = flag_expression
+
+ +

Definition at line 567 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xbroadcast_optional< CT, X >::const_value_expression = value_expression
+
+ +

Definition at line 566 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xbroadcast_optional< CT, X >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 563 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xbroadcast_optional< CT, X >::flag_expression = xbroadcast<xt::detail::flag_expression_t<CT>, X>
+
+ +

Definition at line 565 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xbroadcast_optional< CT, X >::value_expression = xbroadcast<xt::detail::value_expression_t<CT>, X>
+
+ +

Definition at line 564 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value()

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + + + + +
auto xt::extension::xbroadcast_optional< CT, X >::has_value () const
+
+inline
+
+ +

Definition at line 1047 of file xoptional.hpp.

+ +
+
+ +

◆ value()

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + + + + +
auto xt::extension::xbroadcast_optional< CT, X >::value () const
+
+inline
+
+ +

Definition at line 1041 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xbroadcast__optional.png b/classxt_1_1extension_1_1xbroadcast__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..83b36647609952eefb0841f3f313db2c82d59641 GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0y~yU`ztC12~w0q=7uZl`g3yu2rtf9zV>V}Z{b&$d;& zzuRJLHkUd7+GU&lxiQV(gEVryrt0J>uW-tk9qlj7H}$K)$Aa0_*2edaSa%%G*f6cp z-1=c`Xf{V>SB1V5`=h-vb0*ab6c%Pan=@}o-S5=`*ZHdtEbllQ)fZyQZ8q=SnMa&Y z_610UzvWu}*}~Q4)yyqlBW+CI3vS=I#d`~T!j8A<+Pn3;cb|Tu(tUbrK>u33F2jwC zk4{})BQ{^bFQxKTpznw4TP==XOs?A@CLjL8@=tJbLGmaUj^@`|1Z>jw(;%DIQ10_TbaEBjzz!L4xhLy?0dY5Wx&d#DnILD zef%c{`<_zt{FiDga#md-Zv85~!e2rbo0U(>Urkp0)2H)qjf~n!_9wkFRQ?yEMj$9A z?+WOj-qZq&>p3h8`@Q2C1eh4~S(6w(T)7@@z{cPXX7&~Unf5?tK^OxY127dZ6oe|! zhw<0$h~`oeFHKc_Mb99QNi`xJswYDmBPPX&!Wdtb9({b!dHV9qbB8M~JYM^EiFeS~ zn)^R*zyFo=_TI#L`_70-%c{(iJf&8?joN>@|82!-&U&$rVj)}KN9)bl5^>h7`|sl1 zb<@ft)@jage|j)AkPfB(I1(;wB9HnI2W_>xq&_D?#qdE=x>z_eG{-uM65 z^9>u_3<`5@pPG=I|Ey#CSv#|UN%Jm$ZawtO<>aMlE?d`a+xhiM)`P>-ZpjtyW-Qy3 zCB0tocH48s{k$LJO!$se@3c^@Z@uxu;?p_568lGQ&K}rh+#TQer)r_W$F1%=3TCK= zT@KDJ5whwpS6=u3?&PDsy8nLa=!FN%29zfDPPcKGbNtJU`=QI?kujfy!S zGjrl&{q0rp8abcK@;+~S^Sy58pX>F~+l{tlZF#xF`rO;QDZdZwd-Seu_NRMd)t*&; z=dUMu{<7G+Z^rk>Ki+m+&)#bJZPJ%DG8ryn-ji1UGdwcsOD5NmNl#We=y?`~H*Wv{ literal 0 HcmV?d00001 diff --git a/classxt_1_1extension_1_1xcontainer__optional__base-members.html b/classxt_1_1extension_1_1xcontainer__optional__base-members.html new file mode 100644 index 000000000..2272f4a81 --- /dev/null +++ b/classxt_1_1extension_1_1xcontainer__optional__base-members.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xcontainer_optional_base< T > Member List
+
+ +
+ + + + diff --git a/classxt_1_1extension_1_1xcontainer__optional__base.html b/classxt_1_1extension_1_1xcontainer__optional__base.html new file mode 100644 index 000000000..93a366ad3 --- /dev/null +++ b/classxt_1_1extension_1_1xcontainer__optional__base.html @@ -0,0 +1,402 @@ + + + + + + + +xtensor: xt::extension::xcontainer_optional_base< T > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xcontainer_optional_base< T > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xcontainer_optional_base< T >:
+
+
+ + +xt::extension::xoptional_empty_base< T::derived_type > + +
+ + + + + + + + + + + + + + + + + +

+Public Types

using traits = T
 
using value_expression = typename traits::value_expression
 
using flag_expression = typename traits::flag_expression
 
using const_value_expression = typename traits::const_value_expression
 
using const_flag_expression = typename traits::const_flag_expression
 
using expression_tag = xoptional_expression_tag
 
- Public Types inherited from xt::extension::xoptional_empty_base< T::derived_type >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< T::derived_type >
T::derived_type & derived_cast () noexcept
 
const T::derived_type & derived_cast () const noexcept
 
+

Detailed Description

+
template<class T>
+class xt::extension::xcontainer_optional_base< T >
+

Definition at line 337 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class T>
+ + + + +
using xt::extension::xcontainer_optional_base< T >::const_flag_expression = typename traits::const_flag_expression
+
+ +

Definition at line 345 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class T>
+ + + + +
using xt::extension::xcontainer_optional_base< T >::const_value_expression = typename traits::const_value_expression
+
+ +

Definition at line 344 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class T>
+ + + + +
using xt::extension::xcontainer_optional_base< T >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 346 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class T>
+ + + + +
using xt::extension::xcontainer_optional_base< T >::flag_expression = typename traits::flag_expression
+
+ +

Definition at line 343 of file xoptional.hpp.

+ +
+
+ +

◆ traits

+ +
+
+
+template<class T>
+ + + + +
using xt::extension::xcontainer_optional_base< T >::traits = T
+
+ +

Definition at line 341 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class T>
+ + + + +
using xt::extension::xcontainer_optional_base< T >::value_expression = typename traits::value_expression
+
+ +

Definition at line 342 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::extension::xcontainer_optional_base< T >::has_value ()
+
+inline
+
+ +

Definition at line 948 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::extension::xcontainer_optional_base< T >::has_value () const
+
+inline
+
+ +

Definition at line 954 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::extension::xcontainer_optional_base< T >::value ()
+
+inline
+
+ +

Definition at line 936 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::extension::xcontainer_optional_base< T >::value () const
+
+inline
+
+ +

Definition at line 942 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xcontainer__optional__base.png b/classxt_1_1extension_1_1xcontainer__optional__base.png new file mode 100644 index 0000000000000000000000000000000000000000..c82fe6929ec7a79829c76ebc7b7a7f4ce41689b1 GIT binary patch literal 1162 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ks12~w0KMraK~HlYAyV(N%Sv)T6;U zDaFNef{L7`!jw2{@*vxo6k18{rv9s?WWb6 zzx``Xsf}T}CA!A2PvhF;+yDRV>~z0m=gud#sWRflJYMd|KgN>tYCb0K+x7Z+?$>kI z&PnSR&QIJ{DYJ}sw{rIMfagEDmq+JIFA3Y|&mo;9k!^CPYF5tWGjc*Q^OEe(-`xF` zuV@3O?cJ*r9+XVh=X@txD{v?Kr|OMvmetErS}6xfaMYRJCX5(BNcpaPbsiQ1WVG5C{}vY3P`w zz~C~4g;8M

Gyc3MT}+g!E&&EyGZ zzuWR$-#p=5!n3XBo6fYKzL##YZ*`|i?W)b8Z}_jiUCo}Pud)5wwaX{+PTWv)PdDj# z!pV1xJ^gX<2bIIKS-yAKalG65N9c`aQ@ir}pGpUJ&G~lZ?569}*@8cpy=vPXaa3=@ z?FQ>tk!d}=GClXU-Msaj<+oOzc#>_sH{Z7DKkKsP7f<%(<&g3h-hDYVM&74 zKPbL08vgd^*8Z~4H|^Wmtlu4-dQ$4Jc*=a4W$(@Q?vUE~F89`Zxfi>uH>&KNc`xVww?E^?GqcX^+CN~a O!QkoY=d#Wzp$P!r-W0_E literal 0 HcmV?d00001 diff --git a/classxt_1_1extension_1_1xdynamic__view__optional-members.html b/classxt_1_1extension_1_1xdynamic__view__optional-members.html new file mode 100644 index 000000000..a0d8149b4 --- /dev/null +++ b/classxt_1_1extension_1_1xdynamic__view__optional-members.html @@ -0,0 +1,133 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +

+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xdynamic_view_optional< CT, S, L, FST > Member List
+
+
+ +

This is the complete list of members for xt::extension::xdynamic_view_optional< CT, S, L, FST >, including all inherited members.

+ + + + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
const_value_expression typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
expression_tag typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
flag_expression typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
has_value() (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >inline
has_value() const (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >inline
ucft typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
ucvt typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
uft typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
uvt typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
value() (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >inline
value() const (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >inline
value_expression typedef (defined in xt::extension::xdynamic_view_optional< CT, S, L, FST >)xt::extension::xdynamic_view_optional< CT, S, L, FST >
+
+ + + + diff --git a/classxt_1_1extension_1_1xdynamic__view__optional.html b/classxt_1_1extension_1_1xdynamic__view__optional.html new file mode 100644 index 000000000..2f6058c3b --- /dev/null +++ b/classxt_1_1extension_1_1xdynamic__view__optional.html @@ -0,0 +1,462 @@ + + + + + + + +xtensor: xt::extension::xdynamic_view_optional< CT, S, L, FST > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xdynamic_view_optional< CT, S, L, FST > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xdynamic_view_optional< CT, S, L, FST >:
+
+
+ + +xt::extension::xoptional_empty_base< xdynamic_view< CT, S, L, FST > > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using uvt = typename std::decay_t<CT>::value_expression
 
using uft = typename std::decay_t<CT>::flag_expression
 
using ucvt = typename std::decay_t<CT>::const_value_expression
 
using ucft = typename std::decay_t<CT>::const_flag_expression
 
using value_expression = xdynamic_view<uvt, S, L, typename FST::template rebind_t<uvt>>
 
using flag_expression = xdynamic_view<uft, S, L, typename FST::template rebind_t<uft>>
 
using const_value_expression = xdynamic_view<ucvt, S, L, typename FST::template rebind_t<ucvt>>
 
using const_flag_expression = xdynamic_view<ucft, S, L, typename FST::template rebind_t<ucft>>
 
- Public Types inherited from xt::extension::xoptional_empty_base< xdynamic_view< CT, S, L, FST > >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xdynamic_view< CT, S, L, FST > >
xdynamic_view< CT, S, L, FST > & derived_cast () noexcept
 
const xdynamic_view< CT, S, L, FST > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT, class S, layout_type L, class FST>
+class xt::extension::xdynamic_view_optional< CT, S, L, FST >
+

Definition at line 524 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::const_flag_expression = xdynamic_view<ucft, S, L, typename FST::template rebind_t<ucft>>
+
+ +

Definition at line 536 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::const_value_expression = xdynamic_view<ucvt, S, L, typename FST::template rebind_t<ucvt>>
+
+ +

Definition at line 535 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 528 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::flag_expression = xdynamic_view<uft, S, L, typename FST::template rebind_t<uft>>
+
+ +

Definition at line 534 of file xoptional.hpp.

+ +
+
+ +

◆ ucft

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::ucft = typename std::decay_t<CT>::const_flag_expression
+
+ +

Definition at line 532 of file xoptional.hpp.

+ +
+
+ +

◆ ucvt

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::ucvt = typename std::decay_t<CT>::const_value_expression
+
+ +

Definition at line 531 of file xoptional.hpp.

+ +
+
+ +

◆ uft

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::uft = typename std::decay_t<CT>::flag_expression
+
+ +

Definition at line 530 of file xoptional.hpp.

+ +
+
+ +

◆ uvt

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::uvt = typename std::decay_t<CT>::value_expression
+
+ +

Definition at line 529 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xdynamic_view_optional< CT, S, L, FST >::value_expression = xdynamic_view<uvt, S, L, typename FST::template rebind_t<uvt>>
+
+ +

Definition at line 533 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xdynamic_view_optional< CT, S, L, FST >::has_value ()
+
+inline
+
+ +

Definition at line 1022 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xdynamic_view_optional< CT, S, L, FST >::has_value () const
+
+inline
+
+ +

Definition at line 1028 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xdynamic_view_optional< CT, S, L, FST >::value ()
+
+inline
+
+ +

Definition at line 1010 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xdynamic_view_optional< CT, S, L, FST >::value () const
+
+inline
+
+ +

Definition at line 1016 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xdynamic__view__optional.png b/classxt_1_1extension_1_1xdynamic__view__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..62e62c5169557d66e99eb56bb8dac2bbf563a5ea GIT binary patch literal 1415 zcmcK4|3A}t00;2TLSHoLQg=D-TKTXj2`!OZlx3g!+J~s-YaKnfOkrIl&eV3xkv2}JgS0RSUFbKpV)bS_w#hD8^PK;K}}+}s=*2Zy!vGrv`C*=T!sWl`&(N~J=3 zLR$zQJzJCl`v(E&{;%OO?}7pVjFv%Op25d3nu{-x8awRC3-$5U&*#{qC7+!#JX|u? z8t%%mKOW*}*!l$`+fx{`$i7ANd)OYblNZtulD|f7zMM}^nr~!_lz4ic1`p<2amb=w znJJrmkqFbyvsxdA+}jrF3`z4l_8FO0m-_17{k+LVRtvy5`l;m*SCPfqiaruBkrI~S z_R0!&u*~Oo?u@S!HVSL}`rX??a%NO4HC^qJIYL!y1dnR9^vQ&Q5Z>PQ2GfMv?svV} zk&+wNmK+_oTS~i5Q-dv9Coxu#+*`{Ncu8{DZy)m7ypm0r3lfKa{`K@5dY+KiXrQ4v zQim}PqfDRCbp#*9cxd_E@`&iAgS5U0?pCSqy@F|2e~3}!TPDaeS4IhGxKB(B?%tKOVb zWlvlcc5Ik9l-waySTf$;seYNtP>6|Lqw(P(30i023@exvORmzzZtUg?%BD)$AI`-& z_rG_2z_Wtiq^j%i(+YF=?)!=J54(jQIUQs8G?-Jli|2;pJV=`I9}D4CO=c7Zn^7~D zoxn|JNy$SbUZ1o&s&`#y+Uw*?N4naVT+v2PH`{ykO0Q)QT@5#!tN?nZxLc27&JIj& z53g73m5glDBL(;MHk8}K?TN*#)uP?;0gqg9@+=B(ja+u6$O4Ud2m(Iuq?>}NHLV!6|s4B7EP=>QWompyZOZ$P8ENcN*LQrtbb^BJjUVOyL&M z`m&h4g~t~Iv#xr;VZ!2x_A=9Yd1ABdXwjfasP(0G%v9B3_583N90$(UPM zV;I<&{i!NNum9iG;B$}zQ_2cpi8vp$1tC;B!bi1(aj15v*wd4O#6Bj$dbvT7L+Hn+ zs$m!RVgDxbzsk*YsB&Z?Yc>EzQZ8RvHJWWy{KGTeqYoX;258SFTG!FaD20S9Unk-} z%+I9$^sQ-o=Cd1zq%!%AuGbo6eU@LBR3zJ`)7aGGp*Kn2Szi1G(#DYWcMWGg_*%=u zDNdnFWJoJv<%VCnqp}-2k}QW}Ld(1NUyVAL+p1k5u)CiJY16|63|{EA3vBCG)$4W9 z@9*>n_28h9r092*l!3=}6-RU3@(;koekCymn^1I)A288F)+D6(?4jl|ar57$dvf8qy{BVS?a~8+jM4WA-WKL^?CraYpIP zX;4)~nt#RWJ6H9##JbDyA+NdK-9{i~8ue8~jFQ7vYb{R1=Oo@1t!N7KPI6571eSDg zF + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xfunction_optional_base< F, CT > Member List
+
+
+ +

This is the complete list of members for xt::extension::xfunction_optional_base< F, CT >, including all inherited members.

+ + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
const_value_expression typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
expression_tag typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
flag_expression typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
flag_functor typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
has_value() const (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >inline
has_value_impl(std::index_sequence< I... >) const -> const_flag_expression (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >inline
value() const (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >inline
value_expression typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
value_functor typedef (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >
value_impl(std::index_sequence< I... >) const -> const_value_expression (defined in xt::extension::xfunction_optional_base< F, CT >)xt::extension::xfunction_optional_base< F, CT >inline
+
+ + + + diff --git a/classxt_1_1extension_1_1xfunction__optional__base.html b/classxt_1_1extension_1_1xfunction__optional__base.html new file mode 100644 index 000000000..9e9fd956c --- /dev/null +++ b/classxt_1_1extension_1_1xfunction__optional__base.html @@ -0,0 +1,430 @@ + + + + + + + +xtensor: xt::extension::xfunction_optional_base< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xfunction_optional_base< F, CT > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xfunction_optional_base< F, CT >:
+
+
+ + +xt::extension::xoptional_empty_base< xfunction< F, CT... > > + +
+ + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using value_functor = F
 
using flag_functor = xt::detail::optional_bitwise<bool>
 
using value_expression = xfunction<value_functor, xt::detail::value_expression_t<CT>...>
 
using flag_expression = xfunction<flag_functor, xt::detail::flag_expression_t<CT>...>
 
using const_value_expression = value_expression
 
using const_flag_expression = flag_expression
 
- Public Types inherited from xt::extension::xoptional_empty_base< xfunction< F, CT... > >
using expression_tag
 
+ + + + + + + + + + + +

+Public Member Functions

const_value_expression value () const
 
const_flag_expression has_value () const
 
template<std::size_t... I>
auto value_impl (std::index_sequence< I... >) const -> const_value_expression
 
template<std::size_t... I>
auto has_value_impl (std::index_sequence< I... >) const -> const_flag_expression
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xfunction< F, CT... > >
xfunction< F, CT... > & derived_cast () noexcept
 
const xfunction< F, CT... > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class F, class... CT>
+class xt::extension::xfunction_optional_base< F, CT >
+

Definition at line 485 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::const_flag_expression = flag_expression
+
+ +

Definition at line 496 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::const_value_expression = value_expression
+
+ +

Definition at line 495 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 489 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::flag_expression = xfunction<flag_functor, xt::detail::flag_expression_t<CT>...>
+
+ +

Definition at line 494 of file xoptional.hpp.

+ +
+
+ +

◆ flag_functor

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::flag_functor = xt::detail::optional_bitwise<bool>
+
+ +

Definition at line 491 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::value_expression = xfunction<value_functor, xt::detail::value_expression_t<CT>...>
+
+ +

Definition at line 493 of file xoptional.hpp.

+ +
+
+ +

◆ value_functor

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::extension::xfunction_optional_base< F, CT >::value_functor = F
+
+ +

Definition at line 490 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunction_optional_base< F, CT >::has_value () const
+
+inline
+
+ +

Definition at line 973 of file xoptional.hpp.

+ +
+
+ +

◆ has_value_impl()

+ +
+
+
+template<class F, class... CT>
+
+template<std::size_t... I>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunction_optional_base< F, CT >::has_value_impl (std::index_sequence< I... > ) const -> const_flag_expression +
+
+inline
+
+ +

Definition at line 991 of file xoptional.hpp.

+ +
+
+ +

◆ value()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunction_optional_base< F, CT >::value () const
+
+inline
+
+ +

Definition at line 967 of file xoptional.hpp.

+ +
+
+ +

◆ value_impl()

+ +
+
+
+template<class F, class... CT>
+
+template<std::size_t... I>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunction_optional_base< F, CT >::value_impl (std::index_sequence< I... > ) const -> const_value_expression +
+
+inline
+
+ +

Definition at line 980 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xfunction__optional__base.png b/classxt_1_1extension_1_1xfunction__optional__base.png new file mode 100644 index 0000000000000000000000000000000000000000..9efec1d14a75414f8f1d6d0d085bd93483d18290 GIT binary patch literal 1208 zcmeAS@N?(olHy`uVBq!ia0y~yU`ztC12~w0q=bmdzwiA9EezQMTI`7iS*|nU8+`kVxnQNJE`mxbKKW)$1{cCe~$=zSOweGVB zf4{Z1z2WV0kCoAWmwJ|Wyw#ogKYH;8)vK$vG``r#^UUtjE1R>`T@_Vl7tfD=|7q?M z!+S4HR5#aT>`-4-!ByG$1>m@{ho#OFJ{EJzL~cFnugkh z<8BX|zNnkLe=PJdCoNHWb;V0NrFX?I`z_46vO|3?^_H*x@x!CEcTuGH5w#BAC87Ft z4Lc^}-UyBTbiVqdN&oY`*>}6&%YPED{;0d~*yn#j+xdUr(AcxHZfm}3lKs`Y&v&nV zd!zJt`QB49Tjdt4Gv`;iy}>oP@9MUhOHH(+?w{<*+&E#0^jh)BPtLzS`Auc#mBZ&e zChcEbzWtxL!29{D_Hn46&421Xsj#Yg|M?Y<_D396`8jWq;N&O&V>)N3I8W{HGzx(; z?ssg@y&VLMUq_~f^OwXKmM|!IbxJTOef>JMhfyH_%=ER8WOkS%WXQmx&B*KkjCqC@ zEkXJ)?Dz{cmoD+rRQ1xBG-c8f3DqP|u27|EO9J4Gy-gMSk_4X@{@4^(s<)oK?`++t zj^EGk{|4-KsC| z2c+Dxm;PNW@c#btu*&pH@1}WNlKg8haSbq-uO0`6^Z5Xjzy^i-Rr5zdUY=8fye9l( Zwtl6VdD-fIA+U^L@O1TaS?83{1OVgXJhcD- literal 0 HcmV?d00001 diff --git a/classxt_1_1extension_1_1xfunctor__view__optional-members.html b/classxt_1_1extension_1_1xfunctor__view__optional-members.html new file mode 100644 index 000000000..a515360bc --- /dev/null +++ b/classxt_1_1extension_1_1xfunctor__view__optional-members.html @@ -0,0 +1,133 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xfunctor_view_optional< F, CT > Member List
+
+
+ +

This is the complete list of members for xt::extension::xfunctor_view_optional< F, CT >, including all inherited members.

+ + + + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
const_value_expression typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
expression_tag typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
flag_expression typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
has_value() (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >inline
has_value() const (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >inline
ucft typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
ucvt typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
uft typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
uvt typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
value() (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >inline
value() const (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >inline
value_expression typedef (defined in xt::extension::xfunctor_view_optional< F, CT >)xt::extension::xfunctor_view_optional< F, CT >
+
+ + + + diff --git a/classxt_1_1extension_1_1xfunctor__view__optional.html b/classxt_1_1extension_1_1xfunctor__view__optional.html new file mode 100644 index 000000000..212a25e59 --- /dev/null +++ b/classxt_1_1extension_1_1xfunctor__view__optional.html @@ -0,0 +1,462 @@ + + + + + + + +xtensor: xt::extension::xfunctor_view_optional< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xfunctor_view_optional< F, CT > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xfunctor_view_optional< F, CT >:
+
+
+ + +xt::extension::xoptional_empty_base< xfunctor_view< F, CT > > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using uvt = typename std::decay_t<CT>::value_expression
 
using uft = typename std::decay_t<CT>::flag_expression
 
using ucvt = typename std::decay_t<CT>::const_value_expression
 
using ucft = typename std::decay_t<CT>::const_flag_expression
 
using value_expression = xfunctor_view<F, uvt>
 
using flag_expression = uft
 
using const_value_expression = xfunctor_view<F, ucvt>
 
using const_flag_expression = ucft
 
- Public Types inherited from xt::extension::xoptional_empty_base< xfunctor_view< F, CT > >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xfunctor_view< F, CT > >
xfunctor_view< F, CT > & derived_cast () noexcept
 
const xfunctor_view< F, CT > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class F, class CT>
+class xt::extension::xfunctor_view_optional< F, CT >
+

Definition at line 587 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::const_flag_expression = ucft
+
+ +

Definition at line 599 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::const_value_expression = xfunctor_view<F, ucvt>
+
+ +

Definition at line 598 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 591 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::flag_expression = uft
+
+ +

Definition at line 597 of file xoptional.hpp.

+ +
+
+ +

◆ ucft

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::ucft = typename std::decay_t<CT>::const_flag_expression
+
+ +

Definition at line 595 of file xoptional.hpp.

+ +
+
+ +

◆ ucvt

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::ucvt = typename std::decay_t<CT>::const_value_expression
+
+ +

Definition at line 594 of file xoptional.hpp.

+ +
+
+ +

◆ uft

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::uft = typename std::decay_t<CT>::flag_expression
+
+ +

Definition at line 593 of file xoptional.hpp.

+ +
+
+ +

◆ uvt

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::uvt = typename std::decay_t<CT>::value_expression
+
+ +

Definition at line 592 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class F, class CT>
+ + + + +
using xt::extension::xfunctor_view_optional< F, CT >::value_expression = xfunctor_view<F, uvt>
+
+ +

Definition at line 596 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class F, class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunctor_view_optional< F, CT >::has_value ()
+
+inline
+
+ +

Definition at line 1072 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class F, class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunctor_view_optional< F, CT >::has_value () const
+
+inline
+
+ +

Definition at line 1078 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class F, class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunctor_view_optional< F, CT >::value ()
+
+inline
+
+ +

Definition at line 1060 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class F, class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xfunctor_view_optional< F, CT >::value () const
+
+inline
+
+ +

Definition at line 1066 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xfunctor__view__optional.png b/classxt_1_1extension_1_1xfunctor__view__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..df46cd7a9ae7fddbb4a085cdbe3131450c25ab7a GIT binary patch literal 1250 zcmeAS@N?(olHy`uVBq!ia0y~yU@QW%12~w0r149>O+ZRIz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6CD+r%F{Fa=?cBFPCfYnL zv*&58e*eGgyj8qP&70lEs{{RyE(%rP{2*XdzftG(q^N1BokC)hd?u#!2w8fzX-%A* zvI5SKdeW+5-RquySmoxcM61pJ(x;qzaA?>3YvpDC`&CcMXt^8=+{;Kx+#9!Si=~ff+uRUwp=3V@K`>b5C>gBTAUf-H|{(trB#p%YWv+pHW z#~0hYes8VY@>$}wd~z1w*0m9P`S>5-YN(mUs;``$cst_7tz#2)_W8D{8`qr?pJTN* zux#J8ygf(nK5}`l?)LiHo|oSW;&!>_IZrmp?YN`X_;bIQ*!-eA^LghxS4!t8`|gl< zt@!ET*6(HK>K)F%UA+HsAy;|!tUlYs&nwg-?ON?eGeMC#Tz?U}H3tLxVwUHNy(L8pJ8*Nc4db<4E*apGA& zHy%9oz2?j9#kb@OgCqWY_{P+)``-BY#~t2u@I}^a-y?ss%j#13@5>$fc=t2w z+Z{XZmUEo<+17D8DPZ-T7gip(!m=$r>-PTJ$vA1wi_EVoC+A)xlQ|jNk;wT>tA_KRAwqgMk}eG3{Wka#1jf*TxI^bNyj@Ya+<0K z!w2)Pj0~C#9YIR$4IZ^MD#Z*OAt0u0hk7wXM=+3?pjyDd5ej4g4WSF;>V4NZFU^%f zUY$Z+Doa%~-8y3?IZZvGsu==j65MbS%0}t+t$43!>Stoh~M6KU;BU) z)|#_VXBJ%j#$)D|r(P@dE^`C>%dq(BZ;2I8_U-Xs=R9fMt2*83OYX1#z5KVCUOn&6 zUmI(_t&wj2EgC*)pX + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xgenerator_optional< F, R, S > Member List
+
+
+ +

This is the complete list of members for xt::extension::xgenerator_optional< F, R, S >, including all inherited members.

+ + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
const_value_expression typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
expression_tag typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
flag_closure typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
flag_expression typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
flag_functor typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
has_value() const (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >inline
value() const (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >inline
value_closure typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
value_expression typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
value_functor typedef (defined in xt::extension::xgenerator_optional< F, R, S >)xt::extension::xgenerator_optional< F, R, S >
+
+ + + + diff --git a/classxt_1_1extension_1_1xgenerator__optional.html b/classxt_1_1extension_1_1xgenerator__optional.html new file mode 100644 index 000000000..89884f3f1 --- /dev/null +++ b/classxt_1_1extension_1_1xgenerator__optional.html @@ -0,0 +1,400 @@ + + + + + + + +xtensor: xt::extension::xgenerator_optional< F, R, S > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xgenerator_optional< F, R, S > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xgenerator_optional< F, R, S >:
+
+
+ + +xt::extension::xoptional_empty_base< xgenerator< F, R, S > > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using value_closure = typename R::value_closure
 
using flag_closure = typename R::flag_closure
 
using value_functor = detail::value_functor_t<F>
 
using flag_functor = detail::flag_functor_t<F>
 
using value_expression = xgenerator<value_functor, value_closure, S>
 
using flag_expression = xgenerator<flag_functor, flag_closure, S>
 
using const_value_expression = value_expression
 
using const_flag_expression = flag_expression
 
- Public Types inherited from xt::extension::xoptional_empty_base< xgenerator< F, R, S > >
using expression_tag
 
+ + + + + +

+Public Member Functions

const_value_expression value () const
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xgenerator< F, R, S > >
xgenerator< F, R, S > & derived_cast () noexcept
 
const xgenerator< F, R, S > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class F, class R, class S>
+class xt::extension::xgenerator_optional< F, R, S >
+

Definition at line 854 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::const_flag_expression = flag_expression
+
+ +

Definition at line 866 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::const_value_expression = value_expression
+
+ +

Definition at line 865 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 858 of file xoptional.hpp.

+ +
+
+ +

◆ flag_closure

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::flag_closure = typename R::flag_closure
+
+ +

Definition at line 860 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::flag_expression = xgenerator<flag_functor, flag_closure, S>
+
+ +

Definition at line 864 of file xoptional.hpp.

+ +
+
+ +

◆ flag_functor

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::flag_functor = detail::flag_functor_t<F>
+
+ +

Definition at line 862 of file xoptional.hpp.

+ +
+
+ +

◆ value_closure

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::value_closure = typename R::value_closure
+
+ +

Definition at line 859 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::value_expression = xgenerator<value_functor, value_closure, S>
+
+ +

Definition at line 863 of file xoptional.hpp.

+ +
+
+ +

◆ value_functor

+ +
+
+
+template<class F, class R, class S>
+ + + + +
using xt::extension::xgenerator_optional< F, R, S >::value_functor = detail::value_functor_t<F>
+
+ +

Definition at line 861 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value()

+ +
+
+
+template<class F, class R, class S>
+ + + + + +
+ + + + + + + +
auto xt::extension::xgenerator_optional< F, R, S >::has_value () const
+
+inline
+
+ +

Definition at line 1230 of file xoptional.hpp.

+ +
+
+ +

◆ value()

+ +
+
+
+template<class F, class R, class S>
+ + + + + +
+ + + + + + + +
auto xt::extension::xgenerator_optional< F, R, S >::value () const
+
+inline
+
+ +

Definition at line 1222 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xgenerator__optional.png b/classxt_1_1extension_1_1xgenerator__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..706c10b0d14a662c37ecf5e78be4ec5f38e1c3ab GIT binary patch literal 1275 zcmb`H|5uWC6vrR3nd=+vG-qfmZRBFh`3=9WB$_0Tia1i)kJp{j@(|_lNs=-TS%smwVsmo{Wu& zSh3V~DF6T~Kw3Bx05Ck1W1SpO|5_=iM<2J?=s2p~ZbxzKwe8@kd&*!RV&WjO({Cs z)cDS_HdlJ#4^Ja?c&>v)-{D7x1-@r!ejeH=5GLR#GEc2jFA3aUq5%C0It3nD{QTI) zXvnMia*Y`)GR5cY-U*2%g)zE0qa)35V_8Y|!v5F#w@+OHOF^Pq+5Z-DN7 zP+xI&9bJ$cpJA_fV(u)OxQOVd-nJq06$3b(Ma3U9T+ua6laV^|8X-QNU0vLkAtPX) zAOerdd)rtB-p#+tC^`RhJ`g8dy6W; z&zIyp7EJUOhiqoO=j>7h+xH!NQkXKTsqfw!!8Ir66F595NtyV-7A9&*o7krJz{@6Y z}YPAfa5MG3aP8QZ@3DLfIstDKv0vCv^MO%sS88Fzq>UFm2_ z_p}Ey`oEppC|Vw^kt#Vule56F{V1K;4< z?pnpoqS=x4+KSvL>pBz6x4n7Q?4e!OVkUu}JQ<;e_TOb^`fs7b(rB2( zSq997yXr@kXVObep!=nA&Q>U96)zEb_7d&ss|oPZmW2%U9Z9Ef>E5e-U&L+oO z24LY<%k^edTotf*(5Tzf-_T&4HX#G&#%=7YH8!;$yT*4wJniWn*{eR+14Gu`&#E8I ztemZ6Lt!1pGn2_wNN``AYS@w;b}}++ + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xindex_view_optional< CT, I > Member List
+
+
+ +

This is the complete list of members for xt::extension::xindex_view_optional< CT, I >, including all inherited members.

+ + + + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
const_value_expression typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
expression_tag typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
flag_expression typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
has_value() (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >inline
has_value() const (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >inline
ucft typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
ucvt typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
uft typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
uvt typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
value() (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >inline
value() const (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >inline
value_expression typedef (defined in xt::extension::xindex_view_optional< CT, I >)xt::extension::xindex_view_optional< CT, I >
+
+ + + + diff --git a/classxt_1_1extension_1_1xindex__view__optional.html b/classxt_1_1extension_1_1xindex__view__optional.html new file mode 100644 index 000000000..b61253e59 --- /dev/null +++ b/classxt_1_1extension_1_1xindex__view__optional.html @@ -0,0 +1,462 @@ + + + + + + + +xtensor: xt::extension::xindex_view_optional< CT, I > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xindex_view_optional< CT, I > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xindex_view_optional< CT, I >:
+
+
+ + +xt::extension::xoptional_empty_base< xindex_view< CT, I > > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using uvt = typename std::decay_t<CT>::value_expression
 
using ucvt = typename std::decay_t<CT>::const_value_expression
 
using uft = typename std::decay_t<CT>::flag_expression
 
using ucft = typename std::decay_t<CT>::const_flag_expression
 
using value_expression = xindex_view<uvt, I>
 
using flag_expression = xindex_view<uft, I>
 
using const_value_expression = xindex_view<ucvt, I>
 
using const_flag_expression = xindex_view<ucft, I>
 
- Public Types inherited from xt::extension::xoptional_empty_base< xindex_view< CT, I > >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xindex_view< CT, I > >
xindex_view< CT, I > & derived_cast () noexcept
 
const xindex_view< CT, I > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT, class I>
+class xt::extension::xindex_view_optional< CT, I >
+

Definition at line 622 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::const_flag_expression = xindex_view<ucft, I>
+
+ +

Definition at line 634 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::const_value_expression = xindex_view<ucvt, I>
+
+ +

Definition at line 633 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 626 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::flag_expression = xindex_view<uft, I>
+
+ +

Definition at line 632 of file xoptional.hpp.

+ +
+
+ +

◆ ucft

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::ucft = typename std::decay_t<CT>::const_flag_expression
+
+ +

Definition at line 630 of file xoptional.hpp.

+ +
+
+ +

◆ ucvt

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::ucvt = typename std::decay_t<CT>::const_value_expression
+
+ +

Definition at line 628 of file xoptional.hpp.

+ +
+
+ +

◆ uft

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::uft = typename std::decay_t<CT>::flag_expression
+
+ +

Definition at line 629 of file xoptional.hpp.

+ +
+
+ +

◆ uvt

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::uvt = typename std::decay_t<CT>::value_expression
+
+ +

Definition at line 627 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT, class I>
+ + + + +
using xt::extension::xindex_view_optional< CT, I >::value_expression = xindex_view<uvt, I>
+
+ +

Definition at line 631 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class CT, class I>
+ + + + + +
+ + + + + + + +
auto xt::extension::xindex_view_optional< CT, I >::has_value ()
+
+inline
+
+ +

Definition at line 1103 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class CT, class I>
+ + + + + +
+ + + + + + + +
auto xt::extension::xindex_view_optional< CT, I >::has_value () const
+
+inline
+
+ +

Definition at line 1109 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class CT, class I>
+ + + + + +
+ + + + + + + +
auto xt::extension::xindex_view_optional< CT, I >::value ()
+
+inline
+
+ +

Definition at line 1091 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class CT, class I>
+ + + + + +
+ + + + + + + +
auto xt::extension::xindex_view_optional< CT, I >::value () const
+
+inline
+
+ +

Definition at line 1097 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xindex__view__optional.png b/classxt_1_1extension_1_1xindex__view__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..783164bd145f8dc7f4595f61740fa642da31f7a3 GIT binary patch literal 1227 zcmeAS@N?(olHy`uVBq!ia0y~yU`z(G12~w03f*F8(FfeDDeT9L6CCt;sF{Fa=?cCRsUTg5Q z%r3hcvj4wueqTOEqKtLtxwNvWizYX;3e0c)(VaPK*%cGt;28!JQ@T`|r}TIlg`J$C zk~|g0cq$=2=}n1^m6V$2`u3M6eyyB-?!mEL_kPs8`WzrP|7rEV;=+5@J)WNy`Pr}- zt7YD*ww{@Oef{p9=`)|b)yZE|S-JUU(#Ens8+s4g{rtRt`@JeN-)YBJzb{*NbJE=V zWmXEC*WWGRU!=PASN^qn=>Gqd0J zImhUhUHdxofBLhEW52!E$*nzHe9ZUnivQVbGbXQkwzBeQpSSrNTV4l=*B||?rRK&O z@9(^RwD8B}s9#fkmdAegl#>sVGm3kCOzwGUro@=v(O>^X z$X%B{^zQII>E)@n#8jt?rx?DKeC%}XnfH^mRW%~jwq0-Mrsri<``K)_dbzY}k84P? z(f0Rcd%tg8BpcUvUF_|z6zdstzuqbSAhUg0%*`dy`iuW&-Ffz_H~N^bfby}~^83@) zrnS8~nCdYpZmZnnC(pm8R8Eq~3gGtqWL;voB0s_AzOfx||D~J+_etwt+V+P(|J!Ht z@05<(N$;*SpGp7ARg)+6gc_-xjDRz2CHya&EM1m4YY_{>es6n*2}}(Js>uu-SI_%9 zu{C&rnaqVirUQ`K5hlde0MyIS5o$yq#$TsnOQ%fIS~|sGp+}I{q^2o7s+wUZBPJzH zg)zRWJ$`(WdHQngt^DVkcS(IZoR@N|*M8l9`)8-0{|lOAa_N4Gj;Hw7nTJas9krkJ z`|E3M3H^sN!uKt4oGb`UjW=)DRGZ)Py`8&0Zr1YIJ`$^!+yDPu`{;GnSnfyu@m1&l`r4=Fylz*yd-3(wMZWE`maAR;)Awh? z=aL_n-<&hHtK`&Lb$0De`Bv-7KUPos4S{LxT=rUtG_SJWzaR|SjvuBm(`s>M_zryzJU+y3DQ?}>1^t(4ZteUrf{}QM%^Y|o@)&JFi y(sHWFo?W3v)0P0E9Llhjm>%S{YD& + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xoptional_empty_base< D > Member List
+
+
+ +

This is the complete list of members for xt::extension::xoptional_empty_base< D >, including all inherited members.

+ + + + +
derived_cast() noexcept (defined in xt::extension::xoptional_empty_base< D >)xt::extension::xoptional_empty_base< D >inlineprotected
derived_cast() const noexcept (defined in xt::extension::xoptional_empty_base< D >)xt::extension::xoptional_empty_base< D >inlineprotected
expression_tag typedef (defined in xt::extension::xoptional_empty_base< D >)xt::extension::xoptional_empty_base< D >
+
+ + + + diff --git a/classxt_1_1extension_1_1xoptional__empty__base.html b/classxt_1_1extension_1_1xoptional__empty__base.html new file mode 100644 index 000000000..da15d57dc --- /dev/null +++ b/classxt_1_1extension_1_1xoptional__empty__base.html @@ -0,0 +1,229 @@ + + + + + + + +xtensor: xt::extension::xoptional_empty_base< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xoptional_empty_base< D > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xoptional_empty_base< D >:
+
+
+ + +xt::extension::xcontainer_optional_base< traits > + +
+ + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
+ + + + + +

+Protected Member Functions

D & derived_cast () noexcept
 
const D & derived_cast () const noexcept
 
+

Detailed Description

+
template<class D>
+class xt::extension::xoptional_empty_base< D >
+

Definition at line 57 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ expression_tag

+ +
+
+
+template<class D>
+ + + + +
using xt::extension::xoptional_empty_base< D >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 61 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ derived_cast() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
const D & xt::extension::xoptional_empty_base< D >::derived_cast () const
+
+inlineprotectednoexcept
+
+ +

Definition at line 892 of file xoptional.hpp.

+ +
+
+ +

◆ derived_cast() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
D & xt::extension::xoptional_empty_base< D >::derived_cast ()
+
+inlineprotectednoexcept
+
+ +

Definition at line 886 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xoptional__empty__base.png b/classxt_1_1extension_1_1xoptional__empty__base.png new file mode 100644 index 0000000000000000000000000000000000000000..385a8f1c4acd89e5f47f0626cd6a0deadbb145bc GIT binary patch literal 1090 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y*112~w0q}02Qra($Mz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6`K+glV@L(#+qn<>UTg8R zw0DM_{cZp8ty<;*gC!^L-Yu?DS#Naf*ui5p34g?wPMM^&bc&zGq$!h@EKpJQ^z(F^ zG-pzeilwTgXHk{^vHJNHcMtrLv6B94cFN$vqdnQ@CobXsm1s1nBv4(juKjm1XM zGuS@;+PpDu{;ALZ({9%;+UdLE@29WTGJmVG%PW8HIo`L=cir0h8cBvY=i;)ot}C`$ zT<5pNtUQvQG_R&}TSV&D&uq#+wmq)t(id6ZIPpwn;@q&{I|r)Nvi|+eVk?%1(~)+ zuk&AHxh2@>-RUD{^Jc#MFwtke_x>O9R>r^g-V6=i>L-?U!enCF_cNR`m98%T$|e5w zYxOcsCeK+fnPzq^{I+bdYtL1Yv#%dlU6w27_>^k8cjYmz;+^-lFmKtrGI#5wl0}!R z-6qw=-Je;o$3*32_?Lw#*Up;Wz8$N3xp2}K-@lvFpIyKFk2^)>rF_7oi7LyH1J?HB zlpwEFQ-T&TJV^e+&>+H4;$_5;@TEdUia}y(3d4aHoN5;t4lGb%W{5k<$}ndV4}*oO zBtrpE(Ss>KY0Z-i4Z)Kb8I}VT_<6EXLxElQnN2#Um%rGkbNZ9!A*V^2lX$$0R9;R= z@wlXUa>A0}Ns6A!`+O8nI^MG~p8Uk+>f^Te#V>NcysfyqVe*ChO3stMf7#D8*P?d% znVFBf&sZ(6`OnwCetvK1?~r-_&2PUGK5KgEwYP)-lj+8?>1lK4UbeU__;iLTTXwt@ z&+SErimr)IdQ&oIrc)U|_u}{1 zd^@Xaw!kM@@mpb;Cl>ZU`J=P@TLiyf*)oq~H=dtq-+V!Cb$QCSQ&uP5n3i(A5t^wS z&{H$n$9MVtlWK3js!lm&7#vvvux$Q=9b1U}ufzr}HlspI8%~ zcK3jGik0}JKZ;Lh0>jl`&3RJ2zh|4u+(|s1R;rSdfT=;{ + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xreducer_optional< F, CT, X, O > Member List
+
+
+ +

This is the complete list of members for xt::extension::xreducer_optional< F, CT, X, O >, including all inherited members.

+ + + + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
const_value_expression typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
expression_tag typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
flag_expression typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
flag_reducer typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
has_value() const (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >inline
rebound_functors_type typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
rebound_reduce_options_flag typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
rebound_reduce_options_values typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
rebound_result_type typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
result_type typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
value() const (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >inline
value_expression typedef (defined in xt::extension::xreducer_optional< F, CT, X, O >)xt::extension::xreducer_optional< F, CT, X, O >
+
+ + + + diff --git a/classxt_1_1extension_1_1xreducer__optional.html b/classxt_1_1extension_1_1xreducer__optional.html new file mode 100644 index 000000000..abfeba6a5 --- /dev/null +++ b/classxt_1_1extension_1_1xreducer__optional.html @@ -0,0 +1,440 @@ + + + + + + + +xtensor: xt::extension::xreducer_optional< F, CT, X, O > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xreducer_optional< F, CT, X, O > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xreducer_optional< F, CT, X, O >:
+
+
+ + +xt::extension::xoptional_empty_base< xreducer< F, CT, X, O > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using result_type = typename F::init_value_type
 
using rebound_result_type = typename result_type::value_type
 
using rebound_functors_type = typename F::template rebind_t<rebound_result_type>
 
using rebound_reduce_options_values = typename O::template rebind_t<rebound_result_type>
 
using rebound_reduce_options_flag = typename O::template rebind_t<bool>
 
using flag_reducer = xreducer_functors<xt::detail::optional_bitwise<bool>, xt::const_value<bool>>
 
using flag_expression = xreducer<flag_reducer, xt::detail::flag_expression_t<CT>, X, rebound_reduce_options_flag>
 
using value_expression = xreducer<rebound_functors_type, xt::detail::value_expression_t<CT>, X, rebound_reduce_options_values>
 
using const_value_expression = value_expression
 
using const_flag_expression = flag_expression
 
- Public Types inherited from xt::extension::xoptional_empty_base< xreducer< F, CT, X, O > >
using expression_tag
 
+ + + + + +

+Public Member Functions

const_value_expression value () const
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xreducer< F, CT, X, O > >
xreducer< F, CT, X, O > & derived_cast () noexcept
 
const xreducer< F, CT, X, O > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class F, class CT, class X, class O>
+class xt::extension::xreducer_optional< F, CT, X, O >
+

Definition at line 657 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::const_flag_expression = flag_expression
+
+ +

Definition at line 674 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::const_value_expression = value_expression
+
+ +

Definition at line 673 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 661 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::flag_expression = xreducer<flag_reducer, xt::detail::flag_expression_t<CT>, X, rebound_reduce_options_flag>
+
+ +

Definition at line 670 of file xoptional.hpp.

+ +
+
+ +

◆ flag_reducer

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::flag_reducer = xreducer_functors<xt::detail::optional_bitwise<bool>, xt::const_value<bool>>
+
+ +

Definition at line 669 of file xoptional.hpp.

+ +
+
+ +

◆ rebound_functors_type

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::rebound_functors_type = typename F::template rebind_t<rebound_result_type>
+
+ +

Definition at line 665 of file xoptional.hpp.

+ +
+
+ +

◆ rebound_reduce_options_flag

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::rebound_reduce_options_flag = typename O::template rebind_t<bool>
+
+ +

Definition at line 667 of file xoptional.hpp.

+ +
+
+ +

◆ rebound_reduce_options_values

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::rebound_reduce_options_values = typename O::template rebind_t<rebound_result_type>
+
+ +

Definition at line 666 of file xoptional.hpp.

+ +
+
+ +

◆ rebound_result_type

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::rebound_result_type = typename result_type::value_type
+
+ +

Definition at line 664 of file xoptional.hpp.

+ +
+
+ +

◆ result_type

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::result_type = typename F::init_value_type
+
+ +

Definition at line 662 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + +
using xt::extension::xreducer_optional< F, CT, X, O >::value_expression = xreducer<rebound_functors_type, xt::detail::value_expression_t<CT>, X, rebound_reduce_options_values>
+
+ +

Definition at line 671 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value()

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + + +
+ + + + + + + +
auto xt::extension::xreducer_optional< F, CT, X, O >::has_value () const
+
+inline
+
+ +

Definition at line 1138 of file xoptional.hpp.

+ +
+
+ +

◆ value()

+ +
+
+
+template<class F, class CT, class X, class O>
+ + + + + +
+ + + + + + + +
auto xt::extension::xreducer_optional< F, CT, X, O >::value () const
+
+inline
+
+ +

Definition at line 1122 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xreducer__optional.png b/classxt_1_1extension_1_1xreducer__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..fed52015b602fd5b69ae60105095fb520f332172 GIT binary patch literal 1292 zcmciC`BRfe7zgkd+e*biXwf2v(&`I}$RTnlK>`#8-a-iiVn&XpTylv*kODEOwIahH z1IBQPCRzf-GN92wI0UrO!2k&e1QJpR3MMcdkpPJ%B=l{k`X{(QJo|ZeXLfdWzOzN4 zApwR4<^})&7(#)5VE~{G%$(}%VIUUu9PD>s_ z9}zqy;hT-pP;vN)MzNH6YC@VnF`>{-60BN0ux_i&-6QM??4%@8y>yO~IPRGvXzMh3 z`=j|Dro;|8Eo;LhgjXf^wdy;IoKvXS^ctT3^T$V0QPO?p4l8Y%!kL$;F-y;+V8=4p z=zIo^VtZ1G?)&hWKFN_T(eh+1FVMuhTveuhyFoyY^n8asi*Kt+echMQ@yoo zMd%|XRI}DI(HG<*c3KJ>OH(l7Yj&yOJ7n2NBqbVU`#rbl9?U9hXz^7>cMr$wdfjN( z&F5&o>P^$`S&i-+N}5wVE#Trn_ey@592xgTHeX+Sl5aXPYbkzQ@mMyQHCw+*pKA;$4V2(~Ee=EW`iKtZ zPyc7a9(dQO-g3zph;GIq0SC3(;2ki1_g{A0MZ&xTGuA)>OxMDI5BM}d^S$aQzP5GQ z?PZ`X2$|XmgUF?qyTJDcK41>iWXiZ@j=VMX!;Irew{I$0I_O|xnh;T*sIhGSVHk?x z#*(RHQH$0o^olOftjYcj&DCWN-NIpu&e<{c;)*Ryd_RQMk=@GKI6E0&M^s>1R`OYL zIq7Px%{@v+e++$4Brh+$GTxaD6xH6Tv*H-}d_5yw>t)3ZeVSl;!#* zZS~qJiO5S@+?|1*6?A3tgl88A$Z@Xyc z;TH@V+MLOBgh*=igGzc21Lp|ASs>5WeuRaF5@t|G85XFKuWGyt+DBa(@V^B>{vm$N IzPQW(07W#KSpWb4 literal 0 HcmV?d00001 diff --git a/classxt_1_1extension_1_1xrepeat__optional-members.html b/classxt_1_1extension_1_1xrepeat__optional-members.html new file mode 100644 index 000000000..bc893f025 --- /dev/null +++ b/classxt_1_1extension_1_1xrepeat__optional-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xrepeat_optional< CT, X > Member List
+
+ +
+ + + + diff --git a/classxt_1_1extension_1_1xrepeat__optional.html b/classxt_1_1extension_1_1xrepeat__optional.html new file mode 100644 index 000000000..9d36595f8 --- /dev/null +++ b/classxt_1_1extension_1_1xrepeat__optional.html @@ -0,0 +1,263 @@ + + + + + + + +xtensor: xt::extension::xrepeat_optional< CT, X > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xrepeat_optional< CT, X > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xrepeat_optional< CT, X >:
+
+
+ + +xt::extension::xoptional_empty_base< xrepeat< CT, X > > + +
+ + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using value_expression = xbroadcast<xt::detail::value_expression_t<CT>, X>
 
using flag_expression = xbroadcast<xt::detail::flag_expression_t<CT>, X>
 
using const_value_expression = value_expression
 
using const_flag_expression = flag_expression
 
- Public Types inherited from xt::extension::xoptional_empty_base< xrepeat< CT, X > >
using expression_tag
 
+ + + + + +

+Public Member Functions

+const_value_expression value () const
 
+const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xrepeat< CT, X > >
xrepeat< CT, X > & derived_cast () noexcept
 
const xrepeat< CT, X > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT, class X>
+class xt::extension::xrepeat_optional< CT, X >
+

Definition at line 694 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xrepeat_optional< CT, X >::const_flag_expression = flag_expression
+
+ +

Definition at line 702 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xrepeat_optional< CT, X >::const_value_expression = value_expression
+
+ +

Definition at line 701 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xrepeat_optional< CT, X >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 698 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xrepeat_optional< CT, X >::flag_expression = xbroadcast<xt::detail::flag_expression_t<CT>, X>
+
+ +

Definition at line 700 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::extension::xrepeat_optional< CT, X >::value_expression = xbroadcast<xt::detail::value_expression_t<CT>, X>
+
+ +

Definition at line 699 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xrepeat__optional.png b/classxt_1_1extension_1_1xrepeat__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..9685bb0f5010278a47722a5da67bcaea601693f3 GIT binary patch literal 1168 zcmciC{WIGK7y$4v>o)VUt7(?9I@dHVw@w}HC6StXYkWh($f{~y>aAmuA#$Q#(qdG1 zZO*rBHA&;vq@hxGWP~J0ZO1UFYFR==Rt=$%a6*nWvRr@gC+zv*c|Onc{Pz6tG{h5e zuFl7uArOcw5FMESfjAKDj{opIdk#a8o$SRcK9&?^v)Sy_>33+%5k5KqS@_v6f9o_F zjeUM@>Jrz!`=}&=mSkK?q8Pt5MA_*1u}{LzD_+SreX_cV zw-k-4_5XNN`&&kbdV-(kVe2mN(IQ!BA;p)0--}}9;Dsw^!}mM8`ufk3HJ8v+hDqfd zF^l#b>vzGDflBPc&f7Qp3reNwsxe8wEIxD`;;Ov2hV@ATcDAi9fxH7ZuFb*Ez^q4DF?l)` zH!e$91TOW+%>0Z_fY+8Nm+Kr|AC&oa!K6Q#g|M+7}Ku12Yz97Wn#+ z3<*#UaouB8K@ZfHLs7yi6Q=?sg)H@!T2s^XX!qg$R`jX0A^)IO#+7;PSXH6Yl*)SZ z=rK0UxY#cXB!Aw0Zr-p@XAY?!zwKP?II&|@$4N!-X8!irQcWVT@esZ(pmVc1d1f7T z`R56{F##=w_NO_-#z%rOmmqSn5PJBS#{6bedQ}h#t^-UoSa$1cc7_9 zRYnu?h(E;nPCk;R^?luX&TCVAA%V}*`DPO<(<(9vm6V$g3GNmAiB zo3VsN)#q0anuvGL%aZYpID@zLe%CsC`7LyS`azPSd7_G>`btq?PJ1?~1JH0qu>b%7 literal 0 HcmV?d00001 diff --git a/classxt_1_1extension_1_1xscalar__optional__base-members.html b/classxt_1_1extension_1_1xscalar__optional__base-members.html new file mode 100644 index 000000000..98a329d40 --- /dev/null +++ b/classxt_1_1extension_1_1xscalar__optional__base-members.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xscalar_optional_base< CT > Member List
+
+ +
+ + + + diff --git a/classxt_1_1extension_1_1xscalar__optional__base.html b/classxt_1_1extension_1_1xscalar__optional__base.html new file mode 100644 index 000000000..ad6279f14 --- /dev/null +++ b/classxt_1_1extension_1_1xscalar__optional__base.html @@ -0,0 +1,402 @@ + + + + + + + +xtensor: xt::extension::xscalar_optional_base< CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xscalar_optional_base< CT > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xscalar_optional_base< CT >:
+
+
+ + +xt::extension::xoptional_empty_base< xscalar< CT > > + +
+ + + + + + + + + + + + + + + + + +

+Public Types

using traits = xscalar_optional_traits<CT>
 
using value_expression = typename traits::value_expression
 
using flag_expression = typename traits::flag_expression
 
using const_value_expression = typename traits::const_value_expression
 
using const_flag_expression = typename traits::const_flag_expression
 
using expression_tag = xoptional_expression_tag
 
- Public Types inherited from xt::extension::xoptional_empty_base< xscalar< CT > >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xscalar< CT > >
xscalar< CT > & derived_cast () noexcept
 
const xscalar< CT > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT>
+class xt::extension::xscalar_optional_base< CT >
+

Definition at line 305 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT>
+ + + + +
using xt::extension::xscalar_optional_base< CT >::const_flag_expression = typename traits::const_flag_expression
+
+ +

Definition at line 313 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT>
+ + + + +
using xt::extension::xscalar_optional_base< CT >::const_value_expression = typename traits::const_value_expression
+
+ +

Definition at line 312 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT>
+ + + + +
using xt::extension::xscalar_optional_base< CT >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 314 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT>
+ + + + +
using xt::extension::xscalar_optional_base< CT >::flag_expression = typename traits::flag_expression
+
+ +

Definition at line 311 of file xoptional.hpp.

+ +
+
+ +

◆ traits

+ +
+
+
+template<class CT>
+ + + + +
using xt::extension::xscalar_optional_base< CT >::traits = xscalar_optional_traits<CT>
+
+ +

Definition at line 309 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT>
+ + + + +
using xt::extension::xscalar_optional_base< CT >::value_expression = typename traits::value_expression
+
+ +

Definition at line 310 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xscalar_optional_base< CT >::has_value ()
+
+inline
+
+ +

Definition at line 917 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xscalar_optional_base< CT >::has_value () const
+
+inline
+
+ +

Definition at line 923 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xscalar_optional_base< CT >::value ()
+
+inline
+
+ +

Definition at line 905 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::extension::xscalar_optional_base< CT >::value () const
+
+inline
+
+ +

Definition at line 911 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xscalar__optional__base.png b/classxt_1_1extension_1_1xscalar__optional__base.png new file mode 100644 index 0000000000000000000000000000000000000000..dee230b2597205af66bf1cabd72020dae0502df4 GIT binary patch literal 1136 zcmeAS@N?(olHy`uVBq!ia0y~yV6+CZ12~w0WT2bU4Im{Q;1lBd|Nnm=^TnI5rTvGN zTNr2-NK8NT;=zLlKylNvVM~B=oFzei!3;n?7??B7zQVx3{M*yTF{Fa=?cC@-ZA}4} zW{0e!|H5s`Y`LDiBM+dO|SX?vm^I+*!uAA z+xhplEL%JGhuw{c*SY0BIo!g&mgW5&m#87Fp? z#PYSqF25JMSLf>YNt?@rXWUqP(EV!el9SwFYun$oy}rKP_^-71Tj@yErJrX;zW;Xj z!o4eZC+^oTcYhYA6#ExtEbSv2tJyxQ3E+H<#Ft?hYtQ#nukNu>3TbZ;HwYcJ;I z>R*!no-?z{mdhtf|L$g$pN#kX8dTJM&M8j%!?o|=-LiArZ>JS}J9BH|llc$c-zdMo z~=j<+g@J}tWQ@JhV$!FPs0v<0W-h{o)E9ocl6!e)-J(6$*yFyLp}U#`866@16QGPgi`!#|w8>p0$m3Gc+$2-7D)A zr0E`1|6|_NCHAMp{XSRU&26uq96zbV@v`eAJI^=Po}WHm-!XZKzA}2yK7I%d`ls^K XO*lM~U07>@Wdnn!tDnm{r-UW| + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xstrided_view_optional< CT, S, L, FST > Member List
+
+
+ +

This is the complete list of members for xt::extension::xstrided_view_optional< CT, S, L, FST >, including all inherited members.

+ + + + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
const_value_expression typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
expression_tag typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
flag_expression typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
has_value() (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >inline
has_value() const (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >inline
ucft typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
ucvt typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
uft typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
uvt typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
value() (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >inline
value() const (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >inline
value_expression typedef (defined in xt::extension::xstrided_view_optional< CT, S, L, FST >)xt::extension::xstrided_view_optional< CT, S, L, FST >
+
+ + + + diff --git a/classxt_1_1extension_1_1xstrided__view__optional.html b/classxt_1_1extension_1_1xstrided__view__optional.html new file mode 100644 index 000000000..4e557bd44 --- /dev/null +++ b/classxt_1_1extension_1_1xstrided__view__optional.html @@ -0,0 +1,462 @@ + + + + + + + +xtensor: xt::extension::xstrided_view_optional< CT, S, L, FST > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xstrided_view_optional< CT, S, L, FST > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xstrided_view_optional< CT, S, L, FST >:
+
+
+ + +xt::extension::xoptional_empty_base< xstrided_view< CT, S, L, FST > > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using uvt = typename std::decay_t<CT>::value_expression
 
using uft = typename std::decay_t<CT>::flag_expression
 
using ucvt = typename std::decay_t<CT>::const_value_expression
 
using ucft = typename std::decay_t<CT>::const_flag_expression
 
using value_expression = xstrided_view<uvt, S, L, typename FST::template rebind_t<uvt>>
 
using flag_expression = xstrided_view<uft, S, L, typename FST::template rebind_t<uft>>
 
using const_value_expression = xstrided_view<ucvt, S, L, typename FST::template rebind_t<ucvt>>
 
using const_flag_expression = xstrided_view<ucft, S, L, typename FST::template rebind_t<ucft>>
 
- Public Types inherited from xt::extension::xoptional_empty_base< xstrided_view< CT, S, L, FST > >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xstrided_view< CT, S, L, FST > >
xstrided_view< CT, S, L, FST > & derived_cast () noexcept
 
const xstrided_view< CT, S, L, FST > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT, class S, layout_type L, class FST>
+class xt::extension::xstrided_view_optional< CT, S, L, FST >
+

Definition at line 722 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::const_flag_expression = xstrided_view<ucft, S, L, typename FST::template rebind_t<ucft>>
+
+ +

Definition at line 734 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::const_value_expression = xstrided_view<ucvt, S, L, typename FST::template rebind_t<ucvt>>
+
+ +

Definition at line 733 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 726 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::flag_expression = xstrided_view<uft, S, L, typename FST::template rebind_t<uft>>
+
+ +

Definition at line 732 of file xoptional.hpp.

+ +
+
+ +

◆ ucft

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::ucft = typename std::decay_t<CT>::const_flag_expression
+
+ +

Definition at line 730 of file xoptional.hpp.

+ +
+
+ +

◆ ucvt

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::ucvt = typename std::decay_t<CT>::const_value_expression
+
+ +

Definition at line 729 of file xoptional.hpp.

+ +
+
+ +

◆ uft

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::uft = typename std::decay_t<CT>::flag_expression
+
+ +

Definition at line 728 of file xoptional.hpp.

+ +
+
+ +

◆ uvt

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::uvt = typename std::decay_t<CT>::value_expression
+
+ +

Definition at line 727 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + +
using xt::extension::xstrided_view_optional< CT, S, L, FST >::value_expression = xstrided_view<uvt, S, L, typename FST::template rebind_t<uvt>>
+
+ +

Definition at line 731 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xstrided_view_optional< CT, S, L, FST >::has_value ()
+
+inline
+
+ +

Definition at line 1172 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xstrided_view_optional< CT, S, L, FST >::has_value () const
+
+inline
+
+ +

Definition at line 1178 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xstrided_view_optional< CT, S, L, FST >::value ()
+
+inline
+
+ +

Definition at line 1160 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::extension::xstrided_view_optional< CT, S, L, FST >::value () const
+
+inline
+
+ +

Definition at line 1166 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xstrided__view__optional.png b/classxt_1_1extension_1_1xstrided__view__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..e911809a9feaebf1df6a7f744bd6033598eeee79 GIT binary patch literal 1395 zcmb`H`#;oa6vv+#p_M6H*~)$ETbbOt%pkW_Mtl*|&_qa9tK23D$t9DvP_{7>Qe+ev zEhBO%%%*K~TgD|KGiFG_m<(dVh}rM%->}aQ=Q-#3oYy(8*E#RklS*`Tz^G`b001zs zBY^|}Dj)HQYZVZC4s)ytxipC`9`}7O;al&vPYe$aBky=Fxe(F5 zizKD9nX1AvImdO$GSy7geXAH@? zNI#WHSZ%Bc^FGI~;j+rRJ%C;qps2@)ECmF{ZFQ>S+X@TYR7jZ{cR~OSi2duH zT@n4VHzq)MrDb*~HYPD?evzNZH1U=5j%_QCuw{@h0s5%@gP27YwTSzC#ag+S3CmTw z)+s{+SOp$iGuQIxi#~aQ^^M&V_590xlf)qh@nGS2Fh1^ zTu3Y1VwYRq!VtT{dta-JW91~UzoM+RX*oG{3|qg`ea^6Mi(e@7Xo7T32Y;ZZI>%(T zTt9!~fDPNyGFGWLH)FCkic@!wWmX;J7GE8Zvv7ap^Mx|A!h;^Z#AJ!EXZy|Hq?^0u z)6=2@IbPE*3Pd-v@>t@$JlSjqr|eKu7rDH3c_Z;j;7M$9-ikjJ_x~yrUZRScz-Ux4AoeB(228X3WJHa9sgEHnT{bqJNh{Se8PY>vwpIv11be&!ajiOH{QJ#gywbMqc zpVr_U`&eZK`?(=cks1Ejv^0mKWs=^iGY0*pFA8RR!?Sk4rf%#*(2`vI3GEp1u(HyT zLBSbHs=lU=MqLK;R%cffvqxo_+OV+4y3?<9Jb6&Be<2xaaP`BaKz7j5L$n%fK?d95 zW))jV}2Y#0TgvAc=c2#K1mJ490zF7 zuVMv;JrP~Y0HCM{av;1EtN{pe;8g`$4VaUWB&7QPn$)nK=!Csaa%yFzLs$sbQKv$! z73g&6AQ>(+tH`Ht{)?jm^=LPo?;Od-wRK&*Y+l&gP-j<#>^-U!jefsQ}At z&NC z4ht1dwg)T+Pa2fnrSb;cP~3O{9K~dr#{n@WX#FMK8!zMLdkL|!^QhvWv=gDYFee|c zIRo2-Y!<#{D^Fz?%$!J6@Nha~!!ljSy;0wm)YogV=fgIehIRTIa21vck?eo59Z!+4 z%qw5okjE&7;3(yN_);G=IPQ4i*u|Xv(G^O*C=X1-f|9oL1j%R0mv9c@!WZAj zua7WkJ7N`wxPb$Q2CNYFiwcVuwHtHL8x25-FNuZ2orO`Gz1J)ugOp5iaP z!7!jsnSct3k_`aNK$w9eN&y5T%phyjp^}`i86+oTscuclsV7NW3M9z)2w;0xLfPTd GN&f%=qMQH# literal 0 HcmV?d00001 diff --git a/classxt_1_1extension_1_1xview__optional-members.html b/classxt_1_1extension_1_1xview__optional-members.html new file mode 100644 index 000000000..f01d17380 --- /dev/null +++ b/classxt_1_1extension_1_1xview__optional-members.html @@ -0,0 +1,133 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::extension::xview_optional< CT, S > Member List
+
+
+ +

This is the complete list of members for xt::extension::xview_optional< CT, S >, including all inherited members.

+ + + + + + + + + + + + + + +
const_flag_expression typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
const_value_expression typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
expression_tag typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
flag_expression typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
has_value() (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >inline
has_value() const (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >inline
ucft typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
ucvt typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
uft typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
uvt typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
value() (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >inline
value() const (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >inline
value_expression typedef (defined in xt::extension::xview_optional< CT, S >)xt::extension::xview_optional< CT, S >
+
+ + + + diff --git a/classxt_1_1extension_1_1xview__optional.html b/classxt_1_1extension_1_1xview__optional.html new file mode 100644 index 000000000..5c8614c0c --- /dev/null +++ b/classxt_1_1extension_1_1xview__optional.html @@ -0,0 +1,462 @@ + + + + + + + +xtensor: xt::extension::xview_optional< CT, S > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::extension::xview_optional< CT, S > Class Template Reference
+
+
+
+Inheritance diagram for xt::extension::xview_optional< CT, S >:
+
+
+ + +xt::extension::xoptional_empty_base< xview< CT, S... > > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using expression_tag = xoptional_expression_tag
 
using uvt = typename std::decay_t<CT>::value_expression
 
using uft = typename std::decay_t<CT>::flag_expression
 
using ucvt = typename std::decay_t<CT>::const_value_expression
 
using ucft = typename std::decay_t<CT>::const_flag_expression
 
using value_expression = xview<uvt, S...>
 
using flag_expression = xview<uft, S...>
 
using const_value_expression = xview<ucvt, S...>
 
using const_flag_expression = xview<ucft, S...>
 
- Public Types inherited from xt::extension::xoptional_empty_base< xview< CT, S... > >
using expression_tag
 
+ + + + + + + + + +

+Public Member Functions

value_expression value ()
 
const_value_expression value () const
 
flag_expression has_value ()
 
const_flag_expression has_value () const
 
+ + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::extension::xoptional_empty_base< xview< CT, S... > >
xview< CT, S... > & derived_cast () noexcept
 
const xview< CT, S... > & derived_cast () const noexcept
 
+

Detailed Description

+
template<class CT, class... S>
+class xt::extension::xview_optional< CT, S >
+

Definition at line 757 of file xoptional.hpp.

+

Member Typedef Documentation

+ +

◆ const_flag_expression

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::const_flag_expression = xview<ucft, S...>
+
+ +

Definition at line 769 of file xoptional.hpp.

+ +
+
+ +

◆ const_value_expression

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::const_value_expression = xview<ucvt, S...>
+
+ +

Definition at line 768 of file xoptional.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::expression_tag = xoptional_expression_tag
+
+ +

Definition at line 761 of file xoptional.hpp.

+ +
+
+ +

◆ flag_expression

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::flag_expression = xview<uft, S...>
+
+ +

Definition at line 767 of file xoptional.hpp.

+ +
+
+ +

◆ ucft

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::ucft = typename std::decay_t<CT>::const_flag_expression
+
+ +

Definition at line 765 of file xoptional.hpp.

+ +
+
+ +

◆ ucvt

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::ucvt = typename std::decay_t<CT>::const_value_expression
+
+ +

Definition at line 764 of file xoptional.hpp.

+ +
+
+ +

◆ uft

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::uft = typename std::decay_t<CT>::flag_expression
+
+ +

Definition at line 763 of file xoptional.hpp.

+ +
+
+ +

◆ uvt

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::uvt = typename std::decay_t<CT>::value_expression
+
+ +

Definition at line 762 of file xoptional.hpp.

+ +
+
+ +

◆ value_expression

+ +
+
+
+template<class CT, class... S>
+ + + + +
using xt::extension::xview_optional< CT, S >::value_expression = xview<uvt, S...>
+
+ +

Definition at line 766 of file xoptional.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ has_value() [1/2]

+ +
+
+
+template<class CT, class... S>
+ + + + + +
+ + + + + + + +
auto xt::extension::xview_optional< CT, S >::has_value ()
+
+inline
+
+ +

Definition at line 1203 of file xoptional.hpp.

+ +
+
+ +

◆ has_value() [2/2]

+ +
+
+
+template<class CT, class... S>
+ + + + + +
+ + + + + + + +
auto xt::extension::xview_optional< CT, S >::has_value () const
+
+inline
+
+ +

Definition at line 1209 of file xoptional.hpp.

+ +
+
+ +

◆ value() [1/2]

+ +
+
+
+template<class CT, class... S>
+ + + + + +
+ + + + + + + +
auto xt::extension::xview_optional< CT, S >::value ()
+
+inline
+
+ +

Definition at line 1191 of file xoptional.hpp.

+ +
+
+ +

◆ value() [2/2]

+ +
+
+
+template<class CT, class... S>
+ + + + + +
+ + + + + + + +
auto xt::extension::xview_optional< CT, S >::value () const
+
+inline
+
+ +

Definition at line 1197 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1extension_1_1xview__optional.png b/classxt_1_1extension_1_1xview__optional.png new file mode 100644 index 0000000000000000000000000000000000000000..a88987c392e8086ed9d1393613bc7e9fee0687b2 GIT binary patch literal 1179 zcmeAS@N?(olHy`uVBq!ia0y~yVDtyF12~w03f*F8(FfeDDeT9L6Ma|R2F{Fa=?cA4nj}3TQ z+>;l~_+J0WxAw&X6?MNE+YT13K6z`)Ie(jfNs-f3x9FUHq@<%FspQGd>ObjA@COx7 zdpJXKUZ;w6?^f8D%s@)PH(R&`Ii6_X|F+SEPg zWzOCFhv$t-Wjy=&+?Z1F+oh)F+skfOz0toG^M1jObH7bns)SX%cUP6)v=`2l5}v)yQ7QPg+Ow0>uU&iA_^HzQM$g*cz1w$u zKM}*em+SuF(03o#$h4+h&8q$y^Js7Bv`6(<|4OmVy?M^WvgB&@iQ=|H@6Nti`lftO zf1UQ*DVM(#wZ540T<-VG=W<_{&(Qy*6Kt04m%L>E>#XkA-ql}h1x5DfFUwzjF0;ko zJJWwl|MxVm>N#3#mf5(+t8Keyzx;0XyfXc79cD*9f4O}>`CnyFzu(`@yG~`DKWcT* z_(A5}CZEvV$Bid0y}74cvp!8|r^B^%xf5g7y)Xat+;QOn?XR}eZ`$39{w(I+{A=I& z+rC8=T`S+``fTewapk-0?>+mj^Sd)i2;Q3PKDS?b_fF19GAo||W8(VUr=CTtJe!nH zZhw9A>p!ORTLXAjt?zE?T<{7c?Em7n&S6_b|CZ&LUC1!ufG zRt$|^MTQ?NwTuoN3^5`$j0b$<;~7O5_JEn@bAZe_AZDOiJY9wV zuZ_Rwr%NY=zFqzmSI1W7Srxhd;~lf$*bmQ`d#%^p-6r?D+cf<6E$b(Cl@4$HDqnmr zw!iyPZRM6%r3Zp1)qGi0uXfTz)in37zUMOEGiO;^^DV!oWMpesD#YKIl3u#}?PitO z>#INB`{nd;|EcqD1lIyn);_7jm+NwupVq6pZ$G!w>hqms`_Fe4{}U-Lo+R|C@-MSUeZR)M-<(_cu3A$g*`tI>w)BJ;(mG5eG&TpGG`&S&> zHNDuUi%!|kmQnSzt1_+kx}^W&tMC4oH|8HI*7aAbQhgb@_w|+kYk?BdUl!V^zVz3E og(W;tUmi1FI>kwI>63-^QG7B&XH?bx0*es_Pgg&ebxsLQ0C*lrI{*Lx literal 0 HcmV?d00001 diff --git a/classxt_1_1fixed__shape-members.html b/classxt_1_1fixed__shape-members.html new file mode 100644 index 000000000..aa5aea218 --- /dev/null +++ b/classxt_1_1fixed__shape-members.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::fixed_shape< X > Member List
+
+
+ +

This is the complete list of members for xt::fixed_shape< X >, including all inherited members.

+ + + + + + + + + + + + + + + + +
begin() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
cast_type typedef (defined in xt::fixed_shape< X >)xt::fixed_shape< X >
cbegin() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
cend() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
const_iterator typedef (defined in xt::fixed_shape< X >)xt::fixed_shape< X >
empty() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
end() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
get() (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inlinestatic
operator cast_type() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
operator[](std::size_t idx) const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
rbegin() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
rend() const (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inline
size() (defined in xt::fixed_shape< X >)xt::fixed_shape< X >inlinestatic
size_type typedef (defined in xt::fixed_shape< X >)xt::fixed_shape< X >
value_type typedef (defined in xt::fixed_shape< X >)xt::fixed_shape< X >
+
+ + + + diff --git a/classxt_1_1fixed__shape.html b/classxt_1_1fixed__shape.html new file mode 100644 index 000000000..6c0ab2d4c --- /dev/null +++ b/classxt_1_1fixed__shape.html @@ -0,0 +1,573 @@ + + + + + + + +xtensor: xt::fixed_shape< X > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::fixed_shape< X > Class Template Reference
+
+
+ +

Fixed shape implementation for compile time defined arrays. + More...

+ +

#include <xstorage.hpp>

+ + + + + + + + + + +

+Public Types

using cast_type = const_array<std::size_t, sizeof...(X)>
 
using value_type = std::size_t
 
using size_type = std::size_t
 
using const_iterator = typename cast_type::const_iterator
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

constexpr operator cast_type () const
 
constexpr auto begin () const
 
constexpr auto end () const
 
auto rbegin () const
 
auto rend () const
 
constexpr auto cbegin () const
 
constexpr auto cend () const
 
constexpr std::size_t operator[] (std::size_t idx) const
 
constexpr bool empty () const
 
+ + + + + + +

+Static Public Member Functions

static constexpr std::size_t size ()
 
template<std::size_t idx>
static constexpr auto get ()
 
+

Detailed Description

+
template<std::size_t... X>
+class xt::fixed_shape< X >

Fixed shape implementation for compile time defined arrays.

+
See also
xshape
+ +

Definition at line 1657 of file xstorage.hpp.

+

Member Typedef Documentation

+ +

◆ cast_type

+ +
+
+
+template<std::size_t... X>
+ + + + +
using xt::fixed_shape< X >::cast_type = const_array<std::size_t, sizeof...(X)>
+
+ +

Definition at line 1665 of file xstorage.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<std::size_t... X>
+ + + + +
using xt::fixed_shape< X >::const_iterator = typename cast_type::const_iterator
+
+ +

Definition at line 1670 of file xstorage.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<std::size_t... X>
+ + + + +
using xt::fixed_shape< X >::size_type = std::size_t
+
+ +

Definition at line 1669 of file xstorage.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<std::size_t... X>
+ + + + +
using xt::fixed_shape< X >::value_type = std::size_t
+
+ +

Definition at line 1668 of file xstorage.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
auto xt::fixed_shape< X >::begin () const
+
+inlineconstexpr
+
+ +

Definition at line 1689 of file xstorage.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
auto xt::fixed_shape< X >::cbegin () const
+
+inlineconstexpr
+
+ +

Definition at line 1709 of file xstorage.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
auto xt::fixed_shape< X >::cend () const
+
+inlineconstexpr
+
+ +

Definition at line 1714 of file xstorage.hpp.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
bool xt::fixed_shape< X >::empty () const
+
+inlineconstexpr
+
+ +

Definition at line 1724 of file xstorage.hpp.

+ +
+
+ +

◆ end()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
auto xt::fixed_shape< X >::end () const
+
+inlineconstexpr
+
+ +

Definition at line 1694 of file xstorage.hpp.

+ +
+
+ +

◆ get()

+ +
+
+
+template<std::size_t... X>
+
+template<std::size_t idx>
+ + + + + +
+ + + + + + + +
static constexpr auto xt::fixed_shape< X >::get ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 1678 of file xstorage.hpp.

+ +
+
+ +

◆ operator cast_type()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
xt::fixed_shape< X >::operator cast_type () const
+
+inlineconstexpr
+
+ +

Definition at line 1684 of file xstorage.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
std::size_t xt::fixed_shape< X >::operator[] (std::size_t idx) const
+
+inlineconstexpr
+
+ +

Definition at line 1719 of file xstorage.hpp.

+ +
+
+ +

◆ rbegin()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
auto xt::fixed_shape< X >::rbegin () const
+
+inline
+
+ +

Definition at line 1699 of file xstorage.hpp.

+ +
+
+ +

◆ rend()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
auto xt::fixed_shape< X >::rend () const
+
+inline
+
+ +

Definition at line 1704 of file xstorage.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<std::size_t... X>
+ + + + + +
+ + + + + + + +
static constexpr std::size_t xt::fixed_shape< X >::size ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 1672 of file xstorage.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4-members.html b/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..d82ad0104 --- /dev/null +++ b/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4-members.html @@ -0,0 +1,141 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > > Member List
+
+
+ +

This is the complete list of members for xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
cmap(const UnderlyingContainer &container, const view_type &view, const Indices... indices) constxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
cmap(const UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> const_reference (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
cmap_at(const UnderlyingContainer &container, const view_type &view, const Indices... indices) constxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
cmap_at(const UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> const_reference (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
const_reference typedefxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
dimension(const UnderlyingContainer &container) constxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
get_indices_full(const Indices... indices) const -> std::array< size_t, n_indices_full_v< Indices... > > (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map(UnderlyingContainer &container, const view_type &view, const Indices... indices) constxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map(UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> reference (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map_all_indices(std::bool_constant< IS_CONST >, std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container, std::integral_constant< access_t, ACCESS >, const view_type &view, std::index_sequence< Is... >, const std::array< size_t, n_indices > &indices) const -> conditional_reference< IS_CONST > (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map_at(UnderlyingContainer &container, const view_type &view, const Indices... indices) constxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map_at(UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> reference (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map_ith_index(const view_type &view, const Index i) const -> size_t (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map_main(std::bool_constant< IS_CONST > is_const, std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container, std::integral_constant< access_t, ACCESS > access, const view_type &view, const FirstIndice firstIndice, const OtherIndices... otherIndices) const -> conditional_reference< IS_CONST > (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
map_main(std::bool_constant< IS_CONST > is_const, std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container, std::integral_constant< access_t, ACCESS > access, const view_type &view) const -> conditional_reference< IS_CONST > (defined in xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >)xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
n_indices_full_vxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >static
n_slicesxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >static
nb_integral_slicesxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >static
nb_new_axis_slicesxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >static
reference typedefxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
view_type typedefxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
+
+ + + + diff --git a/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html b/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..f11174925 --- /dev/null +++ b/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html @@ -0,0 +1,890 @@ + + + + + + + +xtensor: xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > > Class Template Reference
+
+
+ + + + + + + + + + + +

+Public Types

using view_type = xt::xview<UnderlyingContainer, Slices...>
 The view type this mapper works with.
 
using reference = typename xt::xview<UnderlyingContainer, Slices...>::reference
 Reference type of the underlying view.
 
using const_reference = typename xt::xview<UnderlyingContainer, Slices...>::const_reference
 Const reference type of the underlying view.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<std::integral... Indices>
reference map (UnderlyingContainer &container, const view_type &view, const Indices... indices) const
 Map view indices to container reference using UNSAFE access.
 
template<std::integral... Indices>
const_reference cmap (const UnderlyingContainer &container, const view_type &view, const Indices... indices) const
 Map view indices to container const_reference using UNSAFE access.
 
template<std::integral... Indices>
reference map_at (UnderlyingContainer &container, const view_type &view, const Indices... indices) const
 Map view indices to container reference using SAFE access.
 
template<std::integral... Indices>
const_reference cmap_at (const UnderlyingContainer &container, const view_type &view, const Indices... indices) const
 Map view indices to container const_reference using SAFE access.
 
size_t dimension (const UnderlyingContainer &container) const
 Return the dimensionality of the view.
 
template<std::integral... Indices>
auto get_indices_full (const Indices... indices) const -> std::array< size_t, n_indices_full_v< Indices... > >
 
template<std::integral... Indices>
auto map (UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> reference
 
template<std::integral... Indices>
auto cmap (const UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> const_reference
 
template<std::integral... Indices>
auto map_at (UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> reference
 
template<std::integral... Indices>
auto cmap_at (const UnderlyingContainer &container, const view_type &view, const Indices... indices) const -> const_reference
 
template<bool IS_CONST, access_t ACCESS, std::integral FirstIndice, std::integral... OtherIndices>
auto map_main (std::bool_constant< IS_CONST > is_const, std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container, std::integral_constant< access_t, ACCESS > access, const view_type &view, const FirstIndice firstIndice, const OtherIndices... otherIndices) const -> conditional_reference< IS_CONST >
 
template<bool IS_CONST, access_t ACCESS>
auto map_main (std::bool_constant< IS_CONST > is_const, std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container, std::integral_constant< access_t, ACCESS > access, const view_type &view) const -> conditional_reference< IS_CONST >
 
template<bool IS_CONST, access_t ACCESS, size_t n_indices, size_t... Is>
auto map_all_indices (std::bool_constant< IS_CONST >, std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container, std::integral_constant< access_t, ACCESS >, const view_type &view, std::index_sequence< Is... >, const std::array< size_t, n_indices > &indices) const -> conditional_reference< IS_CONST >
 
template<size_t I, std::integral Index>
auto map_ith_index (const view_type &view, const Index i) const -> size_t
 
+ + + + + + + + + + + + + + +

+Static Public Attributes

static constexpr size_t n_slices = sizeof...(Slices)
 Total number of explicitly passed slices in the view.
 
static constexpr size_t nb_integral_slices = (std::is_integral_v<Slices> + ...)
 Number of slices that are integral constants (fixed indices)
 
static constexpr size_t nb_new_axis_slices = (xt::detail::is_newaxis_v<Slices> + ...)
 Number of slices that are xt::newaxis (insert a dimension)
 
template<std::integral... Indices>
static constexpr size_t n_indices_full_v = size_t(sizeof...(Indices) + nb_integral_slices)
 Compute how many indices are needed to address the underlying container when given N indices in the view.
 
+

Detailed Description

+
template<class UnderlyingContainer, class... Slices>
+class xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
+

Definition at line 58 of file index_mapper.hpp.

+

Member Typedef Documentation

+ +

◆ const_reference

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + +
using xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::const_reference = typename xt::xview<UnderlyingContainer, Slices...>::const_reference
+
+ +

Const reference type of the underlying view.

+ +

Definition at line 69 of file index_mapper.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + +
using xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::reference = typename xt::xview<UnderlyingContainer, Slices...>::reference
+
+ +

Reference type of the underlying view.

+ +

Definition at line 66 of file index_mapper.hpp.

+ +
+
+ +

◆ view_type

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + +
using xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::view_type = xt::xview<UnderlyingContainer, Slices...>
+
+ +

The view type this mapper works with.

+ +

Definition at line 63 of file index_mapper.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ cmap() [1/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
const_reference xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::cmap (const UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const
+
+ +

Map view indices to container const_reference using UNSAFE access.

+
Parameters
+ + + + +
containerThe source container.
viewThe view defining the mapping.
indicesThe indices in view-space.
+
+
+
Returns
Reference to the element in the container.
+ +
+
+ +

◆ cmap() [2/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::cmap (const UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const -> const_reference +
+
+ +

Definition at line 343 of file index_mapper.hpp.

+ +
+
+ +

◆ cmap_at() [1/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
const_reference xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::cmap_at (const UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const
+
+ +

Map view indices to container const_reference using SAFE access.

+
Parameters
+ + + + +
containerThe source container.
viewThe view defining the mapping.
indicesThe indices in view-space.
+
+
+
Returns
Reference to the element in the container.
+ +
+
+ +

◆ cmap_at() [2/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::cmap_at (const UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const -> const_reference +
+
+ +

Definition at line 377 of file index_mapper.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::dimension (const UnderlyingContainer & container) const
+
+ +

Return the dimensionality of the view.

+ +

Definition at line 532 of file index_mapper.hpp.

+ +
+
+ +

◆ get_indices_full()

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::get_indices_full (const Indices... indices) const -> std::array<size_t, n_indices_full_v<Indices...>> +
+
+ +

Definition at line 304 of file index_mapper.hpp.

+ +
+
+ +

◆ map() [1/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
reference xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map (UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const
+
+ +

Map view indices to container reference using UNSAFE access.

+
Parameters
+ + + + +
containerThe source container.
viewThe view defining the mapping.
indicesThe indices in view-space.
+
+
+
Returns
Reference to the element in the container.
+ +
+
+ +

◆ map() [2/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map (UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const -> reference +
+
+ +

Definition at line 326 of file index_mapper.hpp.

+ +
+
+ +

◆ map_all_indices()

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<bool IS_CONST, access_t ACCESS, size_t n_indices, size_t... Is>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map_all_indices (std::bool_constant< IS_CONST > ,
std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container,
std::integral_constant< access_t, ACCESS > ,
const view_type & view,
std::index_sequence< Is... > ,
const std::array< size_t, n_indices > & indices ) const -> conditional_reference<IS_CONST> +
+
+ +

Definition at line 479 of file index_mapper.hpp.

+ +
+
+ +

◆ map_at() [1/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
reference xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map_at (UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const
+
+ +

Map view indices to container reference using SAFE access.

+
Parameters
+ + + + +
containerThe source container.
viewThe view defining the mapping.
indicesThe indices in view-space.
+
+
+
Returns
Reference to the element in the container.
+ +
+
+ +

◆ map_at() [2/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map_at (UnderlyingContainer & container,
const view_type & view,
const Indices... indices ) const -> reference +
+
+ +

Definition at line 360 of file index_mapper.hpp.

+ +
+
+ +

◆ map_ith_index()

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<size_t I, std::integral Index>
+ + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map_ith_index (const view_type & view,
const Index i ) const -> size_t +
+
+ +

Definition at line 501 of file index_mapper.hpp.

+ +
+
+ +

◆ map_main() [1/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<bool IS_CONST, access_t ACCESS>
+ + + + + + + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map_main (std::bool_constant< IS_CONST > is_const,
std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container,
std::integral_constant< access_t, ACCESS > access,
const view_type & view ) const -> conditional_reference<IS_CONST> +
+
+ +

Definition at line 458 of file index_mapper.hpp.

+ +
+
+ +

◆ map_main() [2/2]

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<bool IS_CONST, access_t ACCESS, std::integral FirstIndice, std::integral... OtherIndices>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
auto xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::map_main (std::bool_constant< IS_CONST > is_const,
std::conditional_t< IS_CONST, const UnderlyingContainer &, UnderlyingContainer & > container,
std::integral_constant< access_t, ACCESS > access,
const view_type & view,
const FirstIndice firstIndice,
const OtherIndices... otherIndices ) const -> conditional_reference<IS_CONST> +
+
+ +

Definition at line 394 of file index_mapper.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ n_indices_full_v

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+
+template<std::integral... Indices>
+ + + + + +
+ + + + +
size_t xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::n_indices_full_v = size_t(sizeof...(Indices) + nb_integral_slices)
+
+staticconstexpr
+
+ +

Compute how many indices are needed to address the underlying container when given N indices in the view.

+ +

Definition at line 85 of file index_mapper.hpp.

+ +
+
+ +

◆ n_slices

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + + +
+ + + + +
size_t xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::n_slices = sizeof...(Slices)
+
+staticconstexpr
+
+ +

Total number of explicitly passed slices in the view.

+ +

Definition at line 72 of file index_mapper.hpp.

+ +
+
+ +

◆ nb_integral_slices

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + + +
+ + + + +
size_t xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::nb_integral_slices = (std::is_integral_v<Slices> + ...)
+
+staticconstexpr
+
+ +

Number of slices that are integral constants (fixed indices)

+ +

Definition at line 75 of file index_mapper.hpp.

+ +
+
+ +

◆ nb_new_axis_slices

+ +
+
+
+template<class UnderlyingContainer, class... Slices>
+ + + + + +
+ + + + +
size_t xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::nb_new_axis_slices = (xt::detail::is_newaxis_v<Slices> + ...)
+
+staticconstexpr
+
+ +

Number of slices that are xt::newaxis (insert a dimension)

+ +

Definition at line 78 of file index_mapper.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.js b/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.js new file mode 100644 index 000000000..22ebdc0b3 --- /dev/null +++ b/classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.js @@ -0,0 +1,11 @@ +var classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4 = +[ + [ "const_reference", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a340678e79e66a00c366597f2adf2b978", null ], + [ "reference", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a6ee11ca3c87c65a8f33511019a8fddaf", null ], + [ "view_type", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a121d95388e4bc47eb6bfad7312601dbf", null ], + [ "cmap", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a8a05211f1dec8baa4732be2407dfceed", null ], + [ "cmap_at", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a48ce7c87ea115701f789fa086de0190d", null ], + [ "dimension", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a8565c9e35a1e5c2c6462bcc248368b11", null ], + [ "map", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#aed240e2021f2f3e9f8cba86234d24f2e", null ], + [ "map_at", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#ac6608a673491a49d7ff37d23aaa8ebeb", null ] +]; \ No newline at end of file diff --git a/classxt_1_1linear__assigner-members.html b/classxt_1_1linear__assigner-members.html new file mode 100644 index 000000000..6c95b4c17 --- /dev/null +++ b/classxt_1_1linear__assigner-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::linear_assigner< simd_assign > Member List
+
+
+ +

This is the complete list of members for xt::linear_assigner< simd_assign >, including all inherited members.

+ + +
run(E1 &e1, const E2 &e2) (defined in xt::linear_assigner< simd_assign >)xt::linear_assigner< simd_assign >inlinestatic
+
+ + + + diff --git a/classxt_1_1linear__assigner.html b/classxt_1_1linear__assigner.html new file mode 100644 index 000000000..897f8dc78 --- /dev/null +++ b/classxt_1_1linear__assigner.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::linear_assigner< simd_assign > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::linear_assigner< simd_assign > Class Template Reference
+
+
+ + + + + +

+Static Public Member Functions

template<class E1, class E2>
static void run (E1 &e1, const E2 &e2)
 
+

Detailed Description

+
template<bool simd_assign>
+class xt::linear_assigner< simd_assign >
+

Definition at line 146 of file xassign.hpp.

+

Member Function Documentation

+ +

◆ run()

+ +
+
+
+template<bool simd_assign>
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
void xt::linear_assigner< simd_assign >::run (E1 & e1,
const E2 & e2 )
+
+inlinestatic
+
+ +

Definition at line 703 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1linear__assigner_3_01false_01_4-members.html b/classxt_1_1linear__assigner_3_01false_01_4-members.html new file mode 100644 index 000000000..d80e60472 --- /dev/null +++ b/classxt_1_1linear__assigner_3_01false_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::linear_assigner< false > Member List
+
+
+ +

This is the complete list of members for xt::linear_assigner< false >, including all inherited members.

+ + + +
run(E1 &e1, const E2 &e2) (defined in xt::linear_assigner< false >)xt::linear_assigner< false >inlinestatic
run(E1 &e1, const E2 &e2) (defined in xt::linear_assigner< false >)xt::linear_assigner< false >inlinestatic
+
+ + + + diff --git a/classxt_1_1linear__assigner_3_01false_01_4.html b/classxt_1_1linear__assigner_3_01false_01_4.html new file mode 100644 index 000000000..73baedb24 --- /dev/null +++ b/classxt_1_1linear__assigner_3_01false_01_4.html @@ -0,0 +1,201 @@ + + + + + + + +xtensor: xt::linear_assigner< false > Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::linear_assigner< false > Class Reference
+
+
+ + + + + + + +

+Static Public Member Functions

template<class E1, class E2>
static void run (E1 &e1, const E2 &e2)
 
static void run (E1 &e1, const E2 &e2)
 
+

Detailed Description

+
+

Definition at line 155 of file xassign.hpp.

+

Member Function Documentation

+ +

◆ run() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void xt::linear_assigner< simd_assign >::run (E1 & e1,
const E2 & e2 )
+
+inlinestatic
+
+ +

Definition at line 151 of file xassign.hpp.

+ +
+
+ +

◆ run() [2/2]

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
void xt::linear_assigner< false >::run (E1 & e1,
const E2 & e2 )
+
+inlinestatic
+
+ +

Definition at line 788 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1noalias__proxy-members.html b/classxt_1_1noalias__proxy-members.html new file mode 100644 index 000000000..7c3020c9e --- /dev/null +++ b/classxt_1_1noalias__proxy-members.html @@ -0,0 +1,148 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::noalias_proxy< A > Member List
+
+
+ +

This is the complete list of members for xt::noalias_proxy< A >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
noalias_proxy(A a) noexcept (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator%=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator%=(const xexpression< E > &e) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator%=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator&=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator&=(const xexpression< E > &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator&=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator*=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator*=(const xexpression< E > &e) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator*=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator+=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator+=(const xexpression< E > &e) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator+=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator-=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator-=(const xexpression< E > &e) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator-=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator/=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator/=(const xexpression< E > &e) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator/=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator=(const xexpression< E > &e) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator^=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator^=(const xexpression< E > &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator^=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator|=(const E &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >
operator|=(const xexpression< E > &) (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
operator|=(const E &e) -> disable_xexpression< E, A > (defined in xt::noalias_proxy< A >)xt::noalias_proxy< A >inline
+
+ + + + diff --git a/classxt_1_1noalias__proxy.html b/classxt_1_1noalias__proxy.html new file mode 100644 index 000000000..bcb4e8778 --- /dev/null +++ b/classxt_1_1noalias__proxy.html @@ -0,0 +1,822 @@ + + + + + + + +xtensor: xt::noalias_proxy< A > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::noalias_proxy< A > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 noalias_proxy (A a) noexcept
 
+template<class E>
disable_xexpression< E, A > operator= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator+= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator-= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator*= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator/= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator%= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator&= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator|= (const E &)
 
+template<class E>
disable_xexpression< E, A > operator^= (const E &)
 
template<class E>
operator= (const xexpression< E > &e)
 
template<class E>
operator+= (const xexpression< E > &e)
 
template<class E>
operator-= (const xexpression< E > &e)
 
template<class E>
operator*= (const xexpression< E > &e)
 
template<class E>
operator/= (const xexpression< E > &e)
 
template<class E>
operator%= (const xexpression< E > &e)
 
template<class E>
operator&= (const xexpression< E > &)
 
template<class E>
operator|= (const xexpression< E > &)
 
template<class E>
operator^= (const xexpression< E > &)
 
template<class E>
auto operator= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator+= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator-= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator*= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator/= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator%= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator&= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator|= (const E &e) -> disable_xexpression< E, A >
 
template<class E>
auto operator^= (const E &e) -> disable_xexpression< E, A >
 
+

Detailed Description

+
template<class A>
+class xt::noalias_proxy< A >
+

Definition at line 19 of file xnoalias.hpp.

+

Constructor & Destructor Documentation

+ +

◆ noalias_proxy()

+ +
+
+
+template<class A>
+ + + + + +
+ + + + + + + +
xt::noalias_proxy< A >::noalias_proxy (A a)
+
+inlinenoexcept
+
+ +

Definition at line 92 of file xnoalias.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator%=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator%= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 134 of file xnoalias.hpp.

+ +
+
+ +

◆ operator%=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator%= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 197 of file xnoalias.hpp.

+ +
+
+ +

◆ operator&=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator&= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 141 of file xnoalias.hpp.

+ +
+
+ +

◆ operator&=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator&= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 204 of file xnoalias.hpp.

+ +
+
+ +

◆ operator*=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator*= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 120 of file xnoalias.hpp.

+ +
+
+ +

◆ operator*=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator*= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 183 of file xnoalias.hpp.

+ +
+
+ +

◆ operator+=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator+= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 106 of file xnoalias.hpp.

+ +
+
+ +

◆ operator+=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator+= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 169 of file xnoalias.hpp.

+ +
+
+ +

◆ operator-=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator-= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 113 of file xnoalias.hpp.

+ +
+
+ +

◆ operator-=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator-= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 176 of file xnoalias.hpp.

+ +
+
+ +

◆ operator/=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator/= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 127 of file xnoalias.hpp.

+ +
+
+ +

◆ operator/=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator/= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 190 of file xnoalias.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 99 of file xnoalias.hpp.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 162 of file xnoalias.hpp.

+ +
+
+ +

◆ operator^=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator^= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 155 of file xnoalias.hpp.

+ +
+
+ +

◆ operator^=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator^= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 218 of file xnoalias.hpp.

+ +
+
+ +

◆ operator|=() [1/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::noalias_proxy< A >::operator|= (const E & e) -> disable_xexpression<E, A> +
+
+inline
+
+ +

Definition at line 148 of file xnoalias.hpp.

+ +
+
+ +

◆ operator|=() [2/2]

+ +
+
+
+template<class A>
+
+template<class E>
+ + + + + +
+ + + + + + + +
A xt::noalias_proxy< A >::operator|= (const xexpression< E > & e)
+
+inline
+
+ +

Definition at line 211 of file xnoalias.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xnoalias.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1print__options_1_1edge__items-members.html b/classxt_1_1print__options_1_1edge__items-members.html new file mode 100644 index 000000000..431409173 --- /dev/null +++ b/classxt_1_1print__options_1_1edge__items-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::print_options::edge_items Member List
+
+
+ +

This is the complete list of members for xt::print_options::edge_items, including all inherited members.

+ + + + +
edge_items(int value) (defined in xt::print_options::edge_items)xt::print_options::edge_itemsinline
id() (defined in xt::print_options::edge_items)xt::print_options::edge_itemsinlinestatic
value() const (defined in xt::print_options::edge_items)xt::print_options::edge_itemsinline
+
+ + + + diff --git a/classxt_1_1print__options_1_1edge__items.html b/classxt_1_1print__options_1_1edge__items.html new file mode 100644 index 000000000..312a4825c --- /dev/null +++ b/classxt_1_1print__options_1_1edge__items.html @@ -0,0 +1,234 @@ + + + + + + + +xtensor: xt::print_options::edge_items Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::print_options::edge_items Class Reference
+
+
+ +

io manipulator used to set the number of egde items if the summarization is triggered. + More...

+ +

#include <xio.hpp>

+ + + + + + +

+Public Member Functions

 edge_items (int value)
 
int value () const
 
+ + + +

+Static Public Member Functions

static int id ()
 
+

Detailed Description

+

io manipulator used to set the number of egde items if the summarization is triggered.

+
using po = xt::print_options;
+
xt::xarray<double> a = xt::rand::randn<double>({2000, 500});
+
std::cout << po::edge_items(5) << a << std::endl;
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+

Definition at line 165 of file xio.hpp.

+

Constructor & Destructor Documentation

+ +

◆ edge_items()

+ +
+
+ + + + + +
+ + + + + + + +
xt::print_options::edge_items::edge_items (int value)
+
+inline
+
+ +

Definition at line 165 of file xio.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ id()

+ +
+
+ + + + + +
+ + + + + + + +
static int xt::print_options::edge_items::id ()
+
+inlinestatic
+
+ +

Definition at line 165 of file xio.hpp.

+ +
+
+ +

◆ value()

+ +
+
+ + + + + +
+ + + + + + + +
int xt::print_options::edge_items::value () const
+
+inline
+
+ +

Definition at line 165 of file xio.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/io/xio.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1print__options_1_1line__width-members.html b/classxt_1_1print__options_1_1line__width-members.html new file mode 100644 index 000000000..0528a7065 --- /dev/null +++ b/classxt_1_1print__options_1_1line__width-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::print_options::line_width Member List
+
+
+ +

This is the complete list of members for xt::print_options::line_width, including all inherited members.

+ + + + +
id() (defined in xt::print_options::line_width)xt::print_options::line_widthinlinestatic
line_width(int value) (defined in xt::print_options::line_width)xt::print_options::line_widthinline
value() const (defined in xt::print_options::line_width)xt::print_options::line_widthinline
+
+ + + + diff --git a/classxt_1_1print__options_1_1line__width.html b/classxt_1_1print__options_1_1line__width.html new file mode 100644 index 000000000..a40f39cdc --- /dev/null +++ b/classxt_1_1print__options_1_1line__width.html @@ -0,0 +1,234 @@ + + + + + + + +xtensor: xt::print_options::line_width Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::print_options::line_width Class Reference
+
+
+ +

io manipulator used to set the width of the lines when printing an expression. + More...

+ +

#include <xio.hpp>

+ + + + + + +

+Public Member Functions

 line_width (int value)
 
int value () const
 
+ + + +

+Static Public Member Functions

static int id ()
 
+

Detailed Description

+

io manipulator used to set the width of the lines when printing an expression.

+
using po = xt::print_options;
+
xt::xarray<double> a = {{1, 2, 3}, {4, 5, 6}};
+
std::cout << po::line_width(100) << a << std::endl;
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+

Definition at line 137 of file xio.hpp.

+

Constructor & Destructor Documentation

+ +

◆ line_width()

+ +
+
+ + + + + +
+ + + + + + + +
xt::print_options::line_width::line_width (int value)
+
+inline
+
+ +

Definition at line 137 of file xio.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ id()

+ +
+
+ + + + + +
+ + + + + + + +
static int xt::print_options::line_width::id ()
+
+inlinestatic
+
+ +

Definition at line 137 of file xio.hpp.

+ +
+
+ +

◆ value()

+ +
+
+ + + + + +
+ + + + + + + +
int xt::print_options::line_width::value () const
+
+inline
+
+ +

Definition at line 137 of file xio.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/io/xio.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1print__options_1_1precision-members.html b/classxt_1_1print__options_1_1precision-members.html new file mode 100644 index 000000000..e5cdea648 --- /dev/null +++ b/classxt_1_1print__options_1_1precision-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::print_options::precision Member List
+
+
+ +

This is the complete list of members for xt::print_options::precision, including all inherited members.

+ + + + +
id() (defined in xt::print_options::precision)xt::print_options::precisioninlinestatic
precision(int value) (defined in xt::print_options::precision)xt::print_options::precisioninline
value() const (defined in xt::print_options::precision)xt::print_options::precisioninline
+
+ + + + diff --git a/classxt_1_1print__options_1_1precision.html b/classxt_1_1print__options_1_1precision.html new file mode 100644 index 000000000..1dfbd744e --- /dev/null +++ b/classxt_1_1print__options_1_1precision.html @@ -0,0 +1,234 @@ + + + + + + + +xtensor: xt::print_options::precision Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::print_options::precision Class Reference
+
+
+ +

io manipulator used to set the precision of the floating point values when printing an expression. + More...

+ +

#include <xio.hpp>

+ + + + + + +

+Public Member Functions

 precision (int value)
 
int value () const
 
+ + + +

+Static Public Member Functions

static int id ()
 
+

Detailed Description

+

io manipulator used to set the precision of the floating point values when printing an expression.

+
using po = xt::print_options;
+
xt::xarray<double> a = xt::rand::randn<double>({2000, 500});
+
std::cout << po::precision(5) << a << std::endl;
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+

Definition at line 179 of file xio.hpp.

+

Constructor & Destructor Documentation

+ +

◆ precision()

+ +
+
+ + + + + +
+ + + + + + + +
xt::print_options::precision::precision (int value)
+
+inline
+
+ +

Definition at line 179 of file xio.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ id()

+ +
+
+ + + + + +
+ + + + + + + +
static int xt::print_options::precision::id ()
+
+inlinestatic
+
+ +

Definition at line 179 of file xio.hpp.

+ +
+
+ +

◆ value()

+ +
+
+ + + + + +
+ + + + + + + +
int xt::print_options::precision::value () const
+
+inline
+
+ +

Definition at line 179 of file xio.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/io/xio.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1print__options_1_1threshold-members.html b/classxt_1_1print__options_1_1threshold-members.html new file mode 100644 index 000000000..7f9214f32 --- /dev/null +++ b/classxt_1_1print__options_1_1threshold-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::print_options::threshold Member List
+
+
+ +

This is the complete list of members for xt::print_options::threshold, including all inherited members.

+ + + + +
id() (defined in xt::print_options::threshold)xt::print_options::thresholdinlinestatic
threshold(int value) (defined in xt::print_options::threshold)xt::print_options::thresholdinline
value() const (defined in xt::print_options::threshold)xt::print_options::thresholdinline
+
+ + + + diff --git a/classxt_1_1print__options_1_1threshold.html b/classxt_1_1print__options_1_1threshold.html new file mode 100644 index 000000000..2eac56720 --- /dev/null +++ b/classxt_1_1print__options_1_1threshold.html @@ -0,0 +1,234 @@ + + + + + + + +xtensor: xt::print_options::threshold Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::print_options::threshold Class Reference
+
+
+ +

io manipulator used to set the threshold after which summarization is triggered. + More...

+ +

#include <xio.hpp>

+ + + + + + +

+Public Member Functions

 threshold (int value)
 
int value () const
 
+ + + +

+Static Public Member Functions

static int id ()
 
+

Detailed Description

+

io manipulator used to set the threshold after which summarization is triggered.

+
using po = xt::print_options;
+
xt::xarray<double> a = xt::rand::randn<double>({2000, 500});
+
std::cout << po::threshold(50) << a << std::endl;
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+

Definition at line 151 of file xio.hpp.

+

Constructor & Destructor Documentation

+ +

◆ threshold()

+ +
+
+ + + + + +
+ + + + + + + +
xt::print_options::threshold::threshold (int value)
+
+inline
+
+ +

Definition at line 151 of file xio.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ id()

+ +
+
+ + + + + +
+ + + + + + + +
static int xt::print_options::threshold::id ()
+
+inlinestatic
+
+ +

Definition at line 151 of file xio.hpp.

+ +
+
+ +

◆ value()

+ +
+
+ + + + + +
+ + + + + + + +
int xt::print_options::threshold::value () const
+
+inline
+
+ +

Definition at line 151 of file xio.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/io/xio.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1sequence__view-members.html b/classxt_1_1sequence__view-members.html new file mode 100644 index 000000000..2a5264e12 --- /dev/null +++ b/classxt_1_1sequence__view-members.html @@ -0,0 +1,148 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::sequence_view< E, Start, End > Member List
+
+
+ +

This is the complete list of members for xt::sequence_view< E, Start, End >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
back() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
begin() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
cbegin() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
cend() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
const_iterator typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
const_pointer typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
const_reference typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
const_reverse_iterator typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
crbegin() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
crend() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
difference_type typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
empty() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
end() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
front() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
iterator typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
operator T() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
operator[](std::size_t idx) const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
pointer typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
rbegin() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
reference typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
rend() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
reverse_iterator typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
sequence_view(const E &container) (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >explicit
sequence_view(const sequence_view< E, OS, OE > &other) (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >explicit
size() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
size_type typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
storage() const (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
value_type typedef (defined in xt::sequence_view< E, Start, End >)xt::sequence_view< E, Start, End >
+
+ + + + diff --git a/classxt_1_1sequence__view.html b/classxt_1_1sequence__view.html new file mode 100644 index 000000000..ddf08e68d --- /dev/null +++ b/classxt_1_1sequence__view.html @@ -0,0 +1,772 @@ + + + + + + + +xtensor: xt::sequence_view< E, Start, End > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::sequence_view< E, Start, End > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using value_type = typename E::value_type
 
using reference = typename E::reference
 
using const_reference = typename E::const_reference
 
using pointer = typename E::pointer
 
using const_pointer = typename E::const_pointer
 
using size_type = typename E::size_type
 
using difference_type = typename E::difference_type
 
using iterator = typename E::iterator
 
using const_iterator = typename E::const_iterator
 
using reverse_iterator = typename E::reverse_iterator
 
using const_reverse_iterator = typename E::const_reverse_iterator
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 sequence_view (const E &container)
 
template<std::ptrdiff_t OS, std::ptrdiff_t OE>
 sequence_view (const sequence_view< E, OS, OE > &other)
 
template<class T, class R = decltype(std::declval<T>().begin())>
 operator T () const
 
bool empty () const
 
size_type size () const
 
const_reference operator[] (std::size_t idx) const
 
const_iterator end () const
 
const_iterator begin () const
 
const_iterator cend () const
 
const_iterator cbegin () const
 
const_reverse_iterator rend () const
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator crend () const
 
const_reverse_iterator crbegin () const
 
const_reference front () const
 
const_reference back () const
 
const E & storage () const
 
+

Detailed Description

+
template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+class xt::sequence_view< E, Start, End >
+

Definition at line 1737 of file xstorage.hpp.

+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::const_iterator = typename E::const_iterator
+
+ +

Definition at line 1751 of file xstorage.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::const_pointer = typename E::const_pointer
+
+ +

Definition at line 1745 of file xstorage.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::const_reference = typename E::const_reference
+
+ +

Definition at line 1743 of file xstorage.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::const_reverse_iterator = typename E::const_reverse_iterator
+
+ +

Definition at line 1753 of file xstorage.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::difference_type = typename E::difference_type
+
+ +

Definition at line 1748 of file xstorage.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::iterator = typename E::iterator
+
+ +

Definition at line 1750 of file xstorage.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::pointer = typename E::pointer
+
+ +

Definition at line 1744 of file xstorage.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::reference = typename E::reference
+
+ +

Definition at line 1742 of file xstorage.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::reverse_iterator = typename E::reverse_iterator
+
+ +

Definition at line 1752 of file xstorage.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::size_type = typename E::size_type
+
+ +

Definition at line 1747 of file xstorage.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
+ + + + +
using xt::sequence_view< E, Start, End >::value_type = typename E::value_type
+
+ +

Definition at line 1741 of file xstorage.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ sequence_view() [1/2]

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + +
+ + + + + + + +
xt::sequence_view< E, Start, End >::sequence_view (const E & container)
+
+explicit
+
+ +

Definition at line 1788 of file xstorage.hpp.

+ +
+
+ +

◆ sequence_view() [2/2]

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+
+template<std::ptrdiff_t OS, std::ptrdiff_t OE>
+ + + + + +
+ + + + + + + +
xt::sequence_view< E, Start, End >::sequence_view (const sequence_view< E, OS, OE > & other)
+
+explicit
+
+ +

Definition at line 1795 of file xstorage.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ back()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::back () const
+
+ +

Definition at line 1896 of file xstorage.hpp.

+ +
+
+ +

◆ begin()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::begin () const
+
+ +

Definition at line 1848 of file xstorage.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::cbegin () const
+
+ +

Definition at line 1860 of file xstorage.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::cend () const
+
+ +

Definition at line 1854 of file xstorage.hpp.

+ +
+
+ +

◆ crbegin()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::crbegin () const
+
+ +

Definition at line 1884 of file xstorage.hpp.

+ +
+
+ +

◆ crend()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::crend () const
+
+ +

Definition at line 1878 of file xstorage.hpp.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
bool xt::sequence_view< E, Start, End >::empty () const
+
+ +

Definition at line 1810 of file xstorage.hpp.

+ +
+
+ +

◆ end()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::end () const
+
+ +

Definition at line 1835 of file xstorage.hpp.

+ +
+
+ +

◆ front()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::front () const
+
+ +

Definition at line 1890 of file xstorage.hpp.

+ +
+
+ +

◆ operator T()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+
+template<class T, class R>
+ + + + + + + +
xt::sequence_view< E, Start, End >::operator T () const
+
+ +

Definition at line 1802 of file xstorage.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::operator[] (std::size_t idx) const
+
+ +

Definition at line 1829 of file xstorage.hpp.

+ +
+
+ +

◆ rbegin()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::rbegin () const
+
+ +

Definition at line 1872 of file xstorage.hpp.

+ +
+
+ +

◆ rend()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::rend () const
+
+ +

Definition at line 1866 of file xstorage.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
auto xt::sequence_view< E, Start, End >::size () const
+
+ +

Definition at line 1816 of file xstorage.hpp.

+ +
+
+ +

◆ storage()

+ +
+
+
+template<class E, std::ptrdiff_t Start, std::ptrdiff_t End>
+ + + + + + + +
const E & xt::sequence_view< E, Start, End >::storage () const
+
+ +

Definition at line 1909 of file xstorage.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1stepper__assigner-members.html b/classxt_1_1stepper__assigner-members.html new file mode 100644 index 000000000..35566b92d --- /dev/null +++ b/classxt_1_1stepper__assigner-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::stepper_assigner< E1, E2, L > Member List
+
+
+ +

This is the complete list of members for xt::stepper_assigner< E1, E2, L >, including all inherited members.

+ + + + + + + + + + + + + +
difference_type typedef (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >
index_type typedef (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >
lhs_iterator typedef (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >
reset(size_type i) (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >inline
rhs_iterator typedef (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >
run() (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >inline
shape_type typedef (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >
size_type typedef (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >
step(size_type i) (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >inline
step(size_type i, size_type n) (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >inline
stepper_assigner(E1 &e1, const E2 &e2) (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >inline
to_end(layout_type) (defined in xt::stepper_assigner< E1, E2, L >)xt::stepper_assigner< E1, E2, L >inline
+
+ + + + diff --git a/classxt_1_1stepper__assigner.html b/classxt_1_1stepper__assigner.html new file mode 100644 index 000000000..dd1693c99 --- /dev/null +++ b/classxt_1_1stepper__assigner.html @@ -0,0 +1,453 @@ + + + + + + + +xtensor: xt::stepper_assigner< E1, E2, L > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::stepper_assigner< E1, E2, L > Class Template Reference
+
+
+ + + + + + + + + + + + + + +

+Public Types

using lhs_iterator = typename E1::stepper
 
using rhs_iterator = typename E2::const_stepper
 
using shape_type = typename E1::shape_type
 
using index_type = xindex_type_t<shape_type>
 
using size_type = typename lhs_iterator::size_type
 
using difference_type = typename lhs_iterator::difference_type
 
+ + + + + + + + + + + + + +

+Public Member Functions

 stepper_assigner (E1 &e1, const E2 &e2)
 
void run ()
 
void step (size_type i)
 
void step (size_type i, size_type n)
 
void reset (size_type i)
 
void to_end (layout_type)
 
+

Detailed Description

+
template<class E1, class E2, layout_type L>
+class xt::stepper_assigner< E1, E2, L >
+

Definition at line 110 of file xassign.hpp.

+

Member Typedef Documentation

+ +

◆ difference_type

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + +
using xt::stepper_assigner< E1, E2, L >::difference_type = typename lhs_iterator::difference_type
+
+ +

Definition at line 119 of file xassign.hpp.

+ +
+
+ +

◆ index_type

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + +
using xt::stepper_assigner< E1, E2, L >::index_type = xindex_type_t<shape_type>
+
+ +

Definition at line 117 of file xassign.hpp.

+ +
+
+ +

◆ lhs_iterator

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + +
using xt::stepper_assigner< E1, E2, L >::lhs_iterator = typename E1::stepper
+
+ +

Definition at line 114 of file xassign.hpp.

+ +
+
+ +

◆ rhs_iterator

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + +
using xt::stepper_assigner< E1, E2, L >::rhs_iterator = typename E2::const_stepper
+
+ +

Definition at line 115 of file xassign.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + +
using xt::stepper_assigner< E1, E2, L >::shape_type = typename E1::shape_type
+
+ +

Definition at line 116 of file xassign.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + +
using xt::stepper_assigner< E1, E2, L >::size_type = typename lhs_iterator::size_type
+
+ +

Definition at line 118 of file xassign.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ stepper_assigner()

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + + +
+ + + + + + + + + + + +
xt::stepper_assigner< E1, E2, L >::stepper_assigner (E1 & e1,
const E2 & e2 )
+
+inline
+
+ +

Definition at line 645 of file xassign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ reset()

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + + +
+ + + + + + + +
void xt::stepper_assigner< E1, E2, L >::reset (size_type i)
+
+inline
+
+ +

Definition at line 684 of file xassign.hpp.

+ +
+
+ +

◆ run()

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + + +
+ + + + + + + +
void xt::stepper_assigner< E1, E2, L >::run ()
+
+inline
+
+ +

Definition at line 654 of file xassign.hpp.

+ +
+
+ +

◆ step() [1/2]

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + + +
+ + + + + + + +
void xt::stepper_assigner< E1, E2, L >::step (size_type i)
+
+inline
+
+ +

Definition at line 670 of file xassign.hpp.

+ +
+
+ +

◆ step() [2/2]

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + + +
+ + + + + + + + + + + +
void xt::stepper_assigner< E1, E2, L >::step (size_type i,
size_type n )
+
+inline
+
+ +

Definition at line 677 of file xassign.hpp.

+ +
+
+ +

◆ to_end()

+ +
+
+
+template<class E1, class E2, layout_type L>
+ + + + + +
+ + + + + + + +
void xt::stepper_assigner< E1, E2, L >::to_end (layout_type l)
+
+inline
+
+ +

Definition at line 691 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1strided__loop__assigner-members.html b/classxt_1_1strided__loop__assigner-members.html new file mode 100644 index 000000000..8ddd7282b --- /dev/null +++ b/classxt_1_1strided__loop__assigner-members.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::strided_loop_assigner< simd > Member List
+
+
+ +

This is the complete list of members for xt::strided_loop_assigner< simd >, including all inherited members.

+ + + + + + + + + +
get_loop_sizes(E1 &e1, const E2 &e2) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >static
get_loop_sizes(E1 &e1, const E2 &e2) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >inline
loop_sizes_t typedef (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >
run(E1 &e1, const E2 &e2, const loop_sizes_t &loop_sizes) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >inlinestatic
run(E1 &e1, const E2 &e2) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >static
run(E1 &e1, const E2 &e2) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >inline
run(E1 &, const E2 &, const loop_sizes_t &) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >inline
run(E1 &e1, const E2 &e2) (defined in xt::strided_loop_assigner< simd >)xt::strided_loop_assigner< simd >inline
+
+ + + + diff --git a/classxt_1_1strided__loop__assigner.html b/classxt_1_1strided__loop__assigner.html new file mode 100644 index 000000000..e44182528 --- /dev/null +++ b/classxt_1_1strided__loop__assigner.html @@ -0,0 +1,355 @@ + + + + + + + +xtensor: xt::strided_loop_assigner< simd > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::strided_loop_assigner< simd > Class Template Reference
+
+
+ + + + +

+Public Types

using loop_sizes_t = strided_assign_detail::loop_sizes_t
 
+ + + + + + + + + + +

+Public Member Functions

template<class E1, class E2>
strided_assign_detail::loop_sizes_t get_loop_sizes (E1 &e1, const E2 &e2)
 
void run (E1 &e1, const E2 &e2)
 
void run (E1 &, const E2 &, const loop_sizes_t &)
 
void run (E1 &e1, const E2 &e2)
 
+ + + + + + + + + + +

+Static Public Member Functions

template<class E1, class E2>
static void run (E1 &e1, const E2 &e2, const loop_sizes_t &loop_sizes)
 
+template<class E1, class E2>
static loop_sizes_t get_loop_sizes (E1 &e1, const E2 &e2)
 
+template<class E1, class E2>
static void run (E1 &e1, const E2 &e2)
 
+

Detailed Description

+
template<bool simd>
+class xt::strided_loop_assigner< simd >
+

Definition at line 189 of file xassign.hpp.

+

Member Typedef Documentation

+ +

◆ loop_sizes_t

+ +
+
+
+template<bool simd>
+ + + + +
using xt::strided_loop_assigner< simd >::loop_sizes_t = strided_assign_detail::loop_sizes_t
+
+ +

Definition at line 193 of file xassign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ get_loop_sizes()

+ +
+
+
+template<bool simd>
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
strided_assign_detail::loop_sizes_t xt::strided_loop_assigner< simd >::get_loop_sizes (E1 & e1,
const E2 & e2 )
+
+inline
+
+ +

Definition at line 1093 of file xassign.hpp.

+ +
+
+ +

◆ run() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
void xt::strided_loop_assigner< false >::run (E1 & ,
const E2 & ,
const loop_sizes_t &  )
+
+inline
+
+ +

Definition at line 1348 of file xassign.hpp.

+ +
+
+ +

◆ run() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void xt::strided_loop_assigner< true >::run (E1 & e1,
const E2 & e2 )
+
+inline
+
+ +

Definition at line 1332 of file xassign.hpp.

+ +
+
+ +

◆ run() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + + + + +
void xt::strided_loop_assigner< false >::run (E1 & e1,
const E2 & e2 )
+
+inline
+
+ +

Definition at line 1354 of file xassign.hpp.

+ +
+
+ +

◆ run() [4/4]

+ +
+
+
+template<bool simd>
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + + + + + + +
void xt::strided_loop_assigner< simd >::run (E1 & e1,
const E2 & e2,
const loop_sizes_t & loop_sizes )
+
+inlinestatic
+
+ +

Definition at line 1102 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1svector-members.html b/classxt_1_1svector-members.html new file mode 100644 index 000000000..d0ed1e417 --- /dev/null +++ b/classxt_1_1svector-members.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::svector< T, N, A, Init > Member List
+
+
+ +

This is the complete list of members for xt::svector< T, N, A, Init >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
alignment (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >static
allocator_type typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
assign(size_type n, const value_type &v) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
assign(std::initializer_list< V > il) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
assign(IT other_begin, IT other_end) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
at(size_type idx) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
at(size_type idx) const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
back() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
back() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
begin() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
begin() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
capacity() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
cbegin() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
cend() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
clear() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
const_iterator typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
const_pointer typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
const_reference typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
const_reverse_iterator typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
crbegin() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
crend() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
data() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
data() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
difference_type typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
empty() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
end() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
end() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
erase(const_iterator cit) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
erase(const_iterator cfirst, const_iterator clast) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
front() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
front() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
get_allocator() const noexcept (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
insert(const_iterator it, const T &elt) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
insert(const_iterator pos, It first, It last) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
insert(const_iterator pos, std::initializer_list< T > l) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
insert(const_iterator pos, It first, It last) -> iterator (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
iterator typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
max_size() const noexcept (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
on_stack() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator=(const svector &rhs) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator=(svector &&rhs) noexcept(std::is_nothrow_move_assignable< value_type >::value) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator=(const std::vector< T > &rhs) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator=(std::initializer_list< T > il) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator=(const svector< T, N2, A, I2 > &rhs) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
operator=(const svector< T, N2, A, I2 > &rhs) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator[](size_type idx) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
operator[](size_type idx) const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
pointer typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
pop_back() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
push_back(const T &elt) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
push_back(T &&elt) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
rbegin() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
rbegin() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
reference typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
rend() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
rend() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
reserve(size_type n) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
resize(size_type n) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
reverse_iterator typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
self_type typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
shrink_to_fit() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
size() const (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
size_type typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
svector() noexcept (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
svector(const allocator_type &alloc) noexcept (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inlineexplicit
svector(size_type n, const allocator_type &alloc=allocator_type()) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inlineexplicit
svector(size_type n, const value_type &v, const allocator_type &alloc=allocator_type()) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
svector(std::initializer_list< T > il, const allocator_type &alloc=allocator_type()) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
svector(const std::vector< T > &vec) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
svector(IT begin, IT end, const allocator_type &alloc=allocator_type()) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
svector(const svector< T, N2, A, I2 > &rhs) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inlineexplicit
svector(const svector &other) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
svector(svector &&other) noexcept(std::is_nothrow_move_constructible< value_type >::value) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
swap(svector< T, ON, OA, InitA > &rhs) (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
value_type typedef (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >
~svector() (defined in xt::svector< T, N, A, Init >)xt::svector< T, N, A, Init >inline
+
+ + + + diff --git a/classxt_1_1svector.html b/classxt_1_1svector.html new file mode 100644 index 000000000..4f618e920 --- /dev/null +++ b/classxt_1_1svector.html @@ -0,0 +1,2350 @@ + + + + + + + +xtensor: xt::svector< T, N, A, Init > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::svector< T, N, A, Init > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = svector<T, N, A, Init>
 
using allocator_type = A
 
using size_type = typename std::allocator_traits<A>::size_type
 
using value_type = typename std::allocator_traits<A>::value_type
 
using pointer = typename std::allocator_traits<A>::pointer
 
using const_pointer = typename std::allocator_traits<A>::const_pointer
 
using reference = value_type&
 
using const_reference = const value_type&
 
using difference_type = typename std::allocator_traits<A>::difference_type
 
using iterator = pointer
 
using const_iterator = const_pointer
 
using reverse_iterator = std::reverse_iterator<iterator>
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 svector (const allocator_type &alloc) noexcept
 
 svector (size_type n, const allocator_type &alloc=allocator_type())
 
 svector (size_type n, const value_type &v, const allocator_type &alloc=allocator_type())
 
 svector (std::initializer_list< T > il, const allocator_type &alloc=allocator_type())
 
 svector (const std::vector< T > &vec)
 
template<std::input_iterator IT>
 svector (IT begin, IT end, const allocator_type &alloc=allocator_type())
 
template<std::size_t N2, bool I2>
+requires (N != N2)
 svector (const svector< T, N2, A, I2 > &rhs)
 
svectoroperator= (const svector &rhs)
 
svectoroperator= (svector &&rhs) noexcept(std::is_nothrow_move_assignable< value_type >::value)
 
svectoroperator= (const std::vector< T > &rhs)
 
svectoroperator= (std::initializer_list< T > il)
 
+template<std::size_t N2, bool I2>
+requires (N != N2)
svectoroperator= (const svector< T, N2, A, I2 > &rhs)
 
 svector (const svector &other)
 
 svector (svector &&other) noexcept(std::is_nothrow_move_constructible< value_type >::value)
 
void assign (size_type n, const value_type &v)
 
template<class V>
void assign (std::initializer_list< V > il)
 
template<class IT>
void assign (IT other_begin, IT other_end)
 
reference operator[] (size_type idx)
 
const_reference operator[] (size_type idx) const
 
reference at (size_type idx)
 
const_reference at (size_type idx) const
 
pointer data ()
 
const_pointer data () const
 
void push_back (const T &elt)
 
void push_back (T &&elt)
 
void pop_back ()
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator cend () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
const_reverse_iterator crbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
const_reverse_iterator crend () const
 
bool empty () const
 
size_type size () const
 
void resize (size_type n)
 
size_type max_size () const noexcept
 
size_type capacity () const
 
void reserve (size_type n)
 
void shrink_to_fit ()
 
void clear ()
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
bool on_stack ()
 
iterator erase (const_iterator cit)
 
iterator erase (const_iterator cfirst, const_iterator clast)
 
iterator insert (const_iterator it, const T &elt)
 
+template<class It>
iterator insert (const_iterator pos, It first, It last)
 
iterator insert (const_iterator pos, std::initializer_list< T > l)
 
template<std::size_t ON, class OA, bool InitA>
void swap (svector< T, ON, OA, InitA > &rhs)
 
allocator_type get_allocator () const noexcept
 
template<std::size_t N2, bool I2>
+requires (N != N2)
svector< T, N, A, Init > & operator= (const svector< T, N2, A, I2 > &rhs)
 
template<class It>
auto insert (const_iterator pos, It first, It last) -> iterator
 
+ + + +

+Static Public Attributes

static constexpr std::size_t alignment
 
+

Detailed Description

+
template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+class xt::svector< T, N, A, Init >
+

Definition at line 633 of file xstorage.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::allocator_type = A
+
+ +

Definition at line 638 of file xstorage.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::const_iterator = const_pointer
+
+ +

Definition at line 648 of file xstorage.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::const_pointer = typename std::allocator_traits<A>::const_pointer
+
+ +

Definition at line 642 of file xstorage.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::const_reference = const value_type&
+
+ +

Definition at line 644 of file xstorage.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::const_reverse_iterator = std::reverse_iterator<const_iterator>
+
+ +

Definition at line 650 of file xstorage.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::difference_type = typename std::allocator_traits<A>::difference_type
+
+ +

Definition at line 645 of file xstorage.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::iterator = pointer
+
+ +

Definition at line 647 of file xstorage.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::pointer = typename std::allocator_traits<A>::pointer
+
+ +

Definition at line 641 of file xstorage.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::reference = value_type&
+
+ +

Definition at line 643 of file xstorage.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::reverse_iterator = std::reverse_iterator<iterator>
+
+ +

Definition at line 649 of file xstorage.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::self_type = svector<T, N, A, Init>
+
+ +

Definition at line 637 of file xstorage.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::size_type = typename std::allocator_traits<A>::size_type
+
+ +

Definition at line 639 of file xstorage.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + +
using xt::svector< T, N, A, Init >::value_type = typename std::allocator_traits<A>::value_type
+
+ +

Definition at line 640 of file xstorage.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ svector() [1/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::svector ()
+
+inlinenoexcept
+
+ +

Definition at line 780 of file xstorage.hpp.

+ +
+
+ +

◆ ~svector()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::~svector ()
+
+inline
+
+ +

Definition at line 771 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [2/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::svector (const allocator_type & alloc)
+
+inlineexplicitnoexcept
+
+ +

Definition at line 786 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [3/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + +
xt::svector< T, N, A, Init >::svector (size_type n,
const allocator_type & alloc = allocator_type() )
+
+inlineexplicit
+
+ +

Definition at line 792 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [4/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::svector< T, N, A, Init >::svector (size_type n,
const value_type & v,
const allocator_type & alloc = allocator_type() )
+
+inline
+
+ +

Definition at line 829 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [5/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + +
xt::svector< T, N, A, Init >::svector (std::initializer_list< T > il,
const allocator_type & alloc = allocator_type() )
+
+inline
+
+ +

Definition at line 836 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [6/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::svector (const std::vector< T > & vec)
+
+inline
+
+ +

Definition at line 823 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [7/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+
+template<std::input_iterator IT>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::svector< T, N, A, Init >::svector (IT begin,
IT end,
const allocator_type & alloc = allocator_type() )
+
+inline
+
+ +

Definition at line 807 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [8/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+requires (N != N2)
+
+template<std::size_t N2, bool I2>
+requires (N != N2)
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::svector (const svector< T, N2, A, I2 > & rhs)
+
+inlineexplicit
+
+ +

Definition at line 815 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [9/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::svector (const svector< T, N, A, Init > & other)
+
+inline
+
+ +

Definition at line 886 of file xstorage.hpp.

+ +
+
+ +

◆ svector() [10/10]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
xt::svector< T, N, A, Init >::svector (svector< T, N, A, Init > && other)
+
+inlinenoexcept
+
+ +

Definition at line 895 of file xstorage.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ assign() [1/3]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+
+template<class IT>
+ + + + + +
+ + + + + + + + + + + +
void xt::svector< T, N, A, Init >::assign (IT other_begin,
IT other_end )
+
+inline
+
+ +

Definition at line 921 of file xstorage.hpp.

+ +
+
+ +

◆ assign() [2/3]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + +
void xt::svector< T, N, A, Init >::assign (size_type n,
const value_type & v )
+
+inline
+
+ +

Definition at line 902 of file xstorage.hpp.

+ +
+
+ +

◆ assign() [3/3]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+
+template<class V>
+ + + + + +
+ + + + + + + +
void xt::svector< T, N, A, Init >::assign (std::initializer_list< V > il)
+
+inline
+
+ +

Definition at line 914 of file xstorage.hpp.

+ +
+
+ +

◆ at() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::at (size_type idx)
+
+inline
+
+ +

Definition at line 945 of file xstorage.hpp.

+ +
+
+ +

◆ at() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::at (size_type idx) const
+
+inline
+
+ +

Definition at line 955 of file xstorage.hpp.

+ +
+
+ +

◆ back() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::back ()
+
+inline
+
+ +

Definition at line 1149 of file xstorage.hpp.

+ +
+
+ +

◆ back() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::back () const
+
+inline
+
+ +

Definition at line 1156 of file xstorage.hpp.

+ +
+
+ +

◆ begin() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::begin ()
+
+inline
+
+ +

Definition at line 1051 of file xstorage.hpp.

+ +
+
+ +

◆ begin() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::begin () const
+
+inline
+
+ +

Definition at line 1057 of file xstorage.hpp.

+ +
+
+ +

◆ capacity()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::capacity () const
+
+inline
+
+ +

Definition at line 998 of file xstorage.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::cbegin () const
+
+inline
+
+ +

Definition at line 1063 of file xstorage.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::cend () const
+
+inline
+
+ +

Definition at line 1081 of file xstorage.hpp.

+ +
+
+ +

◆ clear()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
void xt::svector< T, N, A, Init >::clear ()
+
+inline
+
+ +

Definition at line 1019 of file xstorage.hpp.

+ +
+
+ +

◆ crbegin()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::crbegin () const
+
+inline
+
+ +

Definition at line 1099 of file xstorage.hpp.

+ +
+
+ +

◆ crend()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::crend () const
+
+inline
+
+ +

Definition at line 1117 of file xstorage.hpp.

+ +
+
+ +

◆ data() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::data ()
+
+inline
+
+ +

Definition at line 965 of file xstorage.hpp.

+ +
+
+ +

◆ data() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::data () const
+
+inline
+
+ +

Definition at line 971 of file xstorage.hpp.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::empty () const
+
+inline
+
+ +

Definition at line 1129 of file xstorage.hpp.

+ +
+
+ +

◆ end() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::end ()
+
+inline
+
+ +

Definition at line 1069 of file xstorage.hpp.

+ +
+
+ +

◆ end() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::end () const
+
+inline
+
+ +

Definition at line 1075 of file xstorage.hpp.

+ +
+
+ +

◆ erase() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + +
auto xt::svector< T, N, A, Init >::erase (const_iterator cfirst,
const_iterator clast )
+
+inline
+
+ +

Definition at line 1185 of file xstorage.hpp.

+ +
+
+ +

◆ erase() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::erase (const_iterator cit)
+
+inline
+
+ +

Definition at line 1175 of file xstorage.hpp.

+ +
+
+ +

◆ front() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::front ()
+
+inline
+
+ +

Definition at line 1135 of file xstorage.hpp.

+ +
+
+ +

◆ front() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::front () const
+
+inline
+
+ +

Definition at line 1142 of file xstorage.hpp.

+ +
+
+ +

◆ get_allocator()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::get_allocator () const
+
+inlinenoexcept
+
+ +

Definition at line 1169 of file xstorage.hpp.

+ +
+
+ +

◆ insert() [1/3]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + +
auto xt::svector< T, N, A, Init >::insert (const_iterator it,
const T & elt )
+
+inline
+
+ +

Definition at line 1201 of file xstorage.hpp.

+ +
+
+ +

◆ insert() [2/3]

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + + + + + + +
auto xt::svector< T, N, A, Init >::insert (const_iterator pos,
It first,
It last ) -> iterator +
+
+inline
+
+ +

Definition at line 1233 of file xstorage.hpp.

+ +
+
+ +

◆ insert() [3/3]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + + + + + +
auto xt::svector< T, N, A, Init >::insert (const_iterator pos,
std::initializer_list< T > l )
+
+inline
+
+ +

Definition at line 1254 of file xstorage.hpp.

+ +
+
+ +

◆ max_size()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::max_size () const
+
+inlinenoexcept
+
+ +

Definition at line 992 of file xstorage.hpp.

+ +
+
+ +

◆ on_stack()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::on_stack ()
+
+inline
+
+ +

Definition at line 1163 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [1/5]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
svector< T, N, A, Init > & xt::svector< T, N, A, Init >::operator= (const std::vector< T > & rhs)
+
+inline
+
+ +

Definition at line 858 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [2/5]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
svector< T, N, A, Init > & xt::svector< T, N, A, Init >::operator= (const svector< T, N, A, Init > & rhs)
+
+inline
+
+ +

Definition at line 843 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [3/5]

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+
+template<std::size_t N2, bool I2>
+requires (N != N2)
+ + + + + +
+ + + + + + + +
svector< T, N, A, Init > & xt::svector< T, N, A, Init >::operator= (const svector< T, N2, A, I2 > & rhs)
+
+inline
+
+ +

Definition at line 875 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [4/5]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
svector< T, N, A, Init > & xt::svector< T, N, A, Init >::operator= (std::initializer_list< T > il)
+
+inline
+
+ +

Definition at line 868 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [5/5]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
svector< T, N, A, Init > & xt::svector< T, N, A, Init >::operator= (svector< T, N, A, Init > && rhs)
+
+inlinenoexcept
+
+ +

Definition at line 850 of file xstorage.hpp.

+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::operator[] (size_type idx)
+
+inline
+
+ +

Definition at line 933 of file xstorage.hpp.

+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::operator[] (size_type idx) const
+
+inline
+
+ +

Definition at line 939 of file xstorage.hpp.

+ +
+
+ +

◆ pop_back()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + + + +
void xt::svector< T, N, A, Init >::pop_back ()
+
+ +

Definition at line 1045 of file xstorage.hpp.

+ +
+
+ +

◆ push_back() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + + + +
void xt::svector< T, N, A, Init >::push_back (const T & elt)
+
+ +

Definition at line 1025 of file xstorage.hpp.

+ +
+
+ +

◆ push_back() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + + + +
void xt::svector< T, N, A, Init >::push_back (T && elt)
+
+ +

Definition at line 1035 of file xstorage.hpp.

+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::rbegin ()
+
+inline
+
+ +

Definition at line 1087 of file xstorage.hpp.

+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::rbegin () const
+
+inline
+
+ +

Definition at line 1093 of file xstorage.hpp.

+ +
+
+ +

◆ rend() [1/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::rend ()
+
+inline
+
+ +

Definition at line 1105 of file xstorage.hpp.

+ +
+
+ +

◆ rend() [2/2]

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::rend () const
+
+inline
+
+ +

Definition at line 1111 of file xstorage.hpp.

+ +
+
+ +

◆ reserve()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
void xt::svector< T, N, A, Init >::reserve (size_type n)
+
+inline
+
+ +

Definition at line 1004 of file xstorage.hpp.

+ +
+
+ +

◆ resize()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + + + +
void xt::svector< T, N, A, Init >::resize (size_type n)
+
+ +

Definition at line 977 of file xstorage.hpp.

+ +
+
+ +

◆ shrink_to_fit()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
void xt::svector< T, N, A, Init >::shrink_to_fit ()
+
+inline
+
+ +

Definition at line 1013 of file xstorage.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+ + + + + +
+ + + + + + + +
auto xt::svector< T, N, A, Init >::size () const
+
+inline
+
+ +

Definition at line 1123 of file xstorage.hpp.

+ +
+
+ +

◆ swap()

+ +
+
+
+template<class T, std::size_t N, class A, bool Init>
+
+template<std::size_t ON, class OA, bool InitA>
+ + + + + +
+ + + + + + + +
void xt::svector< T, N, A, Init >::swap (svector< T, ON, OA, InitA > & rhs)
+
+inline
+
+ +

Definition at line 1274 of file xstorage.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ alignment

+ +
+
+
+template<class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
+ + + + + +
+ + + + +
std::size_t xt::svector< T, N, A, Init >::alignment
+
+staticconstexpr
+
+Initial value:
= detail::allocator_alignment<A>::value != 0
+
? detail::allocator_alignment<A>::value
+
: alignof(T)
+
+

Definition at line 655 of file xstorage.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1transpose__error-members.html b/classxt_1_1transpose__error-members.html new file mode 100644 index 000000000..46dc74f8e --- /dev/null +++ b/classxt_1_1transpose__error-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::transpose_error Member List
+
+
+ +

This is the complete list of members for xt::transpose_error, including all inherited members.

+ + +
transpose_error(const char *msg) (defined in xt::transpose_error)xt::transpose_errorinlineexplicit
+
+ + + + diff --git a/classxt_1_1transpose__error.html b/classxt_1_1transpose__error.html new file mode 100644 index 000000000..a8cc93761 --- /dev/null +++ b/classxt_1_1transpose__error.html @@ -0,0 +1,167 @@ + + + + + + + +xtensor: xt::transpose_error Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::transpose_error Class Reference
+
+
+
+Inheritance diagram for xt::transpose_error:
+
+
+ +
+ + + + +

+Public Member Functions

 transpose_error (const char *msg)
 
+

Detailed Description

+
+

Definition at line 159 of file xexception.hpp.

+

Constructor & Destructor Documentation

+ +

◆ transpose_error()

+ +
+
+ + + + + +
+ + + + + + + +
xt::transpose_error::transpose_error (const char * msg)
+
+inlineexplicit
+
+ +

Definition at line 163 of file xexception.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xexception.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1transpose__error.png b/classxt_1_1transpose__error.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad30253f11e32b2f9f094e4ad0662fdc09abf53 GIT binary patch literal 556 zcmeAS@N?(olHy`uVBq!ia0vp^Wk4Lj!3-pS_Y`sfDd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_s9Mo-U3d6^w7^-ko+xfu}{? z-0$B1&h1n7FIl^7IoFQe6%wj~pIQap>bki6;&z&}*L0)G&4~DB-*2mProF%C^G$D> z%KZt4y)4{nj29lZiFhsfc~Zs_o@=&hUM1H|j}p%akna|)x)m+FdeyCn`;EG8k5kx^ zuYdp0?DfuI;)C9Gsk6c?7XR8b@vz!+sfBHw#nn-PcY93Zjy%bfO6!b%-!)D7hJmJQ z^plbaXOGPa{8w=7+V-P)y+WUOq`BW;F27Nu68$u1ZgTe8vY)%8ekEJo-)HQ<@!g@& z&^>=_huQyh%xrx^L*rkI&kYOx>g&5^ iRaSEEVW3~H^Iw|Q>&t)l&OTtgGI+ZBxvX + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::uvector< T, A > Member List
+
+
+ +

This is the complete list of members for xt::uvector< T, A >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocator_type typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
at(size_type i) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
at(size_type i) const (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
back() (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
back() const (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
begin() noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
begin() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
capacity() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
cbegin() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
cend() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
clear() (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
const_iterator typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
const_pointer typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
const_reference typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
const_reverse_iterator typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
crbegin() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
crend() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
data() noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
data() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
difference_type typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
empty() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
end() noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
end() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
front() (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
front() const (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
get_allocator() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
iterator typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
max_size() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
operator=(const uvector &) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
operator=(uvector &&rhs) noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
operator[](size_type i) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
operator[](size_type i) const (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
pointer typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
rbegin() noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
rbegin() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
reference typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
rend() noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
rend() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
reserve(size_type new_cap) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
resize(size_type size) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
reverse_iterator typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
shrink_to_fit() (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
size() const noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
size_type typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
swap(uvector &rhs) noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector() noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(const allocator_type &alloc) noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inlineexplicit
uvector(size_type count, const allocator_type &alloc=allocator_type()) (defined in xt::uvector< T, A >)xt::uvector< T, A >inlineexplicit
uvector(size_type count, const_reference value, const allocator_type &alloc=allocator_type()) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(InputIt first, InputIt last, const allocator_type &alloc=allocator_type()) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(std::initializer_list< T > init, const allocator_type &alloc=allocator_type()) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(const uvector &rhs) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(const uvector &rhs, const allocator_type &alloc) (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(uvector &&rhs) noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
uvector(uvector &&rhs, const allocator_type &alloc) noexcept (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
value_type typedef (defined in xt::uvector< T, A >)xt::uvector< T, A >
~uvector() (defined in xt::uvector< T, A >)xt::uvector< T, A >inline
+
+ + + + diff --git a/classxt_1_1uvector.html b/classxt_1_1uvector.html new file mode 100644 index 000000000..5a91c452e --- /dev/null +++ b/classxt_1_1uvector.html @@ -0,0 +1,1807 @@ + + + + + + + +xtensor: xt::uvector< T, A > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::uvector< T, A > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using allocator_type = A
 
using value_type = typename std::allocator_traits<A>::value_type
 
using reference = value_type&
 
using const_reference = const value_type&
 
using pointer = typename std::allocator_traits<A>::pointer
 
using const_pointer = typename std::allocator_traits<A>::const_pointer
 
using size_type = typename std::allocator_traits<A>::size_type
 
using difference_type = typename std::allocator_traits<A>::difference_type
 
using iterator = pointer
 
using const_iterator = const_pointer
 
using reverse_iterator = std::reverse_iterator<iterator>
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 uvector (const allocator_type &alloc) noexcept
 
 uvector (size_type count, const allocator_type &alloc=allocator_type())
 
 uvector (size_type count, const_reference value, const allocator_type &alloc=allocator_type())
 
template<std::input_iterator InputIt>
 uvector (InputIt first, InputIt last, const allocator_type &alloc=allocator_type())
 
 uvector (std::initializer_list< T > init, const allocator_type &alloc=allocator_type())
 
 uvector (const uvector &rhs)
 
 uvector (const uvector &rhs, const allocator_type &alloc)
 
uvectoroperator= (const uvector &)
 
 uvector (uvector &&rhs) noexcept
 
 uvector (uvector &&rhs, const allocator_type &alloc) noexcept
 
uvectoroperator= (uvector &&rhs) noexcept
 
allocator_type get_allocator () const noexcept
 
bool empty () const noexcept
 
size_type size () const noexcept
 
void resize (size_type size)
 
size_type max_size () const noexcept
 
void reserve (size_type new_cap)
 
size_type capacity () const noexcept
 
void shrink_to_fit ()
 
void clear ()
 
reference operator[] (size_type i)
 
const_reference operator[] (size_type i) const
 
reference at (size_type i)
 
const_reference at (size_type i) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
pointer data () noexcept
 
const_pointer data () const noexcept
 
iterator begin () noexcept
 
iterator end () noexcept
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
void swap (uvector &rhs) noexcept
 
+

Detailed Description

+
template<class T, class A = std::allocator<T>>
+class xt::uvector< T, A >
+

Definition at line 34 of file xstorage.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::allocator_type = A
+
+ +

Definition at line 38 of file xstorage.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::const_iterator = const_pointer
+
+ +

Definition at line 50 of file xstorage.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::const_pointer = typename std::allocator_traits<A>::const_pointer
+
+ +

Definition at line 44 of file xstorage.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::const_reference = const value_type&
+
+ +

Definition at line 42 of file xstorage.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::const_reverse_iterator = std::reverse_iterator<const_iterator>
+
+ +

Definition at line 52 of file xstorage.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::difference_type = typename std::allocator_traits<A>::difference_type
+
+ +

Definition at line 47 of file xstorage.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::iterator = pointer
+
+ +

Definition at line 49 of file xstorage.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::pointer = typename std::allocator_traits<A>::pointer
+
+ +

Definition at line 43 of file xstorage.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::reference = value_type&
+
+ +

Definition at line 41 of file xstorage.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::reverse_iterator = std::reverse_iterator<iterator>
+
+ +

Definition at line 51 of file xstorage.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::size_type = typename std::allocator_traits<A>::size_type
+
+ +

Definition at line 46 of file xstorage.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class T, class A = std::allocator<T>>
+ + + + +
using xt::uvector< T, A >::value_type = typename std::allocator_traits<A>::value_type
+
+ +

Definition at line 40 of file xstorage.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ uvector() [1/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
xt::uvector< T, A >::uvector ()
+
+inlinenoexcept
+
+ +

Definition at line 231 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [2/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
xt::uvector< T, A >::uvector (const allocator_type & alloc)
+
+inlineexplicitnoexcept
+
+ +

Definition at line 237 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [3/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + + + + + +
xt::uvector< T, A >::uvector (size_type count,
const allocator_type & alloc = allocator_type() )
+
+inlineexplicit
+
+ +

Definition at line 245 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [4/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::uvector< T, A >::uvector (size_type count,
const_reference value,
const allocator_type & alloc = allocator_type() )
+
+inline
+
+ +

Definition at line 258 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [5/10]

+ +
+
+
+template<class T, class A>
+
+template<std::input_iterator InputIt>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::uvector< T, A >::uvector (InputIt first,
InputIt last,
const allocator_type & alloc = allocator_type() )
+
+inline
+
+ +

Definition at line 273 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [6/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + + + + + +
xt::uvector< T, A >::uvector (std::initializer_list< T > init,
const allocator_type & alloc = allocator_type() )
+
+inline
+
+ +

Definition at line 282 of file xstorage.hpp.

+ +
+
+ +

◆ ~uvector()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
xt::uvector< T, A >::~uvector ()
+
+inline
+
+ +

Definition at line 291 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [7/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
xt::uvector< T, A >::uvector (const uvector< T, A > & rhs)
+
+inline
+
+ +

Definition at line 299 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [8/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + + + + + +
xt::uvector< T, A >::uvector (const uvector< T, A > & rhs,
const allocator_type & alloc )
+
+inline
+
+ +

Definition at line 310 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [9/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
xt::uvector< T, A >::uvector (uvector< T, A > && rhs)
+
+inlinenoexcept
+
+ +

Definition at line 341 of file xstorage.hpp.

+ +
+
+ +

◆ uvector() [10/10]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + + + + + +
xt::uvector< T, A >::uvector (uvector< T, A > && rhs,
const allocator_type & alloc )
+
+inlinenoexcept
+
+ +

Definition at line 351 of file xstorage.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ at() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::at (size_type i)
+
+inline
+
+ +

Definition at line 435 of file xstorage.hpp.

+ +
+
+ +

◆ at() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::at (size_type i) const
+
+inline
+
+ +

Definition at line 445 of file xstorage.hpp.

+ +
+
+ +

◆ back() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::back ()
+
+inline
+
+ +

Definition at line 467 of file xstorage.hpp.

+ +
+
+ +

◆ back() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::back () const
+
+inline
+
+ +

Definition at line 473 of file xstorage.hpp.

+ +
+
+ +

◆ begin() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::begin () const
+
+inlinenoexcept
+
+ +

Definition at line 503 of file xstorage.hpp.

+ +
+
+ +

◆ begin() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::begin ()
+
+inlinenoexcept
+
+ +

Definition at line 491 of file xstorage.hpp.

+ +
+
+ +

◆ capacity()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::capacity () const
+
+inlinenoexcept
+
+ +

Definition at line 406 of file xstorage.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::cbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 515 of file xstorage.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::cend () const
+
+inlinenoexcept
+
+ +

Definition at line 521 of file xstorage.hpp.

+ +
+
+ +

◆ clear()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
void xt::uvector< T, A >::clear ()
+
+inline
+
+ +

Definition at line 417 of file xstorage.hpp.

+ +
+
+ +

◆ crbegin()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::crbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 551 of file xstorage.hpp.

+ +
+
+ +

◆ crend()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::crend () const
+
+inlinenoexcept
+
+ +

Definition at line 557 of file xstorage.hpp.

+ +
+
+ +

◆ data() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::data () const
+
+inlinenoexcept
+
+ +

Definition at line 485 of file xstorage.hpp.

+ +
+
+ +

◆ data() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::data ()
+
+inlinenoexcept
+
+ +

Definition at line 479 of file xstorage.hpp.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
bool xt::uvector< T, A >::empty () const
+
+inlinenoexcept
+
+ +

Definition at line 377 of file xstorage.hpp.

+ +
+
+ +

◆ end() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::end () const
+
+inlinenoexcept
+
+ +

Definition at line 509 of file xstorage.hpp.

+ +
+
+ +

◆ end() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::end ()
+
+inlinenoexcept
+
+ +

Definition at line 497 of file xstorage.hpp.

+ +
+
+ +

◆ front() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::front ()
+
+inline
+
+ +

Definition at line 455 of file xstorage.hpp.

+ +
+
+ +

◆ front() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::front () const
+
+inline
+
+ +

Definition at line 461 of file xstorage.hpp.

+ +
+
+ +

◆ get_allocator()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::get_allocator () const
+
+inlinenoexcept
+
+ +

Definition at line 371 of file xstorage.hpp.

+ +
+
+ +

◆ max_size()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::max_size () const
+
+inlinenoexcept
+
+ +

Definition at line 395 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
uvector< T, A > & xt::uvector< T, A >::operator= (const uvector< T, A > & rhs)
+
+inline
+
+ +

Definition at line 319 of file xstorage.hpp.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
uvector< T, A > & xt::uvector< T, A >::operator= (uvector< T, A > && rhs)
+
+inlinenoexcept
+
+ +

Definition at line 361 of file xstorage.hpp.

+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::operator[] (size_type i)
+
+inline
+
+ +

Definition at line 423 of file xstorage.hpp.

+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::operator[] (size_type i) const
+
+inline
+
+ +

Definition at line 429 of file xstorage.hpp.

+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::rbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 539 of file xstorage.hpp.

+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::rbegin ()
+
+inlinenoexcept
+
+ +

Definition at line 527 of file xstorage.hpp.

+ +
+
+ +

◆ rend() [1/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::rend () const
+
+inlinenoexcept
+
+ +

Definition at line 545 of file xstorage.hpp.

+ +
+
+ +

◆ rend() [2/2]

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::rend ()
+
+inlinenoexcept
+
+ +

Definition at line 533 of file xstorage.hpp.

+ +
+
+ +

◆ reserve()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
void xt::uvector< T, A >::reserve (size_type new_cap)
+
+inline
+
+ +

Definition at line 401 of file xstorage.hpp.

+ +
+
+ +

◆ resize()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
void xt::uvector< T, A >::resize (size_type size)
+
+inline
+
+ +

Definition at line 389 of file xstorage.hpp.

+ +
+
+ +

◆ shrink_to_fit()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
void xt::uvector< T, A >::shrink_to_fit ()
+
+inline
+
+ +

Definition at line 412 of file xstorage.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
auto xt::uvector< T, A >::size () const
+
+inlinenoexcept
+
+ +

Definition at line 383 of file xstorage.hpp.

+ +
+
+ +

◆ swap()

+ +
+
+
+template<class T, class A>
+ + + + + +
+ + + + + + + +
void xt::uvector< T, A >::swap (uvector< T, A > & rhs)
+
+inlinenoexcept
+
+ +

Definition at line 563 of file xstorage.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xaccessible-members.html b/classxt_1_1xaccessible-members.html new file mode 100644 index 000000000..115551b57 --- /dev/null +++ b/classxt_1_1xaccessible-members.html @@ -0,0 +1,160 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xaccessible< D > Member List
+
+
+ +

This is the complete list of members for xt::xaccessible< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
at(Args... args) (defined in xt::xaccessible< D >)xt::xaccessible< D >
at(Args... args) -> referencext::xaccessible< D >inline
at(Args... args) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
back()xt::xaccessible< D >inline
back() constxt::xaccessible< D >inline
base_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >
const_reference typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
derived_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >
dimension() const noexceptxt::xconst_accessible< D >inline
front()xt::xaccessible< D >inline
front() constxt::xaccessible< D >inline
in_bounds(Args... args) constxt::xconst_accessible< D >inline
inner_types typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
operator=(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
operator=(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
operator[](const S &index) (defined in xt::xaccessible< D >)xt::xaccessible< D >
operator[](std::initializer_list< I > index) (defined in xt::xaccessible< D >)xt::xaccessible< D >
operator[](size_type i) (defined in xt::xaccessible< D >)xt::xaccessible< D >inline
operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< D >inline
operator[](std::initializer_list< I > index) -> reference (defined in xt::xaccessible< D >)xt::xaccessible< D >inline
operator[](const S &index) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
operator[](std::initializer_list< I > index) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
operator[](size_type i) const (defined in xt::xaccessible< D >)xt::xaccessible< D >inline
periodic(Args... args) (defined in xt::xaccessible< D >)xt::xaccessible< D >
periodic(Args... args) -> referencext::xaccessible< D >inline
periodic(Args... args) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
reference typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >
shape(size_type index) constxt::xconst_accessible< D >inline
size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< D >inline
size_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >
xaccessible()=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
xaccessible(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
xaccessible(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
xconst_accessible()=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
xconst_accessible(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
xconst_accessible(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
~xaccessible()=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
~xconst_accessible()=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
+
+ + + + diff --git a/classxt_1_1xaccessible.html b/classxt_1_1xaccessible.html new file mode 100644 index 000000000..834f26b89 --- /dev/null +++ b/classxt_1_1xaccessible.html @@ -0,0 +1,754 @@ + + + + + + + +xtensor: xt::xaccessible< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xaccessible< D > Class Template Reference
+
+
+ +

Base class for implementation of common expression access methods. + More...

+ +

#include <xaccessible.hpp>

+
+Inheritance diagram for xt::xaccessible< D >:
+
+
+ + +xt::xconst_accessible< D > +xt::xreducer< Func, E, X, Opts > +xt::xscalar< xtl::closure_type_t< E > > +xt::xscalar< xtl::const_closure_type_t< E > > +xt::xscalar< T > +xt::xscalar< bool > +xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > > +xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > > +xt::xscalar< const_value_closure > +xt::xscalar< const_flag_closure > +xt::xview< uvt, S... > +xt::xview< uft, S... > +xt::xview< ucvt, S... > +xt::xview< ucft, S... > +xt::xview< UnderlyingContainer, Slices... > +xt::xview< E, S... > +xt::xcontainer< D > +xt::xfunctor_applier_base< D > +xt::xstrided_view_base< D > + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Types

using base_type = xconst_accessible<D>
 
using derived_type = typename base_type::derived_type
 
using reference = typename base_type::reference
 
using size_type = typename base_type::size_type
 
- Public Types inherited from xt::xconst_accessible< D >
using derived_type = D
 
using inner_types = xcontainer_inner_types<D>
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using size_type = typename inner_types::size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class... Args>
reference at (Args... args)
 
+template<class S>
disable_integral_t< S, reference > operator[] (const S &index)
 
+template<class I>
reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
+template<class... Args>
reference periodic (Args... args)
 
reference front ()
 Returns a reference to the first element of the expression.
 
reference back ()
 Returns a reference to the last element of the expression.
 
template<class... Args>
auto at (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
 
template<class S>
auto operator[] (const S &index) -> disable_integral_t< S, reference >
 Returns a reference to the element at the specified position in the expression.
 
template<class I>
auto operator[] (std::initializer_list< I > index) -> reference
 
template<class... Args>
auto periodic (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
+template<class... Args>
const_reference at (Args... args) const
 
+template<class S>
disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+template<class I>
const_reference operator[] (std::initializer_list< I > index) const
 
const_reference operator[] (size_type i) const
 
const_reference back () const
 Returns a constant reference to last the element of the expression.
 
const_reference front () const
 Returns a constant reference to first the element of the expression.
 
+template<class... Args>
const_reference periodic (Args... args) const
 
- Public Member Functions inherited from xt::xconst_accessible< D >
size_type size () const noexcept(noexcept(derived_cast().shape()))
 Returns the size of the expression.
 
size_type dimension () const noexcept
 Returns the number of dimensions of the expression.
 
size_type shape (size_type index) const
 Returns the i-th dimension of the expression.
 
+template<class... Args>
const_reference at (Args... args) const
 
+template<class S>
disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+template<class I>
const_reference operator[] (std::initializer_list< I > index) const
 
const_reference operator[] (size_type i) const
 
+template<class... Args>
const_reference periodic (Args... args) const
 
template<class... Args>
bool in_bounds (Args... args) const
 Returns true only if the the specified position is a valid entry in the expression.
 
const_reference front () const
 Returns a constant reference to first the element of the expression.
 
const_reference back () const
 Returns a constant reference to last the element of the expression.
 
template<class... Args>
auto at (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
 
template<class S>
auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
 Returns a constant reference to the element at the specified position in the expression.
 
template<class I>
auto operator[] (std::initializer_list< I > index) const -> const_reference
 
template<class... Args>
auto periodic (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
+ + + + + + + + + + + + + + + + + + +

+Protected Member Functions

xaccessible (const xaccessible &)=default
 
+xaccessibleoperator= (const xaccessible &)=default
 
xaccessible (xaccessible &&)=default
 
+xaccessibleoperator= (xaccessible &&)=default
 
- Protected Member Functions inherited from xt::xconst_accessible< D >
xconst_accessible (const xconst_accessible &)=default
 
+xconst_accessibleoperator= (const xconst_accessible &)=default
 
xconst_accessible (xconst_accessible &&)=default
 
+xconst_accessibleoperator= (xconst_accessible &&)=default
 
+

Detailed Description

+
template<class D>
+class xt::xaccessible< D >

Base class for implementation of common expression access methods.

+

The xaccessible class implements access methods common to all expressions.

+
Template Parameters
+ + +
DThe derived type, i.e. the inheriting class for which xaccessible provides the interface.
+
+
+ +

Definition at line 87 of file xaccessible.hpp.

+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xaccessible< D >::base_type = xconst_accessible<D>
+
+ +

Definition at line 91 of file xaccessible.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xaccessible< D >::derived_type = typename base_type::derived_type
+
+ +

Definition at line 92 of file xaccessible.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xaccessible< D >::reference = typename base_type::reference
+
+ +

Definition at line 93 of file xaccessible.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xaccessible< D >::size_type = typename base_type::size_type
+
+ +

Definition at line 94 of file xaccessible.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ at()

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::at (Args... args) -> reference +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.

+
Parameters
+ + +
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the expression.
+
+
+
Exceptions
+ + +
std::out_of_rangeif the number of argument is greater than the number of dimensions or if indices are out of bounds.
+
+
+ +

Definition at line 274 of file xaccessible.hpp.

+ +
+
+ +

◆ back() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::back ()
+
+inline
+
+ +

Returns a reference to the last element of the expression.

+ +

Definition at line 334 of file xaccessible.hpp.

+ +
+
+ +

◆ back() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::back () const
+
+inline
+
+ +

Returns a constant reference to last the element of the expression.

+ +

Definition at line 59 of file xaccessible.hpp.

+ +
+
+ +

◆ front() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::front ()
+
+inline
+
+ +

Returns a reference to the first element of the expression.

+ +

Definition at line 325 of file xaccessible.hpp.

+ +
+
+ +

◆ front() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::front () const
+
+inline
+
+ +

Returns a constant reference to first the element of the expression.

+ +

Definition at line 58 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [1/4]

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::operator[] (const S & index) -> disable_integral_t<S, reference> +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the expression.

+
Parameters
+ + +
indexa sequence of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the expression.
+
+
+ +

Definition at line 288 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [2/4]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::operator[] (size_type i)
+
+inline
+
+ +

Definition at line 301 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [3/4]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::operator[] (size_type i) const
+
+inline
+
+ +

Definition at line 50 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [4/4]

+ +
+
+
+template<class D>
+
+template<class I>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::operator[] (std::initializer_list< I > index) -> reference +
+
+inline
+
+ +

Definition at line 295 of file xaccessible.hpp.

+ +
+
+ +

◆ periodic()

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::periodic (Args... args) -> reference +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).

+
Parameters
+ + +
argsa list of indices specifying the position in the expression. Indices must be integers, the number of indices should be equal to the number of dimensions of the expression.
+
+
+ +

Definition at line 315 of file xaccessible.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xaccessible.js b/classxt_1_1xaccessible.js new file mode 100644 index 000000000..c4a636133 --- /dev/null +++ b/classxt_1_1xaccessible.js @@ -0,0 +1,10 @@ +var classxt_1_1xaccessible = +[ + [ "at", "classxt_1_1xaccessible.html#abd1a88f04c122d8d066a5b2abc7f2c8f", null ], + [ "back", "classxt_1_1xaccessible.html#a905660a4d87f4d3e7b651bcf6bb690d0", null ], + [ "back", "classxt_1_1xaccessible.html#ae8c11bf107fb871f054e2194163778fd", null ], + [ "front", "classxt_1_1xaccessible.html#ad36ac2c194e7e6f470548dad89e88ca2", null ], + [ "front", "classxt_1_1xaccessible.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8", null ], + [ "operator[]", "classxt_1_1xaccessible.html#a45649ae70e8ea6cbda28caa423347c96", null ], + [ "periodic", "classxt_1_1xaccessible.html#a038772dfb1936fa221a220c5ded4ac05", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xaccessible.png b/classxt_1_1xaccessible.png new file mode 100644 index 0000000000000000000000000000000000000000..0840d37865f63b5bf20f3036042894e4e70938c9 GIT binary patch literal 12782 zcmeHueOQwB{(oD0%$47r&T2jBw#e2hZMA$vIjwDtQ_7ZYJ@`NmigWUiPoN^Q)yi!> z&~QqHVyz{)QVJ3jR5F*w6qzFh`*XkEulMWydVl=ly_hX?=PaHxYu2o}=y%`RK5N!&;jCFt{NLqYk z^4_)`Z+ko*FuXr9p3S()4PCeD;ESyG`@OxrV1A?g!*9W7&t`3piJb-BdtV`sv+vBB z^?EM)txY>}9y4i78SLAOk91y)er?bx?LT1jIi>&pOwpptad8)tpLnBp+pyKC;;-4d zwvFHZ#GHT{1bT%Gd3J646?K3t=~s^U<9J{6*a|GRuC717b0E#vpNCkqMR4TIMriyS z4Byo%ie{2J@%wNXj;ZpDu~ve}iaOZ6R4d{(7{6#cJ$-9v$`(opDkq2BYeDW1$rs@4 zBTD-zWIidRFv+Ralcjd+T9PGyt}_sld{?AbzY%v@El81cG&wcSS4iCcZmVkryIgWw zvDu+ajrdC~_=RAMP_$a-P{d}jO~bu)4Q(&5@eBhcS?dYQnL5Z`+diTeBoy|#%+W$; zv9l>pP*=AfMIik!a{b65u2rw*9PQtu6iY6zExclJ;!#-YnQI}Bk&H-GX6Z-ZY{Dr# zqmpBbB$KDIdg2r4@pB>)Y7!*GY7{0Uk(2=qI=^~(4?#Hk3I_=xDiM?O;Y-2_TZcot z^S3djT=mWNa6(bidN6$#|ND-@HErA5_-i(Ndg#zsuFnn~I+UWqpFg+v2^3uz_v))J z{zY))(4pt+cS6MT=XxhM!c%Wu08=l&0T17VKmE53U)1y+47~&XU}$CMP^r|*BJj!u z&vLhb2Hvu_c@YCo%Kq7;`l{O9jGcDzZN&`I!HJv(@H%k?EN0?bX#58NHILb42QL>u zE54p|f7KP^w)!k`)Trzc!~zYLvwrmu&S%4tQJ*|;6%+2Rp;5cAkrX68N@JN4x=7%q z;DMifXF4&la4Y2qyR~1dQ+=Mq;BUO2F_j)o)M!-HCHJSa=J@c2I?e4)Z~|1T z_KS@)P>)-)dUtf2z=dYXFRE;lCJibPzL@1{!gYc^={N9r+-?`s5QP)1)XjEtoUssUN)cBSs9sZiOZM`4V*H;M(ZDL!lxaz za7C9rFG1suFwH^D6^D*TVEy=$)l3J-1b)?SLl}_ z8LBfH$lV1@0&~Q*znd70S!zy8cG?Vz@}QMy&Mo;%aS?Tkt~iu-u_gwhpEkKMtto1) zCl}2${Fv&qfm)GDE}nB zBz*6^bsU_}lTU8`2p)d+A3n^H;aSPMKi*xE95DJ?;s*GZ&&*`U|Nd4tLNoJ`Xkj5@ zvPKt}i#;eA@)5bZe_$&M2Uepw+r0}$|C+!=@&Lk}W<2AuD;JE{o$31ge9h7_-x0}f z%Qe47>5!OS*F;WC42-IfQYVIp@&%k|K{V6T{qp23s&w~OWb4DrROHn4hNeLqaYwml zKQf$VyCIkE6;O&O%>2XfkK6I8*KT*>uNfBKcinI%3ysTEvn6BpV-}3XFNZahdBnL#?Vf0ALo+Sc?R@{s6k9g7 zt6(BhERPmaLhiL@hx6sZvZ=;0Av)L+6E_h624nsaFVxPvYcwxbuT)nb83~+1jE}oQ zH6UrH5F#1^a#0V;U+u>EWKv7;imoz>0_$lO*CA?nw!X;f)uQrhO3z6nq`kW&64{_} z<*bm!ehkRe(h-d2v)Is@hv$YtZgA*v=OXR~spdE`o0*memh6X6qvcGaQjOB&_ z6TGbXUGAi|^T- ztmY8{&Uax?-u1D4Lg%o=zeV>V5kyhsW})*im*iRXW!gE1U__+WMm`8`$!^NqyHi_W zbq#As*{q?Eqkn_0r{nC+f-73Ninh*KXTKlp%h&L7Pnk5a_VluoctJG3k;El1aes96Zsm?n@|i7ZT@NcE-WieRDR@6iZ+ri z@HGx?Z)@x*bktVY6RU}azC1gBdOCB1l0=Oww~sy~I|d#tvl{{eat%wm2EG0`xO+AV zQocBScucquPj@SwD`fP`UPKq^HyA=A2z_WkFaO86KXdFq9_3$|UPc#~Y%2~P}3Jc0nJfopXF!l@0_9S=X_iY2|?5WIm3#?kw-8>Ad`Wi7x{@y`=trMWy z5wJ%(c57Q`VL6$wHwhpVR>4eJFAY3k&*-m^vl}{_X;paobnhTSb|Yp}VuYli zkcn~lTKCmjt${<5$hI9OkUTuseR<9b}sO7bdq z0F?d<6h4XhG(jMSp^$c}Ot`Kr20|=quDp?bHId?yE9&g&Pa(Y5cK;< zhx`LwF5W2w#ofCQ&8Ku)hnPU?d1VN7<-APsa)W&mLvbx@EJRx#SS62zv<%lA8|E z&zguoB00kH*OHe!d?y(;fT-H^W;QoB$@t`#l*OF`QG?C}Hri$#Tw<*#- zV9od3JyE2G-5l}{!RU%{Nl-3xn%X!p3})CPm3zoD~e7hOfom)n>s97Z%Pnv%j zMC*2YYRjtWRxX;t z;+{Zgi|>?Xxmn;c@e8E}O`QZ4QC?$TNOG{fa#k>tmUJhZ#bIUPG%$367@e&BIU*vR&_BoxxKixGjTAVB?srIy(c-I=nGA@IV!?Nbn9pF*N!As93Ft-_v z*l9$ajS=XX{>Ebyp_v%iJ9!C&-r2u}o@{_xR-sjKY)4YuN@#`50%z#0(ZG}7x-$|z z?^MYbB)$pi;2EFs*N^I7a>rKKXc$QS-{3jS7$dB9^6rw0CCR&SkMsIBf*bxTbH;D| zjax2CroPL>I&U%&byoEU(mDu5-Nnr3&gjXpN}La-3Y2CcVfOU@PY^*@hzk-j5}NZCTyDu9C9kyi3^(m>Ck6w5zo7oU{f6c{4cAm8T8P|v z17^}U)YZxnBBkj2#l7PXD^9yAqMGrJr-2FEc2!b(uWM`_ z1TB%$k-EHPt=xz*;uKnFB;1`1`EXYCsD7}w`X)ckOCm^B`v9dIH6NxWa zoKRBQ?4=JbUWuJon4RfY%*qC)nEYn+9+kfYEpC9uD@3C1rBZiK`y}_v8uiVzoD#UQ z)(62UTm^DZa6vs&zpzpG8k(~UtV}jY4Zqf7`Ntj%{+9>40`~T;{~omYy41%Dj3aR>QhU%*9BiK%c5*FS7>iZGJXw8sTuj}0k04}|{TAff9KB8IEe2vxBU_AFT4chFwBS?ASnYk~3;o&3lr$z>-D+Nfa5Nj4+a;9~ztbUDW8?#F(L$Xx(dJGci>qOVSZk>GhW zGhf3M6DC%-7U^^0oOMvm`RkrEu{r9Qi8pBe7zlbcBG%gh*djE35}99r7fyq7NvcY(D1NG{~>oR@)}6#xfyJ=*k~Ht z7o8cMBbZpvmYy|z?(IcgQv0<<8YFVNtKEGs`ZG43ve`Mre>n}9`hR+-Eg0?QTr+NC z7Q$h3QBZarSg)~EQz{!VANEy$tDyS%^Iz8c4^vC-gQ=^mbxTo_;ov_r?$zxp8%efO; zT6Z!vI%|o;TvGm-Q*A}$?uUPFuaJBC?zw7-@8eO?I(Dja?{kV5V4G9UG==X4ZTXE* z0;N2~*?XhbOGI?{^kfDzX^nBIW`xLZSQ_PW6sJ(NZE=uDMFALt)g z9zsZjBIXUCZj*0&9fuw~V~}Ih;G6|G`bb6dR-xnzTBiJT4PcpP2a?$cx~w-lK(-lN zmHh{G#~#2{l?@NUFD?SO-u-{t>z^%w`g7P-?-;lMT9cZMFs~ekz4Rd&h`l@Zm{vt* z76b@+Gw2l>!~d)}Ps3}Mh4^zjoFUI9GW>W^>Jut-09b7GiH)F6X?B>EflwOgF;m#% zLywRW10&@_A@{Sp$AgP(fxXI)8p?$1O*FO%>1|*?p{|~7AGPigXu8PrAB2Bhbj6~W zTDlsRQJ}Sm!p1P4J5Y9k4Vo}%Ov8clXy|D*$MZNsRuvPMvmH)b?ZJZVh24YAgSLv> zY3Z%|>ap%y_$|kT>YF`B+wHr|VY-CE!r1+y!wnvur3yxKkNwe_E!=SMT8 z#GddX{drj8P2yKx0jJ&hm-kBiaoRD#Nx-hEvrT-&L}rAJ1ckyB^A!A~-v>`5*{B>!0lYGv%QF)@bpOEKn+gf zV-~5SLf3r+7oPw$^u|)eqSo*&Ardw|s1W0EHC>N1lp{ppguYZ*`o==-cN5ZBzAOd% zRbJ<^LTj})C^;hWx_rS9nv=-$!+%vP?B!qzR4L(DxQ% zwrC`eIUhmA;1XEqj(H<$TR|dn`IlWD9i4Sx`zx*m8z2^ z5!3g-l>AwBzP@fmfRoNth$VQ{W7LV9s`QaYM|l!e+|O!oheM|2B+Ka}o7S}{44aE$ zNyGk**``HgtTTFzNNIVfTgWv9w7RMqnWknfPeC0WbzP@j1#MyXd~atDAeQi)2wmM8 ztaCZ>irBFh+G$_TC>syNJWWVp1%PW_0r#ezjd(_SnN9P~I7pRvUDL)JwwDUBZfUTe zv>gca5ru>urN>{B?5A9S3Q4T^U}tVQLI>N0ZYMCcu=aCjJ^}i@_K)S_KfeD1mXCNn*zc2Juy&3=v}RKg zGb-N(or(BnboTcS+-288?E zPsU0FfGzf1y9`trPlJ$adMIF!t2glA!N|!sQ3W*l^P9bmFUCJn-*syMc;Fo$uWbcF9qx+D zs5OtKUhxOJw!E4>cPR`e!5^@GTiIbh1x%72zlo#-W_~|yc%Tbg-`WTEU?{3UoVCd8 z%6Ru02vO(g!h1$@(PMMr5*Zj)x6;ef*ct|-RX*G^d~dwf`aO9)=j2E*H?F5jtFf-X zXIW`X^$bhkb>)`A>Ck!BWWH_hspxk71T1!4Rl&j5Hop8ONGTtzlx=|RLvFi0d@+e4 znr{>DEq_RJm)mQ1H>ex56GhS|Dbig`Bnt#OI|Kraz7Oo%bd)=#{yeai+*Q3wigV8ZK`?^Rw$tXe}D)31CO^Z&>DJN=JXv=M5_QFG&?v9ucch3q}bbn zvpMu)!%0}obHbnl-x>0Q*tTne1EH<@m}dzQQ=wVYmg`gX>Ua@jI{*IkC&n12-08Zl z6n5kL-bNk(;Up?uzT{jDVsa~3BD@&Sn4P}t3#rVG%Vusn2iEdutshJU-~G7c5oZ-& z1Z4o&QPi$)0Ey2_V_z{o22vHyY{-)^LjQ;g&XxicTpa7L!BimEyx>c+vNxdbI$&HL zfRWN9pw&8`{*<;6Le;~&SHa3r`|+5n_|~2kWenFqQ?pe%@Tqbrzo~*ZV6_cp$sW}A zW^@hqXB(=``@9ZT3I~94p(R$DCNn7TeU!r@op>{6Ils8(TVyFlpBPL)_?e;8tzGa}Jx*fuoBmYi= zAuHJ}!huoibqzy76B^ya_e`N$owK4nChpaoIT$1XBgn40FQ&3gxOR?%NMdg03x-K_ zYjqzxh4DOWiq1V{3hPSyr1gq$1!v2H$_ks7AXF(S%8C50;Z>?K1l!^Kic12n{IQ&V zuPcv%GkB@mk2}B{8Xzr1$gaW~O8JZHImCZdN>l=(tbmC!!16OIev!WeF3EvMI+PAq ltL>oS;@$1(nf=(T?b}Db+x8Cl&x~2 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xall< T > Member List
+
+
+ +

This is the complete list of members for xt::xall< T >, including all inherited members.

+ + + + + + + + + + + + + + + +
contains(size_type i) const noexcept (defined in xt::xall< T >)xt::xall< T >inline
convert() const noexcept (defined in xt::xall< T >)xt::xall< T >inline
operator xall< S >() const noexcept (defined in xt::xall< T >)xt::xall< T >inline
operator!=(const self_type &rhs) const noexcept (defined in xt::xall< T >)xt::xall< T >inline
operator()(size_type i) const noexcept (defined in xt::xall< T >)xt::xall< T >inline
operator==(const self_type &rhs) const noexcept (defined in xt::xall< T >)xt::xall< T >inline
revert_index(std::size_t i) const noexcept (defined in xt::xall< T >)xt::xall< T >inline
self_type typedef (defined in xt::xall< T >)xt::xall< T >
size() const noexcept (defined in xt::xall< T >)xt::xall< T >inline
size_type typedef (defined in xt::xall< T >)xt::xall< T >
step_size() const noexcept (defined in xt::xall< T >)xt::xall< T >inline
step_size(std::size_t i, std::size_t n=1) const noexcept (defined in xt::xall< T >)xt::xall< T >inline
xall()=default (defined in xt::xall< T >)xt::xall< T >
xall(size_type size) noexcept (defined in xt::xall< T >)xt::xall< T >inlineexplicit
+
+ + + + diff --git a/classxt_1_1xall.html b/classxt_1_1xall.html new file mode 100644 index 000000000..dfd1d28cd --- /dev/null +++ b/classxt_1_1xall.html @@ -0,0 +1,563 @@ + + + + + + + +xtensor: xt::xall< T > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xall< T > Class Template Reference
+
+
+
+Inheritance diagram for xt::xall< T >:
+
+
+ + +xt::xslice< xall< T > > + +
+ + + + + + + + + +

+Public Types

using size_type = T
 
using self_type = xall<T>
 
- Public Types inherited from xt::xslice< xall< T > >
using derived_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 xall (size_type size) noexcept
 
template<std::convertible_to< T > S>
 operator xall< S > () const noexcept
 
template<std::convertible_to< T > S>
xall< S > convert () const noexcept
 
size_type operator() (size_type i) const noexcept
 
size_type size () const noexcept
 
size_type step_size () const noexcept
 
size_type step_size (std::size_t i, std::size_t n=1) const noexcept
 
size_type revert_index (std::size_t i) const noexcept
 
bool contains (size_type i) const noexcept
 
bool operator== (const self_type &rhs) const noexcept
 
bool operator!= (const self_type &rhs) const noexcept
 
- Public Member Functions inherited from xt::xslice< xall< T > >
derived_typederived_cast () noexcept
 
const derived_typederived_cast () const noexcept
 
+ + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xslice< xall< T > >
xslice (const xslice &)=default
 
xslice (xslice &&)=default
 
+xsliceoperator= (const xslice &)=default
 
+xsliceoperator= (xslice &&)=default
 
+

Detailed Description

+
template<class T>
+class xt::xall< T >
+

Definition at line 191 of file xslice.hpp.

+

Member Typedef Documentation

+ +

◆ self_type

+ +
+
+
+template<class T>
+ + + + +
using xt::xall< T >::self_type = xall<T>
+
+ +

Definition at line 196 of file xslice.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class T>
+ + + + +
using xt::xall< T >::size_type = T
+
+ +

Definition at line 195 of file xslice.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xall()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
xt::xall< T >::xall (size_type size)
+
+inlineexplicitnoexcept
+
+ +

Definition at line 1146 of file xslice.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ contains()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
bool xt::xall< T >::contains (size_type i) const
+
+inlinenoexcept
+
+ +

Definition at line 1196 of file xslice.hpp.

+ +
+
+ +

◆ convert()

+ +
+
+
+template<class T>
+
+template<std::convertible_to< T > S>
+ + + + + +
+ + + + + + + +
xall< S > xt::xall< T >::convert () const
+
+inlinenoexcept
+
+ +

Definition at line 1160 of file xslice.hpp.

+ +
+
+ +

◆ operator xall< S >()

+ +
+
+
+template<class T>
+
+template<std::convertible_to< T > S>
+ + + + + +
+ + + + + + + +
xt::xall< T >::operator xall< S > () const
+
+inlinenoexcept
+
+ +

Definition at line 1153 of file xslice.hpp.

+ +
+
+ +

◆ operator!=()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
bool xt::xall< T >::operator!= (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1208 of file xslice.hpp.

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xall< T >::operator() (size_type i) const
+
+inlinenoexcept
+
+ +

Definition at line 1166 of file xslice.hpp.

+ +
+
+ +

◆ operator==()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
bool xt::xall< T >::operator== (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1202 of file xslice.hpp.

+ +
+
+ +

◆ revert_index()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xall< T >::revert_index (std::size_t i) const
+
+inlinenoexcept
+
+ +

Definition at line 1190 of file xslice.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xall< T >::size () const
+
+inlinenoexcept
+
+ +

Definition at line 1172 of file xslice.hpp.

+ +
+
+ +

◆ step_size() [1/2]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xall< T >::step_size () const
+
+inlinenoexcept
+
+ +

Definition at line 1178 of file xslice.hpp.

+ +
+
+ +

◆ step_size() [2/2]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xall< T >::step_size (std::size_t i,
std::size_t n = 1 ) const
+
+inlinenoexcept
+
+ +

Definition at line 1184 of file xslice.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xall.png b/classxt_1_1xall.png new file mode 100644 index 0000000000000000000000000000000000000000..ad53501937529fa04f2e354aefce2d7c26f673b6 GIT binary patch literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^tw0>W!3-oBzPn8VlF|V_A+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E7@JY5_^Dj46+&FyDW-X6hflKhw4_GUwdZ+cp#nX&VhQB92av&-eL7cJAW-v7%@%fj>WvHKjJe!&4Ote#b@N1H?} zpW8$;d|2kkU=ZsaFvm|jLC3MMErKDLx2r{hT>8X}y`PVthXL)Nr>Umj8Nx%9qyEJh7-7-Cs zr@d1&J-5|9>-D(gE-K=v=o#m@QNh(q^XxVL8?TG%zwDE&1V$Qzr>mdKI;Vst07a|q A5C8xG literal 0 HcmV?d00001 diff --git a/classxt_1_1xarray__adaptor-members.html b/classxt_1_1xarray__adaptor-members.html new file mode 100644 index 000000000..7a40c7e38 --- /dev/null +++ b/classxt_1_1xarray__adaptor-members.html @@ -0,0 +1,282 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xarray_adaptor< EC, L, SC, Tag > Member List
+
+
+ +

This is the complete list of members for xt::xarray_adaptor< EC, L, SC, Tag >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocator_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
assign_temporary(temporary_type &&)xt::xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >inline
back()xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
back()xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
backstrides() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
backstrides_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
base_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
container_closure_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
data() noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
data() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
data_offset() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
dimension() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
expression_tag typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
extension_base typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
fill(const T &value)xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
flat(size_type i)xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
flat(size_type i) constxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
front()xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
front()xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
has_linear_assign(const S &strides) const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
layout() const noexceptxt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator=(const xarray_adaptor &) (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >inline
operator=(xarray_adaptor &&) (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >inline
operator=(temporary_type &&) (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >inline
operator=(const xexpression< E > &e) (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
operator=(const xexpression< E > &e) -> self_type &xt::xarray_adaptor< EC, L, SC, Tag >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >inline
rank (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >static
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >inline
reset_buffer(P &&pointer, S &&size) (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >inline
reshape(S &&shape, layout_type layout=base_type::static_layout) &xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >inline
resize(S &&shape, bool force=false)xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >inline
resize(S &&shape, layout_type l)xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >inline
resize(S &&shape, const strides_type &strides)xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >inline
self_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
semantic_base typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
shape() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
shape_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
size() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
storage() noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
storage() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
storage_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
strides() const noexceptxt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
strides_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
temporary_type typedef (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
unchecked(Args... args) -> referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
unchecked(Args... args) -> referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xarray_adaptor< EC, L, SC, Tag > >inline
xarray_adaptor(storage_type &&storage)xt::xarray_adaptor< EC, L, SC, Tag >inline
xarray_adaptor(const storage_type &storage)xt::xarray_adaptor< EC, L, SC, Tag >inline
xarray_adaptor(D &&storage, const shape_type &shape, layout_type l=L)xt::xarray_adaptor< EC, L, SC, Tag >inline
xarray_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)xt::xarray_adaptor< EC, L, SC, Tag >inline
xarray_adaptor(const xarray_adaptor &)=default (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
xarray_adaptor(xarray_adaptor &&)=default (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
xcontainer< xarray_adaptor< EC, L, SC, Tag > > (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >friend
~xarray_adaptor()=default (defined in xt::xarray_adaptor< EC, L, SC, Tag >)xt::xarray_adaptor< EC, L, SC, Tag >
+
+ + + + diff --git a/classxt_1_1xarray__adaptor.html b/classxt_1_1xarray__adaptor.html new file mode 100644 index 000000000..730e089fa --- /dev/null +++ b/classxt_1_1xarray__adaptor.html @@ -0,0 +1,1816 @@ + + + + + + + +xtensor: xt::xarray_adaptor< EC, L, SC, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xarray_adaptor< EC, L, SC, Tag > Class Template Reference
+
+
+ +

Dense multidimensional container adaptor with tensor semantic. + More...

+ +

#include <xarray.hpp>

+
+Inheritance diagram for xt::xarray_adaptor< EC, L, SC, Tag >:
+
+
+ + +xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > > +xt::xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > > +xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > > +xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > > +xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > > +xt::xaccessible< xarray_adaptor< EC, L, SC, Tag > > +xt::xiterable< xarray_adaptor< EC, L, SC, Tag > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using container_closure_type = EC
 
using self_type = xarray_adaptor<EC, L, SC, Tag>
 
using base_type = xstrided_container<self_type>
 
using semantic_base = xcontainer_semantic<self_type>
 
using extension_base = extension::xarray_adaptor_base_t<EC, L, SC, Tag>
 
using storage_type = typename base_type::storage_type
 
using allocator_type = typename base_type::allocator_type
 
using shape_type = typename base_type::shape_type
 
using strides_type = typename base_type::strides_type
 
using backstrides_type = typename base_type::backstrides_type
 
using temporary_type = typename semantic_base::temporary_type
 
using expression_tag = Tag
 
- Public Types inherited from xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >
using base_type
 
using storage_type
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using shape_type
 
using strides_type
 
using inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
- Public Types inherited from xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
using derived_type
 
using inner_types
 
using storage_type
 
using allocator_type
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using difference_type
 
using simd_value_type
 
using bool_load_type
 
using shape_type
 
using strides_type
 
using backstrides_type
 
using inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
using iterable_base
 
using stepper
 
using const_stepper
 
using accessible_base
 
using data_alignment
 
using simd_type
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using simd_return_type
 
using container_iterator
 
using const_container_iterator
 
- Public Types inherited from xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >
using derived_type
 
using inner_types
 
using iterable_base
 
using stepper
 
using const_stepper
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using linear_traits
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using select_iterator_impl
 
using select_iterator
 
using select_const_iterator
 
using select_reverse_iterator
 
using select_const_reverse_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
- Public Types inherited from xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

xarray_adaptor (const xarray_adaptor &)=default
 
xarray_adaptor (xarray_adaptor &&)=default
 
+template<class E>
xarray_adaptoroperator= (const xexpression< E > &e)
 
Constructors
 xarray_adaptor (storage_type &&storage)
 Constructs an xarray_adaptor of the given stl-like container.
 
 xarray_adaptor (const storage_type &storage)
 Constructs an xarray_adaptor of the given stl-like container.
 
template<class D>
 xarray_adaptor (D &&storage, const shape_type &shape, layout_type l=L)
 Constructs an xarray_adaptor of the given stl-like container, with the specified shape and layout_type.
 
template<class D>
 xarray_adaptor (D &&storage, const shape_type &shape, const strides_type &strides)
 Constructs an xarray_adaptor of the given stl-like container, with the specified shape and strides.
 
xarray_adaptoroperator= (const xarray_adaptor &)
 
xarray_adaptoroperator= (xarray_adaptor &&)
 
xarray_adaptoroperator= (temporary_type &&)
 
void resize (S &&shape, bool force=false)
 Resizes the container.
 
void resize (S &&shape, layout_type l)
 Resizes the container.
 
void resize (S &&shape, const strides_type &strides)
 Resizes the container.
 
auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
 Reshapes the container and keeps old elements.
 
auto & reshape (std::initializer_list< T > shape, layout_type layout=base_type::static_layout) &
 
layout_type layout () const noexcept
 Return the layout_type of the container.
 
bool is_contiguous () const noexcept
 
- Public Member Functions inherited from xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
+reference operator[] (size_type i)
 
+reference back ()
 Returns a reference to the last element of the expression.
 
+reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
+reference operator() (Args... args)
 
+const_reference operator() (Args... args) const
 
+reference unchecked (Args... args)
 
+const_reference unchecked (Args... args) const
 
+reference element (It first, It last)
 
+const_reference element (It first, It last) const
 
+stepper stepper_begin (const S &shape) noexcept
 
+const_stepper stepper_begin (const S &shape) const noexcept
 
+stepper stepper_end (const S &shape, layout_type l) noexcept
 
+const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
 
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
reference back ()
 Returns a reference to the last element of the expression.
 
reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
void fill (const T &value)
 Fills the container with the given value.
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
storage_type & storage () noexcept
 Returns a reference to the buffer containing the elements of the container.
 
const storage_type & storage () const noexcept
 Returns a constant reference to the buffer containing the elements of the container.
 
pointer data () noexcept
 Returns a pointer to the underlying array serving as element storage.
 
const_pointer data () const noexcept
 Returns a constant pointer to the underlying array serving as element storage.
 
const size_type data_offset () const noexcept
 Returns the offset to the first element in the container.
 
size_type size () const noexcept
 Returns the number of element in the container.
 
constexpr size_type dimension () const noexcept
 Returns the number of dimensions of the container.
 
constexpr const inner_shape_type & shape () const noexcept
 Returns the shape of the container.
 
constexpr const inner_strides_type & strides () const noexcept
 Returns the strides of the container.
 
constexpr const inner_backstrides_type & backstrides () const noexcept
 Returns the backstrides of the container.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the container to the specified parameter.
 
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
reference data_element (size_type i)
 
const_reference data_element (size_type i) const
 
reference flat (size_type i)
 Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
 
const_reference flat (size_type i) const
 Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
 
void store_simd (size_type i, const simd &e)
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
linear_iterator linear_begin () noexcept
 
const_linear_iterator linear_begin () const noexcept
 
linear_iterator linear_end () noexcept
 
const_linear_iterator linear_end () const noexcept
 
const_linear_iterator linear_cbegin () const noexcept
 
const_linear_iterator linear_cend () const noexcept
 
reverse_linear_iterator linear_rbegin () noexcept
 
const_reverse_linear_iterator linear_rbegin () const noexcept
 
reverse_linear_iterator linear_rend () noexcept
 
const_reverse_linear_iterator linear_rend () const noexcept
 
const_reverse_linear_iterator linear_crbegin () const noexcept
 
const_reverse_linear_iterator linear_crend () const noexcept
 
- Public Member Functions inherited from xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >
+select_iterator< L > begin () noexcept
 
+select_const_iterator< L > begin () const noexcept
 
+broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+select_iterator< L > end () noexcept
 
+select_const_iterator< L > end () const noexcept
 
+broadcast_iterator< S, L > end (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+select_const_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+select_const_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+select_reverse_iterator< L > rbegin () noexcept
 
+select_const_reverse_iterator< L > rbegin () const noexcept
 
+reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+select_reverse_iterator< L > rend () noexcept
 
+select_const_reverse_iterator< L > rend () const noexcept
 
+reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
- Public Member Functions inherited from xt::xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >
+derived_typeassign_xexpression (const xexpression< E > &e)
 
+derived_typecomputed_assign (const xexpression< E > &e)
 
+derived_typescalar_computed_assign (const E &e, F &&f)
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
derived_typeassign_temporary (temporary_type &&)
 Assigns the temporary tmp to *this.
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
- Public Member Functions inherited from xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >
+disable_xexpression< E, derived_type & > operator+= (const E &)
 
+derived_type & operator+= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator-= (const E &)
 
+derived_type & operator-= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator*= (const E &)
 
+derived_type & operator*= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator/= (const E &)
 
+derived_type & operator/= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator%= (const E &)
 
+derived_type & operator%= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator&= (const E &)
 
+derived_type & operator&= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator|= (const E &)
 
+derived_type & operator|= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator^= (const E &)
 
+derived_type & operator^= (const xexpression< E > &)
 
+derived_type & assign (const xexpression< E > &)
 
+derived_type & plus_assign (const xexpression< E > &)
 
+derived_type & minus_assign (const xexpression< E > &)
 
+derived_type & multiplies_assign (const xexpression< E > &)
 
+derived_type & divides_assign (const xexpression< E > &)
 
+derived_type & modulus_assign (const xexpression< E > &)
 
+derived_type & bit_and_assign (const xexpression< E > &)
 
+derived_type & bit_or_assign (const xexpression< E > &)
 
+derived_type & bit_xor_assign (const xexpression< E > &)
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + + + + + + + + +

+Static Public Attributes

static constexpr std::size_t rank = SIZE_MAX
 
- Static Public Attributes inherited from xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
static constexpr layout_type static_layout
 
static constexpr bool contiguous_layout
 
- Static Public Attributes inherited from xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >
static constexpr layout_type static_layout
 
+ + + +

+Friends

class xcontainer< xarray_adaptor< EC, L, SC, Tag > >
 
+ + + + + + + + +

Extended copy semantic

template<class P, class S>
void reset_buffer (P &&pointer, S &&size)
 
template<class E>
auto operator= (const xexpression< E > &e) -> self_type &
 The extended assignment operator.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >
xstrided_container (const xstrided_container &)=default
 
xstrided_container (xstrided_container &&)=default
 
+xstrided_containeroperator= (const xstrided_container &)=default
 
+xstrided_containeroperator= (xstrided_container &&)=default
 
 xstrided_container (inner_shape_type &&, inner_strides_type &&) noexcept
 
 xstrided_container (inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept
 
inner_shape_type & shape_impl () noexcept
 
const inner_shape_type & shape_impl () const noexcept
 
inner_strides_type & strides_impl () noexcept
 
const inner_strides_type & strides_impl () const noexcept
 
inner_backstrides_type & backstrides_impl () noexcept
 
const inner_backstrides_type & backstrides_impl () const noexcept
 
void reshape_impl (S &&shape, std::true_type, layout_type layout=base_type::static_layout)
 
void reshape_impl (S &&shape, std::false_type, layout_type layout=base_type::static_layout)
 
layout_typemutable_layout () noexcept
 
- Protected Member Functions inherited from xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >
xcontainer (const xcontainer &)=default
 
xcontainer (xcontainer &&)=default
 
+xcontaineroperator= (const xcontainer &)=default
 
+xcontaineroperator= (xcontainer &&)=default
 
container_iterator data_xbegin () noexcept
 
const_container_iterator data_xbegin () const noexcept
 
container_iterator data_xend (layout_type l, size_type offset) noexcept
 
const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
 
derived_typederived_cast () &noexcept
 
const derived_typederived_cast () const &noexcept
 
derived_type derived_cast () &&noexcept
 
- Protected Member Functions inherited from xt::xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >
xcontainer_semantic (const xcontainer_semantic &)=default
 
xcontainer_semantic (xcontainer_semantic &&)=default
 
+xcontainer_semanticoperator= (const xcontainer_semantic &)=default
 
+xcontainer_semanticoperator= (xcontainer_semantic &&)=default
 
+derived_typeoperator= (const xexpression< E > &)
 
- Protected Member Functions inherited from xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >
xsemantic_base (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class EC, layout_type L, class SC, class Tag>
+class xt::xarray_adaptor< EC, L, SC, Tag >

Dense multidimensional container adaptor with tensor semantic.

+

The xarray_adaptor class implements a dense multidimensional container adaptor with tensor semantic. It is used to provide a multidimensional container semantic and a tensor semantic to stl-like containers.

+
Template Parameters
+ + + + + +
ECThe closure for the container type to adapt.
LThe layout_type of the adaptor.
SCThe type of the containers holding the shape and the strides.
TagThe expression tag.
+
+
+
See also
xstrided_container, xcontainer
+ +

Definition at line 213 of file xarray.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::allocator_type = typename base_type::allocator_type
+
+ +

Definition at line 226 of file xarray.hpp.

+ +
+
+ +

◆ backstrides_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::backstrides_type = typename base_type::backstrides_type
+
+ +

Definition at line 229 of file xarray.hpp.

+ +
+
+ +

◆ base_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::base_type = xstrided_container<self_type>
+
+ +

Definition at line 222 of file xarray.hpp.

+ +
+
+ +

◆ container_closure_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::container_closure_type = EC
+
+ +

Definition at line 219 of file xarray.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::expression_tag = Tag
+
+ +

Definition at line 231 of file xarray.hpp.

+ +
+
+ +

◆ extension_base

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::extension_base = extension::xarray_adaptor_base_t<EC, L, SC, Tag>
+
+ +

Definition at line 224 of file xarray.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::self_type = xarray_adaptor<EC, L, SC, Tag>
+
+ +

Definition at line 221 of file xarray.hpp.

+ +
+
+ +

◆ semantic_base

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::semantic_base = xcontainer_semantic<self_type>
+
+ +

Definition at line 223 of file xarray.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::shape_type = typename base_type::shape_type
+
+ +

Definition at line 227 of file xarray.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::storage_type = typename base_type::storage_type
+
+ +

Definition at line 225 of file xarray.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::strides_type = typename base_type::strides_type
+
+ +

Definition at line 228 of file xarray.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_adaptor< EC, L, SC, Tag >::temporary_type = typename semantic_base::temporary_type
+
+ +

Definition at line 230 of file xarray.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xarray_adaptor() [1/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_adaptor< EC, L, SC, Tag >::xarray_adaptor (storage_type && storage)
+
+inline
+
+ +

Constructs an xarray_adaptor of the given stl-like container.

+
Parameters
+ + +
storagethe container to adapt
+
+
+ +

Definition at line 549 of file xarray.hpp.

+ +
+
+ +

◆ xarray_adaptor() [2/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_adaptor< EC, L, SC, Tag >::xarray_adaptor (const storage_type & storage)
+
+inline
+
+ +

Constructs an xarray_adaptor of the given stl-like container.

+
Parameters
+ + +
storagethe container to adapt
+
+
+ +

Definition at line 560 of file xarray.hpp.

+ +
+
+ +

◆ xarray_adaptor() [3/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class D>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xarray_adaptor< EC, L, SC, Tag >::xarray_adaptor (D && storage,
const shape_type & shape,
layout_type l = L )
+
+inline
+
+ +

Constructs an xarray_adaptor of the given stl-like container, with the specified shape and layout_type.

+
Parameters
+ + + + +
storagethe container to adapt
shapethe shape of the xarray_adaptor
lthe layout_type of the xarray_adaptor
+
+
+ +

Definition at line 575 of file xarray.hpp.

+ +
+
+ +

◆ xarray_adaptor() [4/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class D>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xarray_adaptor< EC, L, SC, Tag >::xarray_adaptor (D && storage,
const shape_type & shape,
const strides_type & strides )
+
+inline
+
+ +

Constructs an xarray_adaptor of the given stl-like container, with the specified shape and strides.

+
Parameters
+ + + + +
storagethe container to adapt
shapethe shape of the xarray_adaptor
stridesthe strides of the xarray_adaptor
+
+
+ +

Definition at line 591 of file xarray.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
auto xt::xarray_adaptor< EC, L, SC, Tag >::operator= (const xarray_adaptor< EC, L, SC, Tag > & rhs)
+
+inline
+
+ +

Definition at line 605 of file xarray.hpp.

+ +
+
+ +

◆ operator=() [2/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xarray_adaptor< EC, L, SC, Tag >::operator= (const xexpression< E > & e) -> self_type& +
+
+inline
+
+ +

The extended assignment operator.

+ +

Definition at line 639 of file xarray.hpp.

+ +
+
+ +

◆ operator=() [3/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
auto xt::xarray_adaptor< EC, L, SC, Tag >::operator= (temporary_type && rhs)
+
+inline
+
+ +

Definition at line 621 of file xarray.hpp.

+ +
+
+ +

◆ operator=() [4/4]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
auto xt::xarray_adaptor< EC, L, SC, Tag >::operator= (xarray_adaptor< EC, L, SC, Tag > && rhs)
+
+inline
+
+ +

Definition at line 613 of file xarray.hpp.

+ +
+
+ +

◆ reset_buffer()

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class P, class S>
+ + + + + +
+ + + + + + + + + + + +
void xt::xarray_adaptor< EC, L, SC, Tag >::reset_buffer (P && pointer,
S && size )
+
+inline
+
+ +

Definition at line 660 of file xarray.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xcontainer< xarray_adaptor< EC, L, SC, Tag > >

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + +
friend class xcontainer< xarray_adaptor< EC, L, SC, Tag > >
+
+friend
+
+ +

Definition at line 263 of file xarray.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ rank

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + +
std::size_t xt::xarray_adaptor< EC, L, SC, Tag >::rank = SIZE_MAX
+
+staticconstexpr
+
+ +

Definition at line 232 of file xarray.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xarray__adaptor.js b/classxt_1_1xarray__adaptor.js new file mode 100644 index 000000000..54c057600 --- /dev/null +++ b/classxt_1_1xarray__adaptor.js @@ -0,0 +1,8 @@ +var classxt_1_1xarray__adaptor = +[ + [ "xarray_adaptor", "classxt_1_1xarray__adaptor.html#acc36cdfcb52803d3996a97569929eb72", null ], + [ "xarray_adaptor", "classxt_1_1xarray__adaptor.html#a7f70baf14dbcdfeffa82a4dc56d995e4", null ], + [ "xarray_adaptor", "classxt_1_1xarray__adaptor.html#a04e029bca1b4fbf0bb361898b93182fc", null ], + [ "xarray_adaptor", "classxt_1_1xarray__adaptor.html#a32fe6b670e042fff5d9a1f7c4d99c125", null ], + [ "operator=", "classxt_1_1xarray__adaptor.html#aece6f91aa92298df35846b524613828b", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xarray__adaptor.png b/classxt_1_1xarray__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..bf574960763e335ea6f497eb014a4f2422574a94 GIT binary patch literal 7165 zcmd^Ec~q0hmIuWJTb53%C@8TZO4}>}7eKby-LgpwjTjUV0&b`v`wmG^BZw^NG_66_ zc8z=p0U-oI2qYrf5SrRee>re)s-v z#r^la!Q{oVC@_6H-#^Vc>aw<63Yvi%4LCo61i=o-`MW#o%#xoF7bNQVezX z`E4h^8}94t1K$tTIX(hqvOya|>>JrSW zB^1wEilZr8HQ~R}_`+7*=jZb;&SG5KgPVd~>1#KF^xp0idMg?&E<3tLMn+~_i}Vwk zM*P>G#|x|sPqq#7L?I#PjeLYG2-={vcj^2rYlMpDFK7v)JKjuh!ShuRu-&_N_r=a@ zlKcvhld7`GO3AhuG^ZxG^6UVnLa^MSU}tXvA&?a%PCM8W(t#4R8-6_oU~v* z4n}@RTKfEGkZLe-VW?uZXCyoR;HW}ggV|VpY)h{zDS!T=<~g!8ZQqtvA;u2bq1mpv z!HTU!RC;mUblF>{WQUp?8q?aIa5azTuM7jBD>J7jdUN`l;Aw7Ey&G??Oz(IZN!N=V z3-LIe-^Kcviv51wJMCkJomSo5l4o+y_wdp;iK@2&5uIn^X=6f~iHEY&{%+*}Ge*PHc*lT3zfYpHMIOH{auq(fHeQX?K&I}k(gT-_htovQg9dYKY z`xaS^A5g+D>|*Eyd-_QS(UiE8_ObTbWenHS)hzX$nM*{3qxh}&QE`=`vT$9!rM$g< z#dQeEUHw&Gi|^5G;=$VbB`YsCf(5z_vNX$vN---#n+;U&Zw*rzVnER24bIb_j?NpV zTSbF}`B-DY+=ZR=?bQ^-iJ%%s{dH{{$ z4U!0K=XkdBQtuvE-v%or1a(?UW;-+veD88qlg35QJb)l90@M#7TV2Yf_57uZr^n1= zAqe@B_`>r&nT51u95{t;qijpY?qBMkX=f}(-NjXU4}{;|P*L@eG}T8u)O~|2pyfc0 z*e_+{&k+Y-=N49EPD~E8hE}{@(BNXQW;Q5y{m%hu&R!F?aWeDL`bUB483-D!QeLLa zWJ1cQytUiZ;pGDHVVIksJr8o`i;sTqm7BXjBI$6U)sf?#omJJU+`K|R15WG>7&p;~mu!b_VvG_QIDu;*K?LrdHS2TtVW zBxyKZM%L;Vc0Tes_-MLdWa~*ZmfJ=0YY;k_xQbEY2;`F2DRi!L9D((Mm62&{u|bE5 z}!Q@4-xdxK4B(3K~?l!uxrItLpl)9@xc>1$xC+pEL2Z%DQvlV$O_{9^;Wsw^p8i__cWcQ1XxDk^`_jN-?|hN4VQ^ ztJvjvWXIPhy7MOz-KIxca;;K!y85cux&=(gv^Xf`BvfXn90c@}X;dz6LZzcE4pYP4CU7zpgQX&G@JBk62;2TsU>dAq8d)2;%x1(o&W zvffxj%MCC4(0k{1I>7Ov=FH(*I(sj1tY9$IO{lM!PsJU>gDcFZovj_#~W%7 z{1@EC-gxU|;L?1>(&?&ad#3S=>(s8+-rEH0w27=m_|@URAw|op2H?KVb?IZ#5B1JN zR}cxP5}e>N;>RbYFGnmBT!wW=8sjZDTuh8Anes>kL)Ox(PiJ=y7qAzHyliW1seQ>m zSs^MFbSKOUo3maDLl8ekw4eXzUvnB)62g9DE%)U9bjQ}?8uzsPJ(EYtjE+a!FyfqT ze4$lIIQ}k4*Y`K1cvW}&(_GG16=hKQ?bScOz13#5U0z3d{AX9YZH03V z$kdkLS!!x)z`z4*xk7yBgNj|Uy=AE2r`4RB_z4I?*IK27PF=9s720hxwlsXT@U&r( ze&jQH&BEE7?EUhOrXTdi5t`cMH0xpB!}albA~ZtFQb)}r1*@$Hlbuq3X2Hx}L~8e) z3>-Q|q1+ePQ7_t&uL-NH5eXMZDaOLGdLtxl~;o$(s9;*A$1m z5kqPZ-`ny|MWj1N^LMkw6gS>)n&oKN*itgzbyD%=jV+IfI^hxQsYDI+MTMBgVPvpb zz^&)JtwrokISHU}$IQ`ay0_LF2(rY!m{D&pzH|<36xD_E4!|T$482{R98FTAvsW)| zup2<9OU271OP!!Em2+vuqa-`<^A6r)=J4wI%ipQi--d21U7%S zdrqrAy3GtGi$>d{Y4*TlD?YaC6na7(IQ+o>SNT_~OtN|Rq0ui`DUlYZ(AciCAMG5C z(nX7>vKpEdQW8z%+76;3Lrz+>R7v{swc+1}L`nb=SUk`l(gdr|x<<7VWFE!A7GrLJiHO>!K; zsMV8LI~mT6@uCM8%WZS`NE>|!_Y$s}7a%bW-%Qj-SHHR6 zpFsT$x^jaYPpJNI&pQKGIAiP?l4DsYr%`_~yyK6tLeQ=#Cpd9SQEA$+Fxw6@e2JB?r3cWJ zhZ5#7p|heA3f90Bo1@z-R+-g(=vxR<{bfZW5he?qhcdur&?nKRe^(-jC1#kwV)w51aTr8?rMq z8x^bArfLVK`kHlJYMWjV&Ios~ZqE3=KA@Aj@Hy=d?$im~w4`3;SCPut&97GswSrH-W42@JLyJPyARantJQ54kAS zPNjHlUXvEJKsW2kdsSp%7Kp^y45^~(ua?tTGya^ZpLdYOF*_`UK}GKpJ7TOClTc3c zuhSnoaESy_I*8bmcaH4OrOn>NsK}Ckaf*!0ja9L0Q9CW~^y}=Udj3^Zlul^79BFEd5Y=+;N8W8yFCFxuh_&76@_q;ZJ09g>*MCH!o?H07pDp9*O#StQB ztG#1*Z&c`I3=L#amTDX!5WY*zV>pMNe6|^}B%3G4H)72ze`-nkfCVwVu`)oMek`3a z%yRa6STpKdpsdF={S}1nWEaFJ--`F<)79McHFp3}XGWpB+q5 z*<*tFSP$cp8BWZWLz9~c7**MvwBZ75L9+!VJ6~BANt1N%e`9CoK%<<7X=F3vRO!Ne zU1W{h!Fd-uy1EDM>q46>#H(^rBWASDY91lw;x(bkI0Vxv3+T)x^QU+z?7tP6nC+uf zTecsA^Al?KL{SJe?FW37fi3H~;+#o876xn?lQoW6&zwvmq@@kt#}*8aVl0>ougD#C z3V*#f;iP)r9y|LD&f6C?Vr#rPWvQfgIa%iyKBUR zr2^_ul{E(LmLQ*{ik%kBpHKO?KZxBMYfmQHHVmz^%(4ApAYeG+BmY}=*~|iY5|ijT zhT8u9!z@p;fH(JeZGh>A3fKUp7Dp>{FV#2#HU5~{ zcR81K?@!1nd?X1~Dc$*B!DDsU3g6+1H!v($Z3T#+#8HY>qom@IfJ`Q!A$&qS5DWc5#rM6L+$jBtOE##gGgcwtV1=g5Y4 z7MYZJ%vbxD|Ic`7&q_$KhU34?S-Nr6l3sVM1gbkwmu?JQToM^vWs=v%wv6>x(o8WH z7>f*xGqF)78E!-nLHtzfTc|8+&?#O3hZRXc7_%Dw7MXV$?8b?>YWZ`E@V}f>W#K5BQ#0$wYhs z07$*PWMd*IJHvmY0X~(05H^UqhZN%_Amb-8RwdRv-jL@Xs1~);c3B0G^hgPsl%3(! zMH_)qhWg6tcA3H?ZJGn;e)n#7&o}~TwA*r}wYye^pe6{4|Ffc1Ovqom@qHV9@m+1v V&yN*@z(JjqwYlxlyzkww{|EG&pN0Sc literal 0 HcmV?d00001 diff --git a/classxt_1_1xarray__container-members.html b/classxt_1_1xarray__container-members.html new file mode 100644 index 000000000..fd92c4194 --- /dev/null +++ b/classxt_1_1xarray__container-members.html @@ -0,0 +1,301 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xarray_container< EC, L, SC, Tag > Member List
+
+
+ +

This is the complete list of members for xt::xarray_container< EC, L, SC, Tag >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocator_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
assign_temporary(temporary_type &&)xt::xcontainer_semantic< xarray_container< EC, L, SC, Tag > >inline
back()xt::xcontainer< xarray_container< EC, L, SC, Tag > >
back()xt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
backstrides() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >
backstrides_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
base_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
const_pointer typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
const_reference typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
data() noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
data() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
data_offset() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
dimension() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
expression_tag typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
extension_base typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
fill(const T &value)xt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
flat(size_type i)xt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
flat(size_type i) constxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
from_shape(S &&s) (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >static
from_shape(S &&s)xt::xarray_container< EC, L, SC, Tag >inline
front()xt::xcontainer< xarray_container< EC, L, SC, Tag > >
front()xt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
has_linear_assign(const S &strides) const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
inner_backstrides_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
inner_shape_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
inner_strides_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
layout() const noexceptxt::xstrided_container< xarray_container< EC, L, SC, Tag > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator=(const xarray_container &)=default (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
operator=(xarray_container &&)=default (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
operator=(xtensor_container< EC, N, L, Tag > &&rhs) (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
operator=(const xexpression< E > &e) (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
operator=(xtensor_container< EC, N, L, Tag > &&rhs) (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >inline
operator=(const xexpression< E > &e) -> self_type &xt::xarray_container< EC, L, SC, Tag >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >inline
pointer typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
rank (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >static
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
reference typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >inline
reshape(S &&shape, layout_type layout=base_type::static_layout) &xt::xstrided_container< xarray_container< EC, L, SC, Tag > >inline
resize(S &&shape, bool force=false)xt::xstrided_container< xarray_container< EC, L, SC, Tag > >inline
resize(S &&shape, layout_type l)xt::xstrided_container< xarray_container< EC, L, SC, Tag > >inline
resize(S &&shape, const strides_type &strides)xt::xstrided_container< xarray_container< EC, L, SC, Tag > >inline
self_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
semantic_base typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
shape() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >
shape_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
size() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
storage() noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
storage() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >inline
storage_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
strides() const noexceptxt::xcontainer< xarray_container< EC, L, SC, Tag > >
strides_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
temporary_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
unchecked(Args... args) -> referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
unchecked(Args... args) -> referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xarray_container< EC, L, SC, Tag > >inline
value_type typedef (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
xarray_container()xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(const shape_type &shape, layout_type l=L)xt::xarray_container< EC, L, SC, Tag >inlineexplicit
xarray_container(const shape_type &shape, const_reference value, layout_type l=L)xt::xarray_container< EC, L, SC, Tag >inlineexplicit
xarray_container(const shape_type &shape, const strides_type &strides)xt::xarray_container< EC, L, SC, Tag >inlineexplicit
xarray_container(const shape_type &shape, const strides_type &strides, const_reference value)xt::xarray_container< EC, L, SC, Tag >inlineexplicit
xarray_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)xt::xarray_container< EC, L, SC, Tag >inlineexplicit
xarray_container(const value_type &t)xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(nested_initializer_list_t< value_type, 1 > t)xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(nested_initializer_list_t< value_type, 2 > t)xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(nested_initializer_list_t< value_type, 3 > t)xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(nested_initializer_list_t< value_type, 4 > t)xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(nested_initializer_list_t< value_type, 5 > t)xt::xarray_container< EC, L, SC, Tag >inline
xarray_container(const xarray_container &)=default (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
xarray_container(xarray_container &&)=default (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
xarray_container(xtensor_container< EC, N, L, Tag > &&rhs) (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >inlineexplicit
xarray_container(const xexpression< E > &e)xt::xarray_container< EC, L, SC, Tag >inline
xcontainer< xarray_container< EC, L, SC, Tag > > (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >friend
~xarray_container()=default (defined in xt::xarray_container< EC, L, SC, Tag >)xt::xarray_container< EC, L, SC, Tag >
+
+ + + + diff --git a/classxt_1_1xarray__container.html b/classxt_1_1xarray__container.html new file mode 100644 index 000000000..4a5f6a58b --- /dev/null +++ b/classxt_1_1xarray__container.html @@ -0,0 +1,2321 @@ + + + + + + + +xtensor: xt::xarray_container< EC, L, SC, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xarray_container< EC, L, SC, Tag > Class Template Reference
+
+
+ +

Dense multidimensional container with tensor semantic. + More...

+ +

#include <xarray.hpp>

+
+Inheritance diagram for xt::xarray_container< EC, L, SC, Tag >:
+
+
+ + +xt::xstrided_container< xarray_container< EC, L, SC, Tag > > +xt::xcontainer_semantic< xarray_container< EC, L, SC, Tag > > +xt::xcontainer< xarray_container< EC, L, SC, Tag > > +xt::xsemantic_base< xarray_container< EC, L, SC, Tag > > +xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > > +xt::xaccessible< xarray_container< EC, L, SC, Tag > > +xt::xiterable< xarray_container< EC, L, SC, Tag > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xarray_container<EC, L, SC, Tag>
 
using base_type = xstrided_container<self_type>
 
using semantic_base = xcontainer_semantic<self_type>
 
using extension_base = extension::xarray_container_base_t<EC, L, SC, Tag>
 
using storage_type = typename base_type::storage_type
 
using allocator_type = typename base_type::allocator_type
 
using value_type = typename base_type::value_type
 
using reference = typename base_type::reference
 
using const_reference = typename base_type::const_reference
 
using pointer = typename base_type::pointer
 
using const_pointer = typename base_type::const_pointer
 
using shape_type = typename base_type::shape_type
 
using inner_shape_type = typename base_type::inner_shape_type
 
using strides_type = typename base_type::strides_type
 
using backstrides_type = typename base_type::backstrides_type
 
using inner_strides_type = typename base_type::inner_strides_type
 
using inner_backstrides_type = typename base_type::inner_backstrides_type
 
using temporary_type = typename semantic_base::temporary_type
 
using expression_tag = Tag
 
- Public Types inherited from xt::xstrided_container< xarray_container< EC, L, SC, Tag > >
using base_type
 
using storage_type
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using shape_type
 
using strides_type
 
using inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
- Public Types inherited from xt::xcontainer< xarray_container< EC, L, SC, Tag > >
using derived_type
 
using inner_types
 
using storage_type
 
using allocator_type
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using difference_type
 
using simd_value_type
 
using bool_load_type
 
using shape_type
 
using strides_type
 
using backstrides_type
 
using inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
using iterable_base
 
using stepper
 
using const_stepper
 
using accessible_base
 
using data_alignment
 
using simd_type
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using simd_return_type
 
using container_iterator
 
using const_container_iterator
 
- Public Types inherited from xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >
using derived_type
 
using inner_types
 
using iterable_base
 
using stepper
 
using const_stepper
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using linear_traits
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using select_iterator_impl
 
using select_iterator
 
using select_const_iterator
 
using select_reverse_iterator
 
using select_const_reverse_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xcontainer_semantic< xarray_container< EC, L, SC, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
- Public Types inherited from xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

xarray_container (const xarray_container &)=default
 
+xarray_containeroperator= (const xarray_container &)=default
 
xarray_container (xarray_container &&)=default
 
+xarray_containeroperator= (xarray_container &&)=default
 
+template<std::size_t N>
xarray_containeroperator= (xtensor_container< EC, N, L, Tag > &&rhs)
 
+template<class E>
xarray_containeroperator= (const xexpression< E > &e)
 
Constructors
 xarray_container ()
 Allocates an uninitialized xarray_container that holds 0 element.
 
 xarray_container (const shape_type &shape, layout_type l=L)
 Allocates an uninitialized xarray_container with the specified shape and layout_type.
 
 xarray_container (const shape_type &shape, const_reference value, layout_type l=L)
 Allocates an xarray_container with the specified shape and layout_type.
 
 xarray_container (const shape_type &shape, const strides_type &strides)
 Allocates an uninitialized xarray_container with the specified shape and strides.
 
 xarray_container (const shape_type &shape, const strides_type &strides, const_reference value)
 Allocates an uninitialized xarray_container with the specified shape and strides.
 
 xarray_container (storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)
 Allocates an xarray_container by moving specified data, shape and strides.
 
 xarray_container (const value_type &t)
 Allocates an xarray_container that holds a single element initialized to the specified value.
 
Constructors from initializer list
 xarray_container (nested_initializer_list_t< value_type, 1 > t)
 Allocates a one-dimensional xarray_container.
 
 xarray_container (nested_initializer_list_t< value_type, 2 > t)
 Allocates a two-dimensional xarray_container.
 
 xarray_container (nested_initializer_list_t< value_type, 3 > t)
 Allocates a three-dimensional xarray_container.
 
 xarray_container (nested_initializer_list_t< value_type, 4 > t)
 Allocates a four-dimensional xarray_container.
 
 xarray_container (nested_initializer_list_t< value_type, 5 > t)
 Allocates a five-dimensional xarray_container.
 
template<std::size_t N>
 xarray_container (xtensor_container< EC, N, L, Tag > &&rhs)
 
template<class S>
xarray_container< EC, L, SC, Tag > from_shape (S &&s)
 Allocates and returns an xarray_container with the specified shape.
 
template<std::size_t N>
xarray_container< EC, L, SC, Tag > & operator= (xtensor_container< EC, N, L, Tag > &&rhs)
 
void resize (S &&shape, bool force=false)
 Resizes the container.
 
void resize (S &&shape, layout_type l)
 Resizes the container.
 
void resize (S &&shape, const strides_type &strides)
 Resizes the container.
 
auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
 Reshapes the container and keeps old elements.
 
auto & reshape (std::initializer_list< T > shape, layout_type layout=base_type::static_layout) &
 
layout_type layout () const noexcept
 Return the layout_type of the container.
 
bool is_contiguous () const noexcept
 
- Public Member Functions inherited from xt::xcontainer< xarray_container< EC, L, SC, Tag > >
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
+reference operator[] (size_type i)
 
+reference back ()
 Returns a reference to the last element of the expression.
 
+reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
+reference operator() (Args... args)
 
+const_reference operator() (Args... args) const
 
+reference unchecked (Args... args)
 
+const_reference unchecked (Args... args) const
 
+reference element (It first, It last)
 
+const_reference element (It first, It last) const
 
+stepper stepper_begin (const S &shape) noexcept
 
+const_stepper stepper_begin (const S &shape) const noexcept
 
+stepper stepper_end (const S &shape, layout_type l) noexcept
 
+const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
 
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
reference back ()
 Returns a reference to the last element of the expression.
 
reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
void fill (const T &value)
 Fills the container with the given value.
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
storage_type & storage () noexcept
 Returns a reference to the buffer containing the elements of the container.
 
const storage_type & storage () const noexcept
 Returns a constant reference to the buffer containing the elements of the container.
 
pointer data () noexcept
 Returns a pointer to the underlying array serving as element storage.
 
const_pointer data () const noexcept
 Returns a constant pointer to the underlying array serving as element storage.
 
const size_type data_offset () const noexcept
 Returns the offset to the first element in the container.
 
size_type size () const noexcept
 Returns the number of element in the container.
 
constexpr size_type dimension () const noexcept
 Returns the number of dimensions of the container.
 
constexpr const inner_shape_type & shape () const noexcept
 Returns the shape of the container.
 
constexpr const inner_strides_type & strides () const noexcept
 Returns the strides of the container.
 
constexpr const inner_backstrides_type & backstrides () const noexcept
 Returns the backstrides of the container.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the container to the specified parameter.
 
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
reference data_element (size_type i)
 
const_reference data_element (size_type i) const
 
reference flat (size_type i)
 Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
 
const_reference flat (size_type i) const
 Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
 
void store_simd (size_type i, const simd &e)
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
linear_iterator linear_begin () noexcept
 
const_linear_iterator linear_begin () const noexcept
 
linear_iterator linear_end () noexcept
 
const_linear_iterator linear_end () const noexcept
 
const_linear_iterator linear_cbegin () const noexcept
 
const_linear_iterator linear_cend () const noexcept
 
reverse_linear_iterator linear_rbegin () noexcept
 
const_reverse_linear_iterator linear_rbegin () const noexcept
 
reverse_linear_iterator linear_rend () noexcept
 
const_reverse_linear_iterator linear_rend () const noexcept
 
const_reverse_linear_iterator linear_crbegin () const noexcept
 
const_reverse_linear_iterator linear_crend () const noexcept
 
- Public Member Functions inherited from xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >
+select_iterator< L > begin () noexcept
 
+select_const_iterator< L > begin () const noexcept
 
+broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+select_iterator< L > end () noexcept
 
+select_const_iterator< L > end () const noexcept
 
+broadcast_iterator< S, L > end (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+select_const_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+select_const_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+select_reverse_iterator< L > rbegin () noexcept
 
+select_const_reverse_iterator< L > rbegin () const noexcept
 
+reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+select_reverse_iterator< L > rend () noexcept
 
+select_const_reverse_iterator< L > rend () const noexcept
 
+reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
- Public Member Functions inherited from xt::xcontainer_semantic< xarray_container< EC, L, SC, Tag > >
+derived_typeassign_xexpression (const xexpression< E > &e)
 
+derived_typecomputed_assign (const xexpression< E > &e)
 
+derived_typescalar_computed_assign (const E &e, F &&f)
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
derived_typeassign_temporary (temporary_type &&)
 Assigns the temporary tmp to *this.
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
- Public Member Functions inherited from xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >
+disable_xexpression< E, derived_type & > operator+= (const E &)
 
+derived_type & operator+= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator-= (const E &)
 
+derived_type & operator-= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator*= (const E &)
 
+derived_type & operator*= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator/= (const E &)
 
+derived_type & operator/= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator%= (const E &)
 
+derived_type & operator%= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator&= (const E &)
 
+derived_type & operator&= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator|= (const E &)
 
+derived_type & operator|= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator^= (const E &)
 
+derived_type & operator^= (const xexpression< E > &)
 
+derived_type & assign (const xexpression< E > &)
 
+derived_type & plus_assign (const xexpression< E > &)
 
+derived_type & minus_assign (const xexpression< E > &)
 
+derived_type & multiplies_assign (const xexpression< E > &)
 
+derived_type & divides_assign (const xexpression< E > &)
 
+derived_type & modulus_assign (const xexpression< E > &)
 
+derived_type & bit_and_assign (const xexpression< E > &)
 
+derived_type & bit_or_assign (const xexpression< E > &)
 
+derived_type & bit_xor_assign (const xexpression< E > &)
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + +

+Static Public Member Functions

+template<class S = shape_type>
static xarray_container from_shape (S &&s)
 
+ + + + + + + + + + + +

+Static Public Attributes

static constexpr std::size_t rank = SIZE_MAX
 
- Static Public Attributes inherited from xt::xcontainer< xarray_container< EC, L, SC, Tag > >
static constexpr layout_type static_layout
 
static constexpr bool contiguous_layout
 
- Static Public Attributes inherited from xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >
static constexpr layout_type static_layout
 
+ + + +

+Friends

class xcontainer< xarray_container< EC, L, SC, Tag > >
 
+ + + + + + + + + +

Extended copy semantic

template<class E>
 xarray_container (const xexpression< E > &e)
 The extended copy constructor.
 
template<class E>
auto operator= (const xexpression< E > &e) -> self_type &
 The extended assignment operator.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xstrided_container< xarray_container< EC, L, SC, Tag > >
xstrided_container (const xstrided_container &)=default
 
xstrided_container (xstrided_container &&)=default
 
+xstrided_containeroperator= (const xstrided_container &)=default
 
+xstrided_containeroperator= (xstrided_container &&)=default
 
 xstrided_container (inner_shape_type &&, inner_strides_type &&) noexcept
 
 xstrided_container (inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept
 
inner_shape_type & shape_impl () noexcept
 
const inner_shape_type & shape_impl () const noexcept
 
inner_strides_type & strides_impl () noexcept
 
const inner_strides_type & strides_impl () const noexcept
 
inner_backstrides_type & backstrides_impl () noexcept
 
const inner_backstrides_type & backstrides_impl () const noexcept
 
void reshape_impl (S &&shape, std::true_type, layout_type layout=base_type::static_layout)
 
void reshape_impl (S &&shape, std::false_type, layout_type layout=base_type::static_layout)
 
layout_typemutable_layout () noexcept
 
- Protected Member Functions inherited from xt::xcontainer< xarray_container< EC, L, SC, Tag > >
xcontainer (const xcontainer &)=default
 
xcontainer (xcontainer &&)=default
 
+xcontaineroperator= (const xcontainer &)=default
 
+xcontaineroperator= (xcontainer &&)=default
 
container_iterator data_xbegin () noexcept
 
const_container_iterator data_xbegin () const noexcept
 
container_iterator data_xend (layout_type l, size_type offset) noexcept
 
const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
 
derived_typederived_cast () &noexcept
 
const derived_typederived_cast () const &noexcept
 
derived_type derived_cast () &&noexcept
 
- Protected Member Functions inherited from xt::xcontainer_semantic< xarray_container< EC, L, SC, Tag > >
xcontainer_semantic (const xcontainer_semantic &)=default
 
xcontainer_semantic (xcontainer_semantic &&)=default
 
+xcontainer_semanticoperator= (const xcontainer_semantic &)=default
 
+xcontainer_semanticoperator= (xcontainer_semantic &&)=default
 
+derived_typeoperator= (const xexpression< E > &)
 
- Protected Member Functions inherited from xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >
xsemantic_base (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class EC, layout_type L, class SC, class Tag>
+class xt::xarray_container< EC, L, SC, Tag >

Dense multidimensional container with tensor semantic.

+

The xarray_container class implements a dense multidimensional container with tensor semantic.

+
Template Parameters
+ + + + + +
ECThe type of the container holding the elements.
LThe layout_type of the container.
SCThe type of the containers holding the shape and the strides.
TagThe expression tag.
+
+
+
See also
xarray, xstrided_container, xcontainer
+ +

Definition at line 81 of file xarray.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::allocator_type = typename base_type::allocator_type
+
+ +

Definition at line 92 of file xarray.hpp.

+ +
+
+ +

◆ backstrides_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::backstrides_type = typename base_type::backstrides_type
+
+ +

Definition at line 101 of file xarray.hpp.

+ +
+
+ +

◆ base_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::base_type = xstrided_container<self_type>
+
+ +

Definition at line 88 of file xarray.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::const_pointer = typename base_type::const_pointer
+
+ +

Definition at line 97 of file xarray.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::const_reference = typename base_type::const_reference
+
+ +

Definition at line 95 of file xarray.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::expression_tag = Tag
+
+ +

Definition at line 105 of file xarray.hpp.

+ +
+
+ +

◆ extension_base

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::extension_base = extension::xarray_container_base_t<EC, L, SC, Tag>
+
+ +

Definition at line 90 of file xarray.hpp.

+ +
+
+ +

◆ inner_backstrides_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::inner_backstrides_type = typename base_type::inner_backstrides_type
+
+ +

Definition at line 103 of file xarray.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::inner_shape_type = typename base_type::inner_shape_type
+
+ +

Definition at line 99 of file xarray.hpp.

+ +
+
+ +

◆ inner_strides_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::inner_strides_type = typename base_type::inner_strides_type
+
+ +

Definition at line 102 of file xarray.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::pointer = typename base_type::pointer
+
+ +

Definition at line 96 of file xarray.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::reference = typename base_type::reference
+
+ +

Definition at line 94 of file xarray.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::self_type = xarray_container<EC, L, SC, Tag>
+
+ +

Definition at line 87 of file xarray.hpp.

+ +
+
+ +

◆ semantic_base

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::semantic_base = xcontainer_semantic<self_type>
+
+ +

Definition at line 89 of file xarray.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::shape_type = typename base_type::shape_type
+
+ +

Definition at line 98 of file xarray.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::storage_type = typename base_type::storage_type
+
+ +

Definition at line 91 of file xarray.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::strides_type = typename base_type::strides_type
+
+ +

Definition at line 100 of file xarray.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::temporary_type = typename semantic_base::temporary_type
+
+ +

Definition at line 104 of file xarray.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + +
using xt::xarray_container< EC, L, SC, Tag >::value_type = typename base_type::value_type
+
+ +

Definition at line 93 of file xarray.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xarray_container() [1/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container ()
+
+inline
+
+ +

Allocates an uninitialized xarray_container that holds 0 element.

+ +

Definition at line 280 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [2/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (const shape_type & shape,
layout_type l = L )
+
+inlineexplicit
+
+ +

Allocates an uninitialized xarray_container with the specified shape and layout_type.

+
Parameters
+ + + +
shapethe shape of the xarray_container
lthe layout_type of the xarray_container
+
+
+ +

Definition at line 293 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [3/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (const shape_type & shape,
const_reference value,
layout_type l = L )
+
+inlineexplicit
+
+ +

Allocates an xarray_container with the specified shape and layout_type.

+

Elements are initialized to the specified value.

Parameters
+ + + + +
shapethe shape of the xarray_container
valuethe value of the elements
lthe layout_type of the xarray_container
+
+
+ +

Definition at line 307 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [4/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (const shape_type & shape,
const strides_type & strides )
+
+inlineexplicit
+
+ +

Allocates an uninitialized xarray_container with the specified shape and strides.

+
Parameters
+ + + +
shapethe shape of the xarray_container
stridesthe strides of the xarray_container
+
+
+ +

Definition at line 324 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [5/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (const shape_type & shape,
const strides_type & strides,
const_reference value )
+
+inlineexplicit
+
+ +

Allocates an uninitialized xarray_container with the specified shape and strides.

+

Elements are initialized to the specified value.

Parameters
+ + + + +
shapethe shape of the xarray_container
stridesthe strides of the xarray_container
valuethe value of the elements
+
+
+ +

Definition at line 338 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [6/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (storage_type && storage,
inner_shape_type && shape,
inner_strides_type && strides )
+
+inlineexplicit
+
+ +

Allocates an xarray_container by moving specified data, shape and strides.

+
Parameters
+ + + + +
storagethe data for the xarray_container
shapethe shape of the xarray_container
stridesthe strides of the xarray_container
+
+
+ +

Definition at line 370 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [7/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (const value_type & t)
+
+inline
+
+ +

Allocates an xarray_container that holds a single element initialized to the specified value.

+
Parameters
+ + +
tthe value of the element
+
+
+ +

Definition at line 355 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [8/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (nested_initializer_list_t< value_type, 1 > t)
+
+inline
+
+ +

Allocates a one-dimensional xarray_container.

+
Parameters
+ + +
tthe elements of the xarray_container
+
+
+ +

Definition at line 391 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [9/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (nested_initializer_list_t< value_type, 2 > t)
+
+inline
+
+ +

Allocates a two-dimensional xarray_container.

+
Parameters
+ + +
tthe elements of the xarray_container
+
+
+ +

Definition at line 404 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [10/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (nested_initializer_list_t< value_type, 3 > t)
+
+inline
+
+ +

Allocates a three-dimensional xarray_container.

+
Parameters
+ + +
tthe elements of the xarray_container
+
+
+ +

Definition at line 417 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [11/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (nested_initializer_list_t< value_type, 4 > t)
+
+inline
+
+ +

Allocates a four-dimensional xarray_container.

+
Parameters
+ + +
tthe elements of the xarray_container
+
+
+ +

Definition at line 430 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [12/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (nested_initializer_list_t< value_type, 5 > t)
+
+inline
+
+ +

Allocates a five-dimensional xarray_container.

+
Parameters
+ + +
tthe elements of the xarray_container
+
+
+ +

Definition at line 443 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [13/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<std::size_t N>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (xtensor_container< EC, N, L, Tag > && rhs)
+
+inlineexplicit
+
+ +

Definition at line 467 of file xarray.hpp.

+ +
+
+ +

◆ xarray_container() [14/14]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class E>
+ + + + + +
+ + + + + + + +
xt::xarray_container< EC, L, SC, Tag >::xarray_container (const xexpression< E > & e)
+
+inline
+
+ +

The extended copy constructor.

+ +

Definition at line 500 of file xarray.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ from_shape()

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class S>
+ + + + + +
+ + + + + + + +
xarray_container< EC, L, SC, Tag > xt::xarray_container< EC, L, SC, Tag >::from_shape (S && s)
+
+inline
+
+ +

Allocates and returns an xarray_container with the specified shape.

+
Parameters
+ + +
sthe shape of the xarray_container
+
+
+ +

Definition at line 459 of file xarray.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xarray_container< EC, L, SC, Tag >::operator= (const xexpression< E > & e) -> self_type& +
+
+inline
+
+ +

The extended assignment operator.

+ +

Definition at line 517 of file xarray.hpp.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+
+template<std::size_t N>
+ + + + + +
+ + + + + + + +
xarray_container< EC, L, SC, Tag > & xt::xarray_container< EC, L, SC, Tag >::operator= (xtensor_container< EC, N, L, Tag > && rhs)
+
+inline
+
+ +

Definition at line 481 of file xarray.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xcontainer< xarray_container< EC, L, SC, Tag > >

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + +
friend class xcontainer< xarray_container< EC, L, SC, Tag > >
+
+friend
+
+ +

Definition at line 149 of file xarray.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ rank

+ +
+
+
+template<class EC, layout_type L, class SC, class Tag>
+ + + + + +
+ + + + +
std::size_t xt::xarray_container< EC, L, SC, Tag >::rank = SIZE_MAX
+
+staticconstexpr
+
+ +

Definition at line 106 of file xarray.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xarray__container.js b/classxt_1_1xarray__container.js new file mode 100644 index 000000000..5725aa586 --- /dev/null +++ b/classxt_1_1xarray__container.js @@ -0,0 +1,18 @@ +var classxt_1_1xarray__container = +[ + [ "xarray_container", "classxt_1_1xarray__container.html#ae5c1e535231ddffdb7783d1445ffd66d", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a6b738f9e83ff453355414de037099d8c", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a72aad798502aefff1285aa6f46941e9c", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a0ca205f5f86d10d73b87b1d3ea7e6297", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a020df69d60ce91531bc3cf31af0b97ce", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a9e8b9a74e75fd76352d23346fa69a5c6", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a77e6553e8d27386c45f4fe7e80017e5c", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a9cd19d110d8063589c6f6c08a44af6ad", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a23f21da84072d9319fc8c826d98fb1de", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#aa7107f45d9ee3d9bb7a4a65f7c240edb", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#aaac4e823fd41ff9e9801a3cd8b1b5f6c", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#a44069c72b35f79263d7e24b6de2c4262", null ], + [ "xarray_container", "classxt_1_1xarray__container.html#aad2ebb4b2fa3a2a3a33a8a57b6bfe60a", null ], + [ "from_shape", "classxt_1_1xarray__container.html#ab23fb8ed1e93061e427ef9da391336a0", null ], + [ "operator=", "classxt_1_1xarray__container.html#ac47c631a33e292371fab8acff451f269", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xarray__container.png b/classxt_1_1xarray__container.png new file mode 100644 index 0000000000000000000000000000000000000000..850ecd262178cc4eb59410ac8f94a4022239e9d7 GIT binary patch literal 7123 zcmdT}2~?BUwyuZ;2S9BV5CdAPUPVxF00JSlOj;#eg`X%gCvb1Wb{HFb_fk1R{nx(>n>+_I16x-nwtyx88bZt-ufY&pG>?z0bG5 z{hh?WW9-ycZCdr&XP>DZJz{061hn8XROXu&$oor+>8F=LJr^8ZS z=9%u>6{JOa!|Uto1OGqR{FF@)1~qWrw-p-Pouvl|kDKVWABWq;Z#b88oY7 zcqa(ulCxY%NlD#+c>)>Q?9dX;5_xm4^v{(sdUiG&}8dTdHT{Inxaw2bm7qv2RQZh8ouNM{%ISrmpa@6dO zi3&P6KG1%kJEYh=*UO?59(}zwf_jj|aIK-hRd!3=3z)$dCkxPAx0rQmXI2JxpQlq< zd4?hpbk)!L?Z8()Ntr!*5jONu^MGVGkG_U*vU}I0_qPvJkFVEV+Fpt+9dblNP1!Ltm{Hg49##_f}`?z7n=g(Sw#vo5uWL zQI1!-hMqP3Nq&l3tZq2tRK*6wSZV?9zK`t0?>)5B4C^y>W1+M0No$;`*GG-NU= z<-x&G#uab2?r_#HnYFnkyO6r-d*H_aOV7Ept4RGPDR!8Clh~oaht^QrcYo|OG%b6E z^(cZno~|Onuzm0RLwGc9X<>u5^q4c2nR*apE(#8Lj=CO-|ITJ`^@KRuXXZklfFFpYaUzlFI)Y-v?9%f#fF zf=|NL%eg!l&Vfg-41=RBKlKMvh%A>RmP^b(tW`FDhlCVo9ER1uW-?uTRet1MwmO;z z!_kVqYf1Lrpy>ED0!uNfaT#`7i(~9yb*u@pcAjbOcrJdKA# zkJehI{Tyu;6lYdbo7GE`O-qgM3io-=`C1A^xccL*Pq-sKxWJMh8cquxH4%f25a!z6 zV+M~pFIbN4DB-*eC@ByYPr6L_UGyLlVdW+*1jHGh{cc}E@HYA2Cot1tJ2=DtS zHJ%u+t2D2b>h#+0OqMycu34T?hV<~8r_{H3y^+Al_~5g(MGUe>|-QDxY{WJtK;Iup5y3|3F=nzwz3SqsbBi; zf_EHZZK2ci<0cwqU@)eUNZZ9Xi5uxhxI*q-twbD{&G9--<#H>JuIcu=pe58GH4vn} z!K{IIL#sLs{FZ>Y`x)%h(iBJK@Edz9WC0NeifeMbnBOOm`b8L&xgu;>APHRcV!O_? z6f{<8BZL}_Dd=QkgA)mTW1aAGb9-diDCdednWl|MdeLfPLF>M-0CK|gDAp@aFSz(6 z(n5Yz7?`j&t&Q<i zI5n^%!9q-7?qF5Ta0CTjXt%|`A@}XxpXMLGIT)drR5X7Pe_RDS9`X7gIt6Y9guiBp zGMWTw3TEDygbB;1d8hWiNnnIdhJ<~%=5t_8E%B$*SN5`Lx!1cZUN=3^iRppEZjHsV zUb41f4g4}B^`FlS@#Z=*VaLL(`R)QZ;ItiGMH0r`j4NE2_D1OCv5K-fn}pHDO;hPA z>?kHkHe(Bcgi<44=TxI2;c5I6yP_Pg41&JG0y1;5N5@cYphmq#(BttaO(vZf9Wo9w zt++|#9IwXYnBGV-ySmJiI|*_yJgEst)SyzirY@A%D?0op41NdlJaXR z|8nkMI;tLTxw}GH+4b1cc+zj`j264EUHjn*=xn`eIdMc!d9&4SWu>pK19qnOX@vj5 ztHakPKYskUelKV$%a+k^>nJT-=CEUh`ZCe$X0W=Qca#z?6TETX9Im@_^omto?K3Li z$-h3V+j`c6a~c?Q{$$_UrxgAkRn|4t6Kfo{n zQ2(>IT_2X*ZUeQ|u1BnWO8qi&i8AECmplM%M zSf+iK-bejVLt|$r69dIJDS1x>PEecdMSQ5dt~iUM=>YCPvo5{L2{0=iQ=8IN_K`B9I9^+FmWItnA$7bgsJIz-+;=NrQVV=(9CWGA`Bkq zioFNt@cfh0r09yQu!X6RM)91}cW5_$^AEZXg>aQI{wGcb!@H;l3lRnaZR|2fbGbuy zsM*(rWJ0OFGx@CL03{F{K4m^%%B#5BIh>6xEj#hVE48~z)S8#%NrQQM2I0~1T@bT? zQf(AYO(N)9NKfHopWbs`8APCB%L6ObG^ytm%M7G#KzNO;p*O2E2V$x2H(GW_2TO4q z2m(*x@CkV#G4Ickwr4i>JU!JP)1S)I(r6Y84fL?`A8~E*Yi46Jw(H3GZ*?^qS+vS; zk_*2o>#-l&*EyE-jiZgj#A6<1PdLs-LohDB{{6#fIKg zSdzL96g?cWsTD_9KHV&< zZ|G59!v2Ht+D|u`O+OU=kd);JO(Wv>Bc0D&3=U1`H0$c*P*7cDhF@zU_R~&9*a3`N z&VNgiC#|+vsO^y;_9PTW0y_vn3BreqMwmxlp?Aq>dw|B3saMjC^936xETcD)CMQSR0DGVbr&W|AewGM`}7hZcRw3Pb51L_r$WU&=|1&V=g(pyrX(Bj2++#Ae{N zE-pQClxHgFWYa^?G>Ihc!<1AYshb}Pc^Mm#qSA7GUuKM1kl7(M*R;lx;i-{%TE7^f zsUvg2a((=J9}fzPn>+xCuyW8tn9RPL6?C=bw{A+x_c5Px2%re8>0@76aV=;Bkzl$` z#F&>wB-IPcVx;fKbNgu{4-350TKA-p3r+1!_LPXvOX;x_P^*XRb22k{+m2@XBOBTm z+a2Wiosz}vNdN6T@|-hk@CD~-Ti-}s(1dA2V;-Yn7qQ2cbZlVVAo;0<>+iiy55%b0M1kv10Pslf>!UP*clrSJBmx zRvV6>vVBAnjP<9)k#7}`trj1!$U-A6+Z{b>LWS8etYehsCyw?lo#p+Ua`r4>w)0q2 zoE9}xMW~Ak?-aon*ft-Hr?Uh~rwqd6u{`kaAVqpZ^ zKCW~IW~U^6Y~yJeF8JVM*QSGbP0u3|89UsZUsiSWWHDB`I5Td2+w)|y*b)~OUHQG} zl4xg=!KRL90fB8Z(eL51JPuloh+Zp?#PW$QSQNhr!Tmx8eC~sH%@B(i&Y`_T;>ZK@ z+`&eEr~aFkZmsAx1_?pX4fvCuMl&~+9>Kc~c(zjoqL7UnNy{jEx$79wI_k~T;qK0- z4PWbc8=nc?96KL)3U9Q4OR7O+Jvx=FWqBW#8J|5EGK%4D(4^TyZ3&>_crvqiChGh8 z-*DWtCO95l?!7mOY)s_HFM&1E8XLm}*_2QCoW!hzRqpU;m!TD4X8pnL&^ z3Jj-ZSpwxmYL$hHA?%b3JQ17w)(5z~9zP~(-dR{$CTE1D;p(#(wf-)(j`nx0HeuMA@~lcH1Y0B`1zl~@h|V{FX>YX{6u{XR-oXYK+G}+ zij-owt-n)QP*Pp7IDrR}w+%b2d)tdUBTM-c>DYQ3^W&uV35{toli>R+2E zE6v=NC@aYQ@?X`iTt+;9e%|Vvx~yl^zQZ9_Th3~5927~_^mf-;)%F)-;jeF8y^Qe2 zy}0uJ#^E~MXW3iiygz75<<_-NQ}{a+e1G$i099rFR?$iY&sX^oln^nm;;zcehX1Nt z0)OYfyIW*bR8%4fwBH}N$_m-~M-1Q_pqVIyWl*`?SW-y4fIOyXI)LoUTacAP^;J>| zII<|1)~PAl;gjf0u8k0~_jpCsSju_zy4)1TRRs6XgY2y+B&f_B(Ee|$(HF`bL`GwZf(^@yi5 z@haAR!Sxy}6-VD))aKvD! z@bNVyjfiS{Pb_Ka*yw&U-J+POJv)3SdR$!ZO|%U_+07 zzZ?086TcmZJo1zc$Et`tI>vjp0Rc{Xs4%ysGON#gpm=T8e4~q7*Ua;WPn_`a)sS1-hUMc(TP%5tIpOJf5gFUS5@f zD=4642t-n#RLgA#%p7zEQU=ie>wemfT&NZ3EnXQUgd;OC!Qi8@VwuV$+HVD47q>S3 SD{%ex*-;yeb + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xassign_traits< E1, E2 > Member List
+
+
+ +

This is the complete list of members for xt::xassign_traits< E1, E2 >, including all inherited members.

+ + + + + + + + + +
e2_requested_value_type typedef (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >
linear_assign(const E1 &e1, const E2 &e2, bool trivial) (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >inlinestatic
requested_value_type typedef (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >
simd_assign() (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >inlinestatic
simd_linear_assign() (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >inlinestatic
simd_linear_assign(const E1 &e1, const E2 &e2) (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >inlinestatic
simd_strided_assign() (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >inlinestatic
strided_assign() (defined in xt::xassign_traits< E1, E2 >)xt::xassign_traits< E1, E2 >inlinestatic
+
+ + + + diff --git a/classxt_1_1xassign__traits.html b/classxt_1_1xassign__traits.html new file mode 100644 index 000000000..8075de0bf --- /dev/null +++ b/classxt_1_1xassign__traits.html @@ -0,0 +1,379 @@ + + + + + + + +xtensor: xt::xassign_traits< E1, E2 > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xassign_traits< E1, E2 > Class Template Reference
+
+
+ + + + + + +

+Public Types

using e2_requested_value_type
 
using requested_value_type = detail::conditional_promote_to_complex_t<e1_value_type, e2_requested_value_type>
 
+ + + + + + + + + + + + + +

+Static Public Member Functions

static constexpr bool simd_assign ()
 
static constexpr bool linear_assign (const E1 &e1, const E2 &e2, bool trivial)
 
static constexpr bool strided_assign ()
 
static constexpr bool simd_linear_assign ()
 
static constexpr bool simd_strided_assign ()
 
static constexpr bool simd_linear_assign (const E1 &e1, const E2 &e2)
 
+

Detailed Description

+
template<class E1, class E2>
+class xt::xassign_traits< E1, E2 >
+

Definition at line 352 of file xassign.hpp.

+

Member Typedef Documentation

+ +

◆ e2_requested_value_type

+ +
+
+
+template<class E1, class E2>
+ + + + +
using xt::xassign_traits< E1, E2 >::e2_requested_value_type
+
+Initial value:
std::
+
conditional_t<is_bool<e2_value_type>::value, typename E2::bool_load_type, e2_value_type>
+
+

Definition at line 434 of file xassign.hpp.

+ +
+
+ +

◆ requested_value_type

+ +
+
+
+template<class E1, class E2>
+ + + + +
using xt::xassign_traits< E1, E2 >::requested_value_type = detail::conditional_promote_to_complex_t<e1_value_type, e2_requested_value_type>
+
+ +

Definition at line 436 of file xassign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ linear_assign()

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + + + + + + +
static constexpr bool xt::xassign_traits< E1, E2 >::linear_assign (const E1 & e1,
const E2 & e2,
bool trivial )
+
+inlinestaticconstexpr
+
+ +

Definition at line 409 of file xassign.hpp.

+ +
+
+ +

◆ simd_assign()

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + +
static constexpr bool xt::xassign_traits< E1, E2 >::simd_assign ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 404 of file xassign.hpp.

+ +
+
+ +

◆ simd_linear_assign() [1/2]

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + +
static constexpr bool xt::xassign_traits< E1, E2 >::simd_linear_assign ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 419 of file xassign.hpp.

+ +
+
+ +

◆ simd_linear_assign() [2/2]

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
static constexpr bool xt::xassign_traits< E1, E2 >::simd_linear_assign (const E1 & e1,
const E2 & e2 )
+
+inlinestaticconstexpr
+
+ +

Definition at line 429 of file xassign.hpp.

+ +
+
+ +

◆ simd_strided_assign()

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + +
static constexpr bool xt::xassign_traits< E1, E2 >::simd_strided_assign ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 424 of file xassign.hpp.

+ +
+
+ +

◆ strided_assign()

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + +
static constexpr bool xt::xassign_traits< E1, E2 >::strided_assign ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 414 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xaxis__iterator-members.html b/classxt_1_1xaxis__iterator-members.html new file mode 100644 index 000000000..f6cb42e7c --- /dev/null +++ b/classxt_1_1xaxis__iterator-members.html @@ -0,0 +1,136 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xaxis_iterator< CT > Member List
+
+
+ +

This is the complete list of members for xt::xaxis_iterator< CT >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
difference_type typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
equal(const self_type &rhs) constxt::xaxis_iterator< CT >inline
iterator_category typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
operator*() constxt::xaxis_iterator< CT >inline
operator++()xt::xaxis_iterator< CT >inline
operator++(int)xt::xaxis_iterator< CT >inline
operator->() constxt::xaxis_iterator< CT >inline
pointer typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
reference typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
self_type typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
shape_type typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
size_type typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
value_type typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
xaxis_iterator(CTA &&e, size_type axis)xt::xaxis_iterator< CT >inline
xaxis_iterator(CTA &&e, size_type axis, size_type index, size_type offset)xt::xaxis_iterator< CT >inline
xexpression_type typedef (defined in xt::xaxis_iterator< CT >)xt::xaxis_iterator< CT >
+
+ + + + diff --git a/classxt_1_1xaxis__iterator.html b/classxt_1_1xaxis__iterator.html new file mode 100644 index 000000000..ff3a3728c --- /dev/null +++ b/classxt_1_1xaxis__iterator.html @@ -0,0 +1,621 @@ + + + + + + + +xtensor: xt::xaxis_iterator< CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xaxis_iterator< CT > Class Template Reference
+
+
+ +

Class for iteration over (N-1)-dimensional slices, where N is the dimension of the underlying expression. + More...

+ +

#include <xaxis_iterator.hpp>

+ + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xaxis_iterator<CT>
 
using xexpression_type = std::decay_t<CT>
 
using size_type = typename xexpression_type::size_type
 
using difference_type = typename xexpression_type::difference_type
 
using shape_type = typename xexpression_type::shape_type
 
using value_type = xstrided_view<CT, shape_type>
 
using reference = std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>
 
using pointer = xtl::xclosure_pointer<std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>>
 
using iterator_category = std::forward_iterator_tag
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Constructors
template<class CTA>
 xaxis_iterator (CTA &&e, size_type axis)
 Constructs an xaxis_iterator.
 
template<class CTA>
 xaxis_iterator (CTA &&e, size_type axis, size_type index, size_type offset)
 Constructs an xaxis_iterator starting at specified index and offset.
 
Increment
self_typeoperator++ ()
 Increments the iterator to the next position and returns it.
 
self_type operator++ (int)
 Makes a copy of the iterator, increments it to the next position, and returns the copy.
 
Reference
reference operator* () const
 Returns the strided view at the current iteration position.
 
pointer operator-> () const
 Returns a pointer to the strided view at the current iteration position.
 
bool equal (const self_type &rhs) const
 Checks equality of the xaxis_slice_iterator and rhs.
 
+

Detailed Description

+
template<class CT>
+class xt::xaxis_iterator< CT >

Class for iteration over (N-1)-dimensional slices, where N is the dimension of the underlying expression.

+

If N is the number of dimensions of an expression, the xaxis_iterator iterates over (N-1)-dimensional slices oriented along the specified axis.

+
Template Parameters
+ + +
CTthe closure type of the xexpression
+
+
+ +

Definition at line 33 of file xaxis_iterator.hpp.

+

Member Typedef Documentation

+ +

◆ difference_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::difference_type = typename xexpression_type::difference_type
+
+ +

Definition at line 41 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ iterator_category

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::iterator_category = std::forward_iterator_tag
+
+ +

Definition at line 47 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::pointer = xtl::xclosure_pointer<std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>>
+
+ +

Definition at line 45 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::reference = std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>
+
+ +

Definition at line 44 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::self_type = xaxis_iterator<CT>
+
+ +

Definition at line 37 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::shape_type = typename xexpression_type::shape_type
+
+ +

Definition at line 42 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::size_type = typename xexpression_type::size_type
+
+ +

Definition at line 40 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::value_type = xstrided_view<CT, shape_type>
+
+ +

Definition at line 43 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ xexpression_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_iterator< CT >::xexpression_type = std::decay_t<CT>
+
+ +

Definition at line 39 of file xaxis_iterator.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xaxis_iterator() [1/2]

+ +
+
+
+template<class CT>
+
+template<class CTA>
+ + + + + +
+ + + + + + + + + + + +
xt::xaxis_iterator< CT >::xaxis_iterator (CTA && e,
size_type axis )
+
+inline
+
+ +

Constructs an xaxis_iterator.

+
Parameters
+ + + +
ethe expression to iterate over
axisthe axis to iterate over taking N-1 dimensional slices
+
+
+ +

Definition at line 149 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ xaxis_iterator() [2/2]

+ +
+
+
+template<class CT>
+
+template<class CTA>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
xt::xaxis_iterator< CT >::xaxis_iterator (CTA && e,
size_type axis,
size_type index,
size_type offset )
+
+inline
+
+ +

Constructs an xaxis_iterator starting at specified index and offset.

+
Parameters
+ + + + + +
ethe expression to iterate over
axisthe axis to iterate over taking N-1 dimensional slices
indexthe starting index for the iterator
offsetthe starting offset for the iterator
+
+
+ +

Definition at line 164 of file xaxis_iterator.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ equal()

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
bool xt::xaxis_iterator< CT >::equal (const self_type & rhs) const
+
+inline
+
+ +

Checks equality of the xaxis_slice_iterator and rhs.

+
Parameters
+ + +
rhsiterator to compare with
+
+
+
Returns
true if the iterators are equivalent, false otherwise
+ +

Definition at line 242 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_iterator< CT >::operator* () const
+
+inline
+
+ +

Returns the strided view at the current iteration position.

+
Returns
a strided_view
+ +

Definition at line 213 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ operator++() [1/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_iterator< CT >::operator++ ()
+
+inline
+
+ +

Increments the iterator to the next position and returns it.

+ +

Definition at line 182 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ operator++() [2/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_iterator< CT >::operator++ (int )
+
+inline
+
+ +

Makes a copy of the iterator, increments it to the next position, and returns the copy.

+ +

Definition at line 194 of file xaxis_iterator.hpp.

+ +
+
+ +

◆ operator->()

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_iterator< CT >::operator-> () const
+
+inline
+
+ +

Returns a pointer to the strided view at the current iteration position.

+
Returns
a pointer to a strided_view
+ +

Definition at line 224 of file xaxis_iterator.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xaxis__iterator.js b/classxt_1_1xaxis__iterator.js new file mode 100644 index 000000000..2965d7d03 --- /dev/null +++ b/classxt_1_1xaxis__iterator.js @@ -0,0 +1,10 @@ +var classxt_1_1xaxis__iterator = +[ + [ "xaxis_iterator", "classxt_1_1xaxis__iterator.html#a27574105e56e37a1986b8cb5a141a9ea", null ], + [ "xaxis_iterator", "classxt_1_1xaxis__iterator.html#aacf91594c4a97e2811691d5678a95e4e", null ], + [ "equal", "classxt_1_1xaxis__iterator.html#ab4e285d56b758b9c9f95d4c63f39093c", null ], + [ "operator*", "classxt_1_1xaxis__iterator.html#a150d158b5c15befbed66477acf3ea890", null ], + [ "operator++", "classxt_1_1xaxis__iterator.html#aa6a381b3f4e53a2b7b2a0385e2675b65", null ], + [ "operator++", "classxt_1_1xaxis__iterator.html#af118e8a489b3ee60287f8848a42c3ec8", null ], + [ "operator->", "classxt_1_1xaxis__iterator.html#a265baea7c543cabd5f9b074d39371310", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xaxis__slice__iterator-members.html b/classxt_1_1xaxis__slice__iterator-members.html new file mode 100644 index 000000000..e2dcbdd73 --- /dev/null +++ b/classxt_1_1xaxis__slice__iterator-members.html @@ -0,0 +1,137 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xaxis_slice_iterator< CT > Member List
+
+
+ +

This is the complete list of members for xt::xaxis_slice_iterator< CT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
difference_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
equal(const self_type &rhs) constxt::xaxis_slice_iterator< CT >inline
iterator_category typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
operator*() constxt::xaxis_slice_iterator< CT >inline
operator++()xt::xaxis_slice_iterator< CT >inline
operator++(int)xt::xaxis_slice_iterator< CT >inline
operator->() constxt::xaxis_slice_iterator< CT >inline
pointer typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
reference typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
self_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
shape_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
size_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
strides_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
value_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
xaxis_slice_iterator(CTA &&e, size_type axis)xt::xaxis_slice_iterator< CT >inline
xaxis_slice_iterator(CTA &&e, size_type axis, size_type index, size_type offset)xt::xaxis_slice_iterator< CT >inline
xexpression_type typedef (defined in xt::xaxis_slice_iterator< CT >)xt::xaxis_slice_iterator< CT >
+
+ + + + diff --git a/classxt_1_1xaxis__slice__iterator.html b/classxt_1_1xaxis__slice__iterator.html new file mode 100644 index 000000000..a4792014f --- /dev/null +++ b/classxt_1_1xaxis__slice__iterator.html @@ -0,0 +1,635 @@ + + + + + + + +xtensor: xt::xaxis_slice_iterator< CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xaxis_slice_iterator< CT > Class Template Reference
+
+
+ +

Class for iteration over one-dimensional slices. + More...

+ +

#include <xaxis_slice_iterator.hpp>

+ + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xaxis_slice_iterator<CT>
 
using xexpression_type = std::decay_t<CT>
 
using size_type = typename xexpression_type::size_type
 
using difference_type = typename xexpression_type::difference_type
 
using shape_type = typename xexpression_type::shape_type
 
using strides_type = typename xexpression_type::strides_type
 
using value_type = xstrided_view<CT, shape_type>
 
using reference = std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>
 
using pointer = xtl::xclosure_pointer<std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>>
 
using iterator_category = std::forward_iterator_tag
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Constructors
template<class CTA>
 xaxis_slice_iterator (CTA &&e, size_type axis)
 Constructs an xaxis_slice_iterator.
 
template<class CTA>
 xaxis_slice_iterator (CTA &&e, size_type axis, size_type index, size_type offset)
 Constructs an xaxis_slice_iterator starting at specified index and offset.
 
Increment
self_typeoperator++ ()
 Increments the iterator to the next position and returns it.
 
self_type operator++ (int)
 Makes a copy of the iterator, increments it to the next position, and returns the copy.
 
Reference
reference operator* () const
 Returns the strided view at the current iteration position.
 
pointer operator-> () const
 Returns a pointer to the strided view at the current iteration position.
 
bool equal (const self_type &rhs) const
 Checks equality of the xaxis_slice_iterator and rhs.
 
+

Detailed Description

+
template<class CT>
+class xt::xaxis_slice_iterator< CT >

Class for iteration over one-dimensional slices.

+

The xaxis_slice_iterator iterates over one-dimensional slices oriented along the specified axis

+
Template Parameters
+ + +
CTthe closure type of the xexpression
+
+
+ +

Definition at line 28 of file xaxis_slice_iterator.hpp.

+

Member Typedef Documentation

+ +

◆ difference_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::difference_type = typename xexpression_type::difference_type
+
+ +

Definition at line 36 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ iterator_category

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::iterator_category = std::forward_iterator_tag
+
+ +

Definition at line 43 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::pointer = xtl::xclosure_pointer<std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>>
+
+ +

Definition at line 41 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::reference = std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>
+
+ +

Definition at line 40 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::self_type = xaxis_slice_iterator<CT>
+
+ +

Definition at line 32 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::shape_type = typename xexpression_type::shape_type
+
+ +

Definition at line 37 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::size_type = typename xexpression_type::size_type
+
+ +

Definition at line 35 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::strides_type = typename xexpression_type::strides_type
+
+ +

Definition at line 38 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::value_type = xstrided_view<CT, shape_type>
+
+ +

Definition at line 39 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ xexpression_type

+ +
+
+
+template<class CT>
+ + + + +
using xt::xaxis_slice_iterator< CT >::xexpression_type = std::decay_t<CT>
+
+ +

Definition at line 34 of file xaxis_slice_iterator.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xaxis_slice_iterator() [1/2]

+ +
+
+
+template<class CT>
+
+template<class CTA>
+ + + + + +
+ + + + + + + + + + + +
xt::xaxis_slice_iterator< CT >::xaxis_slice_iterator (CTA && e,
size_type axis )
+
+inline
+
+ +

Constructs an xaxis_slice_iterator.

+
Parameters
+ + + +
ethe expression to iterate over
axisthe axis to iterate over taking one dimensional slices
+
+
+ +

Definition at line 123 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ xaxis_slice_iterator() [2/2]

+ +
+
+
+template<class CT>
+
+template<class CTA>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
xt::xaxis_slice_iterator< CT >::xaxis_slice_iterator (CTA && e,
size_type axis,
size_type index,
size_type offset )
+
+inline
+
+ +

Constructs an xaxis_slice_iterator starting at specified index and offset.

+
Parameters
+ + + + + +
ethe expression to iterate over
axisthe axis to iterate over taking one dimensional slices
indexthe starting index for the iterator
offsetthe starting offset for the iterator
+
+
+ +

Definition at line 138 of file xaxis_slice_iterator.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ equal()

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
bool xt::xaxis_slice_iterator< CT >::equal (const self_type & rhs) const
+
+inline
+
+ +

Checks equality of the xaxis_slice_iterator and rhs.

+
Returns
true if the iterators are equivalent, false otherwise
+ +

Definition at line 255 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_slice_iterator< CT >::operator* () const
+
+inline
+
+ +

Returns the strided view at the current iteration position.

+
Returns
a strided_view
+ +

Definition at line 227 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ operator++() [1/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_slice_iterator< CT >::operator++ ()
+
+inline
+
+ +

Increments the iterator to the next position and returns it.

+ +

Definition at line 190 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ operator++() [2/2]

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_slice_iterator< CT >::operator++ (int )
+
+inline
+
+ +

Makes a copy of the iterator, increments it to the next position, and returns the copy.

+ +

Definition at line 208 of file xaxis_slice_iterator.hpp.

+ +
+
+ +

◆ operator->()

+ +
+
+
+template<class CT>
+ + + + + +
+ + + + + + + +
auto xt::xaxis_slice_iterator< CT >::operator-> () const
+
+inline
+
+ +

Returns a pointer to the strided view at the current iteration position.

+
Returns
a pointer to a strided_view
+ +

Definition at line 238 of file xaxis_slice_iterator.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xaxis__slice__iterator.js b/classxt_1_1xaxis__slice__iterator.js new file mode 100644 index 000000000..698a1c581 --- /dev/null +++ b/classxt_1_1xaxis__slice__iterator.js @@ -0,0 +1,10 @@ +var classxt_1_1xaxis__slice__iterator = +[ + [ "xaxis_slice_iterator", "classxt_1_1xaxis__slice__iterator.html#af741f5bf73967431bc0aba068da8fada", null ], + [ "xaxis_slice_iterator", "classxt_1_1xaxis__slice__iterator.html#a0817357b924fd7c356a2a2f252fcb323", null ], + [ "equal", "classxt_1_1xaxis__slice__iterator.html#abb5ffe172da06056aa31e3f18b821b88", null ], + [ "operator*", "classxt_1_1xaxis__slice__iterator.html#a8250c9f5f36a93e0e3ff856f9bd6ab2b", null ], + [ "operator++", "classxt_1_1xaxis__slice__iterator.html#a6712f741da8a93fa4c0785888d008608", null ], + [ "operator++", "classxt_1_1xaxis__slice__iterator.html#a58c7c5d0bec327a8fb5d1f63b6122822", null ], + [ "operator->", "classxt_1_1xaxis__slice__iterator.html#a98d80126e4d0c78658fabe73303913bb", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xblockwise__reducer-members.html b/classxt_1_1xblockwise__reducer-members.html new file mode 100644 index 000000000..515431a95 --- /dev/null +++ b/classxt_1_1xblockwise__reducer-members.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xblockwise_reducer< CT, F, X, O > Member List
+
+
+ +

This is the complete list of members for xt::xblockwise_reducer< CT, F, X, O >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
assign_to(R &result) const (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >inline
axes() const (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >inline
axes_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
chunk_shape() const (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >inline
chunk_shape_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
compute_input_chunk_range(CI &result_chunk_iter) const -> input_chunk_range_type (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
dimension() const (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >inline
functor_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
input_chunk_index_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
input_grid_strides typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
input_shape() const (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >inline
input_shape_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
keep_dims typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
raw_options_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
self_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
shape() const (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >inline
shape_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
value_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
xblockwise_reducer(E &&e, BS &&block_shape, XX &&axes, OO &&options, FF &&functor) (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
xexpression_type typedef (defined in xt::xblockwise_reducer< CT, F, X, O >)xt::xblockwise_reducer< CT, F, X, O >
+
+ + + + diff --git a/classxt_1_1xblockwise__reducer.html b/classxt_1_1xblockwise__reducer.html new file mode 100644 index 000000000..6c9d8e6f3 --- /dev/null +++ b/classxt_1_1xblockwise__reducer.html @@ -0,0 +1,640 @@ + + + + + + + +xtensor: xt::xblockwise_reducer< CT, F, X, O > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xblockwise_reducer< CT, F, X, O > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xblockwise_reducer<CT, F, X, O>
 
using raw_options_type = std::decay_t<O>
 
using keep_dims = xtl::mpl::contains<raw_options_type, xt::keep_dims_type>
 
using xexpression_type = std::decay_t<CT>
 
using shape_type = typename xreducer_shape_type<typename xexpression_type::shape_type, std::decay_t<X>, keep_dims>::type
 
using functor_type = F
 
using value_type = typename functor_type::value_type
 
using input_shape_type = typename xexpression_type::shape_type
 
using input_chunk_index_type = filter_fixed_shape_t<input_shape_type>
 
using input_grid_strides = filter_fixed_shape_t<input_shape_type>
 
using axes_type = X
 
using chunk_shape_type = filter_fixed_shape_t<shape_type>
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<class E, class BS, class XX, class OO, class FF>
 xblockwise_reducer (E &&e, BS &&block_shape, XX &&axes, OO &&options, FF &&functor)
 
const input_shape_type & input_shape () const
 
const axes_type & axes () const
 
std::size_t dimension () const
 
const shape_type & shape () const
 
const chunk_shape_type & chunk_shape () const
 
template<class R>
void assign_to (R &result) const
 
template<class CI>
auto compute_input_chunk_range (CI &result_chunk_iter) const -> input_chunk_range_type
 
+

Detailed Description

+
template<class CT, class F, class X, class O>
+class xt::xblockwise_reducer< CT, F, X, O >
+

Definition at line 15 of file xblockwise_reducer.hpp.

+

Member Typedef Documentation

+ +

◆ axes_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::axes_type = X
+
+ +

Definition at line 29 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ chunk_shape_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::chunk_shape_type = filter_fixed_shape_t<shape_type>
+
+ +

Definition at line 30 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ functor_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::functor_type = F
+
+ +

Definition at line 24 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ input_chunk_index_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::input_chunk_index_type = filter_fixed_shape_t<input_shape_type>
+
+ +

Definition at line 27 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ input_grid_strides

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::input_grid_strides = filter_fixed_shape_t<input_shape_type>
+
+ +

Definition at line 28 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ input_shape_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::input_shape_type = typename xexpression_type::shape_type
+
+ +

Definition at line 26 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ keep_dims

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::keep_dims = xtl::mpl::contains<raw_options_type, xt::keep_dims_type>
+
+ +

Definition at line 21 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ raw_options_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::raw_options_type = std::decay_t<O>
+
+ +

Definition at line 20 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::self_type = xblockwise_reducer<CT, F, X, O>
+
+ +

Definition at line 19 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::shape_type = typename xreducer_shape_type<typename xexpression_type::shape_type, std::decay_t<X>, keep_dims>::type
+
+ +

Definition at line 23 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::value_type = typename functor_type::value_type
+
+ +

Definition at line 25 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ xexpression_type

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + +
using xt::xblockwise_reducer< CT, F, X, O >::xexpression_type = std::decay_t<CT>
+
+ +

Definition at line 22 of file xblockwise_reducer.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xblockwise_reducer()

+ +
+
+
+template<class CT, class F, class X, class O>
+
+template<class E, class BS, class XX, class OO, class FF>
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
xt::xblockwise_reducer< CT, F, X, O >::xblockwise_reducer (E && e,
BS && block_shape,
XX && axes,
OO && options,
FF && functor )
+
+ +

Definition at line 77 of file xblockwise_reducer.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ assign_to()

+ +
+
+
+template<class CT, class F, class X, class O>
+
+template<class R>
+ + + + + +
+ + + + + + + +
void xt::xblockwise_reducer< CT, F, X, O >::assign_to (R & result) const
+
+inline
+
+ +

Definition at line 131 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ axes()

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + + +
+ + + + + + + +
auto xt::xblockwise_reducer< CT, F, X, O >::axes () const
+
+inline
+
+ +

Definition at line 106 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ chunk_shape()

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + + +
+ + + + + + + +
auto xt::xblockwise_reducer< CT, F, X, O >::chunk_shape () const
+
+inline
+
+ +

Definition at line 124 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ compute_input_chunk_range()

+ +
+
+
+template<class CT, class F, class X, class O>
+
+template<class CI>
+ + + + + + + +
auto xt::xblockwise_reducer< CT, F, X, O >::compute_input_chunk_range (CI & result_chunk_iter) const -> input_chunk_range_type +
+
+ +

Definition at line 189 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + + +
+ + + + + + + +
std::size_t xt::xblockwise_reducer< CT, F, X, O >::dimension () const
+
+inline
+
+ +

Definition at line 112 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ input_shape()

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + + +
+ + + + + + + +
auto xt::xblockwise_reducer< CT, F, X, O >::input_shape () const
+
+inline
+
+ +

Definition at line 100 of file xblockwise_reducer.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class CT, class F, class X, class O>
+ + + + + +
+ + + + + + + +
auto xt::xblockwise_reducer< CT, F, X, O >::shape () const
+
+inline
+
+ +

Definition at line 118 of file xblockwise_reducer.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xbounded__iterator-members.html b/classxt_1_1xbounded__iterator-members.html new file mode 100644 index 000000000..2dc091d93 --- /dev/null +++ b/classxt_1_1xbounded__iterator-members.html @@ -0,0 +1,138 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xbounded_iterator< It, BIt > Member List
+
+
+ +

This is the complete list of members for xt::xbounded_iterator< It, BIt >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
bound_iterator_type typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
difference_type typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
equal(const self_type &rhs) const (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
iterator_category typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
less_than(const self_type &rhs) const (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
operator*() const (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
operator++() (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
operator+=(difference_type n) (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
operator-(const self_type &rhs) const (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
operator--() (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
operator-=(difference_type n) (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >inline
pointer typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
reference typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
self_type typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
subiterator_type typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
value_type typedef (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
xbounded_iterator()=default (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
xbounded_iterator(It it, BIt bound_it) (defined in xt::xbounded_iterator< It, BIt >)xt::xbounded_iterator< It, BIt >
+
+ + + + diff --git a/classxt_1_1xbounded__iterator.html b/classxt_1_1xbounded__iterator.html new file mode 100644 index 000000000..c76495e74 --- /dev/null +++ b/classxt_1_1xbounded__iterator.html @@ -0,0 +1,580 @@ + + + + + + + +xtensor: xt::xbounded_iterator< It, BIt > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xbounded_iterator< It, BIt > Class Template Reference
+
+
+
+Inheritance diagram for xt::xbounded_iterator< It, BIt >:
+
+
+ +
+ + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xbounded_iterator<It, BIt>
 
using subiterator_type = It
 
using bound_iterator_type = BIt
 
using value_type = typename std::iterator_traits<It>::value_type
 
using reference = typename std::iterator_traits<It>::reference
 
using pointer = typename std::iterator_traits<It>::pointer
 
using difference_type = typename std::iterator_traits<It>::difference_type
 
using iterator_category = std::random_access_iterator_tag
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 xbounded_iterator (It it, BIt bound_it)
 
self_typeoperator++ ()
 
self_typeoperator-- ()
 
self_typeoperator+= (difference_type n)
 
self_typeoperator-= (difference_type n)
 
difference_type operator- (const self_type &rhs) const
 
value_type operator* () const
 
bool equal (const self_type &rhs) const
 
bool less_than (const self_type &rhs) const
 
+

Detailed Description

+
template<class It, class BIt>
+class xt::xbounded_iterator< It, BIt >
+

Definition at line 355 of file xiterator.hpp.

+

Member Typedef Documentation

+ +

◆ bound_iterator_type

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::bound_iterator_type = BIt
+
+ +

Definition at line 367 of file xiterator.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::difference_type = typename std::iterator_traits<It>::difference_type
+
+ +

Definition at line 371 of file xiterator.hpp.

+ +
+
+ +

◆ iterator_category

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::iterator_category = std::random_access_iterator_tag
+
+ +

Definition at line 372 of file xiterator.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::pointer = typename std::iterator_traits<It>::pointer
+
+ +

Definition at line 370 of file xiterator.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::reference = typename std::iterator_traits<It>::reference
+
+ +

Definition at line 369 of file xiterator.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::self_type = xbounded_iterator<It, BIt>
+
+ +

Definition at line 364 of file xiterator.hpp.

+ +
+
+ +

◆ subiterator_type

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::subiterator_type = It
+
+ +

Definition at line 366 of file xiterator.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class It, class BIt>
+ + + + +
using xt::xbounded_iterator< It, BIt >::value_type = typename std::iterator_traits<It>::value_type
+
+ +

Definition at line 368 of file xiterator.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xbounded_iterator()

+ +
+
+
+template<class It, class BIt>
+ + + + + + + + + + + +
xt::xbounded_iterator< It, BIt >::xbounded_iterator (It it,
BIt bound_it )
+
+ +

Definition at line 1214 of file xiterator.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ equal()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
bool xt::xbounded_iterator< It, BIt >::equal (const self_type & rhs) const
+
+inline
+
+ +

Definition at line 1266 of file xiterator.hpp.

+ +
+
+ +

◆ less_than()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
bool xt::xbounded_iterator< It, BIt >::less_than (const self_type & rhs) const
+
+inline
+
+ +

Definition at line 1272 of file xiterator.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
auto xt::xbounded_iterator< It, BIt >::operator* () const
+
+inline
+
+ +

Definition at line 1259 of file xiterator.hpp.

+ +
+
+ +

◆ operator++()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
auto xt::xbounded_iterator< It, BIt >::operator++ ()
+
+inline
+
+ +

Definition at line 1221 of file xiterator.hpp.

+ +
+
+ +

◆ operator+=()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
auto xt::xbounded_iterator< It, BIt >::operator+= (difference_type n)
+
+inline
+
+ +

Definition at line 1237 of file xiterator.hpp.

+ +
+
+ +

◆ operator-()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
auto xt::xbounded_iterator< It, BIt >::operator- (const self_type & rhs) const
+
+inline
+
+ +

Definition at line 1253 of file xiterator.hpp.

+ +
+
+ +

◆ operator--()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
auto xt::xbounded_iterator< It, BIt >::operator-- ()
+
+inline
+
+ +

Definition at line 1229 of file xiterator.hpp.

+ +
+
+ +

◆ operator-=()

+ +
+
+
+template<class It, class BIt>
+ + + + + +
+ + + + + + + +
auto xt::xbounded_iterator< It, BIt >::operator-= (difference_type n)
+
+inline
+
+ +

Definition at line 1245 of file xiterator.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xbounded__iterator.png b/classxt_1_1xbounded__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..94047c4424a297cc4091f06f16b9b4dbb808b0b2 GIT binary patch literal 2049 zcmd5+eOQv`8h$|jYT^eXer6vgp?PIcps-guyRQAW{dt~0p7;0u?)&;Z&;5Jf z`#u+n{>IGI#uNYmGgQ#QFaR*-LO68eI%uB}nWRDw+t4GJLwda)f^)ClQVTk2_IkP` z|D)*9-1PJ`#3OpctDxAXv@rB{0Q7EHdyGnl0ANEt>ROV9$VHDAp1LzsO}*Z9@gHPs7)vO7eu?8h|O= z%Q2-8Vocee!GApb#MJ;?f+YE!Scq{63cFNgEo+)r&XhD~_a@gk?hkWCtrN$OODQ21 zzj~djnPlRumSdW|HL_D>t&Ai>e@S%oavQQRb3)tAyd#F=pZ`dtv+LPu9S3(I#U5{j z^8s$FpWqmz7&*K}@cl9W~Otrgi{VG(1a9E~!>6Lf+y1wKsJ%fU{_$eRJ{N`x& zxh9${{%CP!Nm7~Mp3mK6f^fIcQ zPDJ0^y$Td4dj_zs7i#7ITr}h7@seqeJsp_Bu*i zxIgMKn#5{vYqNJvl9C3L4auIJFJ0`hA&A1u+_SfnH%|XXq>t9M$EJ4f8_i*Dg;cRtPK%@b7-M{+G9DjdJLpsvmD>)azf zA)VvSmCT$C+&NnTPa*hsVN6(j>!zs}`0)MDb{6pB1B-Y5rZLM%B#c}O$JyOYZJc(( z*;zKJ??3z~a9xFmJbX-?#ikJ^(BitSalYDHWkRrjC9nt?QGl;>zbe)}HDirF(_X(( zwV+Xa=d;-SKC`&2->0XNEBe$M$2PMV8)ihxr|?u{l-6Z&zt;tJt#E!kp(3kS9Kmll zM?8sl)_RxD*1ULA({&;qnL!Z7Q$RL9;nHF0$cdpJf~y14nmsuOv=QbDG3cdjOU_rj zt>`G<;~AM?>~>vm{0g! z8H(*>|=;|)(8LOAb9@4IUdygz!rH^^{^q4_WWW%IW*fqxzy&yBVL z#yL|n$Q)oZU~~W|&KH`lF@WcG{p!|87=$(h&mDP28v)oh;K;*LaEF^A^?q6>c8xO5 z@i})JFggHi1a@!1eaI)m|Cj$LD0=+|*~@>(I;L2z<-%g2iS$7TnnwU^P00Ej7clyN z79v#r*}5-s>y@$cc7ATs2Klu-VYdO8^ZlWz3o+(=yTnYWMg#C0RY6rkjNfQ_of4`u z(J!OOgmCf@q0PT_6_Ne+XLH)(kan?w2W6-dKEcV--?`(;#hM&wl0L0YVnON;j+#;0 z`aYxRIeD2gEMHDX6iVILqB|zSFj{`GYP^XzR?M|>MRCx9s~~jPs^p5laHMTaE*8

DQcHX)_#q`Vd#4Q;)wO*RvE(DbL?>BIDw?Udeklr~06A{04l2-EP? z)b7XFQZm^h6GxqwHG_gED7u|juiQ$iIn(DxnDEwq?5DUZ-AA2odIA=A^9iNUWeHcC zZN6`9K`s9>qH1NTJt+G%YS-U#e9ih;IrNjt44|D) wf + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +

+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xbroadcast< CT, X > Member List
+
+
+ +

This is the complete list of members for xt::xbroadcast< CT, X >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
accessible_base typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
assign_to(xexpression< E > &e) const (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >inline
at(Args... args) const -> const_referencext::xconst_accessible< xbroadcast< CT, X > >inline
at(Args... args) const -> const_referencext::xconst_accessible< xbroadcast< CT, X > >inline
back() constxt::xconst_accessible< xbroadcast< CT, X > >inline
begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
bool_load_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
broadcast_shape(S &shape, bool reuse_cache=false) constxt::xbroadcast< CT, X >inline
build_broadcast(E &&e) const (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
build_broadcast(E &&e) const -> rebind_t< E > (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >inline
cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
const_pointer typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
const_reference typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
const_stepper typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
contiguous_layout (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >static
crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
xt::derived_cast() &noexceptxt::xexpression< xbroadcast< CT, X > >inline
xt::derived_cast() const &noexceptxt::xexpression< xbroadcast< CT, X > >inline
xt::derived_cast() &&noexceptxt::xexpression< xbroadcast< CT, X > >inline
difference_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
dimension() const noexceptxt::xconst_accessible< xbroadcast< CT, X > >inline
element(It first, It last) const (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
element(It, It last) const -> const_referencext::xbroadcast< CT, X >inline
end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
expression() const noexceptxt::xbroadcast< CT, X >inline
expression_tag typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
extension_base typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
front() constxt::xconst_accessible< xbroadcast< CT, X > >inline
has_linear_assign(const S &strides) const noexceptxt::xbroadcast< CT, X >inline
in_bounds(Args... args) constxt::xconst_accessible< xbroadcast< CT, X > >inline
inner_shape_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
inner_types typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
is_contiguous() const noexcept (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >inline
iterable_base typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
layout() const noexceptxt::xbroadcast< CT, X >inline
operator()(Args... args) const (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
operator()(Args... args) const -> const_referencext::xbroadcast< CT, X >inline
operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< xbroadcast< CT, X > >inline
operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< xbroadcast< CT, X > >inline
periodic(Args... args) const -> const_referencext::xconst_accessible< xbroadcast< CT, X > >inline
periodic(Args... args) const -> const_referencext::xconst_accessible< xbroadcast< CT, X > >inline
pointer typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rebind_t typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
reference typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xbroadcast< CT, X > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xbroadcast< CT, X > >inline
self_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
shape() const noexceptxt::xbroadcast< CT, X >inline
shape(size_type index) constxt::xbroadcast< CT, X >
xt::xconst_accessible< xbroadcast< CT, X > >::shape(size_type index) constxt::xconst_accessible< xbroadcast< CT, X > >inline
shape_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
size() const noexcept(noexcept(derived_cast().shape()))xt::xbroadcast< CT, X >
size_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
static_layout (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >static
stepper typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
stepper_begin(const S &shape) const noexcept (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >inline
stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >inline
unchecked(Args... args) const (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
unchecked(Args... args) const -> const_referencext::xbroadcast< CT, X >inline
value_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
xbroadcast(CTA &&e, const S &s)xt::xbroadcast< CT, X >inline
xbroadcast(CTA &&e, shape_type &&s)xt::xbroadcast< CT, X >inline
xexpression_type typedef (defined in xt::xbroadcast< CT, X >)xt::xbroadcast< CT, X >
+
+ + + + diff --git a/classxt_1_1xbroadcast.html b/classxt_1_1xbroadcast.html new file mode 100644 index 000000000..b7d08d01d --- /dev/null +++ b/classxt_1_1xbroadcast.html @@ -0,0 +1,1606 @@ + + + + + + + +xtensor: xt::xbroadcast< CT, X > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xbroadcast< CT, X > Class Template Reference
+
+
+ +

Broadcasted xexpression to a specified shape. + More...

+ +

#include <xbroadcast.hpp>

+
+Inheritance diagram for xt::xbroadcast< CT, X >:
+
+
+ + +xt::xsharable_expression< xbroadcast< CT, X > > +xt::xconst_iterable< xbroadcast< CT, X > > +xt::xconst_accessible< xbroadcast< CT, X > > +xt::xexpression< xbroadcast< CT, X > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xbroadcast<CT, X>
 
using xexpression_type = std::decay_t<CT>
 
using accessible_base = xconst_accessible<self_type>
 
using extension_base = extension::xbroadcast_base_t<CT, X>
 
using expression_tag = typename extension_base::expression_tag
 
using inner_types = xcontainer_inner_types<self_type>
 
using value_type = typename xexpression_type::value_type
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using pointer = typename xexpression_type::const_pointer
 
using const_pointer = typename xexpression_type::const_pointer
 
using size_type = typename inner_types::size_type
 
using difference_type = typename xexpression_type::difference_type
 
using iterable_base = xconst_iterable<self_type>
 
using inner_shape_type = typename iterable_base::inner_shape_type
 
using shape_type = inner_shape_type
 
using stepper = typename iterable_base::stepper
 
using const_stepper = typename iterable_base::const_stepper
 
using bool_load_type = typename xexpression_type::bool_load_type
 
template<class E>
using rebind_t = xbroadcast<E, X>
 
- Public Types inherited from xt::xexpression< xbroadcast< CT, X > >
using derived_type
 
- Public Types inherited from xt::xconst_iterable< xbroadcast< CT, X > >
using derived_type
 
using iterable_types
 
using inner_shape_type
 
using stepper
 
using const_stepper
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xconst_accessible< xbroadcast< CT, X > >
using derived_type
 
using inner_types
 
using reference
 
using const_reference
 
using size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class... Args>
const_reference operator() (Args... args) const
 
+template<class... Args>
const_reference unchecked (Args... args) const
 
+template<class It>
const_reference element (It first, It last) const
 
+template<class S>
const_stepper stepper_begin (const S &shape) const noexcept
 
+template<class S>
const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+template<class E>
rebind_t< E > build_broadcast (E &&e) const
 
+size_type size () const noexcept(noexcept(derived_cast().shape()))
 Returns the size of the expression.
 
+size_type shape (size_type index) const
 Returns the i-th dimension of the expression.
 
Constructor
template<class CTA, class S>
 xbroadcast (CTA &&e, const S &s)
 Constructs an xbroadcast expression broadcasting the specified xexpression to the given shape.
 
template<class CTA>
 xbroadcast (CTA &&e, shape_type &&s)
 Constructs an xbroadcast expression broadcasting the specified xexpression to the given shape.
 
Size and shape
const inner_shape_type & shape () const noexcept
 Returns the shape of the expression.
 
layout_type layout () const noexcept
 Returns the layout_type of the expression.
 
bool is_contiguous () const noexcept
 
Data
const xexpression_type & expression () const noexcept
 Returns a constant reference to the underlying expression of the broadcast expression.
 
template<class... Args>
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
template<class... Args>
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
template<class It>
auto element (It, It last) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
Broadcasting
template<class S>
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the function to the specified parameter.
 
template<class S>
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xbroadcast can be linearly assigned to an expression with the specified strides.
 
template<class E, xscalar_concept XCT = CT>
void assign_to (xexpression< E > &e) const
 
template<class S>
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
template<class E>
auto build_broadcast (E &&e) const -> rebind_t< E >
 
- Public Member Functions inherited from xt::xexpression< xbroadcast< CT, X > >
derived_typederived_cast () &noexcept
 Returns a reference to the actual derived type of the xexpression.
 
const derived_typederived_cast () const &noexcept
 Returns a constant reference to the actual derived type of the xexpression.
 
derived_type derived_cast () &&noexcept
 Returns a constant reference to the actual derived type of the xexpression.
 
- Public Member Functions inherited from xt::xconst_iterable< xbroadcast< CT, X > >
+const_layout_iterator< L > begin () const noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+const_layout_iterator< L > end () const noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+const_layout_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+const_layout_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
auto begin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
- Public Member Functions inherited from xt::xconst_accessible< xbroadcast< CT, X > >
auto at (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
 
auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
 Returns a constant reference to the element at the specified position in the expression.
 
auto operator[] (std::initializer_list< I > index) const -> const_reference
 
auto periodic (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
size_type size () const noexcept(noexcept(derived_cast().shape()))
 Returns the size of the expression.
 
size_type dimension () const noexcept
 Returns the number of dimensions of the expression.
 
size_type shape (size_type index) const
 Returns the i-th dimension of the expression.
 
+const_reference at (Args... args) const
 
auto at (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
 
+disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+const_reference operator[] (std::initializer_list< I > index) const
 
const_reference operator[] (size_type i) const
 
auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
 Returns a constant reference to the element at the specified position in the expression.
 
auto operator[] (std::initializer_list< I > index) const -> const_reference
 
+const_reference periodic (Args... args) const
 
auto periodic (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
bool in_bounds (Args... args) const
 Returns true only if the the specified position is a valid entry in the expression.
 
const_reference front () const
 Returns a constant reference to first the element of the expression.
 
const_reference back () const
 Returns a constant reference to last the element of the expression.
 
+ + + + + +

+Static Public Attributes

static constexpr layout_type static_layout = layout_type::dynamic
 
static constexpr bool contiguous_layout = false
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xsharable_expression< xbroadcast< CT, X > >
xsharable_expression (const xsharable_expression &)=default
 
xsharable_expression (xsharable_expression &&)=default
 
+xsharable_expressionoperator= (const xsharable_expression &)=default
 
+xsharable_expressionoperator= (xsharable_expression &&)=default
 
- Protected Member Functions inherited from xt::xexpression< xbroadcast< CT, X > >
xexpression (const xexpression &)=default
 
xexpression (xexpression &&)=default
 
+xexpressionoperator= (const xexpression &)=default
 
+xexpressionoperator= (xexpression &&)=default
 
const inner_shape_type & get_shape () const
 
- Protected Member Functions inherited from xt::xconst_accessible< xbroadcast< CT, X > >
xconst_accessible (const xconst_accessible &)=default
 
xconst_accessible (xconst_accessible &&)=default
 
+xconst_accessibleoperator= (const xconst_accessible &)=default
 
+xconst_accessibleoperator= (xconst_accessible &&)=default
 
+

Detailed Description

+
template<class CT, class X>
+class xt::xbroadcast< CT, X >

Broadcasted xexpression to a specified shape.

+

The xbroadcast class implements the broadcasting of an xexpression to a specified shape. xbroadcast is not meant to be used directly, but only with the broadcast helper functions.

+
Template Parameters
+ + + +
CTthe closure type of the xexpression to broadcast
Xthe type of the specified shape.
+
+
+
See also
broadcast
+ +

Definition at line 158 of file xbroadcast.hpp.

+

Member Typedef Documentation

+ +

◆ accessible_base

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::accessible_base = xconst_accessible<self_type>
+
+ +

Definition at line 167 of file xbroadcast.hpp.

+ +
+
+ +

◆ bool_load_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::bool_load_type = typename xexpression_type::bool_load_type
+
+ +

Definition at line 187 of file xbroadcast.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::const_pointer = typename xexpression_type::const_pointer
+
+ +

Definition at line 176 of file xbroadcast.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::const_reference = typename inner_types::const_reference
+
+ +

Definition at line 174 of file xbroadcast.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::const_stepper = typename iterable_base::const_stepper
+
+ +

Definition at line 185 of file xbroadcast.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::difference_type = typename xexpression_type::difference_type
+
+ +

Definition at line 178 of file xbroadcast.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::expression_tag = typename extension_base::expression_tag
+
+ +

Definition at line 169 of file xbroadcast.hpp.

+ +
+
+ +

◆ extension_base

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::extension_base = extension::xbroadcast_base_t<CT, X>
+
+ +

Definition at line 168 of file xbroadcast.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::inner_shape_type = typename iterable_base::inner_shape_type
+
+ +

Definition at line 181 of file xbroadcast.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::inner_types = xcontainer_inner_types<self_type>
+
+ +

Definition at line 171 of file xbroadcast.hpp.

+ +
+
+ +

◆ iterable_base

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::iterable_base = xconst_iterable<self_type>
+
+ +

Definition at line 180 of file xbroadcast.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::pointer = typename xexpression_type::const_pointer
+
+ +

Definition at line 175 of file xbroadcast.hpp.

+ +
+
+ +

◆ rebind_t

+ +
+
+
+template<class CT, class X>
+
+template<class E>
+ + + + +
using xt::xbroadcast< CT, X >::rebind_t = xbroadcast<E, X>
+
+ +

Definition at line 230 of file xbroadcast.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::reference = typename inner_types::reference
+
+ +

Definition at line 173 of file xbroadcast.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::self_type = xbroadcast<CT, X>
+
+ +

Definition at line 165 of file xbroadcast.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::shape_type = inner_shape_type
+
+ +

Definition at line 182 of file xbroadcast.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::size_type = typename inner_types::size_type
+
+ +

Definition at line 177 of file xbroadcast.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::stepper = typename iterable_base::stepper
+
+ +

Definition at line 184 of file xbroadcast.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::value_type = typename xexpression_type::value_type
+
+ +

Definition at line 172 of file xbroadcast.hpp.

+ +
+
+ +

◆ xexpression_type

+ +
+
+
+template<class CT, class X>
+ + + + +
using xt::xbroadcast< CT, X >::xexpression_type = std::decay_t<CT>
+
+ +

Definition at line 166 of file xbroadcast.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xbroadcast() [1/2]

+ +
+
+
+template<class CT, class X>
+
+template<class CTA, class S>
+ + + + + +
+ + + + + + + + + + + +
xt::xbroadcast< CT, X >::xbroadcast (CTA && e,
const S & s )
+
+inline
+
+ +

Constructs an xbroadcast expression broadcasting the specified xexpression to the given shape.

+
Parameters
+ + + +
ethe expression to broadcast
sthe shape to apply
+
+
+ +

Definition at line 288 of file xbroadcast.hpp.

+ +
+
+ +

◆ xbroadcast() [2/2]

+ +
+
+
+template<class CT, class X>
+
+template<class CTA>
+ + + + + +
+ + + + + + + + + + + +
xt::xbroadcast< CT, X >::xbroadcast (CTA && e,
shape_type && s )
+
+inline
+
+ +

Constructs an xbroadcast expression broadcasting the specified xexpression to the given shape.

+
Parameters
+ + + +
ethe expression to broadcast
sthe shape to apply
+
+
+ +

Definition at line 309 of file xbroadcast.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ assign_to()

+ +
+
+
+template<class CT, class X>
+
+template<class E, xscalar_concept XCT>
+ + + + + +
+ + + + + + + +
void xt::xbroadcast< CT, X >::assign_to (xexpression< E > & e) const
+
+inline
+
+ +

Definition at line 467 of file xbroadcast.hpp.

+ +
+
+ +

◆ broadcast_shape()

+ +
+
+
+template<class CT, class X>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
bool xt::xbroadcast< CT, X >::broadcast_shape (S & shape,
bool reuse_cache = false ) const
+
+inline
+
+ +

Broadcast the shape of the function to the specified parameter.

+
Parameters
+ + + +
shapethe result shape
reuse_cacheparameter for internal optimization
+
+
+
Returns
a boolean indicating whether the broadcasting is trivial
+ +

Definition at line 428 of file xbroadcast.hpp.

+ +
+
+ +

◆ build_broadcast()

+ +
+
+
+template<class CT, class X>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xbroadcast< CT, X >::build_broadcast (E && e) const -> rebind_t<E> +
+
+inline
+
+ +

Definition at line 476 of file xbroadcast.hpp.

+ +
+
+ +

◆ element()

+ +
+
+
+template<class CT, class X>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xbroadcast< CT, X >::element (It ,
It last ) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression.

+
Parameters
+ + + +
firstiterator starting the sequence of indices
lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the function.
+
+
+ +

Definition at line 400 of file xbroadcast.hpp.

+ +
+
+ +

◆ expression()

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + + + + +
auto xt::xbroadcast< CT, X >::expression () const
+
+inlinenoexcept
+
+ +

Returns a constant reference to the underlying expression of the broadcast expression.

+ +

Definition at line 409 of file xbroadcast.hpp.

+ +
+
+ +

◆ has_linear_assign()

+ +
+
+
+template<class CT, class X>
+
+template<class S>
+ + + + + +
+ + + + + + + +
bool xt::xbroadcast< CT, X >::has_linear_assign (const S & strides) const
+
+inlinenoexcept
+
+ +

Checks whether the xbroadcast can be linearly assigned to an expression with the specified strides.

+
Returns
a boolean indicating whether a linear assign is possible
+ +

Definition at line 440 of file xbroadcast.hpp.

+ +
+
+ +

◆ is_contiguous()

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + + + + +
bool xt::xbroadcast< CT, X >::is_contiguous () const
+
+inlinenoexcept
+
+ +

Definition at line 341 of file xbroadcast.hpp.

+ +
+
+ +

◆ layout()

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + + + + +
layout_type xt::xbroadcast< CT, X >::layout () const
+
+inlinenoexcept
+
+ +

Returns the layout_type of the expression.

+ +

Definition at line 335 of file xbroadcast.hpp.

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<class CT, class X>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xbroadcast< CT, X >::operator() (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression.

+
Parameters
+ + +
argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the expression.
+
+
+ +

Definition at line 360 of file xbroadcast.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + + + + +
auto xt::xbroadcast< CT, X >::shape () const
+
+inlinenoexcept
+
+ +

Returns the shape of the expression.

+ +

Definition at line 326 of file xbroadcast.hpp.

+ +
+
+ +

◆ stepper_begin()

+ +
+
+
+template<class CT, class X>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xbroadcast< CT, X >::stepper_begin (const S & shape) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 451 of file xbroadcast.hpp.

+ +
+
+ +

◆ stepper_end()

+ +
+
+
+template<class CT, class X>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xbroadcast< CT, X >::stepper_end (const S & shape,
layout_type l ) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 459 of file xbroadcast.hpp.

+ +
+
+ +

◆ unchecked()

+ +
+
+
+template<class CT, class X>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xbroadcast< CT, X >::unchecked (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression.

+
Parameters
+ + +
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
+
+
+
Warning
This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
+
+This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
xt::xarray<double> a = {{0, 1}, {2, 3}};
+
xt::xarray<double> b = {0, 1};
+
auto fd = a + b;
+
double res = fd.uncheked(0, 1);
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+ +

Definition at line 386 of file xbroadcast.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ contiguous_layout

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + +
bool xt::xbroadcast< CT, X >::contiguous_layout = false
+
+staticconstexpr
+
+ +

Definition at line 190 of file xbroadcast.hpp.

+ +
+
+ +

◆ static_layout

+ +
+
+
+template<class CT, class X>
+ + + + + +
+ + + + +
layout_type xt::xbroadcast< CT, X >::static_layout = layout_type::dynamic
+
+staticconstexpr
+
+ +

Definition at line 189 of file xbroadcast.hpp.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp
  • +
  • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xbroadcast.js b/classxt_1_1xbroadcast.js new file mode 100644 index 000000000..69e608384 --- /dev/null +++ b/classxt_1_1xbroadcast.js @@ -0,0 +1,15 @@ +var classxt_1_1xbroadcast = +[ + [ "xbroadcast", "classxt_1_1xbroadcast.html#aebbad01548cd2a4f5955c20f813b6314", null ], + [ "xbroadcast", "classxt_1_1xbroadcast.html#ad96d515ec253f2745da1ccd7cbf44c97", null ], + [ "broadcast_shape", "classxt_1_1xbroadcast.html#ad91b61dbfe7d500131c6f001aa0461e6", null ], + [ "element", "classxt_1_1xbroadcast.html#a0c5eeee79d7da9ebbe4bab731e7bdbdf", null ], + [ "expression", "classxt_1_1xbroadcast.html#a11fafd46c5300907473db9afddfb5969", null ], + [ "has_linear_assign", "classxt_1_1xbroadcast.html#afa95389819f8e9168213041757730903", null ], + [ "layout", "classxt_1_1xbroadcast.html#aca1bb5d073d6fbbfec6e82cbc456cadd", null ], + [ "operator()", "classxt_1_1xbroadcast.html#afca42261ce09c53e109862b63ea8bf87", null ], + [ "shape", "classxt_1_1xbroadcast.html#ab55ff6c03aac9708dd319a0936a3fd18", null ], + [ "shape", "classxt_1_1xbroadcast.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb", null ], + [ "size", "classxt_1_1xbroadcast.html#acf990ad65941e747a737622343bb43c2", null ], + [ "unchecked", "classxt_1_1xbroadcast.html#aecb99b5176966ab47f4dfe2b66385d56", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xbroadcast.png b/classxt_1_1xbroadcast.png new file mode 100644 index 0000000000000000000000000000000000000000..3765e326dda85b868f05110473fce7c671bd82ac GIT binary patch literal 3257 zcmd5u8oee!x_WCVKdAw=JSuyyB-p^n3#|N7=>SkecBnfeF%`-Y?%OboqA`u=mv zfYAcKOQTB_jnUV#zd4KTKb_bAje+Rai=sQHF;&dvH7+~`Evkp3siXYSQ;7M z^Xx$b;tzhODU>QeaQSb!jHwdN59D2ws4VKz!l~g&x2@Zx7hneO#&{y#YO>pO)%;1% zy7wiT0`|7QWVZ}RB<*Wzcn@v6*7j3+SC-x$n@MY&>JIOY=R1eg`?L`+3t+uHQw?*c z@8eAjjou5MNzfz~7wHm)h-_j$gjRp>|-L5+6L#g(~TEz}pso%~fx<@PWLn(RJ(FY@^Grn7D zqsJ|z6Qnm~{g^5XqHi`#Q%|R>nkFYZGn3L>ygx2)?*&}gwPjnIQoY*fs+<3q+?9TL ze7_`@&2^^h-Ka<=mVH9<6u((?$nSp8xyXCV7%x~V7KB3kH`s?~&MJP49=&=Fbpvw) z`L2@&f^Hw__DP5K0YS6nHe&!lv^NZ)nQILU-wF|T=~K)IaH;w_eemJnRpStJ6wX!85Cq{!hW|0g0Myx5%B6UFSgk^FSO~ zrk?PgRWvb7BKk>FA`FlNg8f0%C;<2YJdd0O!MGTZ9%Y@o+mt_j6H0enkux6zlM68b z;MF79ZR+Qxd%YY&a{*vtM;(OR){TaG5JWyOrGe5w9EA8|`MXV_9so*CZAJsEA`Wy| zSJ=5x*3wWsjRuB22!qqphAP3hi@9C@{OZNaUAgy6pYv0hS`M_nqmAJ(q7($zK2KW; z3<3Zb?-yE^)}?D~+__Y*E{)y5mPF0gim;5wX9p^R$0oSTPnrpk*B29tPmC)C@wof* zM$mPl4lUEfYRqT|;PMQE<+(N5iJ(~cN0!eL%j)c!)7twhMylyYX4M-WPXv_KHFu8I zFCNQS;CRP%1@Sznv~*=nrrIE;EWxb8p?%S~VY>s*XEQkyQNMG}PkMgy=u64gqg|8J z^{G#p+ehqkjsvU_Bra=XZ*P%vh0?t$GxSWPSn|dv-m~mD?qr&#NzYF|c#hrEF?e0iqkKze7tI8y1=`Xl}C^1aeb^ z_A}F=jP#=!^}|bW+q0}Qaa6%&KTmIVEG50!j2Q7`-{utS+^C{v_SVRnn$Ey>rf~L} zPj_91RYKRv!5iz|YYUsfu-U$|nV4Yvmf{nt3*w!UJ9N*D3}=?7^t{!y0lyXuo8DW8 z$d7$z>=c2n>8mrI?1ngPj8GWrR1V&<&5i2#$-1|#>hEI_5~jy>k&e-9+UIdtiaLF< znf0(Vn1`bNgdHdJGQh8coF>Kfd~FrC^hBp^s*0k2LlSUqPnKLGs%@swy5yAqH?#2WVWXy5+87FM{7GXo(6+qTuShfldm{|SlUKL zogm zJ5>5(G(GuEZQdmYulW}JVC(^c5(J-9;4vBF=yU{+qe*`?H#BHFY;$07NH%m^^4#!OoO7`L^R{?W^N(^0I@LoOF)d$aiXKt zCN~Q2s4F=;I`4sCnQjRb6Y@-ig66XVzl8|Ys{<-*Wq5*h?ya)lWKKuoJXw|p2^Y_x zZ=+;t@@ow@%Wqbp;U>h~rZbdHB2t9<1GtTydF7RtYbSQN;T_Xj9j>f{C{=`-y^vgJ zb$VvzdTHg2e*q?bzH^_ieTT^}3>%`oD53Hvvn_SOD^tb5b zz&-mRc>YOiL1G3{uQ8BJk9>Kf@9(yS-FSk#LSvV9R1-2-w(P1=b#R6X6rOsGGN#5W zGnSqSoih8v^n%n&#u;`C+qWbPIlIWKAWLwz5$mlcoJ|sH2$mF`yjbz#rnjWX8y`fh zFObjO!=--K6M?H^k?xO9XdR6#^`c2NLDRmymUFNvaSPQsz(YMuA3assFTH7{&2C&3 zkjcI1l*RO?lB#J*tV5-zbU$m0VCFu#`4^Z=>H>=V3Uc{rV7~!*Y5p{h=c-a@9qI zjPtmgPfDQ-x>kti;X%6`b5gR9X7HgFkz~W+RVg{1$0Y6T2O=x-C`i|4K`)cujUA$D;Q8``8N1=MRSj1smSm;LSLHbmjg`amS1f)J>k??>ufqL5 nv>`EbOW8E}vH3`f3i0VTCs!^$dJqSFWWWLgQ2va+p1ANcD`8`Z literal 0 HcmV?d00001 diff --git a/classxt_1_1xbuffer__adaptor-members.html b/classxt_1_1xbuffer__adaptor-members.html new file mode 100644 index 000000000..331f17f22 --- /dev/null +++ b/classxt_1_1xbuffer__adaptor-members.html @@ -0,0 +1,144 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xbuffer_adaptor< CP, O, A > Member List
+
+
+ +

This is the complete list of members for xt::xbuffer_adaptor< CP, O, A >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
allocator_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
base_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
buffer_base_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
const_iterator typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
const_pointer typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
const_reference typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
const_reverse_iterator typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
destructor_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
difference_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
iterator typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
operator=(const self_type &)=default (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
operator=(self_type &&)=default (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
operator=(temporary_type &&) (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >inline
pointer typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
reference typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
reverse_iterator typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
self_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
size_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
temporary_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
value_type typedef (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
xbuffer_adaptor()=default (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
xbuffer_adaptor(const self_type &)=default (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
xbuffer_adaptor(self_type &&)=default (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
~xbuffer_adaptor()=default (defined in xt::xbuffer_adaptor< CP, O, A >)xt::xbuffer_adaptor< CP, O, A >
+
+ + + + diff --git a/classxt_1_1xbuffer__adaptor.html b/classxt_1_1xbuffer__adaptor.html new file mode 100644 index 000000000..4226e0311 --- /dev/null +++ b/classxt_1_1xbuffer__adaptor.html @@ -0,0 +1,620 @@ + + + + + + + +xtensor: xt::xbuffer_adaptor< CP, O, A > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xbuffer_adaptor< CP, O, A > Class Template Reference
+
+
+
+Inheritance diagram for xt::xbuffer_adaptor< CP, O, A >:
+
+
+ + +xt::xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xbuffer_adaptor<CP, O, A>
 
using base_type = detail::buffer_storage_t<CP, A, O>
 
using buffer_base_type = xbuffer_adaptor_base<self_type>
 
using allocator_type = typename base_type::allocator_type
 
using destructor_type = typename base_type::destructor_type
 
using value_type = typename buffer_base_type::value_type
 
using reference = typename buffer_base_type::reference
 
using const_reference = typename buffer_base_type::const_reference
 
using pointer = typename buffer_base_type::pointer
 
using const_pointer = typename buffer_base_type::const_pointer
 
using size_type = typename buffer_base_type::size_type
 
using difference_type = typename buffer_base_type::difference_type
 
using iterator = typename buffer_base_type::iterator
 
using const_iterator = typename buffer_base_type::const_iterator
 
using reverse_iterator = typename buffer_base_type::reverse_iterator
 
using const_reverse_iterator = typename buffer_base_type::const_reverse_iterator
 
using temporary_type = uvector<value_type, allocator_type>
 
- Public Types inherited from xt::xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >
using self_type
 
using derived_type
 
using inner_types
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using difference_type
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
using index_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

xbuffer_adaptor (const self_type &)=default
 
+self_typeoperator= (const self_type &)=default
 
xbuffer_adaptor (self_type &&)=default
 
+xbuffer_adaptoroperator= (self_type &&)=default
 
self_typeoperator= (temporary_type &&)
 
- Public Member Functions inherited from xt::xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >
bool empty () const noexcept
 
reference operator[] (size_type i)
 
const_reference operator[] (size_type i) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
derived_typederived_cast () noexcept
 
const derived_typederived_cast () const noexcept
 
+ + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >
xbuffer_adaptor_base (const self_type &)=default
 
xbuffer_adaptor_base (self_type &&)=default
 
+self_typeoperator= (const self_type &)=default
 
+self_typeoperator= (self_type &&)=default
 
+

Detailed Description

+
template<class CP, class O, class A>
+class xt::xbuffer_adaptor< CP, O, A >
+

Definition at line 365 of file xbuffer_adaptor.hpp.

+

Member Typedef Documentation

+ +

◆ allocator_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::allocator_type = typename base_type::allocator_type
+
+ +

Definition at line 373 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ base_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::base_type = detail::buffer_storage_t<CP, A, O>
+
+ +

Definition at line 371 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ buffer_base_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::buffer_base_type = xbuffer_adaptor_base<self_type>
+
+ +

Definition at line 372 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::const_iterator = typename buffer_base_type::const_iterator
+
+ +

Definition at line 383 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::const_pointer = typename buffer_base_type::const_pointer
+
+ +

Definition at line 379 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::const_reference = typename buffer_base_type::const_reference
+
+ +

Definition at line 377 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::const_reverse_iterator = typename buffer_base_type::const_reverse_iterator
+
+ +

Definition at line 385 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ destructor_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::destructor_type = typename base_type::destructor_type
+
+ +

Definition at line 374 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::difference_type = typename buffer_base_type::difference_type
+
+ +

Definition at line 381 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::iterator = typename buffer_base_type::iterator
+
+ +

Definition at line 382 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::pointer = typename buffer_base_type::pointer
+
+ +

Definition at line 378 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::reference = typename buffer_base_type::reference
+
+ +

Definition at line 376 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::reverse_iterator = typename buffer_base_type::reverse_iterator
+
+ +

Definition at line 384 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::self_type = xbuffer_adaptor<CP, O, A>
+
+ +

Definition at line 370 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::size_type = typename buffer_base_type::size_type
+
+ +

Definition at line 380 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::temporary_type = uvector<value_type, allocator_type>
+
+ +

Definition at line 386 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class CP, class O, class A>
+ + + + +
using xt::xbuffer_adaptor< CP, O, A >::value_type = typename buffer_base_type::value_type
+
+ +

Definition at line 375 of file xbuffer_adaptor.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ operator=()

+ +
+
+
+template<class CP, class O, class A>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor< CP, O, A >::operator= (temporary_type && tmp)
+
+inline
+
+ +

Definition at line 1059 of file xbuffer_adaptor.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xbuffer__adaptor.png b/classxt_1_1xbuffer__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..de3511d24b640aead26fc375bb78fd825a43d6ae GIT binary patch literal 1756 zcmah~c~nwa7=Mz@WM;XQPMI2+Nu@1jmW8%pZs9@_X;70k+6e`*@D<{gW}s7OIyNrl z%(&I_fR!e=9n2#+qn4GTskmV#so@sl&OB>6^IzR_?!CXeeB1B4-??m0cPFit>sJB* zpylF>!2tk50AtS;%ivLzHq{AF8$3^VJE~MF7|KQzbWTmd{#~dL!@G^L-rin#-{!@s zT=-1m3eNo`0IxqcTSR6H0Q?Z>f;r-SRqf-w4`IXmR{d}@gcGBTlKLJrXuo|q<{ji% z^Vl)rOwH>8VJglQ=ZfMzQb{QMGock-6rQIyUJs9VxdzsgrS&$t-95^R%KM`_q#0H&%NS^Pt&Z9kf9nwdsT~NHxzCq(MUl(`kaqe-c=g zW@m|Q5#GxDy7RLAr6atm;sg=g=9iN*1H$ zuM39Bs*tB;zHU(kc^V`6WCuFEpp}x{cSCUOB`6K!L_ywR^xk5b$8O z?WES`*@uM`eBG;vmO`c}C1qNXbBZ*_?sRFln9ud_81B1DH6p!`gjZt5T?~b~ZP+d^ z$>!$rA9uGfc$IQu?J%|de1-{hYtIbCuN>z{+ZD@qDq2M5`TLN)Q z)tx*s7fZyW>;ITA<)xHInadgF*gck1DO6`5>UwWyE^pN6a4L4q6i`JQM~uY^56Ri4 zon~^2_T42pBpFExT{=0nLv^DT?Os}Ve=7;hDA*`O%3u3(y93U**t_cyFd3mp`FPlL zaxHgqj3}u(OW&x@t6PizC_8RzUs|)8k)2SXq>HC8k^ze|25Dnw8iom129Ezyzk7Cm zd8ZrRhp4Gn$~jg>zvm@ccxg@ZcuLm;?Zy=%A67Y(GX=YtNOD1G!6EL-zwt?G`6PuZVCR_dOGu~5mLB^+U z(YXz|=M2XVc9*j&7THMT=7JYHomebpVv}+caw5w?F~wkSnDB#jZGo9EOKM;jLJYM? z3|tJV?I<1uIiPqfXVY(^H8eNW7F3?T$2J<3-)ULaMX~h&cr^}y#^F_9w0iY#`Ua*+ z`Uchaq842)tJMg4nu!1vM~sHc4FHY1^UDCQLzUReYFREcH3ZysqZ5-m5Ys8wG_{=* zG?M^g0xX<;;bJ#oBiSd?H;x$4>xs zqb(BBef$F6!+vYKCXfT(W4{BE1YIQ&3a{*4*5UObs)6WCT%clsXf}@ zzQ)FpEhg>zdNPe~{@MR_4?gw^;qt_}-V8Nd{I zN<`>Y!_XkR(}&(Mo>FU5oS((2AcCB<^mG%H)nN;{Pcd_^yFF9^V(;ItEM4QY-JkRN zBkTW)SyloEbe*jWhJkCZ⁣3%}_QPm1JbBBMhFMRN677KqFe^Vp9%S)%+tft_WpS z-K5Qk3FuL%n&U#zsK&;{ puqA(SL~HA%=l3n}HKA4_Ve7?D%X^s;8T=0cE{^UP-qD}0{|mfMR}26E literal 0 HcmV?d00001 diff --git a/classxt_1_1xbuffer__adaptor__base-members.html b/classxt_1_1xbuffer__adaptor__base-members.html new file mode 100644 index 000000000..494fc8cee --- /dev/null +++ b/classxt_1_1xbuffer__adaptor__base-members.html @@ -0,0 +1,162 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xbuffer_adaptor_base< D > Member List
+
+
+ +

This is the complete list of members for xt::xbuffer_adaptor_base< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
back() (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
back() const (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
begin() noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
begin() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
cbegin() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
cend() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
const_iterator typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
const_pointer typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
const_reference typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
const_reverse_iterator typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
crbegin() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
crend() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
derived_cast() noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
derived_cast() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
derived_type typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
difference_type typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
empty() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
end() noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
end() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
front() (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
front() const (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
index_type typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
inner_types typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
iterator typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
operator=(const self_type &)=default (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >protected
operator=(self_type &&)=default (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >protected
operator[](size_type i) (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
operator[](size_type i) const (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
pointer typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
rbegin() noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
rbegin() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
reference typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
rend() noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
rend() const noexcept (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >inline
reverse_iterator typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
self_type typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
size_type typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
value_type typedef (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >
xbuffer_adaptor_base()=default (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >protected
xbuffer_adaptor_base(const self_type &)=default (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >protected
xbuffer_adaptor_base(self_type &&)=default (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >protected
~xbuffer_adaptor_base()=default (defined in xt::xbuffer_adaptor_base< D >)xt::xbuffer_adaptor_base< D >protected
+
+ + + + diff --git a/classxt_1_1xbuffer__adaptor__base.html b/classxt_1_1xbuffer__adaptor__base.html new file mode 100644 index 000000000..4d2355bfe --- /dev/null +++ b/classxt_1_1xbuffer__adaptor__base.html @@ -0,0 +1,1114 @@ + + + + + + + +xtensor: xt::xbuffer_adaptor_base< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xbuffer_adaptor_base< D > Class Template Reference
+
+
+
+Inheritance diagram for xt::xbuffer_adaptor_base< D >:
+
+
+ + +xt::xiterator_adaptor< iterator, const_iterator > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xbuffer_adaptor_base<D>
 
using derived_type = D
 
using inner_types = buffer_inner_types<D>
 
using value_type = typename inner_types::value_type
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using pointer = typename inner_types::pointer
 
using const_pointer = typename inner_types::const_pointer
 
using size_type = typename inner_types::size_type
 
using difference_type = typename inner_types::difference_type
 
using iterator = typename inner_types::iterator
 
using const_iterator = typename inner_types::const_iterator
 
using reverse_iterator = typename inner_types::reverse_iterator
 
using const_reverse_iterator = typename inner_types::const_reverse_iterator
 
using index_type = typename inner_types::index_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool empty () const noexcept
 
reference operator[] (size_type i)
 
const_reference operator[] (size_type i) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
iterator begin () noexcept
 
iterator end () noexcept
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
reverse_iterator rbegin () noexcept
 
reverse_iterator rend () noexcept
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
derived_type & derived_cast () noexcept
 
const derived_type & derived_cast () const noexcept
 
+ + + + + + + + + +

+Protected Member Functions

xbuffer_adaptor_base (const self_type &)=default
 
+self_typeoperator= (const self_type &)=default
 
xbuffer_adaptor_base (self_type &&)=default
 
+self_typeoperator= (self_type &&)=default
 
+

Detailed Description

+
template<class D>
+class xt::xbuffer_adaptor_base< D >
+

Definition at line 262 of file xbuffer_adaptor.hpp.

+

Member Typedef Documentation

+ +

◆ const_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::const_iterator = typename inner_types::const_iterator
+
+ +

Definition at line 277 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::const_pointer = typename inner_types::const_pointer
+
+ +

Definition at line 273 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::const_reference = typename inner_types::const_reference
+
+ +

Definition at line 271 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::const_reverse_iterator = typename inner_types::const_reverse_iterator
+
+ +

Definition at line 279 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::derived_type = D
+
+ +

Definition at line 267 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::difference_type = typename inner_types::difference_type
+
+ +

Definition at line 275 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ index_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::index_type = typename inner_types::index_type
+
+ +

Definition at line 280 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::inner_types = buffer_inner_types<D>
+
+ +

Definition at line 268 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::iterator = typename inner_types::iterator
+
+ +

Definition at line 276 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::pointer = typename inner_types::pointer
+
+ +

Definition at line 272 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::reference = typename inner_types::reference
+
+ +

Definition at line 270 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::reverse_iterator = typename inner_types::reverse_iterator
+
+ +

Definition at line 278 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::self_type = xbuffer_adaptor_base<D>
+
+ +

Definition at line 266 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::size_type = typename inner_types::size_type
+
+ +

Definition at line 274 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xbuffer_adaptor_base< D >::value_type = typename inner_types::value_type
+
+ +

Definition at line 269 of file xbuffer_adaptor.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ back() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::back ()
+
+inline
+
+ +

Definition at line 898 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ back() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::back () const
+
+inline
+
+ +

Definition at line 904 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ begin() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::begin () const
+
+inlinenoexcept
+
+ +

Definition at line 922 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ begin() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::begin ()
+
+inlinenoexcept
+
+ +

Definition at line 910 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ cbegin()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::cbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 934 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ cend()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::cend () const
+
+inlinenoexcept
+
+ +

Definition at line 940 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ crbegin()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::crbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 970 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ crend()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::crend () const
+
+inlinenoexcept
+
+ +

Definition at line 976 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ derived_cast() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::derived_cast () const
+
+inlinenoexcept
+
+ +

Definition at line 988 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ derived_cast() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::derived_cast ()
+
+inlinenoexcept
+
+ +

Definition at line 982 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
bool xt::xbuffer_adaptor_base< D >::empty () const
+
+inlinenoexcept
+
+ +

Definition at line 868 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ end() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::end () const
+
+inlinenoexcept
+
+ +

Definition at line 928 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ end() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::end ()
+
+inlinenoexcept
+
+ +

Definition at line 916 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ front() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::front ()
+
+inline
+
+ +

Definition at line 886 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ front() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::front () const
+
+inline
+
+ +

Definition at line 892 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ operator[]() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::operator[] (size_type i)
+
+inline
+
+ +

Definition at line 874 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ operator[]() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::operator[] (size_type i) const
+
+inline
+
+ +

Definition at line 880 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::rbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 958 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::rbegin ()
+
+inlinenoexcept
+
+ +

Definition at line 946 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ rend() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::rend () const
+
+inlinenoexcept
+
+ +

Definition at line 964 of file xbuffer_adaptor.hpp.

+ +
+
+ +

◆ rend() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xbuffer_adaptor_base< D >::rend ()
+
+inlinenoexcept
+
+ +

Definition at line 952 of file xbuffer_adaptor.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xbuffer__adaptor__base.png b/classxt_1_1xbuffer__adaptor__base.png new file mode 100644 index 0000000000000000000000000000000000000000..5559d9dd5a8576da260dd41304d5e2e2d00f4904 GIT binary patch literal 966 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3;z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!-a9qZTHnYXJ6a%-dbkPqmp2cOYUXj6U$#eKM}81l(a_W>szjgmY;XYRVqEc z-}LZr@wUu6pYE+mz2};G;EnCyJlmp-#}QJzJNzfc+*0;@mGL+ApQy2e7mM+|wk(@h z7t&@(zUYk6U638R`CZ$poz5){qxSJVuSOvs;|#zd0KVy%dT?Yo&Qx{E{e5wS9!VnTTkR4 zqluZE+r>8C-uqh7vpnJrFeLmHl|0XHP*6Il+2K*dr8H?yQ-{j(i5^~>ty9?<|(d+&Ga{qUA+kM;L#!h;=ZfAbp-sGI>C*M}; zsQG&uq{ha@bVt3N=<-gZ{^76PuS~yu_BP%kecWo^nWT7g&R44}C9byUhfc1Xo|^IZ z_f8L~ndWu(rna+J>UG~dq38Hq#!{wq?s-L}owIyWbI+94?hH9AHnHlYf9gx&OuGjq zS9V?v^WEO@hNsNJyt}NZU*^;%*Obj!eP{RHQ@-k$?5AwBapU}sH}jRR%J`+-bln$j zY8`0({6v#N@P_A`EoXlInYXTgS=OfWMb~wjx7$qHDSs--?!aBsZCQ8p?2W&FOHn;( z{igl(e3kxN;?5IO?(cI-vD$YhvGR1fO!pRR$w_|>{<|Wlc=Gn!Iwh5#({(x~lyE7j q%x&WET(01BDO1IW=deK7y!yI@&ra%0j9&oEaSWcWelF{r5}E+}N~^;F literal 0 HcmV?d00001 diff --git a/classxt_1_1xchunk__iterator-members.html b/classxt_1_1xchunk__iterator-members.html new file mode 100644 index 000000000..81d92df08 --- /dev/null +++ b/classxt_1_1xchunk__iterator-members.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xchunk_iterator< E > Member List
+
+
+ +

This is the complete list of members for xt::xchunk_iterator< E >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
base_type typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
chunk_index() const (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
difference_type typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
get_chunk_slice_vector() const (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
get_slice_vector() const (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
iterator_category typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
operator!=(const self_type &rhs) const (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
operator*() const (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
operator++() (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
operator++(int) (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
operator==(const self_type &rhs) const (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
pointer typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
reference typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
self_type typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
shape_type typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
size_type typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
slice_vector typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
value_type typedef (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
xchunk_iterator()=default (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >
xchunk_iterator(E &chunked_expression, shape_type &&chunk_index, size_type chunk_linear_index) (defined in xt::xchunk_iterator< E >)xt::xchunk_iterator< E >inline
+
+ + + + diff --git a/classxt_1_1xchunk__iterator.html b/classxt_1_1xchunk__iterator.html new file mode 100644 index 000000000..9e7f3a812 --- /dev/null +++ b/classxt_1_1xchunk__iterator.html @@ -0,0 +1,625 @@ + + + + + + + +xtensor: xt::xchunk_iterator< E > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xchunk_iterator< E > Class Template Reference
+
+
+
+Inheritance diagram for xt::xchunk_iterator< E >:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using base_type = detail::xchunk_iterator_base<E>
 
using self_type = xchunk_iterator<E>
 
using size_type = typename E::size_type
 
using shape_type = typename E::shape_type
 
using slice_vector = xstrided_slice_vector
 
using reference = typename base_type::reference
 
using value_type = std::remove_reference_t<reference>
 
using pointer = value_type*
 
using difference_type = typename E::difference_type
 
using iterator_category = std::forward_iterator_tag
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 xchunk_iterator (E &chunked_expression, shape_type &&chunk_index, size_type chunk_linear_index)
 
self_typeoperator++ ()
 
self_type operator++ (int)
 
decltype(auto) operator* () const
 
bool operator== (const self_type &rhs) const
 
bool operator!= (const self_type &rhs) const
 
const shape_type & chunk_index () const
 
const slice_vector & get_slice_vector () const
 
slice_vector get_chunk_slice_vector () const
 
+

Detailed Description

+
template<class E>
+class xt::xchunk_iterator< E >
+

Definition at line 149 of file xchunked_assign.hpp.

+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::base_type = detail::xchunk_iterator_base<E>
+
+ +

Definition at line 153 of file xchunked_assign.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::difference_type = typename E::difference_type
+
+ +

Definition at line 162 of file xchunked_assign.hpp.

+ +
+
+ +

◆ iterator_category

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::iterator_category = std::forward_iterator_tag
+
+ +

Definition at line 163 of file xchunked_assign.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::pointer = value_type*
+
+ +

Definition at line 161 of file xchunked_assign.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::reference = typename base_type::reference
+
+ +

Definition at line 159 of file xchunked_assign.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::self_type = xchunk_iterator<E>
+
+ +

Definition at line 154 of file xchunked_assign.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::shape_type = typename E::shape_type
+
+ +

Definition at line 156 of file xchunked_assign.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::size_type = typename E::size_type
+
+ +

Definition at line 155 of file xchunked_assign.hpp.

+ +
+
+ +

◆ slice_vector

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::slice_vector = xstrided_slice_vector
+
+ +

Definition at line 157 of file xchunked_assign.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunk_iterator< E >::value_type = std::remove_reference_t<reference>
+
+ +

Definition at line 160 of file xchunked_assign.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xchunk_iterator()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xchunk_iterator< E >::xchunk_iterator (E & chunked_expression,
shape_type && chunk_index,
size_type chunk_linear_index )
+
+inline
+
+ +

Definition at line 274 of file xchunked_assign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ chunk_index()

+ +
+
+
+template<class E>
+ + + + + + + +
auto xt::xchunk_iterator< E >::chunk_index () const
+
+ +

Definition at line 345 of file xchunked_assign.hpp.

+ +
+
+ +

◆ get_chunk_slice_vector()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunk_iterator< E >::get_chunk_slice_vector () const
+
+inline
+
+ +

Definition at line 351 of file xchunked_assign.hpp.

+ +
+
+ +

◆ get_slice_vector()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunk_iterator< E >::get_slice_vector () const
+
+inline
+
+ +

Definition at line 339 of file xchunked_assign.hpp.

+ +
+
+ +

◆ operator!=()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
bool xt::xchunk_iterator< E >::operator!= (const self_type & rhs) const
+
+inline
+
+ +

Definition at line 333 of file xchunked_assign.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
decltype(auto) xt::xchunk_iterator< E >::operator* () const
+
+inline
+
+ +

Definition at line 321 of file xchunked_assign.hpp.

+ +
+
+ +

◆ operator++() [1/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
xchunk_iterator< E > & xt::xchunk_iterator< E >::operator++ ()
+
+inline
+
+ +

Definition at line 287 of file xchunked_assign.hpp.

+ +
+
+ +

◆ operator++() [2/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
xchunk_iterator< E > xt::xchunk_iterator< E >::operator++ (int )
+
+inline
+
+ +

Definition at line 313 of file xchunked_assign.hpp.

+ +
+
+ +

◆ operator==()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
bool xt::xchunk_iterator< E >::operator== (const self_type & rhs) const
+
+inline
+
+ +

Definition at line 327 of file xchunked_assign.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xchunk__iterator.png b/classxt_1_1xchunk__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a8628f16d58727abb096be42fce6ce7a717687 GIT binary patch literal 760 zcmeAS@N?(olHy`uVBq!ia0vp^H-I>RgBeKr$a-f1Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_q{PPZ!6K3dXl{U-!LM;AvrB zdFjk=`;VE2Ri8~Nv%Hm->M}Jm`M5y+jSKrZ6k9}F9VWfbY@WD8J=b8;mnCd(4y|~1 zOxy6ww#&Xedp}G{Sz5s|DP?WshMhK1&&>~b6fNK>tBL;h{O;?2ALhiD-F!UZvtylH z@~syyv>)oPo^M-q{=<}zQ_oG*4oKXH)m-~1;lU51i)&NwMYHy#`@eiXRd%oW*$AfB zX-0>=wWqP_f4sV-H0$q#I)_KQnW|r}J^SgBV*S?Reh>H)3PZ9^#WQ+W&bU|4Kkf17 z+PsUa!+iXIhrRifW4z5U^aMlBovzS(@&|mr&pasp{MLe`zt?KFAHSve_47v~9)Ww! zf6vLCjy!gFm8IxoZ@&IY_iC+Mg?Ec)Z$0%qewOXFX26BL61w5=Ork%Y*@hXz|58*!F4Uyw+bDvZCW=bXZvnS zJ;;y{__m6%LH%tPS;XC_jRH;)fgF>z%rl#zQhAAOvWovKcIo5%d#8TR^x^UC@9S6b zeQmd4=R$dT&r8<64YG~Tx!gW~kTHL$K2e%}Y)(Cl2mc^2W>ATt2M)5e`hF44$rj JF6*2UngFb8bPNCh literal 0 HcmV?d00001 diff --git a/classxt_1_1xchunked__array-members.html b/classxt_1_1xchunked__array-members.html new file mode 100644 index 000000000..50d6f0a7d --- /dev/null +++ b/classxt_1_1xchunked__array-members.html @@ -0,0 +1,291 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xchunked_array< chunk_storage > Member List
+
+
+ +

This is the complete list of members for xt::xchunked_array< chunk_storage >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
at(Args... args) -> referencext::xaccessible< xchunked_array< chunk_storage > >inline
at(Args... args) -> referencext::xaccessible< xchunked_array< chunk_storage > >inline
back() constxt::xaccessible< xchunked_array< chunk_storage > >
back()xt::xaccessible< xchunked_array< chunk_storage > >inline
back() constxt::xaccessible< xchunked_array< chunk_storage > >inline
begin() noexcept -> layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
begin() noexcept -> layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
bool_load_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
broadcast_shape(S &s, bool reuse_cache=false) const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
chunk_begin() (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_begin() const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_cbegin() const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_cend() const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_end() (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_end() const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_iterator typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
chunk_shape() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunk_storage_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
chunk_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
chunks() (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
chunks() const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
const_chunk_iterator typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
const_pointer typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
const_reference typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
const_stepper typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
contiguous_layout (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >static
crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xchunked_array< chunk_storage > >inline
difference_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
dimension() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
element(It first, It last) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
element(It first, It last) const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
element(It first, It last) -> reference (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
element(It first, It last) const -> const_reference (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
end() noexcept -> layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
end() noexcept -> layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
front() constxt::xaccessible< xchunked_array< chunk_storage > >
front()xt::xaccessible< xchunked_array< chunk_storage > >inline
front() constxt::xaccessible< xchunked_array< chunk_storage > >inline
get_chunk_indexes(std::index_sequence< dims... >, Idxs... idxs) const -> chunk_indexes_type< Idxs... > (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
get_indexes(Idxs... idxs) const -> indexes_type< Idxs... > (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
get_indexes_dynamic(It first, It last) const -> dynamic_indexes_type (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
grid_shape() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
grid_shape_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
grid_size() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
has_linear_assign(const S &strides) const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
in_bounds(Args... args) constxt::xconst_accessible< xchunked_array< chunk_storage > >inline
inner_types typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
is_contiguous() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
iterable_base typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
layout() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator()(Idxs... idxs) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
operator()(Idxs... idxs) const (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
operator()(Idxs... idxs) -> reference (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
operator()(Idxs... idxs) const -> const_reference (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator=(const xchunked_array &)=default (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
operator=(xchunked_array &&)=default (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
operator=(const xexpression< E > &e) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
operator=(const xexpression< E > &e) -> self_type & (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< xchunked_array< chunk_storage > >inline
operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< xchunked_array< chunk_storage > >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xchunked_array< chunk_storage > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
periodic(Args... args) -> referencext::xaccessible< xchunked_array< chunk_storage > >inline
periodic(Args... args) -> referencext::xaccessible< xchunked_array< chunk_storage > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xchunked_array< chunk_storage > >inline
pointer typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
rbegin() noexcept -> reverse_layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
rbegin() noexcept -> reverse_layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
reference typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
rend() noexcept -> reverse_layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
rend() noexcept -> reverse_layout_iterator< L >xt::xiterable< xchunked_array< chunk_storage > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xchunked_array< chunk_storage > >inline
self_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
semantic_base typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
shape() const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
xt::xaccessible< xchunked_array< chunk_storage > >::shape(size_type index) constxt::xconst_accessible< xchunked_array< chunk_storage > >inline
shape_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< xchunked_array< chunk_storage > >inline
size_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
static_layout (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >static
stepper typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
stepper_begin(const S &shape) noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
stepper_begin(const S &shape) const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
stepper_end(const S &shape, layout_type) noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
stepper_end(const S &shape, layout_type) const noexcept (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
stepper_end(const S &shape, layout_type) noexcept -> stepper (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
stepper_end(const S &shape, layout_type) const noexcept -> const_stepper (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
storage_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
temporary_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
unpack(const std::array< T, N > &arr) const -> static_indexes_type< N > (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
value_type typedef (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
xchunked_array(chunk_storage_type &&chunks, S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
xchunked_array(const xchunked_array &)=default (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
xchunked_array(xchunked_array &&)=default (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
xchunked_array(const xexpression< E > &e, chunk_storage_type &&chunks, layout_type chunk_memory_layout=::xt::layout_type::row_major) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
xchunked_array(const xexpression< E > &e, chunk_storage_type &&chunks, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
xchunked_array(CS &&chunks, S &&shape, S &&chunk_shape, layout_type chunk_memory_layout) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
xchunked_array(const xexpression< E > &e, CS &&chunks, layout_type chunk_memory_layout) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
xchunked_array(const xexpression< E > &e, CS &&chunks, S &&chunk_shape, layout_type chunk_memory_layout) (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >inline
~xchunked_array()=default (defined in xt::xchunked_array< chunk_storage >)xt::xchunked_array< chunk_storage >
+
+ + + + diff --git a/classxt_1_1xchunked__array.html b/classxt_1_1xchunked__array.html new file mode 100644 index 000000000..0c8ed5db7 --- /dev/null +++ b/classxt_1_1xchunked__array.html @@ -0,0 +1,2771 @@ + + + + + + + +xtensor: xt::xchunked_array< chunk_storage > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xchunked_array< chunk_storage > Class Template Reference
+
+
+
+Inheritance diagram for xt::xchunked_array< chunk_storage >:
+
+
+ + +xt::xaccessible< xchunked_array< chunk_storage > > +xt::xiterable< xchunked_array< chunk_storage > > +xt::xchunked_semantic< xchunked_array< chunk_storage > > +xt::xconst_accessible< xchunked_array< chunk_storage > > +xt::xconst_iterable< xchunked_array< chunk_storage > > +xt::xsemantic_base< xchunked_array< chunk_storage > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using chunk_storage_type = chunk_storage
 
using chunk_type = typename chunk_storage::value_type
 
using grid_shape_type = typename chunk_storage::shape_type
 
using const_reference = typename chunk_type::const_reference
 
using reference = typename chunk_type::reference
 
using self_type = xchunked_array<chunk_storage>
 
using semantic_base = xchunked_semantic<self_type>
 
using iterable_base = xconst_iterable<self_type>
 
using const_stepper = typename iterable_base::const_stepper
 
using stepper = typename iterable_base::stepper
 
using inner_types = xcontainer_inner_types<self_type>
 
using size_type = typename inner_types::size_type
 
using storage_type = typename inner_types::storage_type
 
using value_type = typename storage_type::value_type
 
using pointer = value_type*
 
using const_pointer = const value_type*
 
using difference_type = std::ptrdiff_t
 
using shape_type = typename chunk_type::shape_type
 
using temporary_type = typename inner_types::temporary_type
 
using bool_load_type = xt::bool_load_type<value_type>
 
using chunk_iterator = xchunk_iterator<self_type>
 
using const_chunk_iterator = xchunk_iterator<const self_type>
 
- Public Types inherited from xt::xaccessible< xchunked_array< chunk_storage > >
using base_type
 
using derived_type
 
using reference
 
using size_type
 
- Public Types inherited from xt::xconst_accessible< xchunked_array< chunk_storage > >
using derived_type
 
using inner_types
 
using reference
 
using const_reference
 
using size_type
 
- Public Types inherited from xt::xiterable< xchunked_array< chunk_storage > >
using derived_type
 
using base_type
 
using inner_shape_type
 
using stepper
 
using const_stepper
 
using linear_iterator
 
using reverse_linear_iterator
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xconst_iterable< xchunked_array< chunk_storage > >
using derived_type
 
using iterable_types
 
using inner_shape_type
 
using stepper
 
using const_stepper
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xchunked_semantic< xchunked_array< chunk_storage > >
using base_type
 
using derived_type
 
using temporary_type
 
- Public Types inherited from xt::xsemantic_base< xchunked_array< chunk_storage > >
using base_type
 
using derived_type
 
using temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class S>
 xchunked_array (chunk_storage_type &&chunks, S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
 
xchunked_array (const xchunked_array &)=default
 
+xchunked_arrayoperator= (const xchunked_array &)=default
 
xchunked_array (xchunked_array &&)=default
 
+xchunked_arrayoperator= (xchunked_array &&)=default
 
+template<class E>
 xchunked_array (const xexpression< E > &e, chunk_storage_type &&chunks, layout_type chunk_memory_layout=::xt::layout_type::row_major)
 
+template<class E, class S>
 xchunked_array (const xexpression< E > &e, chunk_storage_type &&chunks, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
 
+template<class E>
xchunked_arrayoperator= (const xexpression< E > &e)
 
size_type dimension () const noexcept
 
const shape_type & shape () const noexcept
 
layout_type layout () const noexcept
 
bool is_contiguous () const noexcept
 
+template<class... Idxs>
reference operator() (Idxs... idxs)
 
+template<class... Idxs>
const_reference operator() (Idxs... idxs) const
 
+template<class It>
reference element (It first, It last)
 
+template<class It>
const_reference element (It first, It last) const
 
template<class S>
bool broadcast_shape (S &s, bool reuse_cache=false) const
 
template<class S>
bool has_linear_assign (const S &strides) const noexcept
 
+template<class S>
stepper stepper_begin (const S &shape) noexcept
 
+template<class S>
stepper stepper_end (const S &shape, layout_type) noexcept
 
+template<class S>
const_stepper stepper_begin (const S &shape) const noexcept
 
+template<class S>
const_stepper stepper_end (const S &shape, layout_type) const noexcept
 
const shape_type & chunk_shape () const noexcept
 
size_type grid_size () const noexcept
 
const grid_shape_type & grid_shape () const noexcept
 
chunk_storage_type & chunks ()
 
const chunk_storage_type & chunks () const
 
chunk_iterator chunk_begin ()
 
chunk_iterator chunk_end ()
 
const_chunk_iterator chunk_begin () const
 
const_chunk_iterator chunk_end () const
 
const_chunk_iterator chunk_cbegin () const
 
const_chunk_iterator chunk_cend () const
 
template<class S>
 xchunked_array (CS &&chunks, S &&shape, S &&chunk_shape, layout_type chunk_memory_layout)
 
template<class E>
 xchunked_array (const xexpression< E > &e, CS &&chunks, layout_type chunk_memory_layout)
 
template<class E, class S>
 xchunked_array (const xexpression< E > &e, CS &&chunks, S &&chunk_shape, layout_type chunk_memory_layout)
 
template<class E>
auto operator= (const xexpression< E > &e) -> self_type &
 
template<class... Idxs>
auto operator() (Idxs... idxs) -> reference
 
template<class... Idxs>
auto operator() (Idxs... idxs) const -> const_reference
 
template<class It>
auto element (It first, It last) -> reference
 
template<class It>
auto element (It first, It last) const -> const_reference
 
template<class S>
auto stepper_begin (const S &shape) noexcept -> stepper
 
template<class S>
auto stepper_end (const S &shape, layout_type) noexcept -> stepper
 
template<class S>
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto stepper_end (const S &shape, layout_type) const noexcept -> const_stepper
 
template<class... Idxs>
auto get_indexes (Idxs... idxs) const -> indexes_type< Idxs... >
 
template<std::size_t... dims, class... Idxs>
auto get_chunk_indexes (std::index_sequence< dims... >, Idxs... idxs) const -> chunk_indexes_type< Idxs... >
 
template<class T, std::size_t N>
auto unpack (const std::array< T, N > &arr) const -> static_indexes_type< N >
 
template<class It>
auto get_indexes_dynamic (It first, It last) const -> dynamic_indexes_type
 
- Public Member Functions inherited from xt::xaccessible< xchunked_array< chunk_storage > >
auto at (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
 
auto operator[] (const S &index) -> disable_integral_t< S, reference >
 Returns a reference to the element at the specified position in the expression.
 
auto operator[] (std::initializer_list< I > index) -> reference
 
auto periodic (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
+const_reference at (Args... args) const
 
+disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+const_reference operator[] (std::initializer_list< I > index) const
 
+const_reference operator[] (size_type i) const
 
+const_reference back () const
 Returns a constant reference to last the element of the expression.
 
+const_reference front () const
 Returns a constant reference to first the element of the expression.
 
+const_reference periodic (Args... args) const
 
+reference at (Args... args)
 
auto at (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
 
+const_reference at (Args... args) const
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
auto operator[] (const S &index) -> disable_integral_t< S, reference >
 Returns a reference to the element at the specified position in the expression.
 
auto operator[] (std::initializer_list< I > index) -> reference
 
+disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+const_reference operator[] (std::initializer_list< I > index) const
 
const_reference operator[] (size_type i) const
 
+reference periodic (Args... args)
 
auto periodic (Args... args) -> reference
 Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
+const_reference periodic (Args... args) const
 
reference front ()
 Returns a reference to the first element of the expression.
 
const_reference front () const
 Returns a constant reference to first the element of the expression.
 
reference back ()
 Returns a reference to the last element of the expression.
 
const_reference back () const
 Returns a constant reference to last the element of the expression.
 
- Public Member Functions inherited from xt::xconst_accessible< xchunked_array< chunk_storage > >
auto at (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
 
auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
 Returns a constant reference to the element at the specified position in the expression.
 
auto operator[] (std::initializer_list< I > index) const -> const_reference
 
auto periodic (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
size_type size () const noexcept(noexcept(derived_cast().shape()))
 Returns the size of the expression.
 
size_type dimension () const noexcept
 Returns the number of dimensions of the expression.
 
size_type shape (size_type index) const
 Returns the i-th dimension of the expression.
 
+const_reference at (Args... args) const
 
auto at (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
 
+disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+const_reference operator[] (std::initializer_list< I > index) const
 
const_reference operator[] (size_type i) const
 
auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
 Returns a constant reference to the element at the specified position in the expression.
 
auto operator[] (std::initializer_list< I > index) const -> const_reference
 
+const_reference periodic (Args... args) const
 
auto periodic (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
bool in_bounds (Args... args) const
 Returns true only if the the specified position is a valid entry in the expression.
 
const_reference front () const
 Returns a constant reference to first the element of the expression.
 
const_reference back () const
 Returns a constant reference to last the element of the expression.
 
- Public Member Functions inherited from xt::xiterable< xchunked_array< chunk_storage > >
+const_layout_iterator< L > begin () const noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+const_layout_iterator< L > end () const noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+layout_iterator< L > begin () noexcept
 
+broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+const_layout_iterator< L > begin () const noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+layout_iterator< L > end () noexcept
 
+broadcast_iterator< S, L > end (const S &shape) noexcept
 
+const_layout_iterator< L > end () const noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+reverse_layout_iterator< L > rbegin () noexcept
 
+reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+const_reverse_layout_iterator< L > rbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+reverse_layout_iterator< L > rend () noexcept
 
+reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+const_reverse_layout_iterator< L > rend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
auto begin () noexcept -> layout_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto end () noexcept -> layout_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin () noexcept -> layout_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto end () noexcept -> layout_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto rbegin () noexcept -> reverse_layout_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend () noexcept -> reverse_layout_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin () noexcept -> reverse_layout_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend () noexcept -> reverse_layout_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto get_begin (bool end_index) noexcept -> layout_iterator< L >
 
auto get_end (bool end_index) noexcept -> layout_iterator< L >
 
auto get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
 
auto get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
 
auto get_stepper_begin (const S &shape) noexcept -> stepper
 
auto get_stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto get_begin (bool end_index) noexcept -> layout_iterator< L >
 
auto get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
 
auto get_end (bool end_index) noexcept -> layout_iterator< L >
 
auto get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
 
auto get_stepper_begin (const S &shape) noexcept -> stepper
 
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto get_stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
- Public Member Functions inherited from xt::xconst_iterable< xchunked_array< chunk_storage > >
+const_layout_iterator< L > begin () const noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+const_layout_iterator< L > end () const noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+const_layout_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+const_layout_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
auto begin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
 
auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
- Public Member Functions inherited from xt::xchunked_semantic< xchunked_array< chunk_storage > >
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto get_assigner (const CS &) const -> xchunked_assigner< temporary_type, CS >
 
+derived_typeassign_xexpression (const xexpression< E > &e)
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
+derived_typecomputed_assign (const xexpression< E > &e)
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
+derived_typescalar_computed_assign (const E &e, F &&f)
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto get_assigner (const CS &) const -> xchunked_assigner< temporary_type, CS >
 
- Public Member Functions inherited from xt::xsemantic_base< xchunked_array< chunk_storage > >
+disable_xexpression< E, derived_type & > operator+= (const E &)
 
+derived_type & operator+= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator-= (const E &)
 
+derived_type & operator-= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator*= (const E &)
 
+derived_type & operator*= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator/= (const E &)
 
+derived_type & operator/= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator%= (const E &)
 
+derived_type & operator%= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator&= (const E &)
 
+derived_type & operator&= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator|= (const E &)
 
+derived_type & operator|= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator^= (const E &)
 
+derived_type & operator^= (const xexpression< E > &)
 
+derived_type & assign (const xexpression< E > &)
 
+derived_type & plus_assign (const xexpression< E > &)
 
+derived_type & minus_assign (const xexpression< E > &)
 
+derived_type & multiplies_assign (const xexpression< E > &)
 
+derived_type & divides_assign (const xexpression< E > &)
 
+derived_type & modulus_assign (const xexpression< E > &)
 
+derived_type & bit_and_assign (const xexpression< E > &)
 
+derived_type & bit_or_assign (const xexpression< E > &)
 
+derived_type & bit_xor_assign (const xexpression< E > &)
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + + +

+Static Public Attributes

static constexpr layout_type static_layout = layout_type::dynamic
 
static constexpr bool contiguous_layout = false
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xaccessible< xchunked_array< chunk_storage > >
xaccessible (const xaccessible &)=default
 
xaccessible (xaccessible &&)=default
 
+xaccessibleoperator= (const xaccessible &)=default
 
+xaccessibleoperator= (xaccessible &&)=default
 
- Protected Member Functions inherited from xt::xconst_accessible< xchunked_array< chunk_storage > >
xconst_accessible (const xconst_accessible &)=default
 
xconst_accessible (xconst_accessible &&)=default
 
+xconst_accessibleoperator= (const xconst_accessible &)=default
 
+xconst_accessibleoperator= (xconst_accessible &&)=default
 
const inner_shape_type & get_shape () const
 
- Protected Member Functions inherited from xt::xchunked_semantic< xchunked_array< chunk_storage > >
xchunked_semantic (const xchunked_semantic &)=default
 
xchunked_semantic (xchunked_semantic &&)=default
 
+xchunked_semanticoperator= (const xchunked_semantic &)=default
 
+xchunked_semanticoperator= (xchunked_semantic &&)=default
 
+derived_typeoperator= (const xexpression< E > &e)
 
- Protected Member Functions inherited from xt::xsemantic_base< xchunked_array< chunk_storage > >
xsemantic_base (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class chunk_storage>
+class xt::xchunked_array< chunk_storage >
+

Definition at line 56 of file xchunked_array.hpp.

+

Member Typedef Documentation

+ +

◆ bool_load_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::bool_load_type = xt::bool_load_type<value_type>
+
+ +

Definition at line 81 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_iterator

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::chunk_iterator = xchunk_iterator<self_type>
+
+ +

Definition at line 84 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_storage_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::chunk_storage_type = chunk_storage
+
+ +

Definition at line 62 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::chunk_type = typename chunk_storage::value_type
+
+ +

Definition at line 63 of file xchunked_array.hpp.

+ +
+
+ +

◆ const_chunk_iterator

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::const_chunk_iterator = xchunk_iterator<const self_type>
+
+ +

Definition at line 85 of file xchunked_array.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::const_pointer = const value_type*
+
+ +

Definition at line 77 of file xchunked_array.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::const_reference = typename chunk_type::const_reference
+
+ +

Definition at line 65 of file xchunked_array.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::const_stepper = typename iterable_base::const_stepper
+
+ +

Definition at line 70 of file xchunked_array.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::difference_type = std::ptrdiff_t
+
+ +

Definition at line 78 of file xchunked_array.hpp.

+ +
+
+ +

◆ grid_shape_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::grid_shape_type = typename chunk_storage::shape_type
+
+ +

Definition at line 64 of file xchunked_array.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::inner_types = xcontainer_inner_types<self_type>
+
+ +

Definition at line 72 of file xchunked_array.hpp.

+ +
+
+ +

◆ iterable_base

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::iterable_base = xconst_iterable<self_type>
+
+ +

Definition at line 69 of file xchunked_array.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::pointer = value_type*
+
+ +

Definition at line 76 of file xchunked_array.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::reference = typename chunk_type::reference
+
+ +

Definition at line 66 of file xchunked_array.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::self_type = xchunked_array<chunk_storage>
+
+ +

Definition at line 67 of file xchunked_array.hpp.

+ +
+
+ +

◆ semantic_base

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::semantic_base = xchunked_semantic<self_type>
+
+ +

Definition at line 68 of file xchunked_array.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::shape_type = typename chunk_type::shape_type
+
+ +

Definition at line 79 of file xchunked_array.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::size_type = typename inner_types::size_type
+
+ +

Definition at line 73 of file xchunked_array.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::stepper = typename iterable_base::stepper
+
+ +

Definition at line 71 of file xchunked_array.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::storage_type = typename inner_types::storage_type
+
+ +

Definition at line 74 of file xchunked_array.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::temporary_type = typename inner_types::temporary_type
+
+ +

Definition at line 80 of file xchunked_array.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class chunk_storage>
+ + + + +
using xt::xchunked_array< chunk_storage >::value_type = typename storage_type::value_type
+
+ +

Definition at line 75 of file xchunked_array.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xchunked_array() [1/3]

+ +
+
+
+template<class chunk_storage>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
xt::xchunked_array< chunk_storage >::xchunked_array (CS && chunks,
S && shape,
S && chunk_shape,
layout_type chunk_memory_layout )
+
+inline
+
+ +

Definition at line 390 of file xchunked_array.hpp.

+ +
+
+ +

◆ xchunked_array() [2/3]

+ +
+
+
+template<class chunk_storage>
+
+template<class E>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xchunked_array< chunk_storage >::xchunked_array (const xexpression< E > & e,
CS && chunks,
layout_type chunk_memory_layout )
+
+inline
+
+ +

Definition at line 398 of file xchunked_array.hpp.

+ +
+
+ +

◆ xchunked_array() [3/3]

+ +
+
+
+template<class chunk_storage>
+
+template<class E, class S>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
xt::xchunked_array< chunk_storage >::xchunked_array (const xexpression< E > & e,
CS && chunks,
S && chunk_shape,
layout_type chunk_memory_layout )
+
+inline
+
+ +

Definition at line 405 of file xchunked_array.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ broadcast_shape()

+ +
+
+
+template<class CS>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
bool xt::xchunked_array< CS >::broadcast_shape (S & s,
bool reuse_cache = false ) const
+
+inline
+
+ +

Definition at line 486 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_begin() [1/2]

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_begin ()
+
+inline
+
+ +

Definition at line 561 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_begin() [2/2]

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_begin () const
+
+inline
+
+ +

Definition at line 575 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_cbegin()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_cbegin () const
+
+inline
+
+ +

Definition at line 589 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_cend()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_cend () const
+
+inline
+
+ +

Definition at line 595 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_end() [1/2]

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_end ()
+
+inline
+
+ +

Definition at line 568 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_end() [2/2]

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_end () const
+
+inline
+
+ +

Definition at line 582 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunk_shape()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunk_shape () const
+
+inlinenoexcept
+
+ +

Definition at line 531 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunks() [1/2]

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunks ()
+
+inline
+
+ +

Definition at line 549 of file xchunked_array.hpp.

+ +
+
+ +

◆ chunks() [2/2]

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::chunks () const
+
+inline
+
+ +

Definition at line 555 of file xchunked_array.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::dimension () const
+
+inlinenoexcept
+
+ +

Definition at line 425 of file xchunked_array.hpp.

+ +
+
+ +

◆ element() [1/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_array< chunk_storage >::element (It first,
It last ) -> reference +
+
+inline
+
+ +

Definition at line 468 of file xchunked_array.hpp.

+ +
+
+ +

◆ element() [2/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_array< chunk_storage >::element (It first,
It last ) const -> const_reference +
+
+inline
+
+ +

Definition at line 477 of file xchunked_array.hpp.

+ +
+
+ +

◆ get_chunk_indexes()

+ +
+
+
+template<class chunk_storage>
+
+template<std::size_t... dims, class... Idxs>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_array< chunk_storage >::get_chunk_indexes (std::index_sequence< dims... > ,
Idxs... idxs ) const -> chunk_indexes_type<Idxs...> +
+
+inline
+
+ +

Definition at line 648 of file xchunked_array.hpp.

+ +
+
+ +

◆ get_indexes()

+ +
+
+
+template<class chunk_storage>
+
+template<class... Idxs>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::get_indexes (Idxs... idxs) const -> indexes_type<Idxs...> +
+
+inline
+
+ +

Definition at line 630 of file xchunked_array.hpp.

+ +
+
+ +

◆ get_indexes_dynamic()

+ +
+
+
+template<class chunk_storage>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_array< chunk_storage >::get_indexes_dynamic (It first,
It last ) const -> dynamic_indexes_type +
+
+inline
+
+ +

Definition at line 671 of file xchunked_array.hpp.

+ +
+
+ +

◆ grid_shape()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::grid_shape () const
+
+inlinenoexcept
+
+ +

Definition at line 543 of file xchunked_array.hpp.

+ +
+
+ +

◆ grid_size()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::grid_size () const
+
+inlinenoexcept
+
+ +

Definition at line 537 of file xchunked_array.hpp.

+ +
+
+ +

◆ has_linear_assign()

+ +
+
+
+template<class CS>
+
+template<class S>
+ + + + + +
+ + + + + + + +
bool xt::xchunked_array< CS >::has_linear_assign (const S & strides) const
+
+inlinenoexcept
+
+ +

Definition at line 493 of file xchunked_array.hpp.

+ +
+
+ +

◆ is_contiguous()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
bool xt::xchunked_array< CS >::is_contiguous () const
+
+inlinenoexcept
+
+ +

Definition at line 443 of file xchunked_array.hpp.

+ +
+
+ +

◆ layout()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::layout () const
+
+inlinenoexcept
+
+ +

Definition at line 437 of file xchunked_array.hpp.

+ +
+
+ +

◆ operator()() [1/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class... Idxs>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::operator() (Idxs... idxs) -> reference +
+
+inline
+
+ +

Definition at line 450 of file xchunked_array.hpp.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class... Idxs>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::operator() (Idxs... idxs) const -> const_reference +
+
+inline
+
+ +

Definition at line 459 of file xchunked_array.hpp.

+ +
+
+ +

◆ operator=()

+ +
+
+
+template<class chunk_storage>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::operator= (const xexpression< E > & e) -> self_type& +
+
+inline
+
+ +

Definition at line 419 of file xchunked_array.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< CS >::shape () const
+
+inlinenoexcept
+
+ +

Definition at line 431 of file xchunked_array.hpp.

+ +
+
+ +

◆ stepper_begin() [1/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::stepper_begin (const S & shape) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 516 of file xchunked_array.hpp.

+ +
+
+ +

◆ stepper_begin() [2/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::stepper_begin (const S & shape) -> stepper +
+
+inlinenoexcept
+
+ +

Definition at line 500 of file xchunked_array.hpp.

+ +
+
+ +

◆ stepper_end() [1/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_array< chunk_storage >::stepper_end (const S & shape,
layout_type  ) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 524 of file xchunked_array.hpp.

+ +
+
+ +

◆ stepper_end() [2/2]

+ +
+
+
+template<class chunk_storage>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_array< chunk_storage >::stepper_end (const S & shape,
layout_type  ) -> stepper +
+
+inlinenoexcept
+
+ +

Definition at line 508 of file xchunked_array.hpp.

+ +
+
+ +

◆ unpack()

+ +
+
+
+template<class chunk_storage>
+
+template<class T, std::size_t N>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_array< chunk_storage >::unpack (const std::array< T, N > & arr) const -> static_indexes_type<N> +
+
+inline
+
+ +

Definition at line 657 of file xchunked_array.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ contiguous_layout

+ +
+
+
+template<class chunk_storage>
+ + + + + +
+ + + + +
bool xt::xchunked_array< chunk_storage >::contiguous_layout = false
+
+staticconstexpr
+
+ +

Definition at line 83 of file xchunked_array.hpp.

+ +
+
+ +

◆ static_layout

+ +
+
+
+template<class chunk_storage>
+ + + + + +
+ + + + +
layout_type xt::xchunked_array< chunk_storage >::static_layout = layout_type::dynamic
+
+staticconstexpr
+
+ +

Definition at line 82 of file xchunked_array.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xchunked__array.png b/classxt_1_1xchunked__array.png new file mode 100644 index 0000000000000000000000000000000000000000..76ac419414458569e34e55d6755631fa2c31a07d GIT binary patch literal 4316 zcmdT|X;>3!wg$A-MiHVAyo%7o7A_*t%Bt82Er|*?AWMOYfTAq2M;2LZ=JVd zFPNW|lH4yTCMG6jat>`JCbl&Ox^LLA1!^x=7P6u4z=fY}FhZdax*eNb3`}e+F!({u zZy%|3Y-nf*8rN;J&4=E78(?K_Ee1VrT>28}pTxvu+)U6v*#wJE4RC_;PRd}IiO$6h zeAJv7ZOgqm8P%WOEt-V&Nx_o}*aV&aZzB@;EBfeuwDneQ6Tf0Sza;r_LKQMIu# z-x3YFn7_`iHM=_u9f&xB|cQuH`6SAwrRd?fg>obCS z&Rs5Fr|ss@vxrfmhV)ZiTd8nIX7J(zj(aJG^1ZogVw1f7iCs;C!0^aR6(dhB0aq(Y z&@$E0kWmHdaHpF!t&JKsc$WxMRn0_2=TL*&wzt>t=Huu`RE-_HZt~r85-7_mhaD#a zu4fvmKiAjE#!*%UQE+(H)Gmpw!8cW4#k$(sofVaeQ91U<+sc?_bcG3Z+e6(0hJ7th z)KGQ(SGH2=Hg$?sB)Az?g2WvodpNjW%(484d zOsVl|^4T{+mV$X7t>nCfQ?amz2^^K*7R%?Sl)i6Y>v4U0Yhc zq3YXyY**7l4a#|66!X}0`{JA9iIX#oDj00*4!>-2z}oV@>-(Z|#8H(i(PsOhsGBWt zIlilD_Vzy&i+_t|qdTZ~2e$5j!a7S7CPsH^L&Au$P%mb<7qTuUzBDpmd<>dg=Bks( zk>43@$yFAKPj8A3h~~W`M%@$+QiV1oE-`5i`AlN#=S(Q>x9)ghC|bPC)!Q5T{|-d~ z7Pg3IMAyym*GwewjOF6Zw#yEP1i{+WDkA_W1iz%`UjXQ7F@+!qyBPt3-QPnmyU}O> zh(EW}2B=U`6Ez4B^gv(!4Fq*fa-arg2>^#aNB{t25^5-ib4$Q+WksbER90};mL8wo z6oZu&Gh9$4x!4k@`0B4Q`?G>|YLUmf>0GucGgiY3GuxUe=-s2xfxm#o<^=?-vwjFhjRj zi4dS5M6)P3Jd)eM9%}wdq-*))f#chxD;wllyxXDvEo$qdR@G^*S$a>gqkXH(LgJL! zO^sF7Bmd8`mVp&(Y2g6?x952<>3UVcl@46O4J7WwEo^z=mjI3qBPU6of3eu#EiyhS zL)EDSnHW4*MonqW>tL05a2GEq*i{PVn}s(d9q92rSovtjSMYa&o3*|2boxS#Y?rIMR$9~3n1rxwA)&y&&SAv!9#}-|IZ5etC2LSt z@+p3T+Fh>qX2>sg|5gObwX`T&40XB9kyzC)he=wS{#oh>(@yGL^K#<7KhZDSRr;a8 zp0hjoAhJD!VZKwbBrP!$**+5;TVP__cSZAr{lxK6Za$HUOgzO2pPRgBz#o+4ni3wa zRRlcGK$d>Kei_IV$l(#pZ%ii0C*+%R$nBre#ef*U;b+8CUy+`V}W(|d$&>~Av zYzqu9Q&W{>EdjbPf&mEZ%$TH+SqDVu@=$#}2nO{JyxGeS`}($0NgDvFRw!_H8Jd$i zVJB<~)}qwLq@rzr#fg`coSi$6D)qiZ65 zIa&5MDPP}b$nwK#MxIF$I*8`z?(e^GH?z8<_o@d;kAAxOa3-H8(t;AY^OuK;A}vUH z{{xmWq*JbJW|mde z7VwNJm5ug{6CekIORj?u5axg$zDcJ6z!Q-Rf@ku-fxMjj&%1gg88Hrm$PT^>Ozp~YG!RkfAs6etFlWnF6m(q=9^C*q%XQ_33O z4rGZy)B@``Yau7R1Ox1<97Wk#1XfZWowlo334LipWJdc8n2yOAhh9V{Bkan|vNG@) z7Fi7W(6sk2kF8X8n|IuI5$}1D<%9Fj``BBPArpt8$Kus-z3q`Y%Fk{^vJ4_KUEsoB%@RF@<@ zOn2<=h>l0JdWNm!UwRngY{lH-Qir?${5>wDSKg4h6Hx=Fy{fa{*e<-^lsQgbkF_ce z8_tc?+>6WkRZ*^MPH_Y^&*>)P1Avd74y(O{lD5i~!s(rTXt*5ynpS ze%nDD^MJlR8IX^?{SQTM4_}lfc~A|ZZ>NVc-WE-B;&W1J*s)Fh6Ny|tGmUH8W0=~Z zN6oW#YeTgsYx+!{n!mwoW?#!04pVO>E?Ty+yP@tn|Rcp3IARO1x+CeM?$4T5iqHsS{F$@eX-(QHv zEKK)>hXX+0Da&E1e|r`j0G!y;RSgWSbsx1;x9kCc(cvV?krt`KQSh~@HE^BQ!D2WG z?9Syt@LjK#FD!-10)jrd56ZFn$bSJX|5U1k$Xha&@niftM&_lRP%4Y6qk+x3C<4`b zV5|GNKVzJCaM=099F0vR{Ts@aGi#TgA$9&2sJiAa{DGtY*N`{2w6p{tgs#Ru=sLee zT;i4DP4WMqDwS6j;LsBZ71V1HBA)1@Ks)ve+hE#kll&#HKW~t~79?Xf7}jNw zaDA_+6h`D?6=*7=GFp%kQ|UH%DhxZXP7U>fYQSOHuR3<7LfJ&fUk;KE2rUNoR6Nk{H1? z(Ht45j)2zfdsswW^kc^ujL4YXs&0sriC>mlwjfUWx+~{4kJD-eg&V{VLJBtvF9jb@ zXP@jxZ{Q^t{XWsIBhsker3G?jiP`iEq6H?#jE(*Bv9+uTlP8>*?(JGF+K$mVfD4bT zh^)aX*d5j4|Fl8L1cfn38|*^!*>J7Ub>39t!RQneE-=e`e+bTy5KiIp)m!QF%=FC! z7Ct11PLN=Oh7Q7T*58ovOhvT4dH_AZ^i`l?(^d5dx7*p}qQMtipkYX^idTwfXwwZ6 z*vleHKWm54fm}h`Bv)^-3hA3fKb~!%_dC(2VZDAQ`hWQPf5_EuhlS!-no?fi4tlji Q{~^RoFy`oz(^v2Q6_A`KXaE2J literal 0 HcmV?d00001 diff --git a/classxt_1_1xchunked__assigner-members.html b/classxt_1_1xchunked__assigner-members.html new file mode 100644 index 000000000..12e54469f --- /dev/null +++ b/classxt_1_1xchunked__assigner-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xchunked_assigner< T, chunk_storage > Member List
+
+
+ +

This is the complete list of members for xt::xchunked_assigner< T, chunk_storage >, including all inherited members.

+ + + +
build_and_assign_temporary(const xexpression< E > &e, DST &dst) (defined in xt::xchunked_assigner< T, chunk_storage >)xt::xchunked_assigner< T, chunk_storage >inline
temporary_type typedef (defined in xt::xchunked_assigner< T, chunk_storage >)xt::xchunked_assigner< T, chunk_storage >
+
+ + + + diff --git a/classxt_1_1xchunked__assigner.html b/classxt_1_1xchunked__assigner.html new file mode 100644 index 000000000..1ff9ced90 --- /dev/null +++ b/classxt_1_1xchunked__assigner.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::xchunked_assigner< T, chunk_storage > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xchunked_assigner< T, chunk_storage > Class Template Reference
+
+
+ + + + +

+Public Types

using temporary_type = T
 
+ + + + +

+Public Member Functions

template<class E, class DST>
void build_and_assign_temporary (const xexpression< E > &e, DST &dst)
 
+

Detailed Description

+
template<class T, class chunk_storage>
+class xt::xchunked_assigner< T, chunk_storage >
+

Definition at line 24 of file xchunked_assign.hpp.

+

Member Typedef Documentation

+ +

◆ temporary_type

+ +
+
+
+template<class T, class chunk_storage>
+ + + + +
using xt::xchunked_assigner< T, chunk_storage >::temporary_type = T
+
+ +

Definition at line 28 of file xchunked_assign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ build_and_assign_temporary()

+ +
+
+
+template<class T, class CS>
+
+template<class E, class DST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xchunked_assigner< T, CS >::build_and_assign_temporary (const xexpression< E > & e,
DST & dst )
+
+inline
+
+ +

Definition at line 197 of file xchunked_assign.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xchunked__semantic-members.html b/classxt_1_1xchunked__semantic-members.html new file mode 100644 index 000000000..abe78032a --- /dev/null +++ b/classxt_1_1xchunked__semantic-members.html @@ -0,0 +1,194 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xchunked_semantic< D > Member List
+
+
+ +

This is the complete list of members for xt::xchunked_semantic< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
assign_xexpression(const xexpression< E > &e) (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >
assign_xexpression(const xexpression< E > &e) -> derived_type & (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >inline
base_type typedef (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >
bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
computed_assign(const xexpression< E > &e) (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >
computed_assign(const xexpression< E > &e) -> derived_type & (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >inline
derived_type typedef (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >
divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
get_assigner(const CS &) const -> xchunked_assigner< temporary_type, CS > (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >inline
minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator=(const xchunked_semantic &)=default (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
operator=(xchunked_semantic &&)=default (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
operator=(const xexpression< E > &e) (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
operator=(const xexpression< E > &e) -> derived_type & (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >inline
operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
scalar_computed_assign(const E &e, F &&f) (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >
scalar_computed_assign(const E &e, F &&f) -> derived_type & (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >inline
temporary_type typedef (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >
xchunked_semantic()=default (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
xchunked_semantic(const xchunked_semantic &)=default (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
xchunked_semantic(xchunked_semantic &&)=default (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
~xchunked_semantic()=default (defined in xt::xchunked_semantic< D >)xt::xchunked_semantic< D >protected
~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
+
+ + + + diff --git a/classxt_1_1xchunked__semantic.html b/classxt_1_1xchunked__semantic.html new file mode 100644 index 000000000..ea40cd430 --- /dev/null +++ b/classxt_1_1xchunked__semantic.html @@ -0,0 +1,646 @@ + + + + + + + +xtensor: xt::xchunked_semantic< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xchunked_semantic< D > Class Template Reference
+
+
+
+Inheritance diagram for xt::xchunked_semantic< D >:
+
+
+ + +xt::xsemantic_base< D > + +
+ + + + + + + + + + + + + + + +

+Public Types

using base_type = xsemantic_base<D>
 
using derived_type = D
 
using temporary_type = typename base_type::temporary_type
 
- Public Types inherited from xt::xsemantic_base< D >
using base_type = select_expression_base_t<D>
 
using derived_type = typename base_type::derived_type
 
using temporary_type = typename xcontainer_inner_types<D>::temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class E>
derived_type & assign_xexpression (const xexpression< E > &e)
 
+template<class E>
derived_type & computed_assign (const xexpression< E > &e)
 
+template<class E, class F>
derived_type & scalar_computed_assign (const E &e, F &&f)
 
template<class E>
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
template<class E>
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
template<class E, class F>
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
template<class E>
auto operator= (const xexpression< E > &e) -> derived_type &
 
template<class CS>
auto get_assigner (const CS &) const -> xchunked_assigner< temporary_type, CS >
 
- Public Member Functions inherited from xt::xsemantic_base< D >
+template<class E>
disable_xexpression< E, derived_type & > operator+= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator-= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator*= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator/= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator%= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator&= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator|= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator^= (const E &)
 
+template<class E>
derived_type & operator+= (const xexpression< E > &)
 
+template<class E>
derived_type & operator-= (const xexpression< E > &)
 
+template<class E>
derived_type & operator*= (const xexpression< E > &)
 
+template<class E>
derived_type & operator/= (const xexpression< E > &)
 
+template<class E>
derived_type & operator%= (const xexpression< E > &)
 
+template<class E>
derived_type & operator&= (const xexpression< E > &)
 
+template<class E>
derived_type & operator|= (const xexpression< E > &)
 
+template<class E>
derived_type & operator^= (const xexpression< E > &)
 
+template<class E>
derived_type & assign (const xexpression< E > &)
 
+template<class E>
derived_type & plus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & minus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & multiplies_assign (const xexpression< E > &)
 
+template<class E>
derived_type & divides_assign (const xexpression< E > &)
 
+template<class E>
derived_type & modulus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_and_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_or_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_xor_assign (const xexpression< E > &)
 
template<class E>
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
template<class E>
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
template<class E>
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
template<class E>
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
template<class E>
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
template<class E>
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
template<class E>
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
template<class E>
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
template<class E>
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
template<class E>
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
template<class E>
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
template<class E>
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
template<class E>
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
template<class E>
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
template<class E>
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
template<class E>
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
template<class E>
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
template<class E>
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
template<class E>
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
template<class E>
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

xchunked_semantic (const xchunked_semantic &)=default
 
+xchunked_semanticoperator= (const xchunked_semantic &)=default
 
xchunked_semantic (xchunked_semantic &&)=default
 
+xchunked_semanticoperator= (xchunked_semantic &&)=default
 
+template<class E>
derived_type & operator= (const xexpression< E > &e)
 
- Protected Member Functions inherited from xt::xsemantic_base< D >
xsemantic_base (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+template<class E>
derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class D>
+class xt::xchunked_semantic< D >
+

Definition at line 39 of file xchunked_assign.hpp.

+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xchunked_semantic< D >::base_type = xsemantic_base<D>
+
+ +

Definition at line 43 of file xchunked_assign.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xchunked_semantic< D >::derived_type = D
+
+ +

Definition at line 44 of file xchunked_assign.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xchunked_semantic< D >::temporary_type = typename base_type::temporary_type
+
+ +

Definition at line 45 of file xchunked_assign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ assign_xexpression()

+ +
+
+
+template<class D>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_semantic< D >::assign_xexpression (const xexpression< E > & e) -> derived_type& +
+
+inline
+
+ +

Definition at line 205 of file xchunked_assign.hpp.

+ +
+
+ +

◆ computed_assign()

+ +
+
+
+template<class D>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_semantic< D >::computed_assign (const xexpression< E > & e) -> derived_type& +
+
+inline
+
+ +

Definition at line 229 of file xchunked_assign.hpp.

+ +
+
+ +

◆ get_assigner()

+ +
+
+
+template<class D>
+
+template<class CS>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_semantic< D >::get_assigner (const CS & ) const -> xchunked_assigner<temporary_type, CS> +
+
+inline
+
+ +

Definition at line 264 of file xchunked_assign.hpp.

+ +
+
+ +

◆ operator=()

+ +
+
+
+template<class D>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_semantic< D >::operator= (const xexpression< E > & e) -> derived_type& +
+
+inline
+
+ +

Definition at line 255 of file xchunked_assign.hpp.

+ +
+
+ +

◆ scalar_computed_assign()

+ +
+
+
+template<class D>
+
+template<class E, class F>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xchunked_semantic< D >::scalar_computed_assign (const E & e,
F && f ) -> derived_type& +
+
+inline
+
+ +

Definition at line 244 of file xchunked_assign.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xchunked__semantic.png b/classxt_1_1xchunked__semantic.png new file mode 100644 index 0000000000000000000000000000000000000000..0167390759a2c56ea78c49a1195cfcc7244310b8 GIT binary patch literal 1098 zcmeAS@N?(olHy`uVBq!ia0vp^`+&HEgBeKXbuN?#QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=GUyJzX3_Dj46+eOM(+;v zZ_|4JDZb2JAhsvO%VljbSBU%JK>ff4Rz~@8D?Z-;`Qnz%%EgmkIt0qzZ07mUz27{&)9&YMl@{$^b^fvZ+nNgj zN{eoPdM7LxdGcdt2QWNbT!2BiJ@@uBQHGizeTIne?8p1#yg#q+-G6!gnf(^~=G!nN zs1pn^%s^evrPxy1s-U!Kl}xgF%gTe~DWM4f638Q5 literal 0 HcmV?d00001 diff --git a/classxt_1_1xchunked__view-members.html b/classxt_1_1xchunked__view-members.html new file mode 100644 index 000000000..d149de4b4 --- /dev/null +++ b/classxt_1_1xchunked__view-members.html @@ -0,0 +1,150 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xchunked_view< E > Member List
+
+
+ +

This is the complete list of members for xt::xchunked_view< E >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
chunk_begin() (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
chunk_begin() const (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
chunk_cbegin() const (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
chunk_cend() const (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
chunk_end() (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
chunk_end() const (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
chunk_iterator typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
chunk_shape() const noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
const_chunk_iterator typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
const_pointer typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
const_reference typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
difference_type typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
dimension() const noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
expression() noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
expression() const noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
expression_type typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
grid_shape() const noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
grid_size() const noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
init() (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
operator=(const OE &e) (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
operator=(const OE &e) (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
pointer typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
reference typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
self_type typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
shape() const noexcept (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
shape_type typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
size_type typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
value_type typedef (defined in xt::xchunked_view< E >)xt::xchunked_view< E >
xchunked_view(OE &&e, S &&chunk_shape) (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
xchunked_view(OE &&e) (defined in xt::xchunked_view< E >)xt::xchunked_view< E >inline
+
+ + + + diff --git a/classxt_1_1xchunked__view.html b/classxt_1_1xchunked__view.html new file mode 100644 index 000000000..713961adf --- /dev/null +++ b/classxt_1_1xchunked__view.html @@ -0,0 +1,930 @@ + + + + + + + +xtensor: xt::xchunked_view< E > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xchunked_view< E > Class Template Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xchunked_view<E>
 
using expression_type = std::decay_t<E>
 
using value_type = typename expression_type::value_type
 
using reference = typename expression_type::reference
 
using const_reference = typename expression_type::const_reference
 
using pointer = typename expression_type::pointer
 
using const_pointer = typename expression_type::const_pointer
 
using size_type = typename expression_type::size_type
 
using difference_type = typename expression_type::difference_type
 
using shape_type = svector<size_type>
 
using chunk_iterator = xchunk_iterator<self_type>
 
using const_chunk_iterator = xchunk_iterator<const self_type>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<class OE, class S>
 xchunked_view (OE &&e, S &&chunk_shape)
 
template<class OE>
 xchunked_view (OE &&e)
 
void init ()
 
template<class OE>
std::enable_if_t<!is_chunked_t< OE >::value, xchunked_view< E > & > operator= (const OE &e)
 
template<class OE>
std::enable_if_t< is_chunked_t< OE >::value, xchunked_view< E > & > operator= (const OE &e)
 
size_type dimension () const noexcept
 
const shape_typeshape () const noexcept
 
const shape_typechunk_shape () const noexcept
 
size_type grid_size () const noexcept
 
const shape_typegrid_shape () const noexcept
 
expression_type & expression () noexcept
 
const expression_type & expression () const noexcept
 
chunk_iterator chunk_begin ()
 
chunk_iterator chunk_end ()
 
const_chunk_iterator chunk_begin () const
 
const_chunk_iterator chunk_end () const
 
const_chunk_iterator chunk_cbegin () const
 
const_chunk_iterator chunk_cend () const
 
+

Detailed Description

+
template<class E>
+class xt::xchunked_view< E >
+

Definition at line 36 of file xchunked_view.hpp.

+

Member Typedef Documentation

+ +

◆ chunk_iterator

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::chunk_iterator = xchunk_iterator<self_type>
+
+ +

Definition at line 50 of file xchunked_view.hpp.

+ +
+
+ +

◆ const_chunk_iterator

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::const_chunk_iterator = xchunk_iterator<const self_type>
+
+ +

Definition at line 51 of file xchunked_view.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::const_pointer = typename expression_type::const_pointer
+
+ +

Definition at line 46 of file xchunked_view.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::const_reference = typename expression_type::const_reference
+
+ +

Definition at line 44 of file xchunked_view.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::difference_type = typename expression_type::difference_type
+
+ +

Definition at line 48 of file xchunked_view.hpp.

+ +
+
+ +

◆ expression_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::expression_type = std::decay_t<E>
+
+ +

Definition at line 41 of file xchunked_view.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::pointer = typename expression_type::pointer
+
+ +

Definition at line 45 of file xchunked_view.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::reference = typename expression_type::reference
+
+ +

Definition at line 43 of file xchunked_view.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::self_type = xchunked_view<E>
+
+ +

Definition at line 40 of file xchunked_view.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::shape_type = svector<size_type>
+
+ +

Definition at line 49 of file xchunked_view.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::size_type = typename expression_type::size_type
+
+ +

Definition at line 47 of file xchunked_view.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class E>
+ + + + +
using xt::xchunked_view< E >::value_type = typename expression_type::value_type
+
+ +

Definition at line 42 of file xchunked_view.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xchunked_view() [1/2]

+ +
+
+
+template<class E>
+
+template<class OE, class S>
+ + + + + +
+ + + + + + + + + + + +
xt::xchunked_view< E >::xchunked_view (OE && e,
S && chunk_shape )
+
+inline
+
+ +

Definition at line 102 of file xchunked_view.hpp.

+ +
+
+ +

◆ xchunked_view() [2/2]

+ +
+
+
+template<class E>
+
+template<class OE>
+ + + + + +
+ + + + + + + +
xt::xchunked_view< E >::xchunked_view (OE && e)
+
+inline
+
+ +

Definition at line 114 of file xchunked_view.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ chunk_begin() [1/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_begin ()
+
+inline
+
+ +

Definition at line 245 of file xchunked_view.hpp.

+ +
+
+ +

◆ chunk_begin() [2/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_begin () const
+
+inline
+
+ +

Definition at line 258 of file xchunked_view.hpp.

+ +
+
+ +

◆ chunk_cbegin()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_cbegin () const
+
+inline
+
+ +

Definition at line 271 of file xchunked_view.hpp.

+ +
+
+ +

◆ chunk_cend()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_cend () const
+
+inline
+
+ +

Definition at line 277 of file xchunked_view.hpp.

+ +
+
+ +

◆ chunk_end() [1/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_end ()
+
+inline
+
+ +

Definition at line 252 of file xchunked_view.hpp.

+ +
+
+ +

◆ chunk_end() [2/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_end () const
+
+inline
+
+ +

Definition at line 265 of file xchunked_view.hpp.

+ +
+
+ +

◆ chunk_shape()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::chunk_shape () const
+
+inlinenoexcept
+
+ +

Definition at line 215 of file xchunked_view.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::dimension () const
+
+inlinenoexcept
+
+ +

Definition at line 203 of file xchunked_view.hpp.

+ +
+
+ +

◆ expression() [1/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::expression () const
+
+inlinenoexcept
+
+ +

Definition at line 239 of file xchunked_view.hpp.

+ +
+
+ +

◆ expression() [2/2]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::expression ()
+
+inlinenoexcept
+
+ +

Definition at line 233 of file xchunked_view.hpp.

+ +
+
+ +

◆ grid_shape()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::grid_shape () const
+
+inlinenoexcept
+
+ +

Definition at line 227 of file xchunked_view.hpp.

+ +
+
+ +

◆ grid_size()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::grid_size () const
+
+inlinenoexcept
+
+ +

Definition at line 221 of file xchunked_view.hpp.

+ +
+
+ +

◆ init()

+ +
+
+
+template<class E>
+ + + + + + + +
void xt::xchunked_view< E >::init ()
+
+ +

Definition at line 123 of file xchunked_view.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<class E>
+
+template<class OE>
+ + + + + + + +
std::enable_if_t<!is_chunked_t< OE >::value, xchunked_view< E > & > xt::xchunked_view< E >::operator= (const OE & e)
+
+ +

Definition at line 153 of file xchunked_view.hpp.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<class E>
+
+template<class OE>
+ + + + + + + +
std::enable_if_t< is_chunked_t< OE >::value, xchunked_view< E > & > xt::xchunked_view< E >::operator= (const OE & e)
+
+ +

Definition at line 167 of file xchunked_view.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xchunked_view< E >::shape () const
+
+inlinenoexcept
+
+ +

Definition at line 209 of file xchunked_view.hpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classxt_1_1xconst__accessible-members.html b/classxt_1_1xconst__accessible-members.html new file mode 100644 index 000000000..12334b953 --- /dev/null +++ b/classxt_1_1xconst__accessible-members.html @@ -0,0 +1,146 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xconst_accessible< D > Member List
+
+
+ +

This is the complete list of members for xt::xconst_accessible< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
at(Args... args) const (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
at(Args... args) const -> const_referencext::xconst_accessible< D >inline
back() constxt::xconst_accessible< D >inline
const_reference typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
derived_type typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
dimension() const noexceptxt::xconst_accessible< D >inline
front() constxt::xconst_accessible< D >inline
in_bounds(Args... args) constxt::xconst_accessible< D >inline
inner_types typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
operator[](const S &index) const (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
operator[](std::initializer_list< I > index) const (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
operator[](size_type i) const (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >inline
operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< D >inline
operator[](std::initializer_list< I > index) const -> const_reference (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >inline
periodic(Args... args) const (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
periodic(Args... args) const -> const_referencext::xconst_accessible< D >inline
reference typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
shape(size_type index) constxt::xconst_accessible< D >inline
size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< D >inline
size_type typedef (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >
xconst_accessible()=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
xconst_accessible(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
xconst_accessible(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
~xconst_accessible()=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
+
+ + + + diff --git a/classxt_1_1xconst__accessible.html b/classxt_1_1xconst__accessible.html new file mode 100644 index 000000000..c0e99d42b --- /dev/null +++ b/classxt_1_1xconst__accessible.html @@ -0,0 +1,732 @@ + + + + + + + +xtensor: xt::xconst_accessible< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xconst_accessible< D > Class Template Reference
+
+
+ +

Base class for implementation of common expression constant access methods. + More...

+ +

#include <xaccessible.hpp>

+
+Inheritance diagram for xt::xconst_accessible< D >:
+
+
+ + +xt::xbroadcast< E, X > +xt::xgenerator< OF, OR, S > +xt::xgenerator< value_functor, value_closure, S > +xt::xgenerator< flag_functor, flag_closure, S > +xt::xaccessible< D > +xt::xreducer< Func, E, X, Opts > +xt::xscalar< xtl::closure_type_t< E > > +xt::xscalar< xtl::const_closure_type_t< E > > +xt::xscalar< T > +xt::xscalar< bool > +xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > > +xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > > +xt::xscalar< const_value_closure > +xt::xscalar< const_flag_closure > +xt::xview< uvt, S... > +xt::xview< uft, S... > +xt::xview< ucvt, S... > +xt::xview< ucft, S... > +xt::xview< UnderlyingContainer, Slices... > +xt::xview< E, S... > +xt::xcontainer< D > +xt::xfunctor_applier_base< D > +xt::xstrided_view_base< D > + +
+ + + + + + + + + + + + +

+Public Types

using derived_type = D
 
using inner_types = xcontainer_inner_types<D>
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using size_type = typename inner_types::size_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

size_type size () const noexcept(noexcept(derived_cast().shape()))
 Returns the size of the expression.
 
size_type dimension () const noexcept
 Returns the number of dimensions of the expression.
 
size_type shape (size_type index) const
 Returns the i-th dimension of the expression.
 
+template<class... Args>
const_reference at (Args... args) const
 
+template<class S>
disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+template<class I>
const_reference operator[] (std::initializer_list< I > index) const
 
const_reference operator[] (size_type i) const
 
+template<class... Args>
const_reference periodic (Args... args) const
 
template<class... Args>
bool in_bounds (Args... args) const
 Returns true only if the the specified position is a valid entry in the expression.
 
const_reference front () const
 Returns a constant reference to first the element of the expression.
 
const_reference back () const
 Returns a constant reference to last the element of the expression.
 
template<class... Args>
auto at (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
 
template<class S>
auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
 Returns a constant reference to the element at the specified position in the expression.
 
template<class I>
auto operator[] (std::initializer_list< I > index) const -> const_reference
 
template<class... Args>
auto periodic (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
 
+ + + + + + + + + +

+Protected Member Functions

xconst_accessible (const xconst_accessible &)=default
 
+xconst_accessibleoperator= (const xconst_accessible &)=default
 
xconst_accessible (xconst_accessible &&)=default
 
+xconst_accessibleoperator= (xconst_accessible &&)=default
 
+

Detailed Description

+
template<class D>
+class xt::xconst_accessible< D >

Base class for implementation of common expression constant access methods.

+

The xaccessible class implements constant access methods common to all expressions.

+
Template Parameters
+ + +
DThe derived type, i.e. the inheriting class for which xconst_accessible provides the interface.
+
+
+ +

Definition at line 29 of file xaccessible.hpp.

+

Member Typedef Documentation

+ +

◆ const_reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_accessible< D >::const_reference = typename inner_types::const_reference
+
+ +

Definition at line 36 of file xaccessible.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_accessible< D >::derived_type = D
+
+ +

Definition at line 33 of file xaccessible.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_accessible< D >::inner_types = xcontainer_inner_types<D>
+
+ +

Definition at line 34 of file xaccessible.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_accessible< D >::reference = typename inner_types::reference
+
+ +

Definition at line 35 of file xaccessible.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_accessible< D >::size_type = typename inner_types::size_type
+
+ +

Definition at line 37 of file xaccessible.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ at()

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::at (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.

+
Parameters
+ + +
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the expression.
+
+
+
Exceptions
+ + +
std::out_of_rangeif the number of argument is greater than the number of dimensions or if indices are out of bounds.
+
+
+ +

Definition at line 175 of file xaccessible.hpp.

+ +
+
+ +

◆ back()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::back () const
+
+inline
+
+ +

Returns a constant reference to last the element of the expression.

+ +

Definition at line 236 of file xaccessible.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::dimension () const
+
+inlinenoexcept
+
+ +

Returns the number of dimensions of the expression.

+ +

Definition at line 150 of file xaccessible.hpp.

+ +
+
+ +

◆ front()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::front () const
+
+inline
+
+ +

Returns a constant reference to first the element of the expression.

+ +

Definition at line 227 of file xaccessible.hpp.

+ +
+
+ +

◆ in_bounds()

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
bool xt::xconst_accessible< D >::in_bounds (Args... args) const
+
+inline
+
+ +

Returns true only if the the specified position is a valid entry in the expression.

+
Parameters
+ + +
argsa list of indices specifying the position in the expression.
+
+
+
Returns
bool
+ +

Definition at line 248 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [1/3]

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::operator[] (const S & index) const -> disable_integral_t<S, const_reference> +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression.

+
Parameters
+ + +
indexa sequence of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the expression.
+
+
+ +

Definition at line 189 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [2/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::operator[] (size_type i) const
+
+inline
+
+ +

Definition at line 203 of file xaccessible.hpp.

+ +
+
+ +

◆ operator[]() [3/3]

+ +
+
+
+template<class D>
+
+template<class I>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::operator[] (std::initializer_list< I > index) const -> const_reference +
+
+inline
+
+ +

Definition at line 197 of file xaccessible.hpp.

+ +
+
+ +

◆ periodic()

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::periodic (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).

+
Parameters
+ + +
argsa list of indices specifying the position in the expression. Indices must be integers, the number of indices should be equal to the number of dimensions of the expression.
+
+
+ +

Definition at line 217 of file xaccessible.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::shape (size_type index) const
+
+inline
+
+ +

Returns the i-th dimension of the expression.

+ +

Definition at line 159 of file xaccessible.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_accessible< D >::size () const
+
+inlinenoexcept
+
+ +

Returns the size of the expression.

+ +

Definition at line 141 of file xaccessible.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xconst__accessible.js b/classxt_1_1xconst__accessible.js new file mode 100644 index 000000000..6075e00a3 --- /dev/null +++ b/classxt_1_1xconst__accessible.js @@ -0,0 +1,12 @@ +var classxt_1_1xconst__accessible = +[ + [ "at", "classxt_1_1xconst__accessible.html#a340069d14699c36602889101dd1f932a", null ], + [ "back", "classxt_1_1xconst__accessible.html#ae8c11bf107fb871f054e2194163778fd", null ], + [ "dimension", "classxt_1_1xconst__accessible.html#a4b1a7ad9b1f0863c672782e53eed3042", null ], + [ "front", "classxt_1_1xconst__accessible.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8", null ], + [ "in_bounds", "classxt_1_1xconst__accessible.html#ace939a65a328afe7ef9241d4cc84b881", null ], + [ "operator[]", "classxt_1_1xconst__accessible.html#a125b98dd7a0ea4919f19b69256930ff8", null ], + [ "periodic", "classxt_1_1xconst__accessible.html#a34d4a20e640737443fd0a7266b77b2b2", null ], + [ "shape", "classxt_1_1xconst__accessible.html#aec0ae6f83f7e86f32e083cb6714af552", null ], + [ "size", "classxt_1_1xconst__accessible.html#a1a12c20a1915c492894e68c39053cd1b", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xconst__accessible.png b/classxt_1_1xconst__accessible.png new file mode 100644 index 0000000000000000000000000000000000000000..977dcccaf85aface2985716a60001c9ec9109c83 GIT binary patch literal 23988 zcmeHvdtg&lw!Wj@i!Z3iXk;kF$7rt#&4mDcrcn_qKcG!S4hBKdgS{VDEFKl^|r|j$O>;%^rsowbt{O!TKw^LH@0skKT#oSwd z>7IMiu*+V1WmVDd2CiG)>5V=5m)6QJ*Q}KUXCR*vzk6?6+Rlvnhc612uhYJH<%^@9 zhd+3^b4pxgim)O@sKI>j@>7pKaR0p@oT9{I5)%`9yTFfKF?Q|cr)=dZ5#UEFDk?gO zj0&|2HTNCRG&VLanFD@<%@2-UyZ>If*-g)rtcmSCTrggQRJHcFD~VcE(hOh9MJ~niDWYUZaW6+iDuJ^ksEL zGG{st(y9doQfJL$gbrvw8@z=3cPXQ93r6Q&DGUvjas!MyUHm?HPo9BgLL4CpeS16y z*(%2Z=4_UWbOl=SD(qRuG@2PQtifR0&uAsQF53~kK~zV$WIZOjDxgrsP~!|RkBLkY zY`Pi?3+VLIE}f2{z?y2 zsX#Oejp=z+;vEtK>tXk|OulvGbs_3rEGqQrn91-bx}3fuA(e_@f{Bj~jbe}r($30aD9*Sc z#%Emlr_FpEHMBJJSANn0=-8$4(7^|YJv8IyBD$ZgF@v@Cbf^+h*8FMG}7i~Z%!qG8RyjlapM=~?3jbARcki5pf-bad+jG~33<(79*v_#EBa zeEjM0F~lC2`a{?AZ_{;fm()1pJuONwzlCHYXbApb z>1IB?1y9e)AP=q(7(j!zyVZcL%Vd=COYG}o(L4j98c9tg2`&fYol0elb7ztwCh%D> zx81Ud9j}d8j)sUyE0sznE@<}zW+Xe-eISqjM6dA0ycKN2IjsScd!yBg-ExsDuM1xH z1XdrVa1LQ1Zz3An)gG*t-0;PJXR_Lr$_Q$X?9r1iVXd`(+uMF;!Z1T`P``ykV_gIO zWdZ}I8|4(?Y;<$3Uvnlj4wL}&`WkpT`*FA8emT!W*&8Sq^pgVWp=O;v=wB9WD|X0} z^m_M;oSsxaUvJ{`MI8YKw% zj^n(CO_3D@yJy&DA^Z4zN`EqQw>+uEvV@V)!OidyrAoGEO(5?> zr#1b*B4(goQ9nr3q6X~>rF_@$29LemHit3vv}Z{$F5q{$1o37US~BuSeSwU#>&BFd z{s?c9TFEr}o(O~GVzJyta%GTZe9iz9hbHlY z-%V#d?*0Skai=F*fYyI9TunJ$Ea=4fP44@w)=fr>9g8&w&7Qzlss2r)lU6~N&E>RJ zkaY@SqsKACp5;F-mk3%A_ZAwGr6<&s)+U~PA)4fI3=*X_0rs5Glu3@hfRc;QXnjY7 zXKt`5hkaGT0edvtec#APv%B#~py?vg_fk9>B6(abE@a}~YJ_viZp+s=s~zF;qBQJJ zoeR-O|Chl?PPgA*mombk%dq{cI2|q;+4vI4j~90(JLs z{B`-{XvOL>E2BH8^8}V8J4WcNN0_QyC*C!J8z_dnw%vj3YZ1#*&{V_bMtMNcgOkXE zoeH;kC)45yq#d=g4q*pJ7q%!+O{h5Ew4M-9vD$}q6!t*lM!N74V z1fI@@xQz3jCn`n17+qmnA7eVOj5@^x8VS9jc}| zclmQfgIxFAV0SDh=RH!zP_cZQRp=Nt*(_A48wym*ztsEA1P?=gQ)yrSQ%TZlEvidI z>=u=}<;%RDa+{AyN)PaYRG$|hLBT~5`!fnguU|II!a0js0;7H zC{ghD!H)4IHbr_ugzEE90|8l;{xH>fk+YpfE61j=>9di%mRIm7Ycuvd8jWoPBjm6u zw8g{5#+iZ$e{KQz-il2`CRGeqg7#Ijt6}&xspsYoOD-ymFGxu+do3 zm7kjd<>oBM!V4IdLrLZjt|m}i6S$2o)8=0Y0iE{c`n#>VU0KVuc+15-F)X2ClnMpxW^Z2{TX z;_Fr0Ij*QJWMfgl<|%j$jShZ6fdTvu$)kkkjmYyDv zPF&wBjTvu$@08<$=n0CJflV8yS`S3F{!%vf@>5&x6w&*K>bmQ_%WGc(90)f~)!&&_ zN>(Y~1(av*&AC0#}0Y7LBr|BR|@eUa^U6 z)CS0&XKbD_zUL*u-WI=wMcNi3DdCS$x^h8-TKSp)mR>t2NjTCayMJZ62W+n=HM{`xIvtd7@9%3SKL6UrmPWA(~>SqAOmZ zRJvf}WFmxob$W_uKuq{Jy3Dl8WlVHklTnx-%TAhEvs>=9r zdo^H2aWmwL&}e7?w$7&HmGP_Xo4QN*q61*4<>6l$@N;?BLNw%u&El`PIwy4nH;~&p zn7`Qn`-g&s3Bdgkuk}ukx|Dpl_UPrcu5r-+g~&7M+ujbuAX6oPmuvcMiT}>r;raNu z9N}5-aWGX%=5iQ12?~K#W^!iPpR~<4##{^#dy5Tvbpjd^tqZrfz!w^-vnXwvfJ`*% z%QH|jOefWGIw96dnX2xgbtmpRueIGy?JQnN zNwt25e@V#q^i`j88K2QNO~t9T&H;HJU`P+bUJ;oek6Ep4w4B%UNx2D zUnAkUFxF)?3y9B&R}A%S7$`AR&mtZs?m&4#>(k+z3N)p%rHx8ml*j`!;Q9lLo&_i$ zj&#llGI=pNXHc$jw#IRZL3dz%i-M-uB$RBn&3g+V38yIS6oD~Fz- zU1cbWsv6D(KI>tPj2ICLUZW6fCF@}GpDRnDv?-P9+Hfq4ykcfndJ#?p;9uCr@MrE6 zTJpdxzE$D#`Lp-TpRjUkFJAzxYR1I&@(UHIJ8j$lR5-eCP3GZmYA^pF$p2sX&`R9(FayKw$rBYBAzE=N-wj3;Q7_gb)`?E(|QB~b+ z$#pM;76f&P41R1gt7Rz3zupp3=AY?XFx2jLMk56yGT`E3TIJ8P=vW(0eMX#O-hBV5{IIW}P zN)(0TYH4|cn0)nmBvrCfmKS|M-7cayFEbx162$6<7T7oVd+cqgX_ziAcQ^!M5tBeH zSf$AnM-mIF%3WXMsq}WVkcP4{YEG~(&>wfa(Al4YpOwPPB+cdgzu;oYlcW$9=fEe$ zm{(I(Ufm@o#Gs_wK20V=Y-aT%X6iO1MX^!5!jY3*Vj2635>pZ5P{~%s)d)XuQ@;xb z7DyCVS*_Vf%O)A;G~+5=MoHdaGY_=rEyQ=C<-@4L5+WXuVrEl(pjRhg(G~l{TNeH=a=_WCa zOJ5|c!-&u#zv4TYcKA!l5v&X30no9!Jk zC8ksmZ&lIE9SO-QCBu^loUDz1M|bIVlsXhmfqlbCXz`ngkMXttL(K431E#xU;`yWA z({#JxBIPR}s$7Oy6w(45eQn^GUd4X>8*ympFl-TH)n+kW5?zc#qads57;ihZW9et4 zGa;E5W*ZTCWuB7U>k^02u}Zqg)Pf(s7%4N;Tv7&g@cN|EKi(m^B|S_ zX)f8=3=>e;djTfY&mrQf=7^xa4n}`fBk?|>F=>%@Sq7QCd%^q{1}!LX2Jx*=!ReSH0pO8L4V{BBFDO1K14vH zNp4l8{2_1oK=2CndX?J~ws{-P@gYeV>Px@HlaZ2e8g(XD$4h#jGaF;#RIzX#*$BN_ z@rZRMY0z0$=l&KdJYB;%Ys!#}d?|W6EwDg$RwU;~;QZX@Ky2yHVdh}6gu6LB1HN5e z>OMYlO_Cn4zm8ClblnU3Vj9^_jV$mzkf7;2Io~oh_-1z<>3lvXtS=}ewV*z#?(+7g zy3!pde39-X*AviUmb5DsdMD|9ro7E!tnO-B;%}N))5Cu0hUQr&`#3Iww#&GW6Fbx- zGDziNbNfFp+PJL5zq1 zxPCjmlyOLRnY2$|7DJhCeF23hQSv`^cPAl*?EDg*&?Eg;aYKt8FmQ8r_4hY3fFq@U zB5?2w(4ArKPDhb{?$Rq}M`3xOq&=wCfOZ#Pbm%IG(uw?8=a!$+3*(c0OFO(5 zDTzQ@La?bO=ivZZ!+{nCd-8x~91pjE^tiD|+$LjsKuQ~4kW<=l&Mq;4u$H-TSldbs zn6A1$w^obl>XloZ$MLE1`ljMa`Sb#|PjN+ov_qoKEZ>ON-CY`N2=#sW?e7U5x$4DiK38wTfMrFvTn-fRX)F zsY55(rTExdN59U@-$y;?bZh1%1zwZS9QI7F(Xx+ta@&Q;e&m4$-$4=E#nt}sB?f}N z;zmBdI+s3=*QjWrLUWv(Qz(oY4dFn&j(wdl;O-#2FPp7IIVQ57oNQ8+emF?e7=u5$#LWqdvf z#$#o2O(=+bK|fdiI#|SqMO4hkI5|zAKWRE_25}tS4|6#lp_UiKhXOqKK(m=_+zaE? zlck7XPqP0lkT|OFp1NK7>z(H2cO{U>st5%VDSri8tF1bXvvc4?Ias30!l*6CM92yG z!Sd-K7w9`tfq&(R_Uy&C$rCs=+1uT1Ii+oFKb_g{io|7VmjSY>yOHIin=Dg7X5X3c zg%8cHxK-{Fp3(rK9pBe;M)-BL&QOVpkzfD=N5aAe%!gqjJX63R)xTHs80p`L&8%Jh zsb$>gD&WV?f?MU*+jz*ja_uSgc4PzUAnB+yJwD362i))4u9%9P1Dt_dvJ`HH4fWrJ zhYdZE?iZSAc}Ien!DqT(Y!fcT7jpDlFhDxk2m=jDXE?waYDj0~+X#P@6Qpm9%x`O6 zs4n!{?zeLP6Ad-P_5}T@+d9^U1p(E%e442GeabTIf%-k1YLW^2KF|T5hdp|-6K#An z1teS=Q9j}&kQWQv%_hlUziOt(5jYGfXucIdcg+bfwF1!R{~A*lJwSEPJR!cZ(See z67xMtlPQ`kua)qe>>=M44HvSOW9y49fcrMw?ml`EhDMjP?4w!_GNv)67Ey@z$=~oT z_U|4jxnHoDl-*EoGW?lrR8Ob|gH9A3#<}LS)O=3y7|H=d6 zUGNX~wtjpjG6p+^b<%2R0YeQ}5cr7=P`tjLBc`+ulwm_Rv6b zf`Ewu*-%@nJ2gFv&{QOBxd}`_;15#y-Qpnj91!@Y!nip0+!*CitM-|Uo6PA_m!59boGmVmGIOJNuUMw_?u#9_YYWkuPuLl?$EP(BKD}*VKtyQetq*KuR z&pEONYCU^E{`E&B6)5$GR0#3T~?(!N$Boa zHXnmYGwGlkj82+{*0mwnbWN#D#y{pb$`BZ%eNII{7OBnx;xaWG6p0%>Pd zjj3c<6Qk2w(z4iBogEAkyCb*Oq>%w=g2nUV4guyjdx8OtGMQ=pfE{pQT~GFG?&J>g zTX=9RGWuh6!*_xz-4(5xy$3ABD3Tg%U)S2ILWBW=U`!XQ1d=qTdx3@;NL`~nN2n(!0d-zIx2r8m6FIfoL1~g^v)^LxM4YUu5@`MAJZYDs2zb38!OT<$Twz}@asSB`P)88i z3);d33}nxkfMGJWQlaCH1xYB<04sv_jqajke;Hpq1x5(eIc1)s1Sj#V+UOw2)r1%X zU-UW$3lfCW;MjByq#Cp4B*pXMRE#*0{I9aZX*-hkgN%VrJOt!eO*s38KB@pJh|`wi zTfm^#w@5)q>=bkWI^FahC>IlMuWkUf1CLA$#-(cpoZs9Nyn;R?KL=pUw{Y1{`7JD%j9 zD;R!Pib^@B!9v_A$`J8H8 zN^JtR*He9*bR$5S)0^*IiAw@iTrheOSS>X557kE|#c-?2h5LC!G*6?>N%Y3un5Ph$MFoV! zUgthyR>K7hF!$~*P>(P>+$5Fqv7BXY5AUi*lRt=2%cjWQj~5XZn`R@9AusF8>*gZg zL1la9_b3UUmqamWZr(Zdmw2oWR0T|A7!K>aMIg?VCe-G}G4pCjh^n(FD&F3`+U*v3~~)2(Fgi~xgs8XsL%^aVp=7`dgGjO?suq6oS|g4 zsaJ4XcEw*mvear12(km!e?(JP>*g@YMmA7g=Xfs0HVM~ICn7D^zQghUyu1t zG8C4C%$Qu44=o90JggHe#^5?W-#od%kzF>)agw@FQQ)kL6XC1Y*c_)~uBoA;dNQc= z8d5TVR^4u31*2XNV?qWURT0=#q0)&&W?nS4%#};zOl8%BgbQY5@H#O5!U^wZ^vD5U z;%M>=Gg7Xss;Z${X~P&>u4Xk*EKr0jK;&-mWyXr%o8v;chx@4hdfP%apYbqDpSNge z)3C(hbcFdG+L`W0ch5Lz>F40y;(`oA}yT5i#A2O zl1RLVQ9X5i+ypQqx1@KEx`v;C9mKUMJp2@@a938s=-A&mUw?9PA>s zU%Qvvqgt*jzCt*c>VRsQ{)2%Ha{`UvU%0VlqX_=OZV2 z9X*)Bv+0LWtfuEos#Q!Iy2L3fdXP2rSm>a&oDm5~7}*JP{C=K)GJ3{J_BY{E8sY>S z4o|vPxB)|)2%Lsa@BmPPy!^vig+GMz3fE&uw>E@F{cis4(FgwJvTyI;hW|fw4fX~& z0^j^{cd+cn3ZnWvgCnOKkpmKEZBLHmJ1E9jOd8N1+F`basSNGKPX^9{tgqT2rPTCo zu$v74{^WsL-}hDQ(bc#%|L=pnw`Hx>Fsi&kBtjY(wXx2j@@DOwg+~ z85Q>ayhT*;@G7a{XaP*4q?kY*Wl{u*un_2;>yo~a z#E_CnkLVwhZ%s=)x70uUXYeix*cb;wxMAulDKUZwt3q=?m?bDk+yz}scdYx6w@Vu^ zcSs-c7V&^1c8k|C1|!TE03$i>?!Dr&BE5Ze-?}pG*QD1;`vn?CNBcF?{@bLMkVC;* zF;IFiG_!0GN?JG1+Q_qMjl5R;OWO6OHbt`d3J7e&54O=O#}mt#*+e5TahkwHq?`6= z=cA+mj!7JuNe106<6RE0b(YD*bU&QvO zfeC}p`V(&a?5>-qAc32= zI+?dN{4I#{FBZg+)dJ$1EZT`0$X5zylMcAcckyW`Vdzkm3|PX(SX1QlqGHk@h*jK( zSt4i*lpF^T^gYbHF_q)TQ6zdVaYkH;IoZU;70>F26O(0GG}mLcdP_d!?d;h{2r0g2 zVau1&4@$JsQ>^>6{JK`gHpNs?Plo9)ini+SwQY5Y)`sY8u&MiD7Nc(qskw`o1DKJc zwCh8QX>H!$+b;S)@y6fK?7Yo6WrbtMItKzz! zv&WzJ+ASRxyQKz7)BQV|`qrF`Bo%lVBv#AN|v< zmEPd|@v&3l&V~&poaKC=KR(K5qAvH06QA)*w@{q%ONh(REv?4*jh)j+=zEhS{I?DF QfZwvEDX-PM`sWY-8?fR&I{*Lx literal 0 HcmV?d00001 diff --git a/classxt_1_1xconst__iterable-members.html b/classxt_1_1xconst__iterable-members.html new file mode 100644 index 000000000..45b5aa769 --- /dev/null +++ b/classxt_1_1xconst__iterable-members.html @@ -0,0 +1,180 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xconst_iterable< D > Member List
+
+
+ +

This is the complete list of members for xt::xconst_iterable< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
begin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
broadcast_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
cend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
const_broadcast_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_layout_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_reverse_broadcast_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_reverse_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_reverse_layout_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_reverse_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_stepper typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
crend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
derived_type typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
end() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
end(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
get_cbegin(bool end_index) const noexcept -> const_layout_iterator< L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_cbegin(const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_cend(bool end_index) const noexcept -> const_layout_iterator< L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_cend(const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_shape() const (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inlineprotected
get_stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
inner_shape_type typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
iterable_types typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
layout_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
rbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
rbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
rend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
rend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
reverse_broadcast_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
reverse_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
reverse_layout_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
reverse_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
stepper typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
+
+ + + + diff --git a/classxt_1_1xconst__iterable.html b/classxt_1_1xconst__iterable.html new file mode 100644 index 000000000..6032ebd51 --- /dev/null +++ b/classxt_1_1xconst__iterable.html @@ -0,0 +1,1715 @@ + + + + + + + +xtensor: xt::xconst_iterable< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xconst_iterable< D > Class Template Reference
+
+
+ +

Base class for multidimensional iterable constant expressions. + More...

+ +

#include <xiterable.hpp>

+
+Inheritance diagram for xt::xconst_iterable< D >:
+
+
+ + +xt::xbroadcast< E, X > +xt::xgenerator< OF, OR, S > +xt::xgenerator< value_functor, value_closure, S > +xt::xgenerator< flag_functor, flag_closure, S > +xt::xiterable< xmasked_view< CTD, CTM > > +xt::xreducer< Func, E, X, Opts > +xt::xiterable< D > +xt::xmasked_view< CTD, CTM > +xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xdynamic_view< CT, S, L, FST > +xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > > +xt::xindex_view< uvt, I > +xt::xindex_view< uft, I > +xt::xindex_view< ucvt, I > +xt::xindex_view< ucft, I > +xt::xindex_view< E, I > +xt::xscalar< xtl::closure_type_t< E > > +xt::xscalar< xtl::const_closure_type_t< E > > +xt::xscalar< T > +xt::xscalar< bool > +xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > > +xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > > +xt::xscalar< const_value_closure > +xt::xscalar< const_flag_closure > +xt::xcontiguous_iterable< D > +xt::xdynamic_view< CT, S, L, FST > +xt::xoptional_assembly_base< D > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using derived_type = D
 
using iterable_types = xiterable_inner_types<D>
 
using inner_shape_type = typename iterable_types::inner_shape_type
 
using stepper = typename iterable_types::stepper
 
using const_stepper = typename iterable_types::const_stepper
 
template<layout_type L>
using layout_iterator = xiterator<stepper, inner_shape_type*, L>
 
template<layout_type L>
using const_layout_iterator = xiterator<const_stepper, inner_shape_type*, L>
 
template<layout_type L>
using reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>
 
template<layout_type L>
using const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>
 
using linear_iterator = layout_iterator< ::xt::layout_type::row_major >
 
using const_linear_iterator = const_layout_iterator< ::xt::layout_type::row_major >
 
using reverse_linear_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
 
using const_reverse_linear_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
 
template<class S, layout_type L>
using broadcast_iterator = xiterator<stepper, S, L>
 
template<class S, layout_type L>
using const_broadcast_iterator = xiterator<const_stepper, S, L>
 
template<class S, layout_type L>
using reverse_broadcast_iterator = std::reverse_iterator<broadcast_iterator<S, L>>
 
template<class S, layout_type L>
using const_reverse_broadcast_iterator = std::reverse_iterator<const_broadcast_iterator<S, L>>
 
using iterator = layout_iterator< ::xt::layout_type::row_major >
 
using const_iterator = const_layout_iterator< ::xt::layout_type::row_major >
 
using reverse_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
 
using const_reverse_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > begin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > end () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > cbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > cend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > rbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > rend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > crbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > crend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
Constant iterators
template<layout_type L>
auto begin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto end () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L>
auto cbegin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto cend () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
Constant reverse iterators
template<layout_type L>
auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto crend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
Constant broadcast iterators
template<layout_type L, class S>
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Constant reverse broadcast iterators

template<layout_type L, class S>
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
 
template<layout_type L>
auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
 
template<layout_type L, class S>
auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
template<layout_type L, class S>
auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
template<class S>
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
const inner_shape_type & get_shape () const
 
+

Detailed Description

+
template<class D>
+class xt::xconst_iterable< D >

Base class for multidimensional iterable constant expressions.

+

The xconst_iterable class defines the interface for multidimensional constant expressions that can be iterated.

+
Template Parameters
+ + +
DThe derived type, i.e. the inheriting class for which xconst_iterable provides the interface.
+
+
+ +

Definition at line 36 of file xiterable.hpp.

+

Member Typedef Documentation

+ +

◆ broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xconst_iterable< D >::broadcast_iterator = xiterator<stepper, S, L>
+
+ +

Definition at line 63 of file xiterable.hpp.

+ +
+
+ +

◆ const_broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xconst_iterable< D >::const_broadcast_iterator = xiterator<const_stepper, S, L>
+
+ +

Definition at line 65 of file xiterable.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::const_iterator = const_layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 72 of file xiterable.hpp.

+ +
+
+ +

◆ const_layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xconst_iterable< D >::const_layout_iterator = xiterator<const_stepper, inner_shape_type*, L>
+
+ +

Definition at line 51 of file xiterable.hpp.

+ +
+
+ +

◆ const_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::const_linear_iterator = const_layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 58 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xconst_iterable< D >::const_reverse_broadcast_iterator = std::reverse_iterator<const_broadcast_iterator<S, L>>
+
+ +

Definition at line 69 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::const_reverse_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 74 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xconst_iterable< D >::const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>
+
+ +

Definition at line 55 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::const_reverse_linear_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 60 of file xiterable.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::const_stepper = typename iterable_types::const_stepper
+
+ +

Definition at line 46 of file xiterable.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::derived_type = D
+
+ +

Definition at line 40 of file xiterable.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::inner_shape_type = typename iterable_types::inner_shape_type
+
+ +

Definition at line 43 of file xiterable.hpp.

+ +
+
+ +

◆ iterable_types

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::iterable_types = xiterable_inner_types<D>
+
+ +

Definition at line 42 of file xiterable.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::iterator = layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 71 of file xiterable.hpp.

+ +
+
+ +

◆ layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xconst_iterable< D >::layout_iterator = xiterator<stepper, inner_shape_type*, L>
+
+ +

Definition at line 49 of file xiterable.hpp.

+ +
+
+ +

◆ linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::linear_iterator = layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 57 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xconst_iterable< D >::reverse_broadcast_iterator = std::reverse_iterator<broadcast_iterator<S, L>>
+
+ +

Definition at line 67 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::reverse_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 73 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xconst_iterable< D >::reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>
+
+ +

Definition at line 53 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::reverse_linear_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 59 of file xiterable.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class D>
+ + + + +
using xt::xconst_iterable< D >::stepper = typename iterable_types::stepper
+
+ +

Definition at line 45 of file xiterable.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ begin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::begin () const -> const_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 464 of file xiterable.hpp.

+ +
+
+ +

◆ begin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::begin (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 571 of file xiterable.hpp.

+ +
+
+ +

◆ cbegin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::cbegin () const -> const_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 487 of file xiterable.hpp.

+ +
+
+ +

◆ cbegin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::cbegin (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 599 of file xiterable.hpp.

+ +
+
+ +

◆ cend() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::cend () const -> const_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 499 of file xiterable.hpp.

+ +
+
+ +

◆ cend() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::cend (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 613 of file xiterable.hpp.

+ +
+
+ +

◆ crbegin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::crbegin () const -> const_reverse_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 539 of file xiterable.hpp.

+ +
+
+ +

◆ crbegin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::crbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 663 of file xiterable.hpp.

+ +
+
+ +

◆ crend() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::crend () const -> const_reverse_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 551 of file xiterable.hpp.

+ +
+
+ +

◆ crend() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::crend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 678 of file xiterable.hpp.

+ +
+
+ +

◆ end() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::end () const -> const_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 476 of file xiterable.hpp.

+ +
+
+ +

◆ end() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::end (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 585 of file xiterable.hpp.

+ +
+
+ +

◆ get_cbegin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::get_cbegin (bool end_index) const -> const_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Definition at line 688 of file xiterable.hpp.

+ +
+
+ +

◆ get_cbegin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xconst_iterable< D >::get_cbegin (const S & shape,
bool end_index ) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Definition at line 702 of file xiterable.hpp.

+ +
+
+ +

◆ get_cend() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::get_cend (bool end_index) const -> const_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Definition at line 695 of file xiterable.hpp.

+ +
+
+ +

◆ get_cend() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xconst_iterable< D >::get_cend (const S & shape,
bool end_index ) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Definition at line 710 of file xiterable.hpp.

+ +
+
+ +

◆ get_shape()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::get_shape () const
+
+inlineprotected
+
+ +

Definition at line 732 of file xiterable.hpp.

+ +
+
+ +

◆ get_stepper_begin()

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::get_stepper_begin (const S & shape) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 718 of file xiterable.hpp.

+ +
+
+ +

◆ get_stepper_end()

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xconst_iterable< D >::get_stepper_end (const S & shape,
layout_type l ) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 725 of file xiterable.hpp.

+ +
+
+ +

◆ rbegin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::rbegin () const -> const_reverse_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 516 of file xiterable.hpp.

+ +
+
+ +

◆ rbegin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::rbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 633 of file xiterable.hpp.

+ +
+
+ +

◆ rend() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::rend () const -> const_reverse_layout_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 528 of file xiterable.hpp.

+ +
+
+ +

◆ rend() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xconst_iterable< D >::rend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 648 of file xiterable.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterable.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xconst__iterable.js b/classxt_1_1xconst__iterable.js new file mode 100644 index 000000000..d55a43b8f --- /dev/null +++ b/classxt_1_1xconst__iterable.js @@ -0,0 +1,19 @@ +var classxt_1_1xconst__iterable = +[ + [ "begin", "classxt_1_1xconst__iterable.html#a6ab0e76125fa876b97b53a813a3d4713", null ], + [ "begin", "classxt_1_1xconst__iterable.html#a095cfd6ccf0bb5696073af2c8536f8e9", null ], + [ "cbegin", "classxt_1_1xconst__iterable.html#a8e90c4de11331d25fcf27944833280af", null ], + [ "cbegin", "classxt_1_1xconst__iterable.html#a212ee6280ccfa5814e4f2c16d1880a84", null ], + [ "cend", "classxt_1_1xconst__iterable.html#a6b266693e1dfec18e39baf2d3b34c20e", null ], + [ "cend", "classxt_1_1xconst__iterable.html#abc45bc962caf2ab0978a775836c6b3b8", null ], + [ "crbegin", "classxt_1_1xconst__iterable.html#a425b0d85a0ffbb1752c6f45f211c471b", null ], + [ "crbegin", "classxt_1_1xconst__iterable.html#a6fdbad0911ef9a473a18f109eb33a7ba", null ], + [ "crend", "classxt_1_1xconst__iterable.html#a804a4b52bdfa60d1855f9081fb11fb13", null ], + [ "crend", "classxt_1_1xconst__iterable.html#a851fb3a86aacc069921e8719ec2a21e9", null ], + [ "end", "classxt_1_1xconst__iterable.html#a74906f6a3242a5a2b001e6a534007589", null ], + [ "end", "classxt_1_1xconst__iterable.html#a8ca771d1dda2e42203cfdaaebfeba601", null ], + [ "rbegin", "classxt_1_1xconst__iterable.html#a52be134ecb3d529fddf7e8ba888a59a0", null ], + [ "rbegin", "classxt_1_1xconst__iterable.html#a3671f77843974f6962cd425318c0ef00", null ], + [ "rend", "classxt_1_1xconst__iterable.html#ade7cb42ea93353d00bbb739743be090d", null ], + [ "rend", "classxt_1_1xconst__iterable.html#a634cb122a80a40c5c38ff2b4527e3f26", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xconst__iterable.png b/classxt_1_1xconst__iterable.png new file mode 100644 index 0000000000000000000000000000000000000000..74bb689324c3de566f9298587add1a737921ed99 GIT binary patch literal 36269 zcmeHwdt6gjx^_>s+K#ofI-}E~W;(6YSbh|i4Y|>5R#CD5Fj^l-QNm#-1s|ZzWJu@nPdLZ zguT~Zd+oKJ^}Nq}*$4kKZu9(~J@>Om9(iQ`mN$R*&LfXJ<$UCk$A0zrEbz-BUG{G9 zPw0QX_3rBs1cCqd_BrxOzOUT)o0qbF$&mDRc6Nf_*Gsp51^)I#?mKZ?9|7M-KIlhF zZ$I+L;f-5<_u9LK|6x&^x2raCU%j;>Q9ID-XARH(+27}V_LVoc;H{$YlXYQ<%AA)r z(4T+$@!5~k?-+9;G;8wPj=bpZzF$N)*AfjrFifu z>7G4)_^ZDf_$)5?TM-F-maGgmG1gLXZt$lYa`5Ti_}XMkQC|gr+FAiV%S2C19R6zO z^X0+c1SMKr|MH>D7TazPANM2%5o}$1^8p9O_88cDXrX9yXpR`$k78ATI40& z4enN3#6T-8ogY%xobnvu6k|7M5E<5`KvSZz;C87i;XU^}1#XOW!Yl^2-Jp_1d4C z0F4bbbzY_6Ov(weno=!rs5V!KZG-J}HtuZsT-;R-Uj0E)tk-V0e@C9FhqTr9B+PCM zE+x@WVZPSLB)rBLHeV{;VKp?Kssx|pNZ7!S4v9NQ>Fa9N)ebHrKiibw@B}8lu)k5z zoM>+J#TnXuJ9%THPiyofxp8w5Pv9)4zOktc{waL3Qf~Z0 zZpmUnKA8aeui?xloj#nd$PLw4)}oV@vWr!#KlwSx&$;nnMT9)9QS5oEwSkxBy zzIzY7E4x-WP~U-je74}@l*Ga$3o?rBTzua_&p$o9h?FsY==}%1+L_o}dw+Z52R*u% zaO&Yj|C!;vSio)HIrrP@+V-{I3Dc_`^&Q&Uc2bhXx-&hR?JTIS1rMvSeJ6OP$?4Ui z$M(*x#pBnZY#Z5FF$%?G7A>(@B@*zY)9~QHNR$nn&t!t9-y(@(gL!aqld-m(S@av~ ziJ1;?7U1<@hM-U-<~{W12mX_k0gif$rJHDB@_;HoXa;l(T&w}ir>HMdluYJad0NqU z3sVl5(i_Zow=m^^`@8F=aV)#>>>J5MJX^f@v@1O2NJuv}J{ncC zRcoyAq3J!WII>b2;w7P9K{19-?ZV?(fo{JaUDwNfRM_#ER_r_UccJ}V$U;AYbp`_S zBK_S3UW3z>c0FHMMRsH8zF8i3$v}r!K|d9OqN&%S(7Gm+!RjiBhCVpm|LXu9+M9+C zyygvfz483lSiZb+CeQY~DG4%aHGF8P#s$XK_ZW1|(8&#~l1M1?z>?crJmgPNmT-&` z$zs7T{i#O`6;|(a^h()~)_0t~!IIi%TiUeLGf?R){m4yk5<=fEl1k1{eleW7Z?wZh z??Qv49kxaKYeI}TjaEDSvb8Y5HAD^EtJ;VncGtQ%(5nc%Pxo_1IWLm>Z1yrLUn22s z8S5zBwaPcRMxfR5p=YP`v4r}2a5vebeLS3^R0s(KdPj=(I|QUjm!0Ok#-Y!~VZL>h z6WWCK-4#rCnBYp9+h%D}f9I0&wcTQ4txImT6)$ZHZCD1yHTrQDtFYm9#Y_DWDf?3v zG#$pNbz+I|xO302r!?yz-}9O86to2Ld%XmUJvD@YxlSk0=_mR^`%DN3L-)_M_qzml zttD2OR29=<*7~ZF8xR7`-{R4FQ>6cj!jq$Qi6s)&cXFW+$L~qtTrH}>G`)%SMtY5_ zd^L=|W*QFKCLlp+c<1iQ;EZ4F+t1n`uer%&T1_LfSRhX)pLBoK1pR{VKTV1(l)D2b zQt0(*`UaJ+I*`e+xrSG>@EBx5W8PhM37MkyUe6Q|Y>VmdVSR)AJr;@xs_{olDJg-y zYdot5)&y3Vx|1>ZKrVlZME&zuhccOX}@ez zD~Q*K?txOAwJ*NF`0{{FC`!;8z0ecfXBZTEV3$B46jm}zbb;3c19yE_w0Du15LVyq zGv+#*i8HiY-_U0-8BB43#fjV~^?l`QlU;H^pQtT&Bob@m$l@b7Is{E|3G_|zC>t{b zXDN00oU3SYc8Wx@jklXt;~FldoSyW-GS5fTaXLfq!e?}ffq5da6eLi!|0jM7)U>Om-z4xL#;BJ=xaX)h$@cbk?A zKI&abXFz}KXnYaeU^c1?3&{poYP9shRNugsK%>`N^?_H@wv@sW-swRWIPe4g^99cd zAhV~Ur@PqcJD~AZl3v33qcN49`mKl;Qr6LHOCgJh!ll!(O30khZQ~9O;kxC?p4`?- ztHP4tF@uH6`jAEcw4f2dEBzAI6+YZEU)?t4UgJ0xT}fZEt;K+_ni;nKM$h1UKD5iv z*K}D2cLeU{Ycf03h&%E5fn#c4PyB%YW^ss1&H59Q8SRldUD}SnA(pb{Xac<~VJmtm z00w-A@#2J{AuG>HLLpGhHr zVm$9x$smD;OsUECj2YOi0T zM0E4}!H$3%kkOvX=kG$Hgx1j&cq`rOaao+Jd_((^=}iROO=Y}Mo#+o_2JXpy7EKoc z+~6N0g?GM-cMb>Qoer1x7?#a?GPy*X+Xt3kmEZ5G>&3r-X{zEPyAqItX^FmsR+?`` z(|K!+B#4wy!0%V&d*ty$TD4ZYrB0jd@75YP=py|qh^BtA)N6CDQp@}UrSxxO7zqEd zSa;7n8r}1OH4|fGS@d*ht=6d3%3RRs8oXQOKXGrDT^gIFe+NUWLnaoUU-k1P$;Oj9E_Z4xsbLVUlgmove_AkjKIyA`YB)sS&-O%n-BOsYqDwKg$aLqNmlPd&BC#v?AS1_6C-9g%- zXbb$d^OU`VCgk)>B=OX4*^q6KuUk2A?9bX9G1M0btV+x!?zgQ)*%E1}A z1p?iX)VSdgi&Yy_SDX+CrL(|BcR(nJL7@uu|C3so#GgiiS3=_ zIg*0FYF3=KhoF^65JSZ-?wXTK_hO6Q?-vz#5V6A<5Q1i~+9Yq`@q+f?Sj^YNmAZIW8J;x%E>^Ig#P3Lm= zGqI6b*qRRZzxO<=Wq|D6f50R!93SBSes|NWj{_3=;sZ!%TYz2L4k)K$r#XAV-mQNL z0=C#d#zzz8+7dYgY%NM?=!6MgY!^cQ5FmP>zs;EZb@PnB&b12-v%sO;Z=w;CP0FAV zdrkYjlQPu~e3V=_(UGjT?(Yb={zXB?WFxSC0SV+fD)hMvVJJVBvMFaG&koWhW-jQB?zP9~^u~CNhtq-nH(YL_( ze>`+atkw{;FI>-#C|1MV^Gv2h5_RM;pqSn1{Lq5|Q~pbVY~-O{6sAfg9{@XK_2aXb zeLrWj+y#u1OLppkktq^bla5~j*66O+el_s)hK(l$0Et4*T2Ujja)7X7)QXz-=-%RQ zF5R+IfsOJTDr-cr+e;UpWZq@TB@zzhaZjE|qWS`8TNE0*Oa|BtuoP~1@c6(dV_l+| zy}s*;UIk9TWXAi>AeFHLevz%2k&D+`i~Jr9{V@HwYu(T>vhXSO8@_gl(EsL)*Qwrt zSV776th*QGAu*YEPfu@N=zcX>t7{h7Xiq>T%lWZ>`zn8)Mtm*4-*3E0kouG*x2F!- z(r|tmZHYq4pj$T?#6<(TA&n!#n5S_Jq$G#R5*9OtXD)myuxATv%|L`VQRkdRzwRCE(ga>jnvdf+ zmlRRGrK!oS+NgW+EIM9~c1(E?`1m*!>kD~I(bu?;rVYrq6Ly4UbN41>Glms=y_)!6 zhq*J~kxKfm?gR4VM_I23hcP2WU3Wa3G%uMNOXhzW5+t+cQs&*y$H&6~OtADKuddObqoK?v2nj;h^(HA* z_@zuxuFzUIVXV~y(N~P_dY;Hq?517eioIW2`Po?4A>oTcTEM&+(y{(Lb+Y!|Fxn}e zn^6pelqm8V&loZWUKS^cQiso!8Jgy*x63TJ-!*+8ILONc2442q-1M0M4_6F%4!QOE z$U^8D?<$t0rZJ?y*s3eO6cW?m&CwzU99yC1+uABU(NHsh-S~s~Fr4<@qWm@g#4MQdB~o=gIPX zrZ?ptH#$$CP>tV=VuMsBl;P-WWQeb;WNivui_m_Z0!e7Y+i99?1uePN&+s04OoO?T zfHTVUw7}f%b!Jbo+l@O)v@Dj<{b`-(z>8Di0lzuUFezOX3e31*BY}!CA1^T&$b|HnN6@Hb#x(d3}B=w){ z)yKHo2c7Hr-x0R^Xe{KSLViPtt3JwP{GS-Y@n+@_{pq039L(n{H{chna0Y{$2XH!odPEmFQ0#GyrWStEf zYZ>b(#Io9~)GGlNOA@ls8kyN)xGD@3`R8U1g!q?(NBY+XAfgW|kW~UYSd`o<6kJ$} zA&qxV_|2#gwP+N~jb1=l-t%BaeFD&l9|z3Gca#zI7-KOL8~^Mh?@yD9?^BN-ew|9G z{)djneWU_#i>xO@mq<@CuLJ50AZ(nAf~jzNa_b+v@r!H0o-@G~#t+_jVEz&O1i=`0 zposumnBXMi1K0UWKrq&$Y@u-|6c=MW$*daMb`iN!aG*T%g?Q`{))}|-I~2-Qu~qmY z7S|%>Qg836L{#ySEBPY_;d`(Tl`m;0B(cHk@W*pY#C;SFwyEW+#8heOtp4{lRf9r0x=u&g_ zxruC4@?6R8FkP7gW6Jd8-4tCaF}rmp&DOGtl2UTga_9qI0@I2x>Yv3({KM}FZ37A! z)f);#+wUgbKuenEY_7rMY5hTF@KGQuY%%r-Q=Y-w;=l}UurD_(?_Dtn#)Ya<-?5Ow z(C*wkgH!Y_@^Do}iI~6Rp7+`|f$Q_qJMoA<*Rnu_egzG$-~ZV76L_`rm%w>*Bn_{x zj3ej-MfqPRC$q&F?5djzXS#Oz&<16!OLU~sS?uuT<{{om?$2INI%d=lVsH1ex|~iH z=8iSW*ESqW#p_WsJy(NVtUFsoVpq&fNe)x!sHQf1xKvdrNK)V91=?;aLDObZW@f-) z%4C`JV7g#S$t)d>uMply`<7uhbjX$kULHP+LD_gy`#d_0QI$5M{d7|j&f8*f0U3sm z%;xCMn0M8=0$e7F_!7ZI`a1al{VkqqsFoTHwHEH^_r?nTpmwxkRNX^moI{0T`}Q!V zY=?Fin`K+yyQg2dHTiW-bimRqllb!B_XBl-t&Zc#D)t^Jb;fk#aJPlfZLo z;eevH{RVLIESSKgM@8REE~n|XR1k}%7?=;g{tq1uuxHe6Z{KPDe0<0F)zkm@_A+KA zkI$Pi{0ce+0T&wwo?XC7ZVzf#%S5m#?rsI^q6j~f^&3V>brkms%Fx?*I`|gY_4RCgo>za zIkb!@wCsK4QpV>Bc2yE#m&|W{4d4rRD-NXrR~R!mQ(4uvpuu@`=$!L{-ka8Reuz3u zsx@3QE48c5M+5q2=!Uc}neO9oBs&;%)=+roQg+I84d$b!vrvY8`MvP#$+y+IqlUA2 z=)y<~Efsg(7JY?$u2dJ?Q}X+ZKW{7!*wY%S)hdsRcEF753@GX`@Eb{st2D?(`VcOI zaVxlSwB#=RO(pLOV!QY6CDo;`t0eX5^oENZg}dUOouX28zwBN)5Bla#BgJ~y%R@X0 z-IHbc=cxkEDQ0+5lAxh@$Jdn@BQ~RDq>~X~t$zJ8hNt**s zS=KL#wz8O27hq6}i5Ru&j6Bk^!aQCQ!}WE7-0%vq+ntkl$l&qb)a5dI>blwfh6|;s z6n=}+;5D_dqbdE{!i{?)wLHu+`%NG0Cqgl8Sv{= zN%i5^e~-}s*3YQ&Klz~lrH0bXI~h&?3W{hx#%A(f#y#fCxd+I%F*mZy-aWjdPI!U} z#F%hL%#cl|qKI8%+Gj*==wKoW>z)sI{0s(^WNg0!jw?fBlGb=8aH^ZNqg{C$fZEZq zZH^vc2Q38V09yGzY&la*_8d=k5}HL$Y2h3;=)?QYbgvug$UAP%=;J}rAA&yNO*Z4E zBTU{GjYk+y;8vS!UQbD*S0%lZ(x%x?wEc-=F?X5UDqi3a=r!kKJf)j`x}c2{3I`bj zkVqLe-8s_kXoi^`bFMVNy~X&%@M6K+2vm|N`D1#LwNmW)h>y>zhs)>s4U2eh-P6n(Chh4pSF}`iu2Bz{}e7gQ&ywdoLq}p z-Mhla_8U!tlpgY5LNmUQ)yr=p1)*(K+-#~lZw@P@)(X9>q97Rlq_k8i#Mrgq5dNTu#b9cBMw+d%35^lkUym!5~u`t`WVv&M~fTlZm$BIQDfp$H#R_ zq|Gb5l-Dc$4m|y7d_!5cR3?!aX0)O(JsZR^{!OA}Z}SCO!?lpF!(8>x@vrCFR#E=0 z#@?`42#a%;y2-*z+wKG{DIhP8zG%i3%gtHip7rg;8IOeHf^#;8h+ zQV@>Ou4O5M+G4x(IWRbuW_55IPa|4uR2-K_bC8Z%QStN{FFc5AIg=!QDz*VS0I}KVjI82Bc>m{BdZr!ES}5)ZZH0tvD7ec^K?g znXu{Yn?JEz3C+ztLFO1*0#`1g zN5Z-=GyVK0_obPom>FpGcyEK0_zrje!>{9W^50}Mj^JmYDF0ssyqWi<87(XcrVNkI zq_(a{CFrXDgp2oOm&uUF8v~q${P^LQFM&w5x`|#adpm6@}y2=NRooUVp<^4Mut> z^VA-c6LVW+YLg0=V4@M|y^3eJL=b@i{GsFE zH!g>Y%Hw2}B~nC-?w)8Zv0)ARYt2f{0YOjGZ0dIZc{6SJtiQGXa6L~7Mhm!j#&Kpz zGmy>(fd_1NB{xSK)p(l?6s`@5ZN2HtHRf{|bnw`(YR+LF7lU;;=Wwj#{gVhM+lGy$f7BQyMUM zvXx#M4jy~ZHRPeRLG6PoLCe7N1IJWg7;nRd@h%r=Pr|EvSq1VA}y#T)!yBrW0 zV=e|ry$3>U;K0m#z<|)e+p3WVZF?GA82gui>$vZI+Jk*4Urk1Q1ZUm<0)6f$B41^U zt4`b8FLy3p7>^WDWwHgnoaHDKi!8kB&dC($yb;#ao|P`z(uTvsIeL)@L^dCSuQx)Z zRHE{Hm5$d#mQ5PQ5wpho2_*Wx=4?uT_VGS*6XSE1$}2yGObfh#HNaM(yH+kXin7&| z{-SWgUeSwZYp_*H~NK ze!W-~bc`^r3VCI8e-W5oEcgxU#2I#hX!GHx>Dp{L1|2X(gB|E7y>kxTssP4C zEqqo&xga*`W5scwd0vNXp-e)VwsDV4fEoGHzr-Y%fd@|VfQM4ml;FpI8>Q~2Ayo+u z$t6k0m3nn2$Ub0|v`F%JPX%HYrs4D7gDro`Vz4GTzT7Ol-j!VGnJWh&#Vg_KvA;Y8 zxMIwDn@(iR>pNpxelO3y$CPgH_LeF`n?eLy!-`uH2^y{pJFS4?^Ek-|!cZJf9Kk}o zZ2PM5@5;Lj54l$&X@P?sp>re_jz$VE5xg!4QQz+W9;4?i<24v0lKuxCu1T&a;ofrH zY`n$IS!~xkF$E6uRf!~S+6fuT{3sO4TR>V>AT?Ad#jzGu10ovozTNmc{(+=@gf~*s z6>1RBRSVlS@~ycTep2R1S*=ZH*N~R-Sy7`h%%=vAzegO+i3EfD5o~b#G~?K+FY3I) zv)Q{n8%S7po_$>!(B{@(G8@;3(>@3B_V9gb9k9iK+c|dH4U7bLY##M5i?kIRQMO9> z-$w&dr;*}`u%}5Q=3j?}GibHroe7TX|IiSghqo|3cV>8kKaKb%YFUsRZm`Y)IdwjY zeL;T1L7x=3ue@+n5|jX|H-Q!bR#0dKG0EUwnFDaI5{`T5EK<0CBfC__KvXKeWwbCp zQQWHfnp18)O~@n+l$raS0u)Mn9ZtfZ3i4xbM{4gn+c~Sf9kV$qzTr^ANz&Is5eU>& z!%tWglrxI;l?+>NVvqM`tR<{3>{6bqZ9YgTgaA6l)F(jyL|* z9EDb+xn<0|jZ>M?Sfo$nM*i_eJyB-Soz2fwmsE^~)7n(I!gh8exJEh*y(qJQFH@Hz zr?AVBm9BPkufJzBiYK+{#rjgxQZ%Zj0M6b+H9;n#nI!P#8Xz7wR1Y@XEb$8^R2{;YXG9LztUmFW{V zN` zy~vs9p87zNUNyUE1o`rJ!-lF)IjYXG(hXuG-w{E=7R8~^7085VkxyjCDYmfFB$B>6 zFboG;syo;7b_$y#wOu?!G#EvW3_ESe+?(10d}(?6T;YW4n9|>%YIeb369fh#fXXU3 zH5Iu>;~ld`tYD}MiUfHpB@e-G!iIi`qdyjo{xrakd>{C!KxH2M_qbA!@-c&1WDQ2~ z9%nrTc%H!UuEH3&1Y&rhy|DFGLmYE#QQX<2rDP-JVBu2!Nl%9x64YntPiLGGOR5C&MDLQpC}Wt(lyj_m1!YD&>mS9lc%#AajcD(FDTO_a!$LBjYh~FA3WL_aqnnX#LPDnJWXCQltaw`ao=T;@mMwioQm6w zB!W%5hBi!NXQ3 zQb)&^;;uUroe6HOROQ336Aa_uV>Cbn^9+1Hn5^-`Ny}0RWfdqI@-kQ2c!|ji!y?M% z;z92q(5~PqB!c4;wk`^>0uo*TanaAi7LuO4@qxUr06n~0G$Z2^jD#=?@}F&xG?^m# zwX$bq$26zGa@Wkodm;d1K-pokRkY=pui z0z%9q4)%S*=dh?6xL0f}S^Oc;Jw(*;IqjPMFST!a$)6WA zS293>H3poxunItIArE)J_jrAY`|x+d#YJeJH|Sv`!tpL7Vhryp6algBO1db#f7g*1 zmnht7;m)?Asq;xoeQ)yw?rn9Ak@o}5NbaWlSR4xb5|^RqD65FKGMMr-T}?;cKCUP4 zFAQ-;uXjK_pHtC!E-x9_*(i8l5qZIw*YuPKRu!k()y25jxW$^x=q&wQE>U?`59RP~ z6y!C_#o1(Uya`0^%z%uigGicTs{?L@jog-6gDJcZBO)8pbr~IbS7Susck_DMhW!K5 z`Gic`4u{Aik3MQ>qm^<}Mh zUJthM2B$*-+|$@;Uhk0{RNrf(I$;z;DNeVn@!0eE6}iTS_@SNbV@)DqT}lhr)zEOo zJD)R$O|}MaW`6%rh}(rk#Y`jN@ZX( z3Y$iCM;s$%C2}voRxjM~JU2fAVequMk97f1hTlMsd!srD7~fSeW8eoAa~`@){@10! z|1{htI1p{*Qz19eX8YbaS+Z7$GID=yJpjU&K-?qTFBwRmfMe~Owzc|#75?o#>H(_( z6yqv@uSrN^)Y-f1Gcm3vCoT+`64{cCASN|f&kAZabJ_dY3x!;5e-0uLQFwj0>jXDg z+6Hct+qB`J;GilcC7npZ@NxJ!)^W2K6eLVKOMP6}C{FZyFx+RYLu$6kw3f3oh*HqS zsl0F$u0w*hw(KOM#b8P|Q-_xiWVVtO83WSZw(86r?d);Ttvv@oxAAHabfE?qAlMKQ zL`y-_k*4Q_2*Hjv>CccQ&Tl~w zC~_L*^J<}uWuTueAc6+XS%qZ8+%660%b4<{8>ubQ+aWs$`!KUrDxhZ=NqxtAmbKyKw(RSlou0yQZ;6&AQKbJbcP3l z0tve^&I%?9;g2xeJnFjf@axuq*_%xfLZ@iWAS z6i0|EDoB;uTe&3uhDBGq0dPsLZoN3s@(w`q3V53Z`SfcG=?TeQyV7~G%ka~xZpmp%V;Od zG7J)lYX;?mGj60)u^qDGVqH`&yF92)V4R@XMk356__1y5f21DFL%R5oF8(N0gffE3 zApI+!XFcVA;|7zNJdM_jL}O^%ffZ(;Ef@l||GomzC^N+A`pZVc35l|FNH=t^wtGpz z@t#8<4bTb?qN8l8WU{^hrey};Z!R%!XooN3HW20DbyNhWgN1l@*jn95)C_)zaJI%y zZAv;*#&qY;fM>Y?&oWE7<)8);FOMCaAbX$i9~>$ojJqWbFJMe%esz$)q#0BrI{?x= z8;X*Pcu9ZLNQ~5$ZI{)$yx|~Tz5#FFMT}sjgrTKG9>1v_R1&w=2tE-W2Koek=3~c_ zc{Y1_IlQvsmRjQN*rOqXi2cAWEuGq#@lcsyNy>5O{Xbr8;~xkz_$N{EVM5Nsgq$Cv zo=jCY@b?mhPZrG|&O3*A#+nKWV8uYmmkFzF$O8e=6CmKi_wmOP5I3V(AY5`k7hoR= zQZWCzp7ouIuUnqM9&CKle-+d^!wi<9gg^6MvC}h>>DWP7DGa@P#EpWiR)A2u32Y0m zXvAHm)jz3@rKj_I=tllmO`i(XrikX{-DW-QDKfpOsJHZ81@9ZtXG; z#&kB{FIL43GZqM;7rBo6vBb~~T*~|nnNtkoR@X9{h8hW84a8T)HmOV*L$S6!Z)15^ zGE{_*sekxhbcXtep4gLQDCb@kOZN_L0*6Mk8;O`8|4Z+#Em9VFvda<;9Yn{He3WsG zo^Q+HJ((P4)sgP$wiAvKGIO8eWzg%d_!s&!@05_$Q5Ns93WNvKR{V-WmgP13Vh$2$ z2Z_|FM&yWUsn>yMMzcOor^`7=LRGrLxx3k0)p0_;N-|u?J4sPCAp%*4yi0_k`3*FI zY!R{4wCQ9i&XC_C{CwEsqH~br&^a5_w*u;65#~Nxxu^Y1Qy#61_KWOfj4-L%a4ghs zTBLZ5{!(A2-E_*jRb5%MqeqRjTbB!b5;Sa7Wuo!OZvnz$xS`8g7NKZ)TOo>3*^E@* z8jpXdKlejypQv@Ttw~9+k>6L`C9s^HwVCgzqcmoBHAL;y{vHH0e0=|7 zL)q>Ck2zh!s`tV;^4+Qt6I+5jp#57ga}!PUZ@-NbdbMwYmX5<(`T<4G@tViuGiJnJ z|Ip5UXlGB<8VbHV=zcJsan{USaAC%r;0L8YU?N79&y-oTa?|F^WI*vcTj`4jL&4j6 zP9?lwDd(*4f2@SMjevu}i!-wQEz5r@lVscvj4ofU3WKm!04t?LC!--O`Jt9^o-|r+- zazyknwL}6BlLUcKQ;hmleQvVgWT5DB@hz^HtdA$;uJ;+&u=mqYecf`}hWxFKfoP2h z`fWoM6YX%pgK1P7f#S(pk1PjOjoZBgF`Z|u(R#i&|NCMwnO9oKYg6`=>f8QC%Q>X1 z*Z#~~|7Y)9U+xf}zFgfFpS6`94X3+@0Zq?UHd&(l8(XT079Q!TMp^bTQ*BOUF0YAU zKFCPq#|n72!h7ocU5i}t_R{wejI2oKl^*kM#0gKx*+!bFR2!I1fSp1p8@!Kb>wOeG z)|P)(q_81TE#1EOfK z3^Xq&KND_MR_$O6wY#%D+b-w1eL1xi@tO9j#H6`?{GCd(?>G5a_wwHU0(Yf6S=#iq z5CNOXZ1GI{0(wWweq>8G;Z{&+eTMOc;xvKV@Ow&QM=6_=IoNPgJFoEu)$yr9Twmcn zVRHD|A%CInaiLRzfU9YK4gFQ79ZdV$@p@6qZ=-D+7tZkU~-`%si?` z>h)cXhB6yKfiSp92UZ3sata7lyt`NqLXM}2I6rU*{tR)~lbiY8SKs^b-;NgyczW24 z|Bnx4=>qrnn92FEuVD854LNB(cj+s1o5Rnk6jr)>$ z_aMB9xzogv;)`-%&_wkLx;Nd9wRl<-3pET-&r1Y%%q7E7eO+!IZwqB%VW?}zxscuc z$<+mT{9O3mg$2{|mHG@2-kzOVo-S)6-buWu8(K8HcCf^hZc=XG)=?5GCQoqIVyi}@2F3cp4rIet#~N zQ~Hq=bU)c4WNAIt6(EQWUVCO{^`tl}2&>pZaxlycp6u|$Ij&}=Mh|OI{jV#w_0y90K?OFF)0H1r}G3up@JpcBgd~ zVV5F2^C+e13J_6fjCWBeGF&OnpC+NWpANoQjWstp7V24qu)4Mjd7!`(1|Hw_R<2;PU_FpUVNYt~H_M4XGVcukMdjt=v^(aM!UDq4|Glm(O4S<~{*M~N+} z5fsE#NX<9Ix&;n=oRx@~L%Rkfp9Q(4oy|R^4 zfemeB`4;3BXw6J8L~zfb^Ik5doc0C7oUSc#5_LJ@A?4|Yzn89741#w)TMHUm21zyM z*@R}REoDD@F$z_)2}X8Tpa2)03)iWSbc0Y=eM1yC9``ATWJbeI)DOf}0{!hYoVxyS z=HWw{`J=yO`iJJxKMk5087$}gF=DN7p;J7d&>-iqK)GfDJe0ie4sf$Arme(-ka7bm zg-l;Jtgr$TjRnV5a_*?!fQ;tMLRt)BqW_E|C)|bmwPvS+iMy&Dik(} zq+$lP7$K$XWFsq?r9*4)Mcks^t3kH%;|lx9r4E|FRKdJk4hNq2AmqvQ=?)NDPoeQ% zY*Pl%$$bJek*-R3kV4<*W6esHHg#Ad}x!lP3QNm9ZbATZLoDp&ns6mOdvmM+G!&O zMD$2OaHT#35ysK!a}-78?gd$v1@88u{>GGxiRPo3czhb11TP!Ub+SbIdkfk8q?Gbq zn52|h+6WE`i`G7>Y32LKGE#I`lsTBWJ_p`HGss^1V5+b^5=$HPXL%KU!ZFbXDx|ImZ@JqPG=#|Hl1nX#ggozJnf{%Y9muy4RS9S)XBfP(VRp)9RSO6`n4w-Lq5y<8fO6U! z8HW%eiLp-g6^T_C>N#p#VBg`WVSBrRud&&1Prm_-*0j8Wu>`700Hjn~-#d*BNepFD z!YPhLA&BW|D^nVg)n;~MpVbo68EdBw-=9!0nho&&7~upF6|*>D4D%4ivBxu#P^IbC z?8~gAwdO@qcGFLE9tGw9Lg1i92c=OTT#ybtcEo-|i`ljfN)!>j5zWOH<8wf2=-aSi z#A|_r47vbbZf6}vE&@rUGvv-U2KU-CBi^!5jHJ;z+;|YMXfnJl8E6ZLpc$~g{FBiU z4{}Y+v`l8mIvmeBeOOlH-?OU9Pa@GCp8zI5&b@ZHZ8+W_mBbd!5B$b}J_g=q2HwC3 zU%!nxU`^eKpF@uz;4^Qe4-|(BnLW$w`VP-DeG}2$5K$J2=1flyS!U3AIb>_FOOFWfRC#pTuLn}A57|R zO^)Zs7cCr&^3aOK-?{o{EFMJ89!1M~z&Q!GIMr3}5|%P-AiY4<9wx_pMZsOkxKn%_ zq<}TUHtK_|`P&1fZKbMHx%u(d82QO_wPhpA|H|+$qu(Bq~M%zz!*FwC(R;b-& zI^$X%ST9dMLi~%umTpfhl4V5?RzsNPyld&QV({wV@+p@1qanM2(LM{9_H>c(OA^5F z8UKje7<|o)uyc998e2Z{#^4FQIq+FKh~ESIxEt+D4+8FIlbi6bf`7c9&W>CXBn7;E zeu^|QG890G-Tw#dQ&W5m#ovu2V*j$;_8*hzINs6P2ax`{l{}p9;*6lScB;i Q@Y(Wu-0#@GeQ)3Y1v;PZDgXcg literal 0 HcmV?d00001 diff --git a/classxt_1_1xcontainer-members.html b/classxt_1_1xcontainer-members.html new file mode 100644 index 000000000..1adb166ff --- /dev/null +++ b/classxt_1_1xcontainer-members.html @@ -0,0 +1,308 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xcontainer< D > Member List
+
+
+ +

This is the complete list of members for xt::xcontainer< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
accessible_base typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
allocator_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
at(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
at(Args... args) const (defined in xt::xaccessible< D >)xt::xaccessible< D >private
back()xt::xcontainer< D >inline
xt::xaccessible::back() constxt::xaccessible< D >inlineprivate
backstrides() const noexceptxt::xcontainer< D >
backstrides_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
base_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >private
begin() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< D >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
bool_load_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< D >inline
cbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
cend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
const_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_container_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
const_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
const_pointer typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
const_reference typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
const_reverse_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
const_stepper typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
container_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
contiguous_layout (defined in xt::xcontainer< D >)xt::xcontainer< D >static
crbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
crend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
data() noexceptxt::xcontainer< D >inline
data() const noexceptxt::xcontainer< D >inline
data_alignment typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
data_element(size_type i) (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
data_element(size_type i) const (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
data_offset() const noexceptxt::xcontainer< D >inline
data_xbegin() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
data_xbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
data_xend(layout_type l, size_type offset) noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
data_xend(layout_type l, size_type offset) const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
derived_cast() &noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
derived_cast() const &noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
derived_cast() &&noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
derived_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
difference_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
dimension() const noexceptxt::xcontainer< D >
element(It first, It last) (defined in xt::xcontainer< D >)xt::xcontainer< D >
element(It first, It last) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
element(It first, It last) -> referencext::xcontainer< D >inline
element(It first, It last) const -> const_referencext::xcontainer< D >inline
end() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< D >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
fill(const T &value)xt::xcontainer< D >inline
flat(size_type i)xt::xcontainer< D >inline
flat(size_type i) constxt::xcontainer< D >inline
front()xt::xcontainer< D >inline
xt::xaccessible::front() constxt::xaccessible< D >inlineprivate
has_linear_assign(const S &strides) const noexceptxt::xcontainer< D >inline
inner_backstrides_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
inner_shape_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
inner_strides_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
inner_types typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
iterable_base typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
linear_begin() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_begin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_cbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_cend() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_crbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_crend() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_end() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_end() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
linear_rbegin() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_rbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_rend() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_rend() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
linear_traits typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
load_simd(size_type i) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
load_simd(size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type > (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
operator()(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
operator()(Args... args) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
operator()(Args... args) -> referencext::xcontainer< D >inline
operator()(Args... args) const -> const_referencext::xcontainer< D >inline
operator=(const xcontainer &)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
operator=(xcontainer &&)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
operator=(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >private
operator=(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >private
operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >private
operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >private
operator[](const S &index) (defined in xt::xcontainer< D >)xt::xcontainer< D >
operator[](std::initializer_list< I > index) (defined in xt::xcontainer< D >)xt::xcontainer< D >
operator[](size_type i) (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
operator[](const S &index) const (defined in xt::xaccessible< D >)xt::xaccessible< D >private
operator[](std::initializer_list< I > index) const (defined in xt::xaccessible< D >)xt::xaccessible< D >private
operator[](size_type i) const (defined in xt::xaccessible< D >)xt::xaccessible< D >inlineprivate
periodic(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
periodic(Args... args) const (defined in xt::xaccessible< D >)xt::xaccessible< D >private
pointer typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
rbegin() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
reference typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
rend() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
reverse_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
reverse_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
reverse_linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
select_const_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_const_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_iterator_impl typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
shape() const noexceptxt::xcontainer< D >
xt::xaccessible::shape(size_type index) constxt::xconst_accessible< D >inlineprivate
shape_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
simd_return_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
simd_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
simd_value_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
size() const noexceptxt::xcontainer< D >inline
size_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
static_layout (defined in xt::xcontainer< D >)xt::xcontainer< D >static
stepper typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
stepper_begin(const S &shape) noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
stepper_begin(const S &shape) const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
stepper_end(const S &shape, layout_type l) noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
storage() noexceptxt::xcontainer< D >inline
storage() const noexceptxt::xcontainer< D >inline
storage_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
store_simd(size_type i, const simd &e) (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
strides() const noexceptxt::xcontainer< D >
strides_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
unchecked(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
unchecked(Args... args) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
unchecked(Args... args) -> referencext::xcontainer< D >inline
unchecked(Args... args) const -> const_referencext::xcontainer< D >inline
value_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
xaccessible< D > (defined in xt::xcontainer< D >)xt::xcontainer< D >friend
xconst_accessible< D > (defined in xt::xcontainer< D >)xt::xcontainer< D >friend
xcontainer()=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
xcontainer(const xcontainer &)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
xcontainer(xcontainer &&)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
xstepper (defined in xt::xcontainer< D >)xt::xcontainer< D >friend
~xcontainer()=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
+
+ + + + diff --git a/classxt_1_1xcontainer.html b/classxt_1_1xcontainer.html new file mode 100644 index 000000000..0b291dc56 --- /dev/null +++ b/classxt_1_1xcontainer.html @@ -0,0 +1,3145 @@ + + + + + + + +xtensor: xt::xcontainer< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ +

Base class for dense multidimensional containers. + More...

+ +

#include <xcontainer.hpp>

+
+Inheritance diagram for xt::xcontainer< D >:
+
+
+ + +xt::xcontiguous_iterable< D > +xt::xaccessible< D > +xt::xiterable< D > +xt::xfixed_container< typename storage_type::value_type, S, L, SH, Tag > +xt::xfixed_container< T, FSH, L, Sharable > +xt::xstrided_container< D > +xt::xarray_adaptor< value_container &, L, SC > +xt::xarray_adaptor< flag_container &, L, SC > +xt::xarray_adaptor< const value_container &, L, SC > +xt::xarray_adaptor< const flag_container &, L, SC > +xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag > +xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag > +xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > +xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag > +xt::xarray_container< EC, L, SC, xoptional_expression_tag > +xt::xtensor_adaptor< value_container &, N, L > +xt::xtensor_adaptor< flag_container &, N, L > +xt::xtensor_adaptor< const value_container &, N, L > +xt::xtensor_adaptor< const flag_container &, N, L > +xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag > +xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag > +xt::xtensor_container< uvector< T, A >, N, L > +xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag > +xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major > +xt::xtensor_container< EC, N, L, xoptional_expression_tag > +xt::xtensor_view< EC, N, L, xoptional_expression_tag > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using derived_type = D
 
using inner_types = xcontainer_inner_types<D>
 
using storage_type = typename inner_types::storage_type
 
using allocator_type = allocator_type_t<std::decay_t<storage_type>>
 
using value_type = typename storage_type::value_type
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using pointer = typename storage_type::pointer
 
using const_pointer = typename storage_type::const_pointer
 
using size_type = typename inner_types::size_type
 
using difference_type = typename storage_type::difference_type
 
using simd_value_type = xt_simd::simd_type<value_type>
 
using bool_load_type = xt::bool_load_type<value_type>
 
using shape_type = typename inner_types::shape_type
 
using strides_type = typename inner_types::strides_type
 
using backstrides_type = typename inner_types::backstrides_type
 
using inner_shape_type = typename inner_types::inner_shape_type
 
using inner_strides_type = typename inner_types::inner_strides_type
 
using inner_backstrides_type = typename inner_types::inner_backstrides_type
 
using iterable_base = xcontiguous_iterable<D>
 
using stepper = typename iterable_base::stepper
 
using const_stepper = typename iterable_base::const_stepper
 
using accessible_base = xaccessible<D>
 
using data_alignment = xt_simd::container_alignment_t<storage_type>
 
using simd_type = xt_simd::simd_type<value_type>
 
using linear_iterator = typename iterable_base::linear_iterator
 
using const_linear_iterator = typename iterable_base::const_linear_iterator
 
using reverse_linear_iterator = typename iterable_base::reverse_linear_iterator
 
using const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator
 
template<class requested_type>
using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
 
using container_iterator = linear_iterator
 
using const_container_iterator = const_linear_iterator
 
- Public Types inherited from xt::xcontiguous_iterable< D >
using derived_type = D
 
using inner_types = xcontainer_inner_types<D>
 
using iterable_base = xiterable<D>
 
using stepper = typename iterable_base::stepper
 
using const_stepper = typename iterable_base::const_stepper
 
template<layout_type L>
using layout_iterator = typename iterable_base::template layout_iterator<L>
 
template<layout_type L>
using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
 
template<layout_type L>
using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
 
template<layout_type L>
using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
 
template<class S, layout_type L>
using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
 
using linear_traits = detail::linear_iterator_traits<D>
 
using linear_iterator = typename linear_traits::linear_iterator
 
using const_linear_iterator = typename linear_traits::const_linear_iterator
 
using reverse_linear_iterator = typename linear_traits::reverse_linear_iterator
 
using const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator
 
template<layout_type L, class It1, class It2>
using select_iterator_impl = std::conditional_t<L == static_layout, It1, It2>
 
template<layout_type L>
using select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>>
 
template<layout_type L>
using select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>>
 
template<layout_type L>
using select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>>
 
template<layout_type L>
using select_const_reverse_iterator
 
using iterator = select_iterator< ::xt::layout_type::row_major >
 
using const_iterator = select_const_iterator< ::xt::layout_type::row_major >
 
using reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major >
 
using const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class... Args>
reference operator() (Args... args)
 
+template<class... Args>
const_reference operator() (Args... args) const
 
+template<class... Args>
reference unchecked (Args... args)
 
+template<class... Args>
const_reference unchecked (Args... args) const
 
+template<class It>
reference element (It first, It last)
 
+template<class It>
const_reference element (It first, It last) const
 
+template<class S>
stepper stepper_begin (const S &shape) noexcept
 
+template<class S>
stepper stepper_end (const S &shape, layout_type l) noexcept
 
+template<class S>
const_stepper stepper_begin (const S &shape) const noexcept
 
+template<class S>
const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
 
+template<class... Args>
reference at (Args... args)
 
+template<class S>
disable_integral_t< S, reference > operator[] (const S &index)
 
+template<class I>
reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
reference back ()
 Returns a reference to the last element of the expression.
 
reference front ()
 Returns a reference to the first element of the expression.
 
+template<class... Args>
reference periodic (Args... args)
 
Size and shape
size_type size () const noexcept
 Returns the number of element in the container.
 
constexpr size_type dimension () const noexcept
 Returns the number of dimensions of the container.
 
constexpr const inner_shape_type & shape () const noexcept
 Returns the shape of the container.
 
constexpr const inner_strides_type & strides () const noexcept
 Returns the strides of the container.
 
constexpr const inner_backstrides_type & backstrides () const noexcept
 Returns the backstrides of the container.
 
Data
template<class T>
void fill (const T &value)
 Fills the container with the given value.
 
storage_type & storage () noexcept
 Returns a reference to the buffer containing the elements of the container.
 
const storage_type & storage () const noexcept
 Returns a constant reference to the buffer containing the elements of the container.
 
pointer data () noexcept
 Returns a pointer to the underlying array serving as element storage.
 
const_pointer data () const noexcept
 Returns a constant pointer to the underlying array serving as element storage.
 
const size_type data_offset () const noexcept
 Returns the offset to the first element in the container.
 
template<class... Args>
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
template<class... Args>
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
template<class... Args>
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
template<class... Args>
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
template<class It>
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
template<class It>
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
- Public Member Functions inherited from xt::xcontiguous_iterable< D >
+template<layout_type L = ::xt::layout_type::row_major>
select_iterator< L > begin () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_iterator< L > end () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > begin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > end () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > cbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > cend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_reverse_iterator< L > rbegin () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_reverse_iterator< L > rend () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > rbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > rend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > crbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > crend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
broadcast_iterator< S, L > end (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
template<layout_type L>
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
template<layout_type L>
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L>
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L>
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L>
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
+ + + + + + + + +

+Static Public Attributes

static constexpr layout_type static_layout = inner_types::layout
 
static constexpr bool contiguous_layout = static_layout != layout_type::dynamic
 
- Static Public Attributes inherited from xt::xcontiguous_iterable< D >
static constexpr layout_type static_layout = inner_types::layout
 
+ + + + + + + + + +

+Protected Member Functions

xcontainer (const xcontainer &)=default
 
+xcontaineroperator= (const xcontainer &)=default
 
xcontainer (xcontainer &&)=default
 
+xcontaineroperator= (xcontainer &&)=default
 
+ + + + + + + + +

+Friends

template<class C>
class xstepper
 
class xaccessible< D >
 
class xconst_accessible< D >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Broadcasting

template<class S>
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the container to the specified parameter.
 
template<class S>
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
 
reference data_element (size_type i)
 
const_reference data_element (size_type i) const
 
reference flat (size_type i)
 Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
 
const_reference flat (size_type i) const
 Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
 
template<class align, class simd>
void store_simd (size_type i, const simd &e)
 
linear_iterator linear_begin () noexcept
 
linear_iterator linear_end () noexcept
 
const_linear_iterator linear_begin () const noexcept
 
const_linear_iterator linear_end () const noexcept
 
const_linear_iterator linear_cbegin () const noexcept
 
const_linear_iterator linear_cend () const noexcept
 
reverse_linear_iterator linear_rbegin () noexcept
 
reverse_linear_iterator linear_rend () noexcept
 
const_reverse_linear_iterator linear_rbegin () const noexcept
 
const_reverse_linear_iterator linear_rend () const noexcept
 
const_reverse_linear_iterator linear_crbegin () const noexcept
 
const_reverse_linear_iterator linear_crend () const noexcept
 
template<class S>
auto stepper_begin (const S &shape) noexcept -> stepper
 
template<class S>
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
template<class S>
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
template<class alignment, class requested_type, std::size_t N>
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
container_iterator data_xbegin () noexcept
 
const_container_iterator data_xbegin () const noexcept
 
container_iterator data_xend (layout_type l, size_type offset) noexcept
 
const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
 
derived_type & derived_cast () &noexcept
 
const derived_type & derived_cast () const &noexcept
 
derived_type derived_cast () &&noexcept
 
+

Detailed Description

+
template<class D>
+class xt::xcontainer< D >

Base class for dense multidimensional containers.

+

The xcontainer class defines the interface for dense multidimensional container classes. It does not embed any data container, this responsibility is delegated to the inheriting classes.

+
Template Parameters
+ + +
DThe derived type, i.e. the inheriting class for which xcontainer provides the interface.
+
+
+ +

Definition at line 69 of file xcontainer.hpp.

+

Member Typedef Documentation

+ +

◆ accessible_base

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::accessible_base = xaccessible<D>
+
+ +

Definition at line 101 of file xcontainer.hpp.

+ +
+
+ +

◆ allocator_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::allocator_type = allocator_type_t<std::decay_t<storage_type>>
+
+ +

Definition at line 78 of file xcontainer.hpp.

+ +
+
+ +

◆ backstrides_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::backstrides_type = typename inner_types::backstrides_type
+
+ +

Definition at line 91 of file xcontainer.hpp.

+ +
+
+ +

◆ bool_load_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::bool_load_type = xt::bool_load_type<value_type>
+
+ +

Definition at line 87 of file xcontainer.hpp.

+ +
+
+ +

◆ const_container_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::const_container_iterator = const_linear_iterator
+
+ +

Definition at line 205 of file xcontainer.hpp.

+ +
+
+ +

◆ const_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::const_linear_iterator = typename iterable_base::const_linear_iterator
+
+ +

Definition at line 109 of file xcontainer.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::const_pointer = typename storage_type::const_pointer
+
+ +

Definition at line 83 of file xcontainer.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::const_reference = typename inner_types::const_reference
+
+ +

Definition at line 81 of file xcontainer.hpp.

+ +
+
+ +

◆ const_reverse_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator
+
+ +

Definition at line 111 of file xcontainer.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::const_stepper = typename iterable_base::const_stepper
+
+ +

Definition at line 99 of file xcontainer.hpp.

+ +
+
+ +

◆ container_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::container_iterator = linear_iterator
+
+ +

Definition at line 204 of file xcontainer.hpp.

+ +
+
+ +

◆ data_alignment

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::data_alignment = xt_simd::container_alignment_t<storage_type>
+
+ +

Definition at line 105 of file xcontainer.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::derived_type = D
+
+ +

Definition at line 74 of file xcontainer.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::difference_type = typename storage_type::difference_type
+
+ +

Definition at line 85 of file xcontainer.hpp.

+ +
+
+ +

◆ inner_backstrides_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::inner_backstrides_type = typename inner_types::inner_backstrides_type
+
+ +

Definition at line 95 of file xcontainer.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::inner_shape_type = typename inner_types::inner_shape_type
+
+ +

Definition at line 93 of file xcontainer.hpp.

+ +
+
+ +

◆ inner_strides_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::inner_strides_type = typename inner_types::inner_strides_type
+
+ +

Definition at line 94 of file xcontainer.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::inner_types = xcontainer_inner_types<D>
+
+ +

Definition at line 76 of file xcontainer.hpp.

+ +
+
+ +

◆ iterable_base

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::iterable_base = xcontiguous_iterable<D>
+
+ +

Definition at line 97 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::linear_iterator = typename iterable_base::linear_iterator
+
+ +

Definition at line 108 of file xcontainer.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::pointer = typename storage_type::pointer
+
+ +

Definition at line 82 of file xcontainer.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::reference = typename inner_types::reference
+
+ +

Definition at line 80 of file xcontainer.hpp.

+ +
+
+ +

◆ reverse_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::reverse_linear_iterator = typename iterable_base::reverse_linear_iterator
+
+ +

Definition at line 110 of file xcontainer.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::shape_type = typename inner_types::shape_type
+
+ +

Definition at line 89 of file xcontainer.hpp.

+ +
+
+ +

◆ simd_return_type

+ +
+
+
+template<class D>
+
+template<class requested_type>
+ + + + +
using xt::xcontainer< D >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
+
+ +

Definition at line 180 of file xcontainer.hpp.

+ +
+
+ +

◆ simd_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::simd_type = xt_simd::simd_type<value_type>
+
+ +

Definition at line 106 of file xcontainer.hpp.

+ +
+
+ +

◆ simd_value_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::simd_value_type = xt_simd::simd_type<value_type>
+
+ +

Definition at line 86 of file xcontainer.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::size_type = typename inner_types::size_type
+
+ +

Definition at line 84 of file xcontainer.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::stepper = typename iterable_base::stepper
+
+ +

Definition at line 98 of file xcontainer.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::storage_type = typename inner_types::storage_type
+
+ +

Definition at line 77 of file xcontainer.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::strides_type = typename inner_types::strides_type
+
+ +

Definition at line 90 of file xcontainer.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer< D >::value_type = typename storage_type::value_type
+
+ +

Definition at line 79 of file xcontainer.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ back()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::back ()
+
+inline
+
+ +

Returns a reference to the last element of the expression.

+ +

Definition at line 109 of file xaccessible.hpp.

+ +
+
+ +

◆ backstrides()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::backstrides () const
+
+constexprnoexcept
+
+ +

Returns the backstrides of the container.

+ +

Definition at line 403 of file xcontainer.hpp.

+ +
+
+ +

◆ broadcast_shape()

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
bool xt::xcontainer< D >::broadcast_shape (S & shape,
bool reuse_cache = false ) const
+
+inline
+
+ +

Broadcast the shape of the container to the specified parameter.

+
Parameters
+ + + +
shapethe result shape
reuse_cacheparameter for internal optimization
+
+
+
Returns
a boolean indicating whether the broadcasting is trivial
+ +

Definition at line 619 of file xcontainer.hpp.

+ +
+
+ +

◆ data() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data () const
+
+inlinenoexcept
+
+ +

Returns a constant pointer to the underlying array serving as element storage.

+

The pointer is such that range [data(); data() + size()] is always a valid range, even if the container is empty (data() is not is not dereferenceable in that case)

+ +

Definition at line 591 of file xcontainer.hpp.

+ +
+
+ +

◆ data() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data ()
+
+inlinenoexcept
+
+ +

Returns a pointer to the underlying array serving as element storage.

+

The pointer is such that range [data(); data() + size()] is always a valid range, even if the container is empty (data() is not is not dereferenceable in that case)

+ +

Definition at line 580 of file xcontainer.hpp.

+ +
+
+ +

◆ data_element() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data_element (size_type i)
+
+inline
+
+ +

Definition at line 651 of file xcontainer.hpp.

+ +
+
+ +

◆ data_element() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data_element (size_type i) const
+
+inline
+
+ +

Definition at line 657 of file xcontainer.hpp.

+ +
+
+ +

◆ data_offset()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data_offset () const
+
+inlinenoexcept
+
+ +

Returns the offset to the first element in the container.

+ +

Definition at line 600 of file xcontainer.hpp.

+ +
+
+ +

◆ data_xbegin() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data_xbegin () const
+
+inlineprotectednoexcept
+
+ +

Definition at line 731 of file xcontainer.hpp.

+ +
+
+ +

◆ data_xbegin() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::data_xbegin ()
+
+inlineprotectednoexcept
+
+ +

Definition at line 725 of file xcontainer.hpp.

+ +
+
+ +

◆ data_xend() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer< D >::data_xend (layout_type l,
size_type offset ) const
+
+inlineprotectednoexcept
+
+ +

Definition at line 743 of file xcontainer.hpp.

+ +
+
+ +

◆ data_xend() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer< D >::data_xend (layout_type l,
size_type offset )
+
+inlineprotectednoexcept
+
+ +

Definition at line 737 of file xcontainer.hpp.

+ +
+
+ +

◆ derived_cast() [1/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::derived_cast () &&
+
+inlineprotectednoexcept
+
+ +

Definition at line 645 of file xcontainer.hpp.

+ +
+
+ +

◆ derived_cast() [2/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::derived_cast () &
+
+inlineprotectednoexcept
+
+ +

Definition at line 839 of file xcontainer.hpp.

+ +
+
+ +

◆ derived_cast() [3/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::derived_cast () const &
+
+inlineprotectednoexcept
+
+ +

Definition at line 639 of file xcontainer.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::dimension () const
+
+constexprnoexcept
+
+ +

Returns the number of dimensions of the container.

+ +

Definition at line 376 of file xcontainer.hpp.

+ +
+
+ +

◆ element() [1/2]

+ +
+
+
+template<class D>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer< D >::element (It first,
It last ) -> reference +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the container.

+
Parameters
+ + + +
firstiterator starting the sequence of indices
lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the container.
+
+
+ +

Definition at line 534 of file xcontainer.hpp.

+ +
+
+ +

◆ element() [2/2]

+ +
+
+
+template<class D>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer< D >::element (It first,
It last ) const -> const_reference +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the container.

+
Parameters
+ + + +
firstiterator starting the sequence of indices
lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the container.
+
+
+ +

Definition at line 549 of file xcontainer.hpp.

+ +
+
+ +

◆ fill()

+ +
+
+
+template<class D>
+
+template<class T>
+ + + + + +
+ + + + + + + +
void xt::xcontainer< D >::fill (const T & value)
+
+inline
+
+ +

Fills the container with the given value.

+
Parameters
+ + +
valuethe value to fill the container with.
+
+
+ +

Definition at line 421 of file xcontainer.hpp.

+ +
+
+ +

◆ flat() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::flat (size_type i)
+
+inline
+
+ +

Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).

+
Parameters
+ + +
iindex specifying the position in the storage. Must be smaller than the number of elements in the container.
+
+
+ +

Definition at line 669 of file xcontainer.hpp.

+ +
+
+ +

◆ flat() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::flat (size_type i) const
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).

+
Parameters
+ + +
iindex specifying the position in the storage. Must be smaller than the number of elements in the container.
+
+
+ +

Definition at line 682 of file xcontainer.hpp.

+ +
+
+ +

◆ front()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::front ()
+
+inline
+
+ +

Returns a reference to the first element of the expression.

+ +

Definition at line 108 of file xaccessible.hpp.

+ +
+
+ +

◆ has_linear_assign()

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + +
bool xt::xcontainer< D >::has_linear_assign (const S & str) const
+
+inlinenoexcept
+
+ +

Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.

+
Returns
a boolean indicating whether a linear assign is possible
+ +

Definition at line 631 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_begin() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_begin () const
+
+inlinenoexcept
+
+ +

Definition at line 779 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_begin() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_begin ()
+
+inlinenoexcept
+
+ +

Definition at line 767 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_cbegin()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_cbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 791 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_cend()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_cend () const
+
+inlinenoexcept
+
+ +

Definition at line 797 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_crbegin()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_crbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 827 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_crend()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_crend () const
+
+inlinenoexcept
+
+ +

Definition at line 833 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_end() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_end () const
+
+inlinenoexcept
+
+ +

Definition at line 785 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_end() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_end ()
+
+inlinenoexcept
+
+ +

Definition at line 773 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_rbegin() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_rbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 815 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_rbegin() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_rbegin ()
+
+inlinenoexcept
+
+ +

Definition at line 803 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_rend() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_rend () const
+
+inlinenoexcept
+
+ +

Definition at line 821 of file xcontainer.hpp.

+ +
+
+ +

◆ linear_rend() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::linear_rend ()
+
+inlinenoexcept
+
+ +

Definition at line 809 of file xcontainer.hpp.

+ +
+
+ +

◆ load_simd()

+ +
+
+
+template<class D>
+
+template<class alignment, class requested_type, std::size_t N>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::load_simd (size_type i) const -> container_simd_return_type_t<storage_type, value_type, requested_type> +
+
+inline
+
+ +

Definition at line 759 of file xcontainer.hpp.

+ +
+
+ +

◆ operator()() [1/2]

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::operator() (Args... args) -> reference +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the container.

+
Parameters
+ + +
argsa list of indices specifying the position in the container. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the container.
+
+
+ +

Definition at line 441 of file xcontainer.hpp.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::operator() (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the container.

+
Parameters
+ + +
argsa list of indices specifying the position in the container. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the container.
+
+
+ +

Definition at line 457 of file xcontainer.hpp.

+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xaccessible< D >::operator[] (size_type i)
+
+inline
+
+ +

Definition at line 103 of file xaccessible.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::shape () const
+
+constexprnoexcept
+
+ +

Returns the shape of the container.

+ +

Definition at line 385 of file xcontainer.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::size () const
+
+inlinenoexcept
+
+ +

Returns the number of element in the container.

+ +

Definition at line 367 of file xcontainer.hpp.

+ +
+
+ +

◆ stepper_begin() [1/2]

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::stepper_begin (const S & shape) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 710 of file xcontainer.hpp.

+ +
+
+ +

◆ stepper_begin() [2/2]

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::stepper_begin (const S & shape) -> stepper +
+
+inlinenoexcept
+
+ +

Definition at line 694 of file xcontainer.hpp.

+ +
+
+ +

◆ stepper_end() [1/2]

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer< D >::stepper_end (const S & shape,
layout_type l ) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 718 of file xcontainer.hpp.

+ +
+
+ +

◆ stepper_end() [2/2]

+ +
+
+
+template<class D>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer< D >::stepper_end (const S & shape,
layout_type l ) -> stepper +
+
+inlinenoexcept
+
+ +

Definition at line 702 of file xcontainer.hpp.

+ +
+
+ +

◆ storage() [1/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::storage () const
+
+inlinenoexcept
+
+ +

Returns a constant reference to the buffer containing the elements of the container.

+ +

Definition at line 569 of file xcontainer.hpp.

+ +
+
+ +

◆ storage() [2/2]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::storage ()
+
+inlinenoexcept
+
+ +

Returns a reference to the buffer containing the elements of the container.

+ +

Definition at line 559 of file xcontainer.hpp.

+ +
+
+ +

◆ store_simd()

+ +
+
+
+template<class D>
+
+template<class alignment, class simd>
+ + + + + +
+ + + + + + + + + + + +
void xt::xcontainer< D >::store_simd (size_type i,
const simd & e )
+
+inline
+
+ +

Definition at line 751 of file xcontainer.hpp.

+ +
+
+ +

◆ strides()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::strides () const
+
+constexprnoexcept
+
+ +

Returns the strides of the container.

+ +

Definition at line 394 of file xcontainer.hpp.

+ +
+
+ +

◆ unchecked() [1/2]

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::unchecked (Args... args) -> reference +
+
+inline
+
+ +

Returns a reference to the element at the specified position in the container.

+
Parameters
+ + +
argsa list of indices specifying the position in the container. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the container, else the behavior is undefined.
+
+
+
Warning
This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
+
+This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
xt::xarray<double> a = {{0, 1}, {2, 3}};
+
xt::xarray<double> b = {0, 1};
+
auto fd = a + b;
+
double res = fd.uncheked(0, 1);
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+ +

Definition at line 486 of file xcontainer.hpp.

+ +
+
+ +

◆ unchecked() [2/2]

+ +
+
+
+template<class D>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer< D >::unchecked (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the container.

+
Parameters
+ + +
argsa list of indices specifying the position in the container. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the container, else the behavior is undefined.
+
+
+
Warning
This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
+
+This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
xt::xarray<double> a = {{0, 1}, {2, 3}};
+
xt::xarray<double> b = {0, 1};
+
auto fd = a + b;
+
double res = fd.uncheked(0, 1);
+
+ +

Definition at line 516 of file xcontainer.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xaccessible< D >

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
friend class xaccessible< D >
+
+friend
+
+ +

Definition at line 239 of file xcontainer.hpp.

+ +
+
+ +

◆ xconst_accessible< D >

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
friend class xconst_accessible< D >
+
+friend
+
+ +

Definition at line 239 of file xcontainer.hpp.

+ +
+
+ +

◆ xstepper

+ +
+
+
+template<class D>
+
+template<class C>
+ + + + + +
+ + + + +
friend class xstepper
+
+friend
+
+ +

Definition at line 239 of file xcontainer.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ contiguous_layout

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
bool xt::xcontainer< D >::contiguous_layout = static_layout != layout_type::dynamic
+
+staticconstexpr
+
+ +

Definition at line 104 of file xcontainer.hpp.

+ +
+
+ +

◆ static_layout

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
layout_type xt::xcontainer< D >::static_layout = inner_types::layout
+
+staticconstexpr
+
+ +

Definition at line 103 of file xcontainer.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xcontainer.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xcontainer.js b/classxt_1_1xcontainer.js new file mode 100644 index 000000000..189d66efe --- /dev/null +++ b/classxt_1_1xcontainer.js @@ -0,0 +1,26 @@ +var classxt_1_1xcontainer = +[ + [ "back", "classxt_1_1xcontainer.html#a905660a4d87f4d3e7b651bcf6bb690d0", null ], + [ "backstrides", "classxt_1_1xcontainer.html#a238a7ac8797b8afa4906e6445483aa1d", null ], + [ "broadcast_shape", "classxt_1_1xcontainer.html#a689eeba5b9b1b4e8943c335d39ecc240", null ], + [ "data", "classxt_1_1xcontainer.html#a4a86bf768a1595ab704198ed8171b07c", null ], + [ "data", "classxt_1_1xcontainer.html#a71249b300db5d1bbab81c1cf6a5843b2", null ], + [ "data_offset", "classxt_1_1xcontainer.html#a8a1a7ab7c076ce9b48301c42b825a83c", null ], + [ "dimension", "classxt_1_1xcontainer.html#a2a8d4b0a73c42555c56b87384b251f2d", null ], + [ "element", "classxt_1_1xcontainer.html#ac2d91aa6cdb9d2970b5505d55f462b61", null ], + [ "element", "classxt_1_1xcontainer.html#a9d3b8aa16501359595778305cdb6c3b4", null ], + [ "fill", "classxt_1_1xcontainer.html#af6898b9f125926922986af040eb90240", null ], + [ "flat", "classxt_1_1xcontainer.html#a416ecf1f18ce38fae7f93d98d0c238e6", null ], + [ "flat", "classxt_1_1xcontainer.html#a58f5504c365d5e9c0ff9783c60e586af", null ], + [ "front", "classxt_1_1xcontainer.html#ad36ac2c194e7e6f470548dad89e88ca2", null ], + [ "has_linear_assign", "classxt_1_1xcontainer.html#a5720f32fcd8bc068a5489eddcf7bd8b1", null ], + [ "operator()", "classxt_1_1xcontainer.html#a6bcf87fdd442aa26095837b359d9b4e8", null ], + [ "operator()", "classxt_1_1xcontainer.html#aeee2e07bb1f3e66193e5ef3432b4011a", null ], + [ "shape", "classxt_1_1xcontainer.html#a69d345a40906cb982d205357520792fc", null ], + [ "size", "classxt_1_1xcontainer.html#a1c0a41d160789e55b7bdfd797b3af1cb", null ], + [ "storage", "classxt_1_1xcontainer.html#a75322e16f42222403daa18be69efa7d7", null ], + [ "storage", "classxt_1_1xcontainer.html#a19d0a91c82d0c35e414cf160751a9cb5", null ], + [ "strides", "classxt_1_1xcontainer.html#a521fff0ce57a45da819d7e313b3133b4", null ], + [ "unchecked", "classxt_1_1xcontainer.html#ac47ed05e4abb19044244cb26307cf8dc", null ], + [ "unchecked", "classxt_1_1xcontainer.html#aa493271826c9bc5298a556949755e84a", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xcontainer.png b/classxt_1_1xcontainer.png new file mode 100644 index 0000000000000000000000000000000000000000..46350edfa8235c35b493952df2845a94039df78a GIT binary patch literal 39032 zcmeHw3s_TEwtq+4+Q(R@?O4ZA$+V6-Y9)VbH7bwH)N#0$QSQ{zi~`Brq3RV05s^m- z$H8aRG)6@Xa7cm#2oUln@0@e~`|y_F%R;wfYJ0@7^EE z7{R?Kp7?z1ieLZg-GU!j_15>Aexs|n(;zi`aWO!0?%TU9tLBz!d*{k6vyaS4u3Ia5 z`;E8p9X0%%sjB^^#rvkJvRfDLGv)v3mp}W_Gf$4$_RD7eKBii-4mryt+5Z7=>h zJIG54{Mz9Iap+@PD91K3@ z-f{6y@a+%3Gw`owYTH9I8JyzJe&kOI44=cm6~u(G)!2kV*&O~q#%#ks{g?kL2YJiG zny5n%)BA`M_L&xQ`_`;k9RmdPGq5v?<;PiBVCywVjJ7U8-(yhzHNE$pOhgqEZ14SG z$XcOX(x=XL6Px{i?NYd59fDmU&4*@mCtZg2VDGySVrwUD>CrF|d=~b=h^xox$}TW* zp)ArVh^(N8YEOF?T?bQ68nbmPtdEaM#e^PANch<6e;+)-wa{JYZ33l)Z(08 zv8$PsODMYhsvr(us@sq@y^V+P+fTZ=?sqy0+u2>Y zRS7gTBTXnhM-0XY{Ysjn^v5I$!*-1&KY1|&>gR+lwZBesWXR}1|CStiR_l}oOMSsGAZ|IB-F<%f9#LtOXFZ6Cw z|1rWoqS1Vn+Se`#?WAaU?vw0=1!;j9&5enzwaun_&(o!a;Ri}63Jv?xwC#*B!EyNohbv^Nn zOvIZ0!!FI9N~n&0tz!IwWg9dcezb1~{<7J96znOkXh^#@pMDuw29{^YbjY(yXMwvk zcHo$ONUIlEW0Qblf$!j`5${`XumK!516JTHIgs#hvyoyZY)B2u4H<__D?R4b-tF9{ z=zW{t0=D7wFasc6HQZFijXKXkBe8ix?-aX+&Cl}T;Q#&6GfkJD1;$Jo95OwIrGMw^ zZ@FW0O3jDevD%|%Hnx6fuGqB5nGKpP&fz|AyW_UWL2snW(J1?D>y_~`%_ zf76lPJ;O2IE$J4W8T{PU(PsQ08r++`RHunCk<)om_+;o!;9l!Q4+btPQa(S-c_$W@ zScA*OsY>*Dd3bJWKGZ~CsLhwI=H(byGu|-1TRiZQxYW@W*k*EB8O?2s2h|~yw;IfQ zGG}UmToGNEt0)f*JS6R?i(k2$YQRl_RlXGWao-zQ(6+?&z~y2E3i9jh!T@;o4@#p4 zcR=`V+kiCq9H@s8B|vN>!<%+}Tb*kwH?D|=jv5hCI-mNqQeVvC`txvR zb3(@i>KIZ~RE3uMXVRjU=@9 zs_lUdSW^}QPaAx&KpM3mWE+$%u*rq?zcKbdRA<$snAxREwC-=%r5hg7&0Kcx4bP-*2GupSPID1KTAgoR+@dz&h>lxS!ruW7h$nt?xJ3{QgTp_V!;k`z*kj z?)wdvq3AzQ`LBNF2oat@-*50$%CETw@OhMQ9Q%HQbz=OU$^!8$mvAlmeuKp%e< z>k1Ptc;9be1t;DAeogZOfxFKyU|eVS1t8+%gsWgucM$=I|Bu0T;6*6EQdR+!g#0vN z$MbsQzSk=TUKo4*>Sk$&nF*XT!fWm_pB@N&z8rXA?~Q;QDLrmUpX;{8%O9lwUA!r%B`bS&mB z3^BvWHVMj4Mdj!QF#S-05Ssx9EX6jw+m0qF_b@qD)i+RZN`r)V4}4j^(`IzmHp?KO z2h|}4eg+^MRlQM0_!a!HP)fs7@CLjMckymW&_+DG%td*w=!z0Mf6ezN%U^YqlYYQ6 zK^9seg4I=U4cG#(7R7QcegN`H!*1BefF>i}M&4mOxB);@CkY?8MGu=8+$s{PM)>EM z!oGmekrEC;hA3Q!shlS{Yz#+v4b%!6?uMem_rvquKlb&RGB4kRbjY@`3dw@%x0P$U z6YgoES(l-+_tgvFFT=mLv+ftzcRD>atMN0%c3MzBNx{Sm!E?tk@YV4Kg|bx`o`-kY zQ8VKjvLg!FnSIdAqbPJ_cV@H?SN_Bv+Q$@sRvhKFkI>Yqx~e%j=TtQ6yR=Tq18SOu9hB5i zPi2SJ8k*oa?)6?(eGEAWI~Q;~ZZE?RqG6N1Gm(q40yM}D2j8H-$F-m1h8oaG%E8GP zLjT4nE~kc8gew^ayqWxsL_e@8{S(4+MOcU@`vNv^zA1_OTZ4?VqB5u`ILh_ZdJcZ9 zn^LqvU`L0To z^Ww>ncMZJOLUrZ>K*Iup-;0(l5mVSP1);J2;|38!>APR(d8uM9Zv82F zIUO}9pDjQa1Pw2gk~~z`%fvF-@!n;!CUSkO0Ka#cxUMxYPW=GCt~Z=S|-l61H+)QnwTf1kY*%QQxX%QF)3&hKpk^@0pDZhRv_LqH1>qfF{C zL+2n=O&~b-+L0;x(el@e4%IXWdXZ~L_SVKWPNK%AfD9#y%{^}_CgQ#JcJLJh>EB{8! z7_(SAJlb>wZn=khc}3N3WDs{JT%*k1_%hIO6`cU+9=Ptv5f_ z5B&S5_50`qe&hc*GEt??d8>Ku5a2t2;Kys9-6rmc$aDB(XFaJrHUu93R|ogf(j->M zF%u_G3a8A4pTys=x-z_08@4!$MPP1}flQBsz3Q2w^*tf}s^}`vBV12EP(c zxW{a^oVTMazF9zEYSRYN4@IRfk73*)5IkybfZG>^v*n>Y{0&Fz>_Eaj-$&+8SQ=l* z@|yTF`95f&kzh7I_ zn3uc?gqKk1s{vBn#&dH*>D{h39aCM49rf&0*o&U@E>1{s-*?77R=k@2O7T8;_U4pu zRp7y?E_ZvyUHTSyLMqG4+h(4l9V?{}15J6MAAK5V~hDXa1I0LizKKO~Ub-2+kaKXJzmW`h8v z>x>z;z(Z<(OfQZ)2+n$i#4BJ^8jdowvp7#l!_$jXmY zFHl{Z%en$pwif=8lr!s9BUEYR@tSkv(65*DiDfRmsUfr-fUTsazbyH2cc?mGr zyi<0oZ>>?KoFHEnxC8BiZYt*ln!=8EE$qak2Fg`J%R7f_d0FJ@!78AT+mgmgtcRcj z=a_a*nl)X-N*P6z<^fUSsU!-|!3Ru^PU=^S6SEM8uloAVAL}Klqxcxc2f%=MC%px- z(0sLV6_EhcM_L2|g5pKmmA=H^kQM&0hDLC4h;)0XAaZx~Wdi$E+R$SdZSY4reS<1~ z%(llKcfUUc{`BVg2LJg_O{)EU69*jk!SrlzWcObZ2_RJed-6s|?5=(f{oDuk4e05$ zNgX@iA7Wkt1h_dBJ^wh)5=vL1D?lL61!;>y+fA` zFgRij#WHAef$P)o^e)booa@r|5SqJRuuyoH-U3fzA1PR4X4fIx7(cFF>(92(UZlkY ze&?#=6qMnGML-AIBVBVv_9Hy}nb@pXp=wO_ym3#Oy>&f>c0r;znj|xLw-K;%=yhdhIZCNJ9 zQmRdSmbKehfg2VPUjL`Vy?&QzaYQVl$YaZkSXr{9tfl1r?NXERTaTJl;40HWvV^d5oVoZbrn>Fv$-s2Pg?2IrOTqm zMa5`uP>*qcTg-xW!FX?RbMDR6jXCb_fa|Q-e1NhkTz$Ltk~Rdt&AEZbZ$@LGAI8$y zQI!fpjFLt%Uo<{5bci~>UV=k%gKZLmNl>VDXq5&m6ScYsj*UXR_mloCwH^;|L75>7 zeNx~&jmY+B)@@g zcuIIKnh(<+%<%I!LZ9k^vebJ?Dys(I3|xZn)2rzQH-UH9b!U|qAkihp^VsyRMULD? zALeesEs21ZwI|Yw$o@_MuwGMkp6|CWFP+JKA70aJ?xd;Xvix&eGEgECKnEg$QS4JF z8j+cgm#KN%%ADqVWq#2ozTL4D@h1Hh{O7H60{l*?jC}#qMD>9_-s*nPXEYtoZ2{co zDk~Re|5W+Y%JIc9{=2fDLa%SRaA_qfYF~d!Is=bI^BxF1&~J@dSgx-`=j=K`xO^8P zZ#XG6+88a>Q!B`qX=8cjROtwYX33u&H_-*`#KKD{xt-K-^fw|L?OyY5p zc{)|3`U8BpUS418N%u>EH~iM3%!(`!lD(l^DSunWyuWR=D-vYr-C@-Gk8ZqdrPHpAGc)laG zjos{B53D^riogG(0TTe*)78ofuV4|#QcjGV25)nK%Z`;;PYZv@La3h8t!+9{Utqwh zcT3Q+NS8mprXK`Cj9aS0`^pJ(@J!^u-@>N{BYX!A+yDW*mmNHA7$7#to%-efI&bXn zySR_Tl>W!@?T|R-vB8QI0`Z5(_VdJsF!6u5ya7$GW&^c-Q4nVQSYAXewQKvgJ@8!2W?;K$i16WBe)J|6XMsanD{x~X$ccwHF8g} zWB-md@Enlt;J)Fiy^b)IuLlaJ=t4?^+pVl1xdZ=ETEP;fC0DY0MtID9z94m<+G`7R zbh^@;H-?vZW@B?&(bu$^#BKbybWce^IB*KdGp*ktm|@%#w~*y6x?mMtSLYSe$I;2$ zWRo`_nFmG03GAh#hY7m5MKSbA)$~rYj1z+u-ayWXR_f#Hat+j*VUO#!&;a9j zqy{eCM^MNmA(dyHKcm?x{}`R`@2Jj?!`|(gZAlL0tw+>>42@34RkT{`>rT=o;l1Po1i!lteC*BDR3B|J@? zRb8|CnsgU`VZ|$)3x}lw&J?yxBbdQh!L`1RFq4;@-yoUbe5X^piQ7~TL1XQ!u)X8a(+c=m zWjMRZAm3x$mx(}EMrcI@ZUQA1SB$56vPBqr%>HMz@1hs5UYseQA%napJQASwvPMlH z^QwsSvAJ1w2H7IMD?BJHhc%Ve_}AlOsm{bxf+pk;^m@@Dw-rMd0_R=#vQ}0vp+%{( zXa)&1SVTFHQHM@HWKuF53H2)->iWbgb9=H&>elb^*>LIj*fwRu&5%fOuPQC1sn*ug zEUEMI;vDG#CZ{b_Z@p>1-z0(fLn^y3TMvo*Oaa=y5txGHj+M>H?xOq{&+(>}+xQ;| zH)P7>E;zG!PG{~ZAB~&bI?F_5@6}B~uWo{7d6P1-5Lg|tj=H{tMt>e6ey8$H>dew3 zmS&bFu}bA4KgIoRnvkaPH0oC4m!GC@VM$!!pBmN#lK1l!#$Ov(8RI)OZ%Zditk+ES znuuu+TAGlKDD5PmBtHMT`Abp`S;NUEKg;JoM_#RcAibK`kX3Z$>52mtL3>O+*jnEQ)I7`M!5-y!MO>f_j#DWlJ=&m)B6^KBzR@ z49$fzE#)<8q~JoE;4Edgf^DHu>{|5q0sRqB7qn%BQ3KM#mZxHiVJY=mbkbPutGuzi z5_2o{X`z6m)Kj0vuj96aX2ATLohOqY)h%S*=YE6zb$sj#@-8^DBd?95<(9bRt(JK( zTgF>Wb|#IbP{^mWCfZzpGZ{xbh?FQEKwEzUt;O?Me?SaQ?5r^XI&)mNnmPfU1xQ$| zk+b{Eu4)UlIqM}8d>fK+^Z4-gCe}smv$}vz2mC3|Hw<18s}0Z%BhuAU6EJjj!mk`5 z%GXSBTC}|aa18QoowJB(X-7`$yU1O9yEy0JVx@ud6JmSyKOgYtdyeNn4t5?H?1(!C zYtJ4kS{9nWyIk3~leaTWU%v^0L;-iV+H}U+7QVXHo`fFKpw?r6{}}jsCl=^7LJoc| zqYXRB|9V&>fPSdUibW&dSL4g?k}dL5dHA(3dKf;dVO%L{3N?DSaO;<`kP!CPt+tu% z9J8uzQGlZOaFmQ-{?^g>O%Iu;SMVs$431uUNmt_jigK?q z^bsI%KhJGhMujmFQm`g$j=?wTMNLxjgHXLF0R(RNNIz3wJ3KpHxX?end!~O~_lc$) z_sJSd`-Y7=PGyDrxcgQsqqrHC@9;&1^aiOrZ#(S%f(+=Y2ch%%zQQzr-ifk#@|XR! z)O{A{LmmDz#2Xmt{o1;QVP*vr3tuj%i#6(3p})vaX*auIz6DS?GdBra_z5tDP5 zSH*8v$oL{#Yzg#ZbbfYI%EuGu)3>wP}(iN}Bh7!U)eqT@3W#z>>-%}rG@02^6W z#$Yvjx>YRSnU-1bpCNgZhuX-A!7X-+4R;`3>Cgl1<0}?V1{J>^ng0WEtHoA?U|)%9$v#JOq3_z6O?L-Cva{>`8mj9Oqe>5;OWGKJqWY+$)=)Z6}=f8c2 zj609^gT6!J?zfP)bQ&Pt#9v7~0k3uQDj9#q{)i=g<`47$9~5MPKIT4K@N%FmF?=Wi zU;d2>-2_-vc$w~uH5k6pZ#rR|88Tx5hDM?=kw*HZY1063|04*#OPUP-Hh8sF__|km zlTP1TWG|M*8Z(hib{>9+@6eJqA=oaw6I6l-L(eba3qI%bL$;7n0=3uD?ZWp)Y_#H- zUg*%sp;j9cqU=gNC?^VJ$1X=d58W?NtMCE?c26Ltlz!a20OheFZkD z$o-O%rzrds1ad;WF7~u5Jz${*%RU4#tRRCnvD9Q}Fg>ivx_TW$4z;*Rr(l___aVtWyk}|Y zF{!#PaFDvI*CwNrf;ON#g@zdX8Qj9qB;FP+2R55M&ELLXj6cg5Gr~giR3IL79d{oO zMFyFP+sqdj^YD``$U7_-SGfzU&`m{g6Tc*!E#E7f=UVTrvlIc7E#SB-sT{w6=012L zzBRWg%N8V?G{P%M(y*6gt@a{5$TAB$L2}V@4&sG(M3zuWph4%{%6T{dOyD$Hg^Ez~{e&rqWI*K?t*iIRY8GMKsCZ{s1~kOMzAdJ9N$_88)kMn*Ur0L+rZsJlYV#*wu>!NQhuy+cA{kB-_f5%ka!t+})#FC!WF3(-ElU1mlZro>Bp(-Sz;q_1juJ-_erv{3bd+*1gq3CW6aEmX*ga(PJ) zAipROkDfP{O*6_X1!dKz^Dbyfc(WARPu(|S&Jx%Ps*G9}+%J?}W2AU;@2Tt_&Q)!Z zo+L5!`3J1b2m0Gk_!*L~8#sayms?z@s{r&2@zCD$lYFj4PVu3_X&xupbf(1)-2iX~ zghh$5$$ef5l>WSZCuV|=zySwqQ;`fRyZ-P)%|wh_LGK)Ql?e21p>ktGlZu}583I(g zA2K@IT=cyozyGlt(wiWA?Du>}5XAS;4MAL60mpEe{N14Y2;Z)%)subhsg9*v5PE2O z^M?6&_phjuMhUuMWR%<1S(%CK^v4`3O^1!C8;3u zmwia2^?FTy{51)x8W~fplZ9IcIq45Y-S2drXwB_plFh5TfE7w}f#8?ra~N!l59o20 zb+UNzSn(vdJUdi`co`!jv(G?Ivo~KDX}>*djr%MI#Bbw&6tYyT`#`g6ycLVKmO$3| zu0T-ID5$o}uYknu2q%iECJ{~nV7)&AB$hr^u?gGSdLjt0Q1)>Or{KaDmX&d4wEo^Y zWUplxVCU3TM4?qS&2dHONx=9YXc7oYf_l3+n04ow4be$vi|wG`R@)5Ml1^1qA`!w~ zYCCaBtzdXh@+FoqHNOE~hejjAJf8WXPpaArdq^18(_35_>VtZ5SqY5*c%V*Ne zBGBNYin0Q#x@lZ%BS?$hU4V``Uq_;3?BeYlSnR16xa+NBsx98C9el`)?Eth^Jn# zSJ8z1H8&+xhl)A?(1bRP@HWBVg1M$#a zrb4o=oZC4$t372KwWoL`f?{Qit9?1aW*Wxq9z;{Y+u};1IV|-z%7r|TkfT3cVFrAa z_fxZ66(_S6uy(`JYe}^gBvbMk)pg4kv`zXvqVj6>P|!9&K!lrnsVZAxz5Y#diMfMs zle*^wH}saWR#$K*;?;h^X?c}wC2FW@Y_BcUEu;7-XNcQ8G|Fvm?oSbF_0%FuEazz8 zPUDwh+ z9t~Hms!^04=(zhR-F~Z(jAhv7Sj*YZDfKOhphbaosW`z9ixG_ojtq@8 z$P58rv5sHnPWGulv6mAxCQ{dU!rCK(J?cb*3{1Nl~5Cgy3%YBCZ4YQ3q}ojO6^WV}N3w;g70 zhBc=!wYgLQMX?QgkYa8yeZy<7uHoHNHK`2g+eC9Hlao-szpPtyK&zRMbb;ILo)J3f z_iZa{;GYuoYxToJH#?x!(?FLDR&W;Zv6a%gcnK&^+8GfPB3vm*K{HwC`vr)>GY@lF z4j^8gVxH^Ob<$DTrVSEVH9(27tHRb#!Q&e0lm5?3s6W>6L;~(#m7?wAsC?9tXO^GOVC-$_T-Ji4ep{e@W^lf3X?HmwpC7-Jb01(d zuTf{h#(2J5UoU=6-`xtD76i;QxJz8^X+#5sVGi>!eXk%$=Uv!O0{3GL*iSfH}E_)xh zlN%#G27Tsawj_gfYszddw3W9CUn$JV7X%eKo}VXK(grktT1n(XAcpHbDxxa1lU1^T zw}5)YGKTsNDTl=2JylWO^nPqv9EGwwc9s0+afjqhsi_pv@#nrrVBZ8b_;DVTLZKK^=W^KIn`k_!4@zZHXl%B%Kq!&`dp+ zHI{6Y>Czv00){f zsbXi=NpU_A#^^>_uf9Zgwb7P!gnuiiC((znC!*)}uwEA5HKeubKQXs5PQq0(y%RJe z!-P?R!j5)qW*%~uDIS{IfTz!G=}%G%Wsv_q+q>9(yeir;-80{J#`pVX!j|VW=H#5a zZo1-W_Kbo54O(kc9hbjv{0b*9oONC6TYHZ;8La`%VL%CW#!I@940s~~7~Bz=8fNGZ zLmnI$GeDdiV|r+{^8Ytj|6fDf%(VP zr^DN>N2u5Dvx)qER-by<4SBiBt}H~zIoPv%PHzqv`O@+QeD*N)kK9+hywbMqfG+`Q zBKA+3a2Ui7|JBu3gzCzBADmdkSd)QZ8%QZk1Uo%a=YWj!-^O$3=5j?T`zyyH?|K!B zU#JKt+VjNPP*r1tdRc6m@jY4jX7_cV{$&w`lV;Odv^#7d8c5%fs&j(1tw{$e7L>ls zkm^G0n^p7{{WLriBBv*51PVISH$d53GwLdfE0}6ugcTt761XD0|MNGcrj;iI za?yT}<#6v~kaJ`5E*$2+WlRHfytY@NcdUw?azm}8O%(wg@lCylxG9QaqGl;M%Bo%5 zJ+c>MU1>c0ua2Xhaz#m1Q^nWTcDX^Vc}JQ~6R;aVT(M<=)Ae+gD2-`v-_OdszzlGQ zl<$yTDCMbZ1LdLg))aREXa~8jxe(i+S$VB(hP~5Pes|?Xi&HnBa)|X=uycLZa|+N@ z?Gs!p8uQ54tnLh=3;R#POWvGA5)luE0tBMu`;r zFx8o68v?ylY3SM zlXp<6l8$R{@TL@yOI_A+2fHc$IQ)LN zgcg|NFYH(!%xg``U?T8HYmC4Ry)YFAoYJ(a$XAr}GP*VN>DIc~6UO@-xq^-rogZ>MC$XL5<*kOywzdXiMY#OB+Q2%-Dq{(I=C{@zXUXD830cN4=Yqs)Y#-8po5IZ!E{NLB zn3Jk%`l^zNKNT4`XhDjY5vctWs7kYwL&ZIlVhUqCg{|fr`GvQcp{)@Y^mp~&487+G zh4Hi7pie^c{7W7z#e>yMv7!W6v4c&5iBc=WHuOveK*cq{(&a#JD46iYHkYlM`ZS~} z<(_Skpi?5VA&)yC5KPX;}!3T5v<+lXq zNhyj>IEo#YABVf^2|)Yq2y+I&XK_^~H3p{et-+!mtLrFsuA@wrpCe2J4dJUnzk5@M zHAnu#v>oW@^26L>d`=<2VBnE93*7(iN12zvns&<=`$Y4E2q+ z5gBUVF=JDjnO^Z;ksMOW`Jhm9{mWW~`Iz(|HG?q$9Mj2I;kJWCl?$H9j~b^XQ|^@CT8R6uuOq`ZfP+0r=}xHWr3q}2{fhYvUZD21Z}D; zQgq-tqS*i^=y}?3%TRn7@rolKX?DkM(q zE{H=0svgmLL~Fs^3BfaXS#m|GDe$ULO!QML*cb8~2h4HbNIjuEs`j39b8;Fgv#73)AaAd^E@-{WZEeTsZiHK7D5|Vi_m*KiPuAP;$&6xSt`?&d@Y4? zCrO&Lf~Hv=WGYmM?>;2kfqX2!$sjw=9xi*pcUt_qM20y&I$Wtj0?5J&U%^CAWlvHU zShPa!CO(r=F)PdPAo+sGst>0teGlK$AP$D`bJ&2s0PQK-6b0HND}ETOh4(0lnuVXI z(&xzOj*|0&Px1xkZ$x^IOLoWcH4nBsMo191noL2d&$IXOmek<7-b*wH){smHQd^d!%_Tw#G4Wsn#A7%W;hLVPDkx_&CO|KXEGwJ9i$$#oW>-4zteJsaZB0TLI?TA z(=F`wtqVd$DrLI@siX%N$avL0tb>>Mw)19UuLBkiOsJ7(TZ_5mJQmuE%p`f zw~V3v0D8}^pF`nP8@fEJ(KmxD(R@C>{EBF~kQB~s=aAcJ2xy3QW~9==_l(TlcY0@c zmb2f6Px}f&hM-vDOl?)&W8N0b(QyjD3RX5*-=IFv-2jWD%!T79f=YV(BF~1y_Sbt3 zGC{|R1VA5+@miVMt%xB{$ikmIcK;Z_^d~IZ6%u9;M@+&$h`MN5;Xd>el zZ3nd0yYi4AF3wk~t1Ky+7%F$vy+oC4m0jn3grH6GJwkbzQ2sgpuR3ClA{uVvAN@Vk zbi4*+rlLw0IVC}Nh2cH+$B;CCid%8rohQ6T@`cvx%T!eci#n#d(8fQ^pGH58yWZE5 z+s#_g;WonPf{ML%a1@%S5Fn=vTERZQ`)g*X3SS5z%E(?XfRsp_mx*5&``p9@zPYJX zt0xz%UGW_GjbgeJkOKn0d$6)wV=z{r3SWj#{B~THbK@aVNgVZ-+rzvddQO|olEO@! zJ%mE_)vE>a9%cpOYkF$+vMTKix>Og#0R(|=y#miH1F0OTh5r{m=tQ|>pgKGiiOB92 zQ6Gi0vDey>?A7iQJt8M%K5&57n61YsNHzBpwIp92YwHV`o&vbmNOLnVq*`jqZjqS< zf{rqz>`PJmY*b<}Sv@XsBXU@+@e4k;q$%DMFWRCwY?hM*RhhEvIHxPRk03Bj-<^RB z>(w<_6%OwHk%or<9K{5zis}l%5n#Pi*?`J4mNdAqe5f!y2`J;05i4o}J*AZtik_8E z(IlFe1W$k{5}aPpq}F^)ON0%Lg8lhEjJXZ)u$9JCdvG>hXNyJ16ns!-6zw zTzBndeQd8Zl)aRcD+CQ-0c9H{ zeOzxo)XnVMonr8}xPaeFE5hV}UT3{{9_*dJbg%5474gzK@s0IMNK)df#gUdl3Ze-cD{^)4+;JjyzAAm~k9>y5@ zP37d`*|~ApoOaa*6eN&`%UkMRVH_$n-1a3`NU)xtkag0!iaD_=g`TLiQ?mzzcJS0) z*@!4+y=zHpsC9Ld#akFKcL=Y9JM-w*N{{4AywiunaIyP97c?eN?ju4MKtQ(ivcmde z7jZkwrp&L{&5g-=iQ!`Gg?F(H&7l0EyW`}&oW^xX4862-R-NHqac}irRz%;VOyu;) zs0Bd3T?|FTNv9-j@jNM(V1s8K zcvpau!vVX$t%gjTVoWhV45aC1%Q7j-g_L#T?TmHsWOn{`<11B}I&(;q*v^|3I?k3| zR(reT+&u(frscUac*tj@!Q*y@4LX8q=3cc!a6|AX)v2-u+Kec~auuPtTJ&o^wlYN0HU~vV}w%XRyfV$uTf-4y6?z$7jl%g{{mh+NVLS z6wvb%$iPOfACTgK&rMGyLXcU8nMyz|>tU>M=ue}Xl0I@76?90T4OoRAJrll5#02DS zFw7O|s-jby1IA52#`PnX>tQs#|8~FgHy@5SFjCdxQqsZ8_5LTo&x+-%eqHg_A3pg1 D+9d76 literal 0 HcmV?d00001 diff --git a/classxt_1_1xcontainer__semantic-members.html b/classxt_1_1xcontainer__semantic-members.html new file mode 100644 index 000000000..8bf14912c --- /dev/null +++ b/classxt_1_1xcontainer__semantic-members.html @@ -0,0 +1,194 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xcontainer_semantic< D > Member List
+
+
+ +

This is the complete list of members for xt::xcontainer_semantic< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
assign_temporary(temporary_type &&)xt::xcontainer_semantic< D >inline
assign_xexpression(const xexpression< E > &e) (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >
assign_xexpression(const xexpression< E > &e) -> derived_type & (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >inline
base_type typedef (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >
bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
computed_assign(const xexpression< E > &e) (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >
computed_assign(const xexpression< E > &e) -> derived_type & (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >inline
derived_type typedef (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >
divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator=(const xcontainer_semantic &)=default (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
operator=(xcontainer_semantic &&)=default (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
operator=(const xexpression< E > &) (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
operator=(const xexpression< E > &e) -> derived_type & (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >inline
operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
scalar_computed_assign(const E &e, F &&f) (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >
scalar_computed_assign(const E &e, F &&f) -> derived_type & (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >inline
temporary_type typedef (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >
xcontainer_semantic()=default (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
xcontainer_semantic(const xcontainer_semantic &)=default (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
xcontainer_semantic(xcontainer_semantic &&)=default (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
~xcontainer_semantic()=default (defined in xt::xcontainer_semantic< D >)xt::xcontainer_semantic< D >protected
~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
+
+ + + + diff --git a/classxt_1_1xcontainer__semantic.html b/classxt_1_1xcontainer__semantic.html new file mode 100644 index 000000000..0237793a2 --- /dev/null +++ b/classxt_1_1xcontainer__semantic.html @@ -0,0 +1,688 @@ + + + + + + + +xtensor: xt::xcontainer_semantic< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xcontainer_semantic< D > Class Template Reference
+
+
+ +

Implementation of the xsemantic_base interface for dense multidimensional containers. + More...

+ +

#include <xsemantic.hpp>

+
+Inheritance diagram for xt::xcontainer_semantic< D >:
+
+
+ + +xt::xsemantic_base< D > +xt::xarray_adaptor< value_container &, L, SC > +xt::xarray_adaptor< flag_container &, L, SC > +xt::xarray_adaptor< const value_container &, L, SC > +xt::xarray_adaptor< const flag_container &, L, SC > +xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag > +xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag > +xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > +xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag > +xt::xarray_container< EC, L, SC, xoptional_expression_tag > +xt::xfixed_container< typename storage_type::value_type, S, L, SH, Tag > +xt::xfixed_container< T, FSH, L, Sharable > +xt::xoptional_assembly< raw_value_expression, raw_flag_expression > +xt::xtensor_adaptor< value_container &, N, L > +xt::xtensor_adaptor< flag_container &, N, L > +xt::xtensor_adaptor< const value_container &, N, L > +xt::xtensor_adaptor< const flag_container &, N, L > +xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag > +xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag > +xt::xtensor_container< uvector< T, A >, N, L > +xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag > +xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major > +xt::xtensor_container< EC, N, L, xoptional_expression_tag > + +
+ + + + + + + + + + + + + + + +

+Public Types

using base_type = xsemantic_base<D>
 
using derived_type = D
 
using temporary_type = typename base_type::temporary_type
 
- Public Types inherited from xt::xsemantic_base< D >
using base_type = select_expression_base_t<D>
 
using derived_type = typename base_type::derived_type
 
using temporary_type = typename xcontainer_inner_types<D>::temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class E>
derived_type & assign_xexpression (const xexpression< E > &e)
 
+template<class E>
derived_type & computed_assign (const xexpression< E > &e)
 
+template<class E, class F>
derived_type & scalar_computed_assign (const E &e, F &&f)
 
Assign functions
derived_type & assign_temporary (temporary_type &&)
 Assigns the temporary tmp to *this.
 
template<class E>
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
template<class E>
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
template<class E, class F>
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
template<class E>
auto operator= (const xexpression< E > &e) -> derived_type &
 
- Public Member Functions inherited from xt::xsemantic_base< D >
+template<class E>
disable_xexpression< E, derived_type & > operator+= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator-= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator*= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator/= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator%= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator&= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator|= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator^= (const E &)
 
+template<class E>
derived_type & operator+= (const xexpression< E > &)
 
+template<class E>
derived_type & operator-= (const xexpression< E > &)
 
+template<class E>
derived_type & operator*= (const xexpression< E > &)
 
+template<class E>
derived_type & operator/= (const xexpression< E > &)
 
+template<class E>
derived_type & operator%= (const xexpression< E > &)
 
+template<class E>
derived_type & operator&= (const xexpression< E > &)
 
+template<class E>
derived_type & operator|= (const xexpression< E > &)
 
+template<class E>
derived_type & operator^= (const xexpression< E > &)
 
+template<class E>
derived_type & assign (const xexpression< E > &)
 
+template<class E>
derived_type & plus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & minus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & multiplies_assign (const xexpression< E > &)
 
+template<class E>
derived_type & divides_assign (const xexpression< E > &)
 
+template<class E>
derived_type & modulus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_and_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_or_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_xor_assign (const xexpression< E > &)
 
template<class E>
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
template<class E>
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
template<class E>
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
template<class E>
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
template<class E>
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
template<class E>
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
template<class E>
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
template<class E>
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
template<class E>
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
template<class E>
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
template<class E>
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
template<class E>
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
template<class E>
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
template<class E>
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
template<class E>
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
template<class E>
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
template<class E>
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
template<class E>
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
template<class E>
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
template<class E>
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

xcontainer_semantic (const xcontainer_semantic &)=default
 
+xcontainer_semanticoperator= (const xcontainer_semantic &)=default
 
xcontainer_semantic (xcontainer_semantic &&)=default
 
+xcontainer_semanticoperator= (xcontainer_semantic &&)=default
 
+template<class E>
derived_type & operator= (const xexpression< E > &)
 
- Protected Member Functions inherited from xt::xsemantic_base< D >
xsemantic_base (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+template<class E>
derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class D>
+class xt::xcontainer_semantic< D >

Implementation of the xsemantic_base interface for dense multidimensional containers.

+

The xcontainer_semantic class is an implementation of the xsemantic_base interface for dense multidimensional containers.

+
Template Parameters
+ + +
Dthe derived type
+
+
+ +

Definition at line 177 of file xsemantic.hpp.

+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer_semantic< D >::base_type = xsemantic_base<D>
+
+ +

Definition at line 181 of file xsemantic.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer_semantic< D >::derived_type = D
+
+ +

Definition at line 182 of file xsemantic.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontainer_semantic< D >::temporary_type = typename base_type::temporary_type
+
+ +

Definition at line 183 of file xsemantic.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ assign_temporary()

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer_semantic< D >::assign_temporary (temporary_type && tmp)
+
+inline
+
+ +

Assigns the temporary tmp to *this.

+
Parameters
+ + +
tmpthe temporary to assign.
+
+
+
Returns
a reference to *this.
+ +

Definition at line 652 of file xsemantic.hpp.

+ +
+
+ +

◆ assign_xexpression()

+ +
+
+
+template<class D>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer_semantic< D >::assign_xexpression (const xexpression< E > & e) -> derived_type& +
+
+inline
+
+ +

Definition at line 659 of file xsemantic.hpp.

+ +
+
+ +

◆ computed_assign()

+ +
+
+
+template<class D>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer_semantic< D >::computed_assign (const xexpression< E > & e) -> derived_type& +
+
+inline
+
+ +

Definition at line 667 of file xsemantic.hpp.

+ +
+
+ +

◆ operator=()

+ +
+
+
+template<class D>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xcontainer_semantic< D >::operator= (const xexpression< E > & e) -> derived_type& +
+
+inline
+
+ +

Definition at line 683 of file xsemantic.hpp.

+ +
+
+ +

◆ scalar_computed_assign()

+ +
+
+
+template<class D>
+
+template<class E, class F>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xcontainer_semantic< D >::scalar_computed_assign (const E & e,
F && f ) -> derived_type& +
+
+inline
+
+ +

Definition at line 675 of file xsemantic.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xsemantic.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xcontainer__semantic.js b/classxt_1_1xcontainer__semantic.js new file mode 100644 index 000000000..0786a8354 --- /dev/null +++ b/classxt_1_1xcontainer__semantic.js @@ -0,0 +1,4 @@ +var classxt_1_1xcontainer__semantic = +[ + [ "assign_temporary", "classxt_1_1xcontainer__semantic.html#aa6fec519f074fe655cd20aa1fd028dd3", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xcontainer__semantic.png b/classxt_1_1xcontainer__semantic.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e81fa2b2ae8f409d49cce9dd0025c373a19dfe GIT binary patch literal 28568 zcmeIb3s@6p-ag#cRo1r3wzjoah3y)oY6a_o2m#V=TWyL!TPmm=VykFHLO3Rbgk-I) z)DzU8L=A_wR;fjZh!7wr@Pvp-iUe1M@Mr&HV_MFQ;?3(;CBDqK-`~~M1-5SzhQqtfPyHw)>u2LvkxGUy&C}OM{lY~dhs_8& zAX*`RpGcMIh)A)qE(oK`Pf9z(*2S#~LB>KM)BF)i>hJF|Hf`{pewo3{3KR)bE7v)?wWiH53kgCpIz zTbFiANC&&%{SHhX)C~Va^4SCtaLh}Fuhh4qZ}%VOMlXyhW4k5ozjFsCQ0R(ENrylG zyy&NZ@qd)HTcAHh7Y`T>ECzH-GiohS6>w!W?Xth~mv4?POM>rOb#S5yBH(}a`)=7| zvgqSdcFQiYrS>xEfuCZPq(b3F$#Cs`JNcS%fcVU)n&ShXowjA-u`ZQ@XYKSJ5Zr~| zRU7did@!`A_M8?puQOLRT&~bXh`k-hr3HHg3T&Z!&eVfbP4s|N3H-%Q5BuT{_&tB3 zry*PHQ~_&prP2T2>VA(2oM_F=D%VVfpD+to9%;qcUk9g{o%|9?ZfKO=T$+|ImkMB#GdYXBNGvGB1BXnhhhORtFEl5sj^DOSLQxV`$ z=kdu$pNBwe#rizN(jp<`9FB`yjHZ;<%S{m-y?Tne1FFNx69yUZRXv;p zH@ec3*A^T3!*-g_89$oHi=nDI6EVlTA^b(Cuk;Z3>b993WlhjPm#(39k4g;A$IWH; z)EQrAejcqF-?4RiN0;dBgEmKUVq~>gsd@f>>sQ&)YhUpC^;TYT?%+3+cFw@&LMY)8^R1~309zz(9n4_?zyjrjv%Zwow(Wdh1m9h@dnMV(;xiYn(~;6p4zK;65X4@m);B=+a(8Y z-7Nq7LE~{pg*&`$q6eoIp_VPoD)t*yO7<`rEr)uVv=a4z9Xixf-c+|ew=9GgwP!=C zx|rP*lg4st!AXV=PtJ0E@F{BuSvO@WORs3SsXXk51W*43s7sIKALBh)A&NfDB`VnE z1Nb1`@Wo5oRv;&LAD?>RJq9Ls?-;+Rwu?26^jtPsm+*P&rkldC5-#p(LIL}Z zCUNt!!m^1+!W;i*(C8`0ZAi0?eS;yUREnU2Q#z&QVMU1=nE+o!%IwR&EYBD{e?6>^ zDnRA+j_KRJZy9d+DYvE0cp3^*%o7xl&c~(c`=rnwaOC(+Z=4u_38|AC#y3ulO8D!K zv@ds`{A}HO6Cg?M1<&>2NBx9{F+!m{H7YL$W}!ow$DGjnote$PCox?DCE>OyGvINvotH}RFsSB!p-{FSCA zwbh7-U_|8z{1P{qWjk}!yH4(i?n@yZY^N((v%UtyQECk@c1dQL?`cBywo&BF^PcxzWR_L4Hg;h73F&1T`!6Rlj2#{J6|5jc%SuB?UeS#mdS zL}?2G+1+{FNR?|Vhq@1_!_fC2VKg!kqu&mWXaQ|1jHFZAWLyn3z=wo#tA3$x<7n#8 zXZ8b70S*~r?$~Db>rZcX)sOaHH(YLTWu~octSliP=mI1K+_$Q?xA$TUSoXoqo)i79 z`qDPYl^HL^h!1mdoTPl^zOJg*bM&J_*MsF%xzR{9?v`-)&RR?$py)|4-|YU*1CW@& z)Xo9q$#$hGjAWI4$qrSG#;@$Sz9&E<{FD22LxS9=m`@%1SYG83Fa1SxvkQ3y^$RSC zG=E`!)-u=lpkbfEkyf=@9aS8&{BTm_$(~c}Vdng*+#+n7hJw;iY?k#bm$u{fv@ZW9 zbKPh#Xgx0YiIXsDJWW*jmF?T~=_a#E z-*(lbQE^Z{g>=d_ghrX_@|(qIRn--BqHncZGL3F%GDa1LX=%g&Nnd-0UO3k+_A%~N zjF(tl0b^J6ED&gX;}bSyHxCWg5&AXtxUYP2rHIGc(~KUd#^+W3IopVFD~VGhnFsD2 z%%@XLhfPM}IoO9oiBYB_BE#mKuw>8wV^CL-M81`hq;!N=CUA) zZaV}<2nj5g8DKdFUqx=&cWGglG+DuKYTxO9OYSqb2IV-+m66%F_KUXwc=$Z(OYg}; zU;$ih_Wod9Gaaz?qLfYpvT`%k_P(6D_>rci=I=~Q_=`0-iOT@_G&^_+7EM`=ho1LI z!02OV-DG{FIEIsUOmZ+O#6|RWwo8>TeQBCy&}d963+v4usAimN8e>;PgcV}jZuO;ooY0Ec@lLN12=7Mj=w$41XMVV*6L=W6CRrSS$z>SEGU;(2so91J6^ zlQ04fzcN9tNL^>ILd$KG^t9cmkdC+3b{HnZM6RbS7+ z-Sq09o@TS3LpCgBBS_!O;vr=PRl~tg_~6VR%c*z^zDV>*$F^%v-$eOx9p_I&lE`nez@&-)H@u0iG{tC-PVB=t^i7{wxSAw<7<7(dW#Z?YGGAztWi}B(NDJZ1=d8 z{Rb17O~mfZ&=HuG?ElB-uqAR3Gj623PuEGNXOiEd9J3J}CaS++ER9(NjDB%~$XPL8 zykA4WGP~E0$y%tvOr@S1J<4hrC%Rl9m`p*7t39VzV^X^V1Io?3DGoJcxh@f_j{~H9xbgg)5v-XZ>hZ8{ksLonSDxiDw`}p0cf76GIK; z`dwX~K~9W3CqzJjvY__SkJw>UiY2%|A;kU~9*N#Mhk+>iX}V<_$=W`gNnPFu4cB=f zipz@+Z&imv+<1K=I~0nQ7U(Z^WZ--2)cIZff0d?q`6 z!1_s87V1mV*X&?7tqNChf)hsl8mJ*v3plqdAIjxhq|5NYN(lgsXn1PwB6tc(mK=Cn z@qO3W@EVepXBTApdG6cLxcWJra;W?35#ZPH@TQsSn3f(7tFFC*(6P!cI-WRWaw+Rb*qRv z>?TYgD=mnwn?-ww=675QPaVVmxC=HvXW37`=$8LZub!EX;aOSy#N2Ud4|YEMGvVO> zR#kNF++Xva{C+Y?)darK_TP}Hdo(g@1$RNU+c|`Ux*&aHpEyBB-XBD#1IanyQ@V;4X!_i2kI;c30Pe8D|{Ek=89o$sdN=Hd@oD@1Qo1zbKh zG`V;o`wUArSp2IzmniYZv*tiJ74lUe9v zYAI?tgj?<9B6(XInoKpnFBcWBY`oL=G&4xPj7+ZCX^87!p5pAaN4Z8}DVrKb9rW+d zBhLcn1uH}h)f=Bk-radIeuBiLtqjk-!Wyy;U*^iLXh+8i*2}ODN6Xq&tWvTircLLD z@1jQ)&Wx=lAXsESxvN(b^}X>WYU9K5mrDTL;Cviu=-exXL_;F-iy{$}h6z2u%VirE zt61)RIIg+ZzQ zLFkbXkshE-cpX{K3y@cP)c7-jA~W~tmAmNQ`^@b?s3s7nT##A2P+0RCawkgc_)wm( zC4o^>qx94hYL8;Q*+(Id2(hc4P*ZwmZKI`Q3N~epkUEbhH_I6Jzv-I5A`W^EI%!dcVc^a$nnlAW_m;G71gE!r(8ss z-!a+-Or!W&O=SDl6=^_sXz)*+MG$57zMMIRwXr~}Qx?vkz2m+*hK~xQE8E;3kJ5Is zL!|6

o>h8hmdugkZ8jau++jwTB{Ry*FOB!#m`VRBWc`|zFz&zk zwZZwn3yP-icF&BH3;4R4HoRF6RQVH?KujHPTGRCK2bMpunE#11`_I^@WwE|0h>lM> zH_+oN(EW(T*2%mDSHJNtweK6!O7>X$k||^a#xcvJrnE)u%SZ-2=UbB< zvd*0C9flLhV$7-Ct-b<D%#bL5tR-xRW7+;J7cofHVXGaUE$;(t!yugm@LFYu_ z*wEqPPnh+LJ&Xa7cZ8=qQIFa$B|C}F?1)f`#EF@eP5#h9MHKNxF`y&C-^r;*5jDxj z)Ruch)i$~_Z*r743G$Hn9C>;KWW=4QVvcU#Tb5joxzp;yTYLBB2KwVNoA9Y{PuWAQ z_KbU_eYBQHy|Z-*$I_uYVc#u6nDIbBhedMBVndbH*sj#1cYTyYR9{zpL*6{gOfdr*jT)7B!N+7N?zV+JmWl72S%C*m|j6VV1(U2jd1Ra zXs+$3WV=(}?e3|Sl8L_EE1zRF$&cP|{nU~1WJzw-A#!RjRF*(JX~kkg3zT|_HQK#T zGq`_j@gpFIy*VN9IJZX#cVyb4^k$bJNpuUvhm*|%4e^qvj=I$@x zYVN8kB&C}dY`aF~pA052R2d>+W$0U$OLL_!^hf=OilD07jb;W`XHnzYsF`U%dfRQ- z2MN_{JR51)iCM0V<_E~~i(+{^I^XF$z!uOtIL%bmm4>&SN+!bWJ=wZ(@-ma5X9b2Y z+gjl;KIQ0=Dh`W1uZXeEVERE?G+THkSBZwjaB#gPBx@>#uGCQyzjPMy9B(ZQbt$U3 zgg%*0hn2@kiT|Gh6cF?O6@2@(q56j;^m9e*#IF(2b#1T)3BO=3^psKcFS?#) zz;h7hml)?938IGmy6halLr{`hXY2l#Oud*~C5r+DqaCAaB(+A{S`%t{j;^#$PIC4v zK&xn48L3Pl89?Km-)aVwe;@4O#-6N_sq+q)9)k%`#RFF{GNT3?=9;bGt zy^V5^0*3myuKWV(GOLf)e=I#7C2PHn-CA&E9;>gWBFFizyewht`Z-$Cd_j(!cbgf? zc*fBcTtsuUtPkg9RO_=0Wg?#axtN@28NgHB6s|Z$k%StjKW;}cI)bd{owRI>-!PW^ zc)iTryYF)~V{5T2xXmX*7yc?oN}?W^Z%VLgi}wV#JwxdW*3pfIdUU6(GEme9J+FP1 zGUnc3aqp(B$e6kZ9SP;}n6SamoiBU9wrVt6GIeiL^#9}nHc46BE zuIyt=Xx`O;*p^}@woBVuNNZuz1Y42h$}09(vZzsit)oDCuAjChLAdnUk#SQ~@9e)$ z!p#}^l8ak98X|8an+M|>Olq|>KQpD%in1GHGITwIKJw9CaOE!^B@;8e@n~X8#P(>c zZTOzMV{g$t=s+1qZN`2DMCv)9d$l>=m&XvfEoIKy=z?(E0_Jz>obT>inX9C|KZ&YNBABArI2b-xO%nZUM2tSbZSQNCLRDlL5#L+n z5M38cits zOLJ)Snl+(x^uq}--LwWjF7U3O<<9sw4A?(}_TTm*{7yo<4+-*UWLMuG>F}kUBoq5l z3R>dP2J8f?w)QvugL%q5=FtYWLv&VWmAscsaeG!ncmS*BK?F%D^wGa?s3 zv<-vs+i}NVs2F(4?|6b30Fy0AuBFs)bZ(Ic4yPa*8v>I=Ro^k(O=hkYOfrmfa%))~*Z};u6Eo?HVtn-Tqq9E5K5O10u2~ zc&QUr>D<+zNpwrhnp?M2;@fe;F-AzD{XTwNZN zP=wtjy$SIgsnSqM5H0nxz~U?4;>l?>)YG0PN-Ue1_@HX56+ITJ6QOS?91$r?Qq!8F zuTjffEL%~GO3VFgsBuccewpBht(3CVOpfh-44G2G| zzlat=x(41qWLt*%)Il#hK1+fz-DHoKJG83mfiAP)L>7r-!rpI1cV=jT=3jHcddS-3 zjPp@pu_HdcIS%a5?xT~>QrCy$Re~4^WN{V=de&i2KBry1ke1Ijcz7Krp=_U_1@h;C zwT?e1rPB5z`A?_Pg$9S%TzMN;l4gDqpWqmYT5C^!Ky)r+?8RV$|#P>syRRQfahW`Tp@KApCZ9 z#S*!|hFaPh{E}kSpgt3gyX^{?V=+?)qNYOrq{}^*q=lrqo;HTk@Wy$c=2^*X3S zRm>|ynPiC$>o8S^0x`3V`C=5-@(c;mK7ulh1gqSUui8Y#C6&C#r5T_Da<4I$2#Qlx zz3@TpkL)+9+4?MWN3ou8Ufqno0lHd+CDbBm!aX81wi-Z8wqw3Gh%_7TXH_KB_C7Ae z9oG`7JDDM<0d-Rbk+hsEUmG5&)l`l6q>|0-<*E_;=xRn#lhH&F;lj3uGy`U^}nc5fvVL%oeR`zG8V#K@om7A=44FD4ka z^Ut(ltWYgc`IqHoIJ$j^l?Av;Q44x(RB*R%!6o1#xv~eIc(gVJ5>xodv&{HeQ7GLc zePI=b-+K62k46Kf$q42ZgFv!4FOk^quDD^6k?F0I+LIdiw4^nFw2^)kM|FEk^kDu0 zDo>F!yM%UxyvA8mYd6z2VY%iB`JzhzI)AwXfk$&7$B?`b;oJ~n3LNqrbH@+?}0WT!%IEQDne>3Rm*PhVozYZruU8+JtB^ z#k@gO*uN<+d5NRxl;cg?+{HCyAgGav0jeh@D{_^ctS58s*g8&9b-;}x{%qPG7*!~~ z8%gKt{727L6ZiSLRxbe}tlaD%AASg;zc`b_?L0dT2_jLJ_%3hf@de8^yYy|eY#bbs z=@=4|s=i?lG@yOhUG+TCK)@>r^^8qi>aOLHiuw$rDy!%04m) z$`@2=2grv6WG+mguYm3!CzlJMH&7+q0@U@+YM`8M7&A4+)(YZ`CV+hXR)%xOyBjOLEe|g`5`3gczX_=?<$HX`jTnu#P9a za(1uXmNvHj_P$%tV#X7N^P+O1yvItzia8x+>T5p;2gRf)VMa`gS*M9-e9g0e%&f@; zqV>x#MgY;;TJLw%G@4Uh-)Z0t&>7&W?{2-V6)0f?*{ zCvRAgh@u@VoC`9?5%jFr`cgpjIF`)Ck;=?nH)tY)r!v zlthnFhD=Q?y!;Mt`R3)EXQc_%TOzGbK zH#ZU0*sVR}+P7mds&SA6anjngN{z@hGhjd6ws=ZUnFB8Nn-ZK&dZNS?$*~vQi|*Z@ z`%Q_=5))D8RT0!CPLpfz+ds>5^-6Xg!xr?!oY0;g7$dv6gMb+0r&=2s(Ma1h&dGf!gt2hSEN?5F*m})?L9MSg^=JBwIsyRAgbxhaccIkYLkDIBivJtv@h8CC2 zUP|%A_VW7|VL>dU@GmfLxpnX07VNrGzi7cyO9V5tda+r^k?wfD1538&4 z=M}9)`NEQFp%@io&-hX3UveN^RTe%T~*)O5jB=qU0i+uw#8PY+0BB$G<30 zA%@aOv#wFJsBE#dSYr7sTgQU>UZN}AX9WRN!n^0xO)5evJXI$7{Bb>8> zp#K%!^f%`HKa_y~F-ibDHSYN@_~zi(se3GS147afqdzib+(F%fboYXTuL5VqyV)Ar*~RNn8yC{@Cc>)v>&V{)$h4SZ_NwGxs{`ylSlXL3SO)3HqCti-KQ` z982!fNJ~~}Z>e!zS)|BNQrfp$n`&eJ4vwTuLkv)VAEmLe@2c{TmbgaT)P`$+Jj)!E zp6*?Z7r3iEmbvSCHF4z-8+nG$Z-66BXT>i%ZZ(il`}%T8C|4?qaO|NPf`#WI(Pi6T z@z6gCy|3@O9Vssh>!|Z+bcbo^EC=;!48QNecO^M0B1F%GV_<-exhPkumu6eH$=g;) z&XBKP0ipg5kSyB6eY5@@ID3QAc=@@ABwxZOhHhhx5DMM}^7^*lDOpvR&kp`h9Pt?l zopGInVL0U?4L_e;+P=M6WZyimdvhP<5mc|v=Pry?^=({-@u_+eMROjsd2E4RFBNoT zQ#e0GE>?smE&1t(p9Mzm{U)a*CE&Y)_vudW8T9a1z)>#vW)R2!*O{&VK@|9d^T3Sm zUyIiHy*ST0z~2t!{(BRjD7%ON{0CII6Io8%V&LP}I9YzUkv zBh#%x1_Mocih5k+^0aLr{N30fS;4|n1vaV^D0h$b1M6F$VWXmD2|hL*rHb*)z8T}4 z9!)nKQX9l-{*|s&7gcPGb|3FLWHsON^Kubyh*mhUSn#b&Ci|lEBl)!^yDDi<2%$tZ z+730Xd{xBM`H_ z%X*kB2Wu`!<(u?Lz9T0H+?eZ@x#m~(w?OPSi26}0iFu}EgO@@^A?J6c3!9$Oy7Y-2 z1m1=0X;QhBh_x%8j)F)1Okl2_Ro!_*ckyw3xi!)`s2gaqZiw=+stL;k0Vj6==_$YD ziJ0}}OOj;YWSPb;r*RpVbk!EYi?H>Sap?1-c?k2?WouI8pGLUT@O;n`HgHvqmUGeJ zVq-UZ*_E5;qpv0L?n8|U;X?!$_NfjK)dDmbdoRu?Fbq0(!R!Z)?{VA)Pwc)*W0t5| z2zE>IplqPMQQd5m)6Vy7zCEC8l~W5pi9Frz;@kbUaWSUe47*!GLWhOKl; zz3L7vLCd+oPkYNG8MYd<4&-Z)uJ^=sVAjJQG#!mKM>OTNxj6e*!dCvc5(rb7?@ocVfUVS% zoeTZ@%D|tx=IOWqkot$TV{@1}4SP6jFK%YavNX(1=-ZxhBc^1h&wg(7{s6~dolr^K zpBbR3zX607{yVVWc$WV<6!OR^WO>6lv#Gx}jByI-St{OKRDH6uPv%zueTY05>CV~N zzMUr*L&knMSpg`8Q_gQOS=Pb2me|4!D+o_`+DsUUsmxZ$!joDgK#P~$$SN)k<#FzA z1?4;@QU@pVG0ohqB&&VLmwTeW4n~w6DGkJNDl`qN(5hjm1cd2tEiMQRpjKyhXimY2 zN85f5DnJxn!q^s%PH4F{|GwX|#0LgITByr{QZ^(;p500!r+2QzLydv=BH`>IxT&VI zhY|});Lf{Vc!rA#qHh~3u?9PR&D?zGh(JVIEK>%POwLt&iqDXW~j5-eyI_pV0OI`x8 zO*48LcoP3sQp(Q`|3e=BZSDJalZW-51WdTNBnP7}XXeV8v21JSyD&OvB-eq~(9>Y7 zN7sVfu_=iWknLL_ip>;3I}1`HbyZHMbyS!-tIb zxXbS)M0nkXAtL`^GRiuhU?@zEK}(f5@@ED+)z)t?rwROIu{ z*^G6y=?xO$DMb!!nQfT4Wt-EQOQGPC6ZRi`@bk>V6%*(X_dYd8!9&MR0EBoZM6A&% z@MbHSKf-Aup)=;}ACY6fZRqjE0+M8c@6w9I`}x zm_~5H=)GsnE}2faRKNG7tj0Rc=SI!ua%%X3OY zcL}fg?jd&?-}MRF351BQf}=i7*kEcU9pV;vH-pneOw(PE>Fh-sp=5S=s8y@hF`vli zQxYFoP8g0tpUR??qOa9++(WNNOL&!7Pm_!rofAR_mvBvLDmEKPhR%U!t64yDXBSahZcMYx-$6U zk(r%aVi#p`w%6{u2PnlV_A}Pk@Hruo!L;aV>sA#Hk<1Rm3|0Ud-(Qcpml@7cie$nL9{mJSEv>a7b&+RT_4IxnbTc$oanSRgA-TX2X9_4*5eA{U0TY zei04)rGtCul*fJFqtEvywFXJ8*W#=+Yv1OuEtAj|nEF*&(j%i|fFY znF*K%WeGUSW`i*n_>YSp#ebA&(br?t8$_NlAsq54)Z1=RMs2T8Lqa%Zc_(mTk8=#4 znad<8)bps7R{Z-(2SmOv0s6FkO9K6RV9$@Crsu29+q9?Mi>Tu?qYPxjz!(608dFKU zI#4@6k+a>s?c4V2U2*M$Ek54NZBk7OVHL61_8RcwK%DCQ3|k`aG_(Sw?2JpWvqTO+ z?(bfl2dKv9QL+7g3th23`>(7|LgSeiL7w4wMT50%Nv}qr>o}x?K>r|4UzU}}= zvA4_E!%GF$hhj;(b)^49%4&II_sv%$(kR83*xLc$Sb9aRPZ+O~mNn~!#c%;M4#gHL zJJRDr^Cwg~-9rNk$+pz|-J6>FP8bfT7{YhupC|iP^XpK>g6M>36$Ix8F4m3J`s%H4 z@w1{?=0y(qqosUeC)9ENI>NkS1`PafPUHpl-}+fz;H=!i9P*ae_?P2gBd2uc`hI3! z{6dQOZ=}rs?C?LVlm9{1NivSH*T}V;MYwZ(2MTr)SUGGW+q2X)bKe_+JN~bXZZ+wJ zAoNynX+|YDh%N+qfx-6^auAI!fhmCT9)xvOP(^cc2rBjdca)P5Qi{YYmTiqDm}ekl zN5rG5mx@V&@9A1CRDpnR>un*Fs*G2{2{lKjk^++f<&U4CBH?0Su8^c-xw1i0rwLi^ zJ7upp|Au#G>5?C7diRx<^d@Z4(v2wriJ8N#%OLCfFd?}#K}fC?u_6s|&Y11pwa=+` zc&Wx&^X!l;t zgCY)QM^;=wyzu~&9sGn`t`I`r3OZZ;d11l;2-wE@|Jjy7Vn!wajbz+wGNYe(yR6e~E7kMGeo4FzU$uTBZ7SwTg4>K}S_Mr7%S(fxc7a9xXMTBpv=GFizDsEWM*}AvJtp`7|;PJ zeeZ?o2bWBW@v%yllX)hAwqt+sV`*Q1>fox)ELOw(@QNtUK~pyyU$$i#RuW8FYRS9H zzL&p{A3dnit2enXuGp#e$SF}5N|GI96y&iNiVUH@PcNO3HVf6E1UrlTWrqni zi~kT$|34`S^*f2DAnbZd9(j?`f-da$_CAAP2iE+9gQb4*7Iv34X~=R~?QREtKH7)V z2!p^H&a@Qe1A(M}zhTtRQos#RH@ruGa&p3Q^h|}S_}By6Myh_Z)~MT5#MauqDbva*803rVz+fK!4M)G`#`Q; zLLAX_FCy1}GgVd0eZ_W^8@=`sc0TNx0eWT|8t{yq)({%nD@UCin2AyhYg)?$Zq{{Q zsb949KINr~d9i=^3~Oagt{7smi5biE=eRhUndSjv=}s7CV(A)b?Xkz@RO!ARQI(S# zt>tm@6LY^}24SOdOY;TTy20;pU2f6lsuJd>GN&bDP~58-9CeDn2aU(Nc5=g_$>Fp#M9GvA}@-+2Owy$ofaYxS!X{`~AwaFs6i>HD1L|**iI6 zIWWh)#Kf{RTUrYAZi2cQrt{e|otOV8Ed{&1=M#K*X-(rTUNiDrPQJA| zhq$tu+zDJgA#Jf9CNa!lf@Vwr^RaO+Pj9U3oLH%$SP1+c2(`1bK%8-!T{16PrP=6| z?Tz*t>Us?H9R7EJc7U3aF@vDGWb7qa7R?Vj42v?g2ZW#ook^Q~WA(}i5~naNrIG0s zL#zF9q_+TuTzzMqy@W`h-?Nkb4C&WPl~d?3`_f?T)}UL68}Es z3eM-Vr}UQFy(8j~k%Lms+X}PeaFD+v14J>___JtP29TBpJgx%AeVo(0)}wK`0tM!t znetr@+eoMq5My%>S7uHorYVgrIYse$(vs65@}1O@x|oV*Vu?RSj( zc}5T3L@!5WrbHiNzg^PIY>C()&F9o~LEY@|DDjwOATC&?&lht~>{{F7xG4CVZF(kY z7t}*?+VVowG|s)jKoODzGxxY7hHB@Vk0-nImcDU5Lu`imj8C)rd+Ad9s8(B}T19BQ zpt_*O@26Df8I?ruOyt|dN92HnP4z1M=yG=Il2lSK0sch^a_BVW(x(gnZpFU^4&hOP^#4=;?RU_nbj@c0+PgpTVl{?1re2_^6)g{{nxom60 z{yT7mf{F6Cmwa(u&=}?FVysG2-*1i7LPvPnKbb#|SYydd1qzt1Pm_Ovv!`3>eiZZV{#=ej}U> z;`J&@WF-g@OC~-32loP@p4Jii_)g9>20~{Z<8lnP;kB7f_-5`~^8R_k@O(2tt@@hc`J(+%{ETOQ${20EPJCoM16)snr~_mfJ2GRb z)he@dc10Vi@2kIZ6YO$+q>~2GZO=@?9ffs)xDtRDmksyA$RvZ0=1%0 zk5=d6vCEu96EX8Fo3?sZ1%jN-gh#6bBOr9EEZ(qZFi4xgVb@Hy}964twC`PV0F5umK<9t)Abe;A&*WEs_E*Q5zeE zE-ddfDW0l4XXpM1?JPSy`r00RMInPMdN8b)NMzxrh^zxXO8H601`KXXAFad36`16?)odWr8)vI-Q=czVw`-Y zGML#jGpeBFE5ZFRHSnsx2Z;K=*zbR9*!)qC<+rQP{BB0}j^h0`{*CLP5`>@0muL8->8-fhk~ z_?WJoR?MpsZh@=;{{&NGg3(_y%DmRP$ziH8x-5@Me5*`n z5YsN<(pSn)-h~<<#`f+eNGJ5~@$Dlcj}ZzhO87b2v?Qn*A;QD5d27K-X~ZLrzI+(MuIO zjlQ#G>;{se>>T2ZQXfD4dqwEMsuz%$ZJ@Bzva|SAVIaH`Iq@SWz{g=b3EO{)$FAzp z%XQLd<6``yDFqu)rt#m9qbmiypcbAfHX}rpySH}wN1rAWFDG}Jl6S^`Vs571)A*0e xP5=DG#LvnB6BHPslfR1cbJy7s=bYC}v;}Wkuk8cBq4xyl-H><6{=WP3{|7N2I6D9U literal 0 HcmV?d00001 diff --git a/classxt_1_1xcontiguous__iterable-members.html b/classxt_1_1xcontiguous__iterable-members.html new file mode 100644 index 000000000..45f895584 --- /dev/null +++ b/classxt_1_1xcontiguous__iterable-members.html @@ -0,0 +1,198 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +

+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xcontiguous_iterable< D > Member List
+
+
+ +

This is the complete list of members for xt::xcontiguous_iterable< D >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
begin() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< D >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
cend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
const_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_linear_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_reverse_linear_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
const_stepper typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
crend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
derived_type typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< D >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
inner_types typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
iterable_base typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
linear_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
linear_traits typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
rend() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
reverse_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
reverse_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
reverse_linear_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_const_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_const_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_iterator_impl typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
select_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
static_layout (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >static
stepper typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
xconst_iterable< D > (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >friend
xiterable< D > (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >friend
+
+ + + + diff --git a/classxt_1_1xcontiguous__iterable.html b/classxt_1_1xcontiguous__iterable.html new file mode 100644 index 000000000..75c888e93 --- /dev/null +++ b/classxt_1_1xcontiguous__iterable.html @@ -0,0 +1,2104 @@ + + + + + + + +xtensor: xt::xcontiguous_iterable< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xcontiguous_iterable< D > Class Template Reference
+
+
+ +

Base class for multidimensional iterable expressions with contiguous storage. + More...

+ +

#include <xiterable.hpp>

+
+Inheritance diagram for xt::xcontiguous_iterable< D >:
+
+
+ + +xt::xiterable< D > +xt::xcontainer< self_type > +xt::xcontainer< D > +xt::xstrided_container< self_type > +xt::xfixed_container< typename storage_type::value_type, S, L, SH, Tag > +xt::xfixed_container< T, FSH, L, Sharable > +xt::xstrided_container< D > +xt::xarray_adaptor< value_container &, L, SC > +xt::xarray_adaptor< flag_container &, L, SC > +xt::xarray_adaptor< const value_container &, L, SC > +xt::xarray_adaptor< const flag_container &, L, SC > +xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag > +xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag > +xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > +xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag > +xt::xarray_container< EC, L, SC, xoptional_expression_tag > +xt::xtensor_adaptor< value_container &, N, L > +xt::xtensor_adaptor< flag_container &, N, L > +xt::xtensor_adaptor< const value_container &, N, L > +xt::xtensor_adaptor< const flag_container &, N, L > +xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag > +xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag > +xt::xtensor_container< uvector< T, A >, N, L > +xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag > +xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major > +xt::xtensor_container< EC, N, L, xoptional_expression_tag > +xt::xtensor_view< EC, N, L, xoptional_expression_tag > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using derived_type = D
 
using inner_types = xcontainer_inner_types<D>
 
using iterable_base = xiterable<D>
 
using stepper = typename iterable_base::stepper
 
using const_stepper = typename iterable_base::const_stepper
 
template<layout_type L>
using layout_iterator = typename iterable_base::template layout_iterator<L>
 
template<layout_type L>
using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
 
template<layout_type L>
using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
 
template<layout_type L>
using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
 
template<class S, layout_type L>
using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
 
using linear_traits = detail::linear_iterator_traits<D>
 
using linear_iterator = typename linear_traits::linear_iterator
 
using const_linear_iterator = typename linear_traits::const_linear_iterator
 
using reverse_linear_iterator = typename linear_traits::reverse_linear_iterator
 
using const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator
 
template<layout_type L, class It1, class It2>
using select_iterator_impl = std::conditional_t<L == static_layout, It1, It2>
 
template<layout_type L>
using select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>>
 
template<layout_type L>
using select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>>
 
template<layout_type L>
using select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>>
 
template<layout_type L>
using select_const_reverse_iterator
 
using iterator = select_iterator< ::xt::layout_type::row_major >
 
using const_iterator = select_const_iterator< ::xt::layout_type::row_major >
 
using reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major >
 
using const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<layout_type L = ::xt::layout_type::row_major>
select_iterator< L > begin () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_iterator< L > end () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > begin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > end () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > cbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_iterator< L > cend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_reverse_iterator< L > rbegin () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_reverse_iterator< L > rend () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > rbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > rend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > crbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
select_const_reverse_iterator< L > crend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
broadcast_iterator< S, L > end (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
Iterators
template<layout_type L>
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
template<layout_type L>
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L>
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L>
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
Reverse iterators
template<layout_type L>
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
Broadcast iterators
template<layout_type L, class S>
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
+ + + +

+Static Public Attributes

static constexpr layout_type static_layout = inner_types::layout
 
+ + + + + +

+Friends

class xiterable< D >
 
class xconst_iterable< D >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

Reverse broadcast iterators

template<layout_type L, class S>
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
+

Detailed Description

+
template<class D>
+class xt::xcontiguous_iterable< D >

Base class for multidimensional iterable expressions with contiguous storage.

+

The xcontiguous_iterable class defines the interface for multidimensional expressions with contiguous that can be iterated.

+
Template Parameters
+ + +
DThe derived type, i.e. the inheriting class for which xcontiguous_iterable provides the interface.
+
+
+ +

Definition at line 311 of file xiterable.hpp.

+

Member Typedef Documentation

+ +

◆ broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
+
+ +

Definition at line 351 of file xiterable.hpp.

+ +
+
+ +

◆ const_broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
+
+ +

Definition at line 353 of file xiterable.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::const_iterator = select_const_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 381 of file xiterable.hpp.

+ +
+
+ +

◆ const_layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
+
+ +

Definition at line 343 of file xiterable.hpp.

+ +
+
+ +

◆ const_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::const_linear_iterator = typename linear_traits::const_linear_iterator
+
+ +

Definition at line 361 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
+
+ +

Definition at line 357 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 383 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
+
+ +

Definition at line 347 of file xiterable.hpp.

+ +
+
+ +

◆ const_reverse_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator
+
+ +

Definition at line 363 of file xiterable.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::const_stepper = typename iterable_base::const_stepper
+
+ +

Definition at line 321 of file xiterable.hpp.

+ +
+
+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::derived_type = D
+
+ +

Definition at line 315 of file xiterable.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::inner_types = xcontainer_inner_types<D>
+
+ +

Definition at line 317 of file xiterable.hpp.

+ +
+
+ +

◆ iterable_base

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::iterable_base = xiterable<D>
+
+ +

Definition at line 319 of file xiterable.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::iterator = select_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 380 of file xiterable.hpp.

+ +
+
+ +

◆ layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::layout_iterator = typename iterable_base::template layout_iterator<L>
+
+ +

Definition at line 341 of file xiterable.hpp.

+ +
+
+ +

◆ linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::linear_iterator = typename linear_traits::linear_iterator
+
+ +

Definition at line 360 of file xiterable.hpp.

+ +
+
+ +

◆ linear_traits

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::linear_traits = detail::linear_iterator_traits<D>
+
+ +

Definition at line 359 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_broadcast_iterator

+ +
+
+
+template<class D>
+
+template<class S, layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
+
+ +

Definition at line 355 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major >
+
+ +

Definition at line 382 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_layout_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
+
+ +

Definition at line 345 of file xiterable.hpp.

+ +
+
+ +

◆ reverse_linear_iterator

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::reverse_linear_iterator = typename linear_traits::reverse_linear_iterator
+
+ +

Definition at line 362 of file xiterable.hpp.

+ +
+
+ +

◆ select_const_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>>
+
+ +

Definition at line 371 of file xiterable.hpp.

+ +
+
+ +

◆ select_const_reverse_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::select_const_reverse_iterator
+
+Initial value:
select_iterator_impl<
+
L,
+
const_reverse_linear_iterator,
+
const_reverse_layout_iterator<L>>
+
+

Definition at line 375 of file xiterable.hpp.

+ +
+
+ +

◆ select_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>>
+
+ +

Definition at line 369 of file xiterable.hpp.

+ +
+
+ +

◆ select_iterator_impl

+ +
+
+
+template<class D>
+
+template<layout_type L, class It1, class It2>
+ + + + +
using xt::xcontiguous_iterable< D >::select_iterator_impl = std::conditional_t<L == static_layout, It1, It2>
+
+ +

Definition at line 366 of file xiterable.hpp.

+ +
+
+ +

◆ select_reverse_iterator

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + +
using xt::xcontiguous_iterable< D >::select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>>
+
+ +

Definition at line 373 of file xiterable.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class D>
+ + + + +
using xt::xcontiguous_iterable< D >::stepper = typename iterable_base::stepper
+
+ +

Definition at line 320 of file xiterable.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ begin() [1/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::begin () const -> select_const_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 986 of file xiterable.hpp.

+ +
+
+ +

◆ begin() [2/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::begin () -> select_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the first element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 949 of file xiterable.hpp.

+ +
+
+ +

◆ begin() [3/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::begin (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1187 of file xiterable.hpp.

+ +
+
+ +

◆ begin() [4/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::begin (const S & shape) -> broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the first element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1159 of file xiterable.hpp.

+ +
+
+ +

◆ cbegin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::cbegin () const -> select_const_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1009 of file xiterable.hpp.

+ +
+
+ +

◆ cbegin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::cbegin (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1215 of file xiterable.hpp.

+ +
+
+ +

◆ cend() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::cend () const -> select_const_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1028 of file xiterable.hpp.

+ +
+
+ +

◆ cend() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::cend (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1230 of file xiterable.hpp.

+ +
+
+ +

◆ crbegin() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::crbegin () const -> select_const_reverse_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1112 of file xiterable.hpp.

+ +
+
+ +

◆ crbegin() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::crbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1308 of file xiterable.hpp.

+ +
+
+ +

◆ crend() [1/2]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::crend () const -> select_const_reverse_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1131 of file xiterable.hpp.

+ +
+
+ +

◆ crend() [2/2]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::crend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1323 of file xiterable.hpp.

+ +
+
+ +

◆ end() [1/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::end () const -> select_const_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 998 of file xiterable.hpp.

+ +
+
+ +

◆ end() [2/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::end () -> select_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the element following the last element of the expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 968 of file xiterable.hpp.

+ +
+
+ +

◆ end() [3/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::end (const S & shape) const -> const_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1201 of file xiterable.hpp.

+ +
+
+ +

◆ end() [4/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::end (const S & shape) -> broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the element following the last element of the expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1173 of file xiterable.hpp.

+ +
+
+ +

◆ rbegin() [1/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rbegin () const -> select_const_reverse_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1089 of file xiterable.hpp.

+ +
+
+ +

◆ rbegin() [2/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rbegin () -> select_reverse_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the first element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1052 of file xiterable.hpp.

+ +
+
+ +

◆ rbegin() [3/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the first element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1278 of file xiterable.hpp.

+ +
+
+ +

◆ rbegin() [4/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rbegin (const S & shape) -> reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the first element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1250 of file xiterable.hpp.

+ +
+
+ +

◆ rend() [1/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rend () const -> select_const_reverse_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1101 of file xiterable.hpp.

+ +
+
+ +

◆ rend() [2/4]

+ +
+
+
+template<class D>
+
+template<layout_type L>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rend () -> select_reverse_iterator<L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the element following the last element of the reversed expression.

+
Template Parameters
+ + +
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1071 of file xiterable.hpp.

+ +
+
+ +

◆ rend() [3/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns a constant iterator to the element following the last element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1293 of file xiterable.hpp.

+ +
+
+ +

◆ rend() [4/4]

+ +
+
+
+template<class D>
+
+template<layout_type L, class S>
+ + + + + +
+ + + + + + + +
auto xt::xcontiguous_iterable< D >::rend (const S & shape) -> reverse_broadcast_iterator<S, L> +
+
+inlinenoexcept
+
+ +

Returns an iterator to the element following the last element of the reversed expression.

+

The iteration is broadcasted to the specified shape.

Parameters
+ + +
shapethe shape used for broadcasting
+
+
+
Template Parameters
+ + + +
Stype of the shape parameter.
Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
+
+
+ +

Definition at line 1264 of file xiterable.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xconst_iterable< D >

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
friend class xconst_iterable< D >
+
+friend
+
+ +

Definition at line 444 of file xiterable.hpp.

+ +
+
+ +

◆ xiterable< D >

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
friend class xiterable< D >
+
+friend
+
+ +

Definition at line 444 of file xiterable.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ static_layout

+ +
+
+
+template<class D>
+ + + + + +
+ + + + +
layout_type xt::xcontiguous_iterable< D >::static_layout = inner_types::layout
+
+staticconstexpr
+
+ +

Definition at line 323 of file xiterable.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterable.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xcontiguous__iterable.js b/classxt_1_1xcontiguous__iterable.js new file mode 100644 index 000000000..2bd427354 --- /dev/null +++ b/classxt_1_1xcontiguous__iterable.js @@ -0,0 +1,27 @@ +var classxt_1_1xcontiguous__iterable = +[ + [ "begin", "classxt_1_1xcontiguous__iterable.html#aa37724c4f2fe4ed455f37a2a485dcebc", null ], + [ "begin", "classxt_1_1xcontiguous__iterable.html#ac598e11fd3eb83a2dcb5c74582ffd95a", null ], + [ "begin", "classxt_1_1xcontiguous__iterable.html#a3b0ee4efcc6ed36094e02631279cb3ce", null ], + [ "begin", "classxt_1_1xcontiguous__iterable.html#aa93641d4488c4ddb95274b41df89401f", null ], + [ "cbegin", "classxt_1_1xcontiguous__iterable.html#a68fed899dcdd91ba8ffe1438f329e0fc", null ], + [ "cbegin", "classxt_1_1xcontiguous__iterable.html#aa38da69077754acd8e5daf5f010b8591", null ], + [ "cend", "classxt_1_1xcontiguous__iterable.html#a2f1e2287962220db88240b3a0e5cf196", null ], + [ "cend", "classxt_1_1xcontiguous__iterable.html#a93eb3f286ccab925d621ef1b87e6d126", null ], + [ "crbegin", "classxt_1_1xcontiguous__iterable.html#ab363ab0f7faf25ed137b432eeaca6f43", null ], + [ "crbegin", "classxt_1_1xcontiguous__iterable.html#a74bc69cf0cbfcb235ec3ca8fe75b962a", null ], + [ "crend", "classxt_1_1xcontiguous__iterable.html#aec3659b2356b81494ebfcb5a4bc0482e", null ], + [ "crend", "classxt_1_1xcontiguous__iterable.html#a0b849e0972151523dd2bf988fe90c7da", null ], + [ "end", "classxt_1_1xcontiguous__iterable.html#a8e0a8bdffdcfd3c5bc80f358a6931f9f", null ], + [ "end", "classxt_1_1xcontiguous__iterable.html#a18eb1a595021e73f682b8443ea50f1ec", null ], + [ "end", "classxt_1_1xcontiguous__iterable.html#a11d0a0ce2bbaef8f6dda78febe364fec", null ], + [ "end", "classxt_1_1xcontiguous__iterable.html#ad75c7cb209c82c2d3ea6fa9e696f329e", null ], + [ "rbegin", "classxt_1_1xcontiguous__iterable.html#a34ab77bf7e6f44cf32100dfa19016985", null ], + [ "rbegin", "classxt_1_1xcontiguous__iterable.html#a9baaf955c445124c0ce0b15e46e9ea67", null ], + [ "rbegin", "classxt_1_1xcontiguous__iterable.html#af72e9e4372c87685b932899a7a411b2f", null ], + [ "rbegin", "classxt_1_1xcontiguous__iterable.html#a2464771d6d90297666b1e7e40ff21f70", null ], + [ "rend", "classxt_1_1xcontiguous__iterable.html#a0fca0441c61348b6eb092456e123b869", null ], + [ "rend", "classxt_1_1xcontiguous__iterable.html#ad8f400de36b11a40a49517ebe2f2f1fa", null ], + [ "rend", "classxt_1_1xcontiguous__iterable.html#a3b9ef9be65f2c10776ee7055f4067bed", null ], + [ "rend", "classxt_1_1xcontiguous__iterable.html#ab805bb1e5bd7b9a0d22fe8fcda0ffeb8", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xcontiguous__iterable.png b/classxt_1_1xcontiguous__iterable.png new file mode 100644 index 0000000000000000000000000000000000000000..af8af9044eec03a8549145a05688c3ad2963c294 GIT binary patch literal 43039 zcmeHwc|cQVx_4`9oz}L@v{lD7({_}xtz=rOsS3$-ak!Qux3!c}NHVRXUd0d*10iG? zyD_dAwVEoDOly@&YEl;xAj?5fBc>2BLX-mu7(;*%LK3o`B!#O@dao(_t#He`tDDc9-P$q z)VQrR^!yo`J?2+-&(P%FdS$n{;E%ug#ZQ0o;JB^WKOyaInpU<3K1CBb{`vRAwggz> zrPmXZM{|mGh{V>L-995xL z*s!F;gmN5(JrN_fIzsG!%DXo&)7D){yCLJ5?vHkQu?w_wLY`jP6XJ4REY?)^GEPtR z28faahK0Im)T})iS)&1y7D*ClYWez9&>oxXC0A?UdO>NZl~vUu+XzGEJEt>Tl)x|6 z%EOw#@qoR*b_IfTBwylR(g@4W+E$t5U?GG>xp%(i6lj^Q;758tcgCXK=1aLVl6RY5 z;Z7J{_JeC{U6?fH#!oBL(6~{H4@^+sRTSafakDYj%_}IPes%Pk*;*40@JxiUulU~o z*i*m%@Uib7N4-05zuTSr@;ZESnG!es}tj!DyZnbVdMNB-PxXhIc%gnxdZz)r#);!gr_OHGulQ*W?sTrnQ8%(5*;^4XF*nQIadw! zWma zOv2}h6zYDYF}HN!Wp`>C^dYt=Og(oS9++Kpk&jHMca)Vir=SY8Sg&<*I;?*JZJ9tn zl_MUQ4rYYuufJaBmYZYD)k@2ZwFzYD69hSxW4 z^IcZ2pL7($7JKc?s?p*nvPLkxKSCmBnC{X-T1)Q8f}67GZjXb^o4a+`rrDHsw^0~b z9ahC%UWskV=;VtWcbSTj-OEZ-3zLZ^#dbkKg>Fe_iS5wfdW1Y!WRWwXH#) zDpRb5uZz*9l7l2P!0-W#R1CqxzjrrPd+GqXMccsOT+I-;Kt!3YTk^bS) zv-RLOU-!qO2Y%dEWXtzj%US&Nm@c*xf3O)fP)DL}zO_)eNay~pP`IwaotP)I9&{(_ z@V7zPH#kV`J8VlP47W%0%HVtO632|;UT|*?woYBC&Kquof7@W6{5OLQ!$930|8M-j zb`fJx^T*#xj4DAI1JF|2MVp82e&uM*ouQfXKy)D4g_ue?qU-s~21;SsMxc2Tx(A24 zGVWjH1Cgl$8uEbjMc$lX>P^dRD}D|gw6ow9ux>*uf(rvnACYUZF1j&YJTjMKmDx?+8#oAelG6z+k?lik2iX)I2gRUuL1GCX;+}y- z+$>T-qDS=*aV@2Zvk!eK6n2@XVVb@5_S2~D5+av>LcJdL^4>5l!Zvsf=M~JNQIKVE zKAV0*Sjyq6ag^n_kD=23kERjEV}Hz?dAmJ%H;ApMl}{C&p&`(b!4=+4oPoW_o*-}( z$CacBGRg#E_zTTR+;Qna!>iI~9s5Y1^T1p}H=^@>wIBzMEQJDQLp%+R#Elsct^zY@ zYCH87PdA*e_g!}~1L~eszxxs+!q`=E4KoVfn*iF)d(%_}tflY)zRAqM8bkVWOk>&- zbVHz)jlyEVB{HR4`Che(H81!Xy0(|R2Yb-0+Yj=Egy2C<>58-#S-50qL-y5TR*%an{=NBessqLhOG>(8i(w1S{hy4wn|64}?rNVn8YqSU>E8q> zYUqqXd^~I|>>Lf9R>2@PvQs%muuj7)uq{Ua24aZ%I}tEUxsVaaq|v{@zM9f(eQexT zlN1~I(Z7Mt@`_qIfK5T2e4WLSQ(*Rs?;6)_^Ll?;K9fYjH6e{ix zB7Nxn86vr{3bX{s<$c2!(8z@tTShhXMk{SlcHQc6H!qO`F$VJ(1 zh0zcknK(XjIg7L-{A9rZ4Ow$>Ma^oosmm83RKZ@Vi^>Kd?+%;kE(O(*f~$rue4OarZby>H&?ad6iQoQfG(|C0;*-;!Ul(h|4>N29x?mO_I*zpA?X_ao<(Td0Qyl z5Yp&mvfiwWxRhHWf2zF9>0$O1J;wI!Vvklz9s^6phck>lehEru6gE8JM7=Fb|CwW-i+V5US46KfyO zl^JPrgst?8$hMqF1`~M?!#jExP#Ss7#rST|1ber=I=r3JhXfma>#${LXu>qHc6pau zMicd(3V*;0y`bW@Ql6xc5~ZaX?>j!EE)nKY-&9WIDXQZ(v_6HQxV18<3{NmtX}uk4 zEyZW@p622F5)X&x*7D}xn1Hu3{P=QcJ^Q+Io$*2(^-_Vu>VDS$`+;QJM-#%-!a6h) zXbBwk@Ynn2@cfw(iz8e{zo?_y3LI=v4Gp1ULr%h)1Vu{G20YzyMHZeY!Gz;DXsJj} zLpGAsGcrs^4V_wnHNLDQu5rTC22))L{zge$bNxnXl{7#SRZERBj!dkBc^#$5jp_Zh zh@kyRo|iX}PnOxjYrFzN=P|F;)JRn(a7qZj@3v>xpJ9yyOhY&IL63CM{6>@W(O?lTo>u(d0}p8 zu%ZE`MpDj-kE-V=d2dJBld6?-`wKR-5)Tv@=$Dn#IXy`Gt0;luLa#?x0+qFo6q$$i z_#$G0nbFCo*oa$U?;>m$iM)*|!OryXjd-V9twhh_zmtWL(PR1tsp*iovp%`I-q+pp zq|b)Gk(?oYSdJ5yv}8QXKS-Z^bqXEk9>E5*y%gzxtTNz?2t{EX7sjQteOjpWrd8S_ zV)KoUhD)dE2!5IQqdyAJ_la++tHtQml!ysyg*%){cNIexYQ)I%tPM40x5aOQiLYa- zV=a-r%oOe=g?`EH6!;+DCqNZ5jb5WRr`Xl`Y#wqyE2oWnIEVCxTqLHl>mVJ%c#PP63B3d3C&}Vpb%4BH)haA8gnDaL4ov#9k zWbc9}g$!UE2X_>;Xdfvw4|PSyF<$D?pg$XUxK#!n$L4z_iL;E(^UA4zG4)$Gobg4) zV01T+5|vg~WJ?l9B_usZBF1N!BxQf3mudcFpqm(0Pno0G@jhW`4r!GfCl!QBt`f4@ zC!%V0dyhLGb+l^eHD*Vjhk-R)6qZT#LR;4Us>`ZXH}Zn!X+S1ykccZ(-}wa_l*a3F zZ>q-UO}Uz0qu)r--C~WWkCqFd7gAm$PW4j<&jGRKQ%qr-A=q77iZ4LE18nO;-ENtBs1m;0@t)-SFdeK1gBt&jamf0yIAUbmK&qC8dG#_l+ zJPhbkK_jCVKsy||7_~PC(Oj&$BU3VH zCkzKhaR= zM`tQYRv%D)M?1Fq8vok6{=1GZ@V3f-0sq^-T{GIBUp%s$fH~@1a(h}U3 zv88KW0;EOMhy=@I-;?90jhKAI7P1?2#0;&6zPg9EO1nl>@W)5~FwS@Duk7zbrRPxnuX2B1$Tz+MtlfR;^+96d<=h<7l*aDI@> zFv;K@n0`M#*5kbE$TB;xKLJgf5=xnmR<+aLmT#r&fm;ekNx&5Mj8W0$k%q&#>R}hw zEUB6buZorya6_|huOzl#@P)$5~#eS?WUa|C4k42sBPZYlLD@mGOoyK=8u|02+* zHi?d@z9KHnX|AHtRaF9;!UWcXbj+*|x}u?D*kqj4x+Ahc@3Gv%UF`1Ajc(bcRAbW> zS|`oP@AR*4@yt`s&Cd)hxJgD~EU$vo6|Fs1EtWVC6A16)A&?+TCZp6?CAI9F_3LHU0-E9{h{;7XE_LlG$T62eshURj6 z6p01Oj}!9~7gF|$z7&4SJy*_&op`Sg67?HT%Bidl5p zbRhI?vw4H$8Oe51Iwvn1cgEz!!aH~@ymJRgle$lFDoHG2A|ufUeMQtzKVfIxvJA+Y zS6tStrf0Vekf%Tg+sm5)@)SM|`X*nADZfW!$r|J|7EXaX`8%wA;@$8SU#awjIHGwb zV?O&S-U9Em%?wti=a^sLZ@+8=@M9npU|uLv{;)s>>wHA3;5A!Z;Z1NTpKVw7Fk7V` zh!*3>atR{ZL0rcHPs`t*&!`rn$rr?v)W?*i>);$^)kn4>BLE-Ks6?;I_`z^!=n#hK z@noS-UcZj8OPhTw#j0B_UrKQkcS6&UU)?$)wtWn2_7eRx+(cI$6@cexi&gz^J6Vm zyRIs6R)WckvzDo~d76|>(l^xrdkn0VSM$87 zPTWjGN~qcSj^(J?`vK6yculb&B|Hm6`u39^y)Gj}mN&>ay|fD534r=BKRa1~D+aC< zBeKi~khdsgG0c|Rbw!!CR&3A7l*nR^#!R4mW%Hi-1Kh-|3RynG&@?+%KmS>qGB$XP z7(y5xK@W`4FK_P(aJ%O3jJbogd(ZS3(boU%M&n0f0c{%sBGreub>X9{q-UYG6w0X_ z-UGun(6yNR{XB^7PjI+U%31#D$U7%UQ$q847WUIxK+0LI_5x;R^u^L=jeo@msz0n- zFLjc(C&noo+%MT^8vG;V)KKMs_)p^fiTl~^8N~mB?3kI597|BxOM$C7(iP~x=4?gx z250alxpMai^zbTzlk{+)Hb6S;KjvV~CWxyBZ6eR0O=MxjgiPPvAgT2lw7BgpMy6|_ zpFfdvIKPxtG@V|8OZ=R`2flVYi*#Eo+_q?ko+dYE`_eUL?j+<|psSkEhGq>cvU#@b zJ2S8_(|!mns;Zpp8Js@iN5K&(3dG;Rchfi5%3G*aai8chpD zZ7(NC_uxxOOWGzE))!S*@8Z!C$<#Hb$xtbJWKHO0doaQDl;T8anp1+(G&0NjnBA8D z5JuU%kLRBLv+bmKFYk9!LNtEUddeaxnGT;c5j2?{(*O<}&Vf z*0f-5@qC36(1^TEMtmDhL zhc?3KOu7KMZ~&sA#WC%0vj=jaW*3 zqf*Up8-f1}d+6@IkGl~JFstk~TK(I}*V~)y9`^o2*?+)=bhiZk|CUqjAF+pGt6rFo z5ZVl)&1V%MD5HP2ZF3-d5(RkayeE2r=nkKPX!0qTO;HhZ-|ioQHr+~-j(7Z=XkuhC zW4eE#JsDZ!LOow>gn1WZp&JJi5kFuo5%P#-s*C8aT#5akg>ya>l~GfDmF)nd0-|zt z6%yA%M=%!4ikRNRlRtn_Rc}Vt1nnD)-|U7eHka$3pMUKyEtA|&~?KTZSZrN&hvnpo$ zivJ2WIp4pO;==1qWU>yuR=Emox?;Ce$*te8L604Ged6B;O(hMshq-$qiEY|)(P?@o z+L#N%^ov2J-ImszK4WABE5jxI7lBGN@+CRKeAeGD`@|-fb$OorHb0{gJGl{9|~}=yGbfeoS@v* zDwC_nhhFG(v>C1MfppdbW5nZ71WJkw8dAKs``2`7E->2RuLOTA*aLf;MF%&-k#(X> z8r-Lk0aE7tK(1d#Ch!IlDIADvXL=8Zp7K0jfo+M71$+AFRw&eEhvUXQG;@?gi>%LN== zSwXgXl{fX)8ii5%fHWQ|&n@D?2k3B&HoNny*re8lysX3mDx>vNwS!F~dq|V3gdK=i zcE$4+iQ0xlK*PP{c|Bf<#4Szwt$Kzj1L<08B39G1G31|6J{Y#L`&&3o&PwV9B7<0+ zL-vuTa2i;7T+%5J`kHTr)1gwA%(3BZX$rTOSI>KxJ(W3?yTZ;mD3^1Qe&F95)7WT6 zr#rhvmPiv=!!-AeRI_VZ;A-Hsp0>xJw2H-VlDZ3pk=je5w*va5ZErcbpU__?mgmn8 zOb9y+RWx*E45;SAcMUu#8*&%iD7m1dwj!6{HO99B)n60JYzs(MXr*OM5kxgzPT2)# zLMn)+mD}&Msx7&SzrhW7F^R9-#+=2h1F3M+3sv8hSxhgOU%bhBn~=?|vT4p6matd( z^-fNO^$9wi1I*a9G0j-052$3W;`?FmMfkAD;NNu1@m2tu&1LPODVD_OHtZFUxie?8xR&&4|ZT*#X?vFe%L-2^;J+3 z&~xD&IO86~-S!1wBJo}nY_zHSqZ*AL1H>&UxFJh(uIlDzbB*8dIQQcok9;yde6#|Z zsAj`CcnU%45XwLXB>wCmgIW-^g>VxTe33MXLnu8a2F`ewDgcB!+aA)sZvfm95U~ z<0Y-|LD3xbLC%Dx8_VTzP7AaIFs4y<6}?P+Bj*FiLD;6)NFc7eA72p6 zpNrFls=pDBlct&L_tGyL-}3eyr;^!;-k06Q3*>fn3A^OyzV#hYI1oQ57ske1GPAKpN_bv!Q+CH^LK$LT|DI|K31;m-P$Yx<9~ub$3po zmTw<)K$am#%2D^Y$Zz|6?ShYOA)8sI^5oyrC39bP%i3bOG#oJStBXmWclhwXhmF-) z#KXSh?gB}7Jhr|^mCU&9b^a&iQQbuY|DizqkehYzpZ{?_>pdIqM`YvOVgF0Jekl8A zF!AdD*5?jtyf{GFo|_d{(f8ce8v=|)5ZO^hoE4nE1JN#(+j*|_gs{62;+myybzL|$ z?)^a~;gHvQSbiWrkcG8^{oYY(bKw$ZV5wj8EN|^W=uZKq6=dz9XG)ARet6qqZR&UY zi~5d*0YcKpF_Rqa)Ge{h!I!;QZsBbINr$Ypq>lGSQq?2sa(9A#?PFV+p#RnOG~NsY?_)Xd&osmu!(qp38qDp;b+!U~Z_dD+{+@x&j3oo_ z_Q`4#Uzd!-9V1IS@{iMVI*weI6GBX9hM>QroQ}JKS*JKNUEOWStUlq@?uQ;@`pz52 z8=vB#W`8&C4{)R~282@?QG*qlNmWP}&+-Yb81(uYclTmH(p}NIIv^g$2SqUAne|*j z{^>tiFSKnT%Z=wFy`Q2jPvqn{dL~m@5@Ai#1ODQipyhFDWJ`t|*|#4GmuytDNDl-X zMUEq{$$209K&k|8%WZ);D)Yo{+A=D%w=8Y7w2UvIJeeS!lq06>R~+{z*f&&VoDiQP z)XGmfa{P{Y9SbcL#$?^i+8bOn)f5VI^H0;8y+;~+cKaLnT%4(H!Y7jKRtexD$L#Qy z!o<)kZCET3!2S|bDY2S0&u8DV05*F(iH=jIqpE?{GnDPd$JN_7MYTG2=)!CzafgG9 zOZu3cf0|0VX=3XMdgJnldp|m`CkgM)KSv<#EL(+>SnYQmW$@Brvhdv@`-W&c@v+te zMdj|dTk=B1C*aRT5Kl zGeAZk;(p`p*`3n~!U-vNdJ^C%Se)TmuIhmNhzN4wCZXLETyx!=GcFRUjNro$$?Rz{ z5SFR|YHBW^UFoG$`tt|e0_1m29QRRPQMHZKlKedC*4e0NEgh!D$W&7A)XFTumF%<0 zE=Go$#*5|Ui4p)tR|oswNVU8dS{!Xl-(wW~_ebML5L(Otx-{`Z_EA!%JF^x4I`75E zgcTvS-&IKi0k=1xhm<=)wR0oioj{-IbVsIvP#oHwyHR1}y%aRiLky!_$Acqk2o>Lu z#f9t}?!b=x3Jlmoo;OV|aSsmcI7|Ax7r$Sn><%;rxy-8TGC8piogdfXFg442Z?`ccQG5FVu(~2I)+lP-gwQ?4+X% zXTYBY)~-czmDMH8V$pS2W;6l8p{?vYG-<0rpsW5Xft>|C&Mwdzc;^g%9AnX9j`pHfESIP3;)}kjU+^6@TEgs~;nFz!i;5J|=L0eoUop>>Gf;14EB)dfMFk3yB2bd--glg6$!$&O z3ksZl@lO402t7hJaM2Jwd@Cb37dliDlJBF;BvCHwjJvJcA85>7ta#{P@3AiJ8Nwvf zXOQqF<3(MYG;DCv%hU}V^;x)roPIsOf~rwX5BqZ?6&KoColOt03*2c)(^cv|B9f~- zBSGJwKfsfL@F9`;7gAA#gdgbK8m_0-YvbIf>=!*X^}2!b7W++;sa5|(-0dV0->tz) z22?$F<0#Mf-hr3BtYBBqf)3ZJj@e!2ZhDW>rl>2T+-TaHGtQLC*@s+Z5x7elLBv+~8*<^}e`AIA?^AQ(RT}Yx*2E z@=N3XLf@~A10?FK+X84PW!q;TtV#mh5z61H^VLf@TRf}!;O;=^r5hSOkFPM2h-7JJ zS$5$PPqr@Aw$3AYk6Ge9b{W0 z|6H`VtcI3>lvJ7CLSG&@ax;6EZF`#2&}4j}`{*_JIMr;bps>_*d~HZBm~$s%b)B_7%}tJITxf#=HQ zwXks~LOPNZ`u5|v*HQ00woye_w2WCCQKA)0Wdw4WtunhjIDdYKpIs>OTi;ae3WkcE zzjOLXw?K5r#M_<0`;`A)#40jSe|Jvv1rNz^PoYORyBr4GQ!%tCULy#Cy@>X11SWCK!q4IFcRVAvpP=sK8Fz8H6|qBv zBc;7Y@giB%5NqP2 z-4~{Tbgoz&z5GDkNKWu*MPy)APsJ@p_i#A7)OCvNa2Wa)*qxufIA-AcPj)IapiQhQ_ZDYzpr7LE@#TmsT&*Ih~h8 zEA_=|mXM|)Zmf7d zp`M1UcI=I8*$=(kHke$@3^XeHkW4}qEpRf1{~DthVvc%MHqlE~mx7x2znyhNcurb9 z3z6)Tl(+sNQI|IpJ!U35N%gYi zOOZm#qVLUliTfG%;p$ybY2R}_3;b*6;>yTn+{#O~2KbNS3)ravf;-)*;BHzKKu6;O zyh*Ov3JN3Se2FtlY9*@-;j~E<{j43z^QMO269b#8j|cT<1lKed>lc%H3w^)9$d<)p z9yn~10$*rkC#V5%EO5;o9$*Hp`C4+5BB%AK7cFxf8@d*{W&Y$mjODV>_*BtOWglz4 zftClKqQxeR@Xkf^vGgG>BacN>z5y+S92t!yt)IAQiJsvR`{fr*^DILYmzP9VMPGH5 zdK*@IMj9jPjLqwi6B}PoR}(0SyAw+#6BCaTJBhMc6SLB*>M9TUXGf0J(3~I=Z7olG zo=Y*7tmke?P{>#F#w4J0FQ7^E};LvC#O+kb2Wd9g`lGB%kW(21>j9K zBF~84$%iAhF=IJYE5mLA-tLX?%$V!x9^Bl6n`oBpkBXi8v(Iw5+;;xs08vxEx{jwr!Un z#(7qc>v(hC6^2K&6oaq0*n+d*E|9~*MVbGn{|J{m1bG4GdPAxF{)`mtfE8R!!9{X_ zx-(3Jl5Ltb0XW$!w{dqW9#?Dt*}&<{y5O%O8+xC!_YBNnE6y7L-XMiWuTl}lSm%qz zc=rbDx=Pmr=-{mo6+<-3~W}V z+1T~!xsfC0!U0CtF)JbiBoQdKHIoiF|2qch{v1H}2Q13>#|+L;NhMH1dnBj#3x`uc z6|{nSGaOKFMnMb6VyYHcDlhMX#U)sQL453r68E6z9`xLUo?#jL4=_>gUfIT8Hrir& zZ@=gd!)$*x(*SH8$Kx_P6tiR&x960715Xb&xHqAjo*r1%OfB~e)}5hnUzQ>f<4oXr zYm6nQR0Th1?6e+JmEKxA*D%|(CG_Q$dY5!Nw6bnRoo$^HSUh^H`?#2_fVeD~$WB@g zVt%}VaR1&&qJQ64ww;3WhBI;TfnVIBX>e1j$%f=?o{C-0$VBQrC0#VFCq@d!DH?9j zN->Ejzzqcwbyb9AgsG%Ap$Ey6*n~RIAL!Ytm3_J>%Rkt`$to~Dlyw4B_rD9tpO5h; z9f!c_2j-eM{1ieXKiBYn#tB=b>=FD*kh(Lca9Sug@Qy40edxI@r}q-pXIQAm{A+ZI zb=Wy(gfXi6D6@yS2_yl%EMloev+$xIWr;+?%df7hRCcz#$0O9~J?UPW6AqA8T};zU z90RE*HJ5A>LSEZK`Mivn>VT>sn&tB{L~T1vnT~Ii);o~&0o_aLIOQ^A)83K`S$y*T zQ0;3DNzMx1%aXoZg=(9m#8z@00GT*^XF~59*f<;v6Lbq@Dl4IIzD7DRDJ`^Rh3i#Hvx3?a_Q))-RT5)V8n0&k?4|K|VksRzx2iP0Q-GaY}KXlBg67~Xu%5tdGAKs3~Nh8(n zh3y-ffP5^9JytzGU=Oj9I4{>VT`vKYcJ7nxqAAkj{9W>tLX*4iVa%uZ?3mV#GKol7 zt(m)GQQGt9bK&?5!^66Xh3@-?tRfE>I%CXgcB0C}S)jQ0A(J#`xpbGH%h2fyKNnm# z)ilBQ73Y<@;-~R-&|AC$hT>{ANcr*!M|No|+2 zz4al|Vqr41I0xioU}zI7wh5|!ZvoVLU)35wNKMrmWkoSUf*>Wl7i5qP)|P>6MRi)~ zy0$0~nZE6zA!#ui&ASRR(Qa5=OUkh-{=Asx_W!6V_;=S+yGP!?N3gt|ll8aLO@9o` zMv&8qza7fqzHM=>E>g2ZTiQJ9CcEc#u6v(nqY%NVzF|Ww@74FeJjmgBX6F_9V3+b30F6@tAW|)fKM%Ni^ zg$-50o3)eBjT~u|y{}r;H-^1Wg%99jnGH6Ky&oesB(xx2$<};E0Oj-o{i4aHqM>!~kVw&LH4{XS~u6D#xV`tZrpoPX{$;j-N|uE^*s0 zS@J)n5fINRP{|s5uI(L?Qc$wh5WgwYzM+sHXP+*o0ZQFyU19L>!oUJrCPfxIUbMgw z=qbONde#<^zew0mKNjr%Am;43i&P6K zUs6j_54I9TSwQe{kpU5(}JGPsadvfYQ(nbXlaQNGz9R70{hhMFde!sDUrMxYL zf6ahOToWbmCz8^TCy*BIZf+l2*i#q;Wdag9*Pg)3{p=Kj&%HR8BEV}{9 zJpy~j)=VAtT|o7~cR7_;RE~0X3A7}p2=-RQ+CX=ASp3~61(5qLJjCdIfX$;$Ss&t2 z{6GP$+le!net(Y@Fd6{OuheVoW9RpQ6p#`^Z>vu0!BF0_8C@ z_X{+)92DV5OK7h>3w`?+=!{p>Zu?9g7Y6Jl^vgR%MZRy?U-*3F%^>B5dOp?V3)k-COHldvM5{XUvgWj^xvCUtQ{rng+==5&b4(Pfr?tWV z{t23bFviY_MmOw2jJWSOffCEWSAW|yoJG94xR8Z z3zNd0cjZ$Jr&Vi7apAa$%zD+z%Qh7x3Z(8aRG8i{J#I2~uf9~0Y06iTysg9le*+Cx zjY*{jXZ3=!2)U_nz6P8ITGF{f=hK@lD@@rMtv}mg>pmhje5}p>q~y49O%@=U+xtoQ z_UF3G!*k3nCC?c4skc>6<7Ni)E%Yy`xCXnO_ii>EtJ)=~K%lAR>r>sg16jWcwly*O zEE_J$^VqneeYyL>)vf6JfWVK85cv5ga2oi0$teQgTkTG*vDwMGyAD5>JS$E>NBHg( zcZp-y6#lbmWwvpKXVZjwzyQo(3Xsp4`$I}dWIx%u!kfAayoo=P-Xfh?T^ew9B<{-6 zKtw=?%t-TFLVKM*53TB0+`0B54T&9b;$0p-V8P8vwDXPBZ@R))V4)};O(9g%(3l4! z5D*L4G-%?dY3|W@P}IeC&l5S?)A+AE8b1zCB=5o+xG8e13WTMzgXnu* zw|V@tiX{(3G)wN1qD@1dzm1KW0aAw5-fo%FA;7(EFpDbA13ynpXBWv5)8Hd7HGM@* z2VyPJ%>Oz*<7@`QcrcvTArsg80QW&|A*Sw-3^+LgV z!VYGZZ*>@+UUl%6{S0XbX0hPMSO}vET!$9{I$EmxxE1Mkx{f<4%xgjwJ`Ywl=A5PC zTz0+qva}4GpL8{6a<1y4)mz_hdyrJ8reXdx>z&F8xSIw}P8jQWOm1{YBzgFZ`9umd zgLpa0=od7nG{R@gS`4KG1N}>E9wx?|hqA1{f>`gi7dHDWlmkwpeNm*gnf9HhD@EtS zPG#lAJk2K@58_>AMt)>57yC@?uq>#eBcq|msQC797o={dDPlGbGm2s#e)V@7OaG%f z?GIJ>7%k@RRW`df8pEbI26;b*^L;pP3ozzqrz|{4+Rc+)kylbbjeHP_JLV7c1Jw~Q zY&ef&)F{(zavXXPjv(?gG@QS60|;%$IBfy>@;2JAg7TfzIpGibUkX#LEdl2)sirqiwhLP^-{byxGy1HxuBQQO2( zw%*c$qLJc9@VS7?LqkY+`dDO~MFRUegs%sbDsU!^@+DB;1oxek@47512x@wyZVNQ3wT~Sg;>f$Lb(~w7EbTT9F`>7%PFF`qN zD@CXyJgHvU=rd~bRXjE;kARc5+poz9uB*Y7D)A)av82b;TBQGJ^g<@9m)XF}!wc+T zE~gg1K=LIo|4G=pbPTu;Rvedhx|o%0;Hah^GO_7O=8VF{eiU0ioSx+!lT zUgK*LrX(6T!aP_V%Z*Dz5<#M4y;0}1t__=&akh{>Gx*s$XIkPF8nP?KxPZ(>VDp)J zbl>%pBo@w1(eoZnAgy=Hli`k? zcnS22z@4wg?t_@*|MsC|_dKEC{L!*|#mN881k@jeCls;_C5=Eg7ld__S=$kYUzd#M z!{88!j0#Y(>+ExA&<>bA9LiA|^5va-5aww|OhsxM@3Nn96Q68)oWlKCgma5E5Z8<> z4v~lgn${KrbR*A3E4CEWYt&k~d$mb_Y4x=g{&Yk7Kx#1klY*+W@syV+#lp?>a_W8# z)$)-S76R?T(`9>0?k1Y9=Joo-d`HiQ2F)5uQ}wiJ?mJK=kX^CdS?Hv@0xbjmML6}O z=-t9zmFk2+BK|h6miJuJRuF<8O@etH?;C%%AT?>;J*~4OAG_Q^W;{;>$#IdXIZA!2G1kF;7h8f z_2^zAeclzXZIu;`8UNc53f%cS2tEAn7?Po%y8iYC#h>sqLHg zW0zAe7-o~?rsb7(1~iww;6lk!^p`hfecBo`6eqITAET1$<STdET_CAn@b3Lo#vi>@T$QPgZDH+TKsI63$__@dg_z6>D!1G2p zBkzVx#99)3dqDcU@{LgLb#M$WdI+LXjj>WN!`Cp7L|^Bsgz_V}rM#?;U=HRK%_bEs zM-9SOS=fB%-U8M*)Cn9D15Y_MTfw0z=xT5RX3Q+mdj{+6w9I>l4UUdS{wt5hkHKKI zFotQ+Qf4Y@el1$}19{Fs=B-_6`hYvx>+9>u6VqVcr5M}ZHk{B&b!J?pe!$DhT1PSZ zK<>VO>31kI1D5!7CuFpO7)~q;96iM14l=alOZrvmb4o4epcBi1dAEbyTi;^Rg^zgF zdgyN^B{&NYi1({n8-^`UhXC-DVwAI-XOfRi&E!oEvpw(krEHU1ZTpj~S!v#m7M|=X zTt!;t8DnVX7J)37J24O>#@x+Os&jKpIUCdmxOz09bB&$gR*DAJt~3xf-|%iVz~Mp5 zvWBJ|15kt660X%)A(7EkX%SwuPqJLsE%(gAOUrn9>X}uo1JI5tN|UX-{x!)I_g>$b z&$Y7Yh6kj&o3fTBSB|i;zFanMjCXP*Y10KtRo&fy%n4%D!)=BzeYG)l)9GMb8a*T2 zDKUP^e%HR%6&Ey_>SSR;jQkKbd^fnO-GYnP4VPKN}9+r9|8_) zzXrU_Ri%V%;9!qsoq-xCe+B5aNoVIgGfSuI#-EhhtzFgzjozH9B!~4ML>TF^{uAixS{`Gfjv5NyGpd$pLtqhyu!X$EdsxATkx>SQBp`hv-E_p-1

mlOTQg+4LEZ@u40CtR!h7xmc#te~JvbUxIvnSuz@a4*>Bc6pR!qusF8u#eir?B(!q@Bv4x98XzW zbrgyQ`EVI#LI!D?VJSo>Y?B7)LDL203;ngra^BmrqGvWBVmu)A4eZ;bm?DVczP)CHiCz zpK9<=w}bg}_M5kiR0pA!^`2_;bF1eT%?!;!$hzW* zAz~fyXOoDkwZyg?ay>GMA|oIk+9+sCq>X~(-?UTnfs3!L7i7|QeEwbCU4FFm~c-@@PruDqsqmFElfCbAHG<4FP9k5SS xjD<7DC^*|%1NFu#CjHO2KQ^A&kKX^r!Iht`?RivxANX0ebom>S*M9%u{{w=xtmyy% literal 0 HcmV?d00001 diff --git a/classxt_1_1xdrop__slice-members.html b/classxt_1_1xdrop__slice-members.html new file mode 100644 index 000000000..45775cb96 --- /dev/null +++ b/classxt_1_1xdrop__slice-members.html @@ -0,0 +1,137 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +

+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xdrop_slice< T > Member List
+
+
+ +

This is the complete list of members for xt::xdrop_slice< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
container_type typedef (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >
contains(size_type i) const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
convert() const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
normalize(std::size_t s) (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
operator xdrop_slice< S >() const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
operator!=(const self_type &rhs) const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
operator()(size_type i) const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
operator==(const self_type &rhs) const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
revert_index(std::size_t i) const (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
self_type typedef (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >
size() const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
size_type typedef (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >
step_size(std::size_t i, std::size_t n=1) const noexcept (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
xdrop_slice (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >friend
xdrop_slice(C &cont) (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inlineexplicit
xdrop_slice(container_type &&cont) (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inlineexplicit
xdrop_slice(std::initializer_list< S > t) (defined in xt::xdrop_slice< T >)xt::xdrop_slice< T >inline
+
+ + + + diff --git a/classxt_1_1xdrop__slice.html b/classxt_1_1xdrop__slice.html new file mode 100644 index 000000000..9a849591b --- /dev/null +++ b/classxt_1_1xdrop__slice.html @@ -0,0 +1,683 @@ + + + + + + + +xtensor: xt::xdrop_slice< T > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xdrop_slice< T > Class Template Reference
+
+
+
+Inheritance diagram for xt::xdrop_slice< T >:
+
+
+ + +xt::xslice< xdrop_slice< T > > + +
+ + + + + + + + + + + +

+Public Types

using container_type = svector<T>
 
using size_type = typename container_type::value_type
 
using self_type = xdrop_slice<T>
 
- Public Types inherited from xt::xslice< xdrop_slice< T > >
using derived_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<class C>
+requires (!detail::is_xdrop_slice<std::decay_t<C>>::value)
 xdrop_slice (C &cont)
 
 xdrop_slice (container_type &&cont)
 
template<class S>
 xdrop_slice (std::initializer_list< S > t)
 
template<std::convertible_to< T > S>
 operator xdrop_slice< S > () const noexcept
 
template<std::convertible_to< T > S>
xdrop_slice< S > convert () const noexcept
 
size_type operator() (size_type i) const noexcept
 
size_type size () const noexcept
 
void normalize (std::size_t s)
 
size_type step_size (std::size_t i, std::size_t n=1) const noexcept
 
size_type revert_index (std::size_t i) const
 
bool contains (size_type i) const noexcept
 
bool operator== (const self_type &rhs) const noexcept
 
bool operator!= (const self_type &rhs) const noexcept
 
- Public Member Functions inherited from xt::xslice< xdrop_slice< T > >
derived_typederived_cast () noexcept
 
const derived_typederived_cast () const noexcept
 
+ + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xslice< xdrop_slice< T > >
xslice (const xslice &)=default
 
xslice (xslice &&)=default
 
+xsliceoperator= (const xslice &)=default
 
+xsliceoperator= (xslice &&)=default
 
+

Detailed Description

+
template<class T>
+class xt::xdrop_slice< T >
+

Definition at line 431 of file xslice.hpp.

+

Member Typedef Documentation

+ +

◆ container_type

+ +
+
+
+template<class T>
+ + + + +
using xt::xdrop_slice< T >::container_type = svector<T>
+
+ +

Definition at line 435 of file xslice.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class T>
+ + + + +
using xt::xdrop_slice< T >::self_type = xdrop_slice<T>
+
+ +

Definition at line 437 of file xslice.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class T>
+ + + + +
using xt::xdrop_slice< T >::size_type = typename container_type::value_type
+
+ +

Definition at line 436 of file xslice.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xdrop_slice() [1/3]

+ +
+
+
+template<class T>
+requires (!detail::is_xdrop_slice<std::decay_t<C>>::value)
+
+template<class C>
+requires (!detail::is_xdrop_slice<std::decay_t<C>>::value)
+ + + + + +
+ + + + + + + +
xt::xdrop_slice< T >::xdrop_slice (C & cont)
+
+inlineexplicit
+
+ +

Definition at line 1429 of file xslice.hpp.

+ +
+
+ +

◆ xdrop_slice() [2/3]

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
xt::xdrop_slice< T >::xdrop_slice (container_type && cont)
+
+inlineexplicit
+
+ +

Definition at line 1436 of file xslice.hpp.

+ +
+
+ +

◆ xdrop_slice() [3/3]

+ +
+
+
+template<class T>
+
+template<class S>
+ + + + + +
+ + + + + + + +
xt::xdrop_slice< T >::xdrop_slice (std::initializer_list< S > t)
+
+inline
+
+ +

Definition at line 1443 of file xslice.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ contains()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
bool xt::xdrop_slice< T >::contains (size_type i) const
+
+inlinenoexcept
+
+ +

Definition at line 1583 of file xslice.hpp.

+ +
+
+ +

◆ convert()

+ +
+
+
+template<class T>
+
+template<std::convertible_to< T > S>
+ + + + + +
+ + + + + + + +
xdrop_slice< S > xt::xdrop_slice< T >::convert () const
+
+inlinenoexcept
+
+ +

Definition at line 1497 of file xslice.hpp.

+ +
+
+ +

◆ normalize()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
void xt::xdrop_slice< T >::normalize (std::size_t s)
+
+inline
+
+ +

Definition at line 1503 of file xslice.hpp.

+ +
+
+ +

◆ operator xdrop_slice< S >()

+ +
+
+
+template<class T>
+
+template<std::convertible_to< T > S>
+ + + + + +
+ + + + + + + +
xt::xdrop_slice< T >::operator xdrop_slice< S > () const
+
+inlinenoexcept
+
+ +

Definition at line 1459 of file xslice.hpp.

+ +
+
+ +

◆ operator!=()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
bool xt::xdrop_slice< T >::operator!= (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1595 of file xslice.hpp.

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xdrop_slice< T >::operator() (size_type i) const
+
+inlinenoexcept
+
+ +

Definition at line 1531 of file xslice.hpp.

+ +
+
+ +

◆ operator==()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
bool xt::xdrop_slice< T >::operator== (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1589 of file xslice.hpp.

+ +
+
+ +

◆ revert_index()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xdrop_slice< T >::revert_index (std::size_t i) const
+
+inline
+
+ +

Definition at line 1564 of file xslice.hpp.

+ +
+
+ +

◆ size()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + +
auto xt::xdrop_slice< T >::size () const
+
+inlinenoexcept
+
+ +

Definition at line 1545 of file xslice.hpp.

+ +
+
+ +

◆ step_size()

+ +
+
+
+template<class T>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xdrop_slice< T >::step_size (std::size_t i,
std::size_t n = 1 ) const
+
+inlinenoexcept
+
+ +

Definition at line 1551 of file xslice.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xdrop_slice

+ +
+
+
+template<class T>
+
+template<class S>
+ + + + + +
+ + + + +
friend class xdrop_slice
+
+friend
+
+ +

Definition at line 478 of file xslice.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xdrop__slice.png b/classxt_1_1xdrop__slice.png new file mode 100644 index 0000000000000000000000000000000000000000..44b19e344a38ade94cfd29e698a8c9559e5b6d0d GIT binary patch literal 655 zcmeAS@N?(olHy`uVBq!ia0vp^n}IlhgBeJsN^N-yq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#NtOJY5_^Dj46+ecQK0LBLgi z`jX=N|2waXWeVEwnse94d7Ijt%mYIGsh#x`i_bMT`b=^bJg4%~-(vC-`?XaRy*?B+ubFk>PHCnZzW zsQb&-tKK;B?cBbvG5UKd{$1Vok@M3%bB|B)$@gz~UOK~kZkoTe=d4Z}pf4W!O#0Vi z?D@;s^7)+45eyCd`V101jC14He_X;|GH*)zWVwr$-*_1+nhMw$>JLdW{NYSz_@F+A z@xXjS0&8@aPGMvAoYbZ?NA=|Vf@v!Cc^2|4Qs?G6ty?s0uEV4=HV<_?#qZQz5PNQ! zbk~rw@<>hAAI@X$H9s8B& zF22=teehR1{?9p^%1ZLG7h9bdz1CT(?7a5gs@}Saw>nFgZLRuO85g(fJgfa-yZifB z%v+uE@y>hc`F|gnzm=Yp@^GR5s^-uBcDa*Mp6x%sS;f}D!h4cE&_(}z&S@?+5vynD YnLQ)FnoIvEFzGOOy85}Sb4q9e0QE^Vk^lez literal 0 HcmV?d00001 diff --git a/classxt_1_1xdummy__iterator-members.html b/classxt_1_1xdummy__iterator-members.html new file mode 100644 index 000000000..560bc8b0a --- /dev/null +++ b/classxt_1_1xdummy__iterator-members.html @@ -0,0 +1,136 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xdummy_iterator< is_const, CT > Member List
+
+
+ +

This is the complete list of members for xt::xdummy_iterator< is_const, CT >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
difference_type typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
equal(const self_type &rhs) const noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
iterator_category typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
less_than(const self_type &rhs) const noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
operator*() const noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
operator++() noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
operator+=(difference_type n) noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
operator-(const self_type &rhs) const noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
operator--() noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
operator-=(difference_type n) noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inline
pointer typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
reference typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
self_type typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
storage_type typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
value_type typedef (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >
xdummy_iterator(storage_type *c) noexcept (defined in xt::xdummy_iterator< is_const, CT >)xt::xdummy_iterator< is_const, CT >inlineexplicit
+
+ + + + diff --git a/classxt_1_1xdummy__iterator.html b/classxt_1_1xdummy__iterator.html new file mode 100644 index 000000000..eb36b5737 --- /dev/null +++ b/classxt_1_1xdummy__iterator.html @@ -0,0 +1,564 @@ + + + + + + + +xtensor: xt::xdummy_iterator< is_const, CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xdummy_iterator< is_const, CT > Class Template Reference
+
+
+
+Inheritance diagram for xt::xdummy_iterator< is_const, CT >:
+
+
+ +
+ + + + + + + + + + + + + + + + +

+Public Types

using self_type = xdummy_iterator<is_const, CT>
 
using storage_type = std::conditional_t<is_const, const xscalar<CT>, xscalar<CT>>
 
using value_type = typename storage_type::value_type
 
using reference = detail::dummy_reference_t<is_const, CT>
 
using pointer = detail::dummy_pointer_t<is_const, CT>
 
using difference_type = typename storage_type::difference_type
 
using iterator_category = std::random_access_iterator_tag
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 xdummy_iterator (storage_type *c) noexcept
 
self_typeoperator++ () noexcept
 
self_typeoperator-- () noexcept
 
self_typeoperator+= (difference_type n) noexcept
 
self_typeoperator-= (difference_type n) noexcept
 
difference_type operator- (const self_type &rhs) const noexcept
 
reference operator* () const noexcept
 
bool equal (const self_type &rhs) const noexcept
 
bool less_than (const self_type &rhs) const noexcept
 
+

Detailed Description

+
template<bool is_const, class CT>
+class xt::xdummy_iterator< is_const, CT >
+

Definition at line 409 of file xscalar.hpp.

+

Member Typedef Documentation

+ +

◆ difference_type

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::difference_type = typename storage_type::difference_type
+
+ +

Definition at line 424 of file xscalar.hpp.

+ +
+
+ +

◆ iterator_category

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::iterator_category = std::random_access_iterator_tag
+
+ +

Definition at line 425 of file xscalar.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::pointer = detail::dummy_pointer_t<is_const, CT>
+
+ +

Definition at line 423 of file xscalar.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::reference = detail::dummy_reference_t<is_const, CT>
+
+ +

Definition at line 422 of file xscalar.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::self_type = xdummy_iterator<is_const, CT>
+
+ +

Definition at line 418 of file xscalar.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::storage_type = std::conditional_t<is_const, const xscalar<CT>, xscalar<CT>>
+
+ +

Definition at line 419 of file xscalar.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<bool is_const, class CT>
+ + + + +
using xt::xdummy_iterator< is_const, CT >::value_type = typename storage_type::value_type
+
+ +

Definition at line 421 of file xscalar.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xdummy_iterator()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
xt::xdummy_iterator< is_const, CT >::xdummy_iterator (storage_type * c)
+
+inlineexplicitnoexcept
+
+ +

Definition at line 1032 of file xscalar.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ equal()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
bool xt::xdummy_iterator< is_const, CT >::equal (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1074 of file xscalar.hpp.

+ +
+
+ +

◆ less_than()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
bool xt::xdummy_iterator< is_const, CT >::less_than (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1080 of file xscalar.hpp.

+ +
+
+ +

◆ operator*()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
auto xt::xdummy_iterator< is_const, CT >::operator* () const
+
+inlinenoexcept
+
+ +

Definition at line 1068 of file xscalar.hpp.

+ +
+
+ +

◆ operator++()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
auto xt::xdummy_iterator< is_const, CT >::operator++ ()
+
+inlinenoexcept
+
+ +

Definition at line 1038 of file xscalar.hpp.

+ +
+
+ +

◆ operator+=()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
auto xt::xdummy_iterator< is_const, CT >::operator+= (difference_type n)
+
+inlinenoexcept
+
+ +

Definition at line 1050 of file xscalar.hpp.

+ +
+
+ +

◆ operator-()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
auto xt::xdummy_iterator< is_const, CT >::operator- (const self_type & rhs) const
+
+inlinenoexcept
+
+ +

Definition at line 1062 of file xscalar.hpp.

+ +
+
+ +

◆ operator--()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
auto xt::xdummy_iterator< is_const, CT >::operator-- ()
+
+inlinenoexcept
+
+ +

Definition at line 1044 of file xscalar.hpp.

+ +
+
+ +

◆ operator-=()

+ +
+
+
+template<bool is_const, class CT>
+ + + + + +
+ + + + + + + +
auto xt::xdummy_iterator< is_const, CT >::operator-= (difference_type n)
+
+inlinenoexcept
+
+ +

Definition at line 1056 of file xscalar.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xdummy__iterator.png b/classxt_1_1xdummy__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..71d995f3faa126f54ac3ccae728d17db3d47d8bf GIT binary patch literal 2282 zcmd5;dpK0<8egQ_bkJohn{?Tvos!zgHEhB*DeShHicC%yYS&n7!x%Cn9<*JHoT)u7 zwIjKW9GOXjsbp}bLF6`L3@Jk_Ota0^n6qZi?m6d=^E~I@^Zl{D_xfAk`@Y}vTkF>V zzaR7wCI|ok^pQTECjmfD0LuYuR>03~#^$%-%{1V6pqE;$hQ+Db#hBbziOd zOpT3=!S=%(bSdmxi#zG}69DVlWv@$l2LNkgke=>=aXL^DKmMW9dcCU=G^MIU=CFKp z~_Dd=IUT4|fiKwVVpimDgtpZW0m6dDnTkP>Ud8>2>(mjvpBBEHVL?ZIO zvbeJOy}ef0kwJCT#~*$33>Kz}Q_PvepuZPhK2z<0bYhWJk_C@E194yfA7zO6 zkjmPit;irzKV3LU_nkL19gS$@lOh@~f5yc_cz$SYwkn!>j4%JXO?_}urNe1O*Z4}a zMKrrKwuGcVSL|aNrAC-#T_mi<=Yx|~xlzi%lhL-0)$NJKJrlQ;I^27gziBdhb%|?d zDM!8KlV`WSywnusKHwF(W1%IU(g0P;BFAyl=S*lbVMd%8tErV0Ikjz~HbU@RvmlV` zy1&(??Yhfz7Au2u9IM{9!mvBUr5X%DU%1-DD;9JR+}UsM%BAAEn#ZQuKJ z=k&q0a$T;OToe$T|91DmM+?7CrLB&z?!d1QbTUgnIs`aWMWM@v(F+NCr^0_SV<}&~ zZ!(w0(m*1^HYW^Blf64r^&Xs?W6de3nFMA7bCzXFPY$*-L@#b)LUc)+Q&>GD+l{`A zDv@qwnJUV!HM!(^V>n~szYQsr{co{yY&a%&Rg1kh<4*dzaIk%-YD^l~(_Q|&4zYTR z(52A^k=O;sD2~j~%fL;a%S3h`KBYcW3-lLWfKVKnl3teB3$~k27uWZG8bCBy#Xa+w z7-L_w&cvNdPqp@7knSt9mog4nNMp2~+%ZpKJ; zVfO4cZ^A{X8A!Cd-=4sWjW}9y4R`11R-23nl87SaY;;~9M~YT=lw%aA@mU4dStLdE z7;4H(-y$??v{8QS2g%3IT6aD%vQzdRA|^b(+pLmoVqyaW4sC#{F@K+aZ(ZRcS(03_ zVE^HAZ%J0nx1=-hA?u_@!wIQq9W&#`>>5g&`=$vCrtR~Hn!w)86gU4>EoYj8gOxX4 z4VwtZ4OGR5c=t-vsz_Ya=&gjRo|m9+CynUbK(ZaFe`eIfy3SW%)FGca ze)KSV_-`F2zdE63lS2)uy0k$dzJwWMtIv#GSi}s{YHvMEJ+w~&g)@=|DV$90<*iyM zXd__f^0*U|_DIEQLiA^Um$~^fx2((58NUz`$68t6BEfOexpen4XtQ9OqVXW{#wgd5M(bdr!Fm0ry@kTGPdxP~>uh%GdlfMKS)|qO2I-xKlYQS_~z%$o9>&Lz^O!u&8NG_ES63AWUjI{<*XCmlshoqNKeO@ zP*q)S+s!f5Ia2jmvIz|e<-wmWY&ymAAEOQ?%%YgSqQ4Mlng%oKu3`&lOFS7h@pm>` zGz1py#ySs4+XE-Hvs#h!=g17|0E>}T|2O=^E&W?S;b z!Lwn!oy20f+&( zv!r9%IWapLlRkZ}gKWej#ucaFxu_hqtz9;$*sjr}8<@jzb|^g3aLws7LJGFq<9`m> fk687e{| + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xdynamic_view< CT, S, L, FST > Member List
+
+
+ +

This is the complete list of members for xt::xdynamic_view< CT, S, L, FST >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
adjust_element_offset(offset_type offset, It first, It last) const noexcept -> offset_type (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
adjust_offset(offset_type offset, T idx, Args... args) const noexcept -> offset_type (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
adjust_offset_impl(offset_type offset, size_type idx_offset, T idx, Args... args) const noexcept -> offset_type (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
assign_temporary(temporary_type &&)xt::xview_semantic< D >inline
assign_xexpression(const xexpression< E > &e) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
assign_xexpression(const xexpression< E > &e) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
backstrides_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
base_index_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
base_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
begin() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
begin(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
begin() noexcept -> layout_iterator< L >xt::xiterable< D >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< D >inline
begin() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
begin(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
bool_load_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
broadcast_shape(O &shape, bool reuse_cache=false) constxt::xdynamic_view< CT, S, L, FST >
build_view(E &&e) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
build_view(E &&e) const -> rebind_t< E > (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
cbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
cend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
computed_assign(const xexpression< E > &e) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
computed_assign(const xexpression< E > &e) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
const_broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
const_container_iterator typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
const_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
const_layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
const_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_pointer typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
const_reference typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
const_reverse_broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
const_reverse_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
const_reverse_layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
const_reverse_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
const_stepper typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
container_iterator typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
contiguous_layout (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >static
crbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
crend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
data() noexcept=delete (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
data() const noexcept=delete (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
data_offset() const noexcept (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
derived_type typedef (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
derived_type typedef (defined in xt::xiterable< D >)xt::xiterable< D >
derived_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >private
difference_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
element(It first, It last) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
element(It first, It last) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
element(It first, It last) -> reference (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
element(It first, It last) const -> const_reference (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
end() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
end(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
end() noexcept -> layout_iterator< L >xt::xiterable< D >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< D >inline
end() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
end(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
expression() noexceptxt::xdynamic_view< CT, S, L, FST >
expression() const noexceptxt::xdynamic_view< CT, S, L, FST >
expression_tag typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
extension_base typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
fill(const T &value) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
flat(size_type index) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
flat(size_type index) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
get_begin(bool end_index) noexcept -> layout_iterator< L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_begin(const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_cbegin(bool end_index) const noexcept -> const_layout_iterator< L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_cbegin(const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_cend(bool end_index) const noexcept -> const_layout_iterator< L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_cend(const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
get_end(bool end_index) noexcept -> layout_iterator< L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_end(const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_shape() const (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inlineprotected
get_stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
get_stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
has_linear_assign(const O &str) const noexcept (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
inner_backstrides_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
inner_shape_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
inner_storage_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
inner_strides_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
is_const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >static
is_contiguous() const noexcept (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
iterable_base typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
iterable_types typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
layout() const noexceptxt::xdynamic_view< CT, S, L, FST >
layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
linear_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator()() (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
operator()() const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
operator()(Args... args) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
operator()(Args... args) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
operator()(Args... args) -> reference (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
operator()(Args... args) const -> const_reference (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator=(const xexpression< E > &e) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
operator=(const E &e) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
operator=(const xexpression< E > &e) -> self_type & (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
operator=(const xview_semantic &)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
operator=(xview_semantic &&)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
operator=(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >private
operator=(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >private
operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >private
operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >private
operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
pointer typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
rbegin() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rbegin(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rbegin() noexcept -> reverse_layout_iterator< L >xt::xiterable< D >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< D >inline
rbegin() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rbegin(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rebind_t typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
reference typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
rend() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rend(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rend() noexcept -> reverse_layout_iterator< L >xt::xiterable< D >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< D >inline
rend() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
rend(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
reverse_broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
reverse_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
reverse_layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
reverse_linear_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
scalar_computed_assign(const E &e, F &&f) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
scalar_computed_assign(const E &e, F &&f) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
self_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
semantic_base typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
shape() const noexceptxt::xdynamic_view< CT, S, L, FST >
xt::xaccessible::shape(size_type index) constxt::xconst_accessible< D >inlineprivate
shape_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
simd_value_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
size_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
slice_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
slice_vector_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
static_layout (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >static
stepper typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
stepper_begin(const ST &shape) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
stepper_begin(const ST &shape) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
stepper_begin(const ST &shape) -> stepper (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
stepper_begin(const ST &shape) const -> const_stepper (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
stepper_end(const ST &shape, layout_type l) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
stepper_end(const ST &shape, layout_type l) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
stepper_end(const ST &shape, layout_type) -> stepper (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
stepper_end(const ST &shape, layout_type) const -> const_stepper (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
storage() noexceptxt::xdynamic_view< CT, S, L, FST >
storage() const noexceptxt::xdynamic_view< CT, S, L, FST >
storage_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
strides() const noexcept=delete (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
strides_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
strides_vt typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
temporary_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
unchecked(Args... args) (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
unchecked(Args... args) const (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
unchecked(Args... args) -> reference (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
unchecked(Args... args) const -> const_reference (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
value_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
xaccessible< self_type > (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >friend
xconst_accessible< self_type > (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >friend
xdynamic_view(CTA &&e, SA &&shape, get_strides_t< S > &&strides, std::size_t offset, layout_type layout, slice_vector_type &&slices, get_strides_t< S > &&adj_strides) noexcept (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >inline
xexpression_type typedef (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >
xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
xstepper (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >friend
xview_semantic()=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
xview_semantic(const xview_semantic &)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
xview_semantic(xview_semantic &&)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
xview_semantic< self_type > (defined in xt::xdynamic_view< CT, S, L, FST >)xt::xdynamic_view< CT, S, L, FST >friend
~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
~xview_semantic()=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
+
+ + + + diff --git a/classxt_1_1xdynamic__view.html b/classxt_1_1xdynamic__view.html new file mode 100644 index 000000000..c4242164f --- /dev/null +++ b/classxt_1_1xdynamic__view.html @@ -0,0 +1,2715 @@ + + + + + + + +xtensor: xt::xdynamic_view< CT, S, L, FST > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xdynamic_view< CT, S, L, FST > Class Template Reference
+
+
+
+Inheritance diagram for xt::xdynamic_view< CT, S, L, FST >:
+
+
+ + +xt::xview_semantic< D > +xt::xiterable< D > +xt::xstrided_view_base< D > +xt::xsemantic_base< D > +xt::xconst_iterable< D > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xdynamic_view<CT, S, L, FST>
 
using base_type = xstrided_view_base<self_type>
 
using semantic_base = xview_semantic<self_type>
 
using extension_base = extension::xdynamic_view_base_t<CT, S, L, FST>
 
using expression_tag = typename extension_base::expression_tag
 
using xexpression_type = typename base_type::xexpression_type
 
using value_type = typename base_type::value_type
 
using reference = typename base_type::reference
 
using const_reference = typename base_type::const_reference
 
using pointer = typename base_type::pointer
 
using const_pointer = typename base_type::const_pointer
 
using size_type = typename base_type::size_type
 
using difference_type = typename base_type::difference_type
 
using inner_storage_type = typename base_type::inner_storage_type
 
using storage_type = typename base_type::storage_type
 
using iterable_base = xiterable<self_type>
 
using inner_shape_type = typename iterable_base::inner_shape_type
 
using inner_strides_type = typename base_type::inner_strides_type
 
using inner_backstrides_type = typename base_type::inner_backstrides_type
 
using shape_type = typename base_type::shape_type
 
using strides_type = typename base_type::strides_type
 
using backstrides_type = typename base_type::backstrides_type
 
using stepper = typename iterable_base::stepper
 
using const_stepper = typename iterable_base::const_stepper
 
using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
 
using base_index_type = xindex_type_t<shape_type>
 
using simd_value_type = typename base_type::simd_value_type
 
using bool_load_type = typename base_type::bool_load_type
 
using strides_vt = typename strides_type::value_type
 
using slice_type = std::variant<detail::xfake_slice<strides_vt>, xkeep_slice<strides_vt>, xdrop_slice<strides_vt>>
 
using slice_vector_type = std::vector<slice_type>
 
using container_iterator
 
using const_container_iterator = typename storage_type::const_iterator
 
template<class E>
using rebind_t = xdynamic_view<E, S, L, typename FST::template rebind_t<E>>
 
- Public Types inherited from xt::xview_semantic< D >
using base_type = xsemantic_base<D>
 
using derived_type = D
 
using temporary_type = typename base_type::temporary_type
 
- Public Types inherited from xt::xsemantic_base< D >
using base_type = select_expression_base_t<D>
 
using derived_type = typename base_type::derived_type
 
using temporary_type = typename xcontainer_inner_types<D>::temporary_type
 
- Public Types inherited from xt::xiterable< D >
using derived_type = D
 
using base_type = xconst_iterable<D>
 
using inner_shape_type = typename base_type::inner_shape_type
 
using stepper = typename base_type::stepper
 
using const_stepper = typename base_type::const_stepper
 
using linear_iterator = typename base_type::linear_iterator
 
using reverse_linear_iterator = typename base_type::reverse_linear_iterator
 
template<layout_type L>
using layout_iterator = typename base_type::template layout_iterator<L>
 
template<layout_type L>
using const_layout_iterator = typename base_type::template const_layout_iterator<L>
 
template<layout_type L>
using reverse_layout_iterator = typename base_type::template reverse_layout_iterator<L>
 
template<layout_type L>
using const_reverse_layout_iterator = typename base_type::template const_reverse_layout_iterator<L>
 
template<class S, layout_type L>
using broadcast_iterator = typename base_type::template broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_broadcast_iterator = typename base_type::template const_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using reverse_broadcast_iterator = typename base_type::template reverse_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_reverse_broadcast_iterator = typename base_type::template const_reverse_broadcast_iterator<S, L>
 
using iterator = typename base_type::iterator
 
using const_iterator = typename base_type::const_iterator
 
using reverse_iterator = typename base_type::reverse_iterator
 
using const_reverse_iterator = typename base_type::const_reverse_iterator
 
- Public Types inherited from xt::xconst_iterable< D >
using derived_type = D
 
using iterable_types = xiterable_inner_types<D>
 
using inner_shape_type = typename iterable_types::inner_shape_type
 
using stepper = typename iterable_types::stepper
 
using const_stepper = typename iterable_types::const_stepper
 
template<layout_type L>
using layout_iterator = xiterator<stepper, inner_shape_type*, L>
 
template<layout_type L>
using const_layout_iterator = xiterator<const_stepper, inner_shape_type*, L>
 
template<layout_type L>
using reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>
 
template<layout_type L>
using const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>
 
using linear_iterator = layout_iterator< ::xt::layout_type::row_major >
 
using const_linear_iterator = const_layout_iterator< ::xt::layout_type::row_major >
 
using reverse_linear_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
 
using const_reverse_linear_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
 
template<class S, layout_type L>
using broadcast_iterator = xiterator<stepper, S, L>
 
template<class S, layout_type L>
using const_broadcast_iterator = xiterator<const_stepper, S, L>
 
template<class S, layout_type L>
using reverse_broadcast_iterator = std::reverse_iterator<broadcast_iterator<S, L>>
 
template<class S, layout_type L>
using const_reverse_broadcast_iterator = std::reverse_iterator<const_broadcast_iterator<S, L>>
 
using iterator = layout_iterator< ::xt::layout_type::row_major >
 
using const_iterator = const_layout_iterator< ::xt::layout_type::row_major >
 
using reverse_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
 
using const_reverse_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<class CTA, class SA>
 xdynamic_view (CTA &&e, SA &&shape, get_strides_t< S > &&strides, std::size_t offset, layout_type layout, slice_vector_type &&slices, get_strides_t< S > &&adj_strides) noexcept
 
+template<class E>
self_typeoperator= (const xexpression< E > &e)
 
+template<class E>
disable_xexpression< E, self_type > & operator= (const E &e)
 
+const inner_strides_type & strides () const noexcept=delete
 
reference operator() ()
 
const_reference operator() () const
 
+template<class... Args>
reference operator() (Args... args)
 
+template<class... Args>
const_reference operator() (Args... args) const
 
+template<class... Args>
reference unchecked (Args... args)
 
+template<class... Args>
const_reference unchecked (Args... args) const
 
reference flat (size_type index)
 
const_reference flat (size_type index) const
 
+template<class It>
reference element (It first, It last)
 
+template<class It>
const_reference element (It first, It last) const
 
size_type data_offset () const noexcept
 
+value_type * data () noexcept=delete
 
+const value_type * data () const noexcept=delete
 
template<class O>
bool has_linear_assign (const O &str) const noexcept
 
template<class T>
void fill (const T &value)
 
+template<class ST>
stepper stepper_begin (const ST &shape)
 
+template<class ST>
stepper stepper_end (const ST &shape, layout_type l)
 
+template<class ST>
const_stepper stepper_begin (const ST &shape) const
 
+template<class ST>
const_stepper stepper_end (const ST &shape, layout_type l) const
 
+template<class E>
rebind_t< E > build_view (E &&e) const
 
template<class E>
auto operator= (const xexpression< E > &e) -> self_type &
 
template<class E>
auto operator= (const E &e) -> disable_xexpression< E, self_type > &
 
template<class... Args>
auto operator() (Args... args) -> reference
 
template<class... Args>
auto operator() (Args... args) const -> const_reference
 
template<class... Args>
auto unchecked (Args... args) -> reference
 
template<class... Args>
auto unchecked (Args... args) const -> const_reference
 
template<class It>
auto element (It first, It last) -> reference
 
template<class It>
auto element (It first, It last) const -> const_reference
 
template<class ST>
auto stepper_begin (const ST &shape) -> stepper
 
template<class ST>
auto stepper_end (const ST &shape, layout_type) -> stepper
 
template<class ST>
auto stepper_begin (const ST &shape) const -> const_stepper
 
template<class ST>
auto stepper_end (const ST &shape, layout_type) const -> const_stepper
 
template<class E>
auto build_view (E &&e) const -> rebind_t< E >
 
template<class T, class... Args>
auto adjust_offset (offset_type offset, T idx, Args... args) const noexcept -> offset_type
 
template<class T, class... Args>
auto adjust_offset_impl (offset_type offset, size_type idx_offset, T idx, Args... args) const noexcept -> offset_type
 
template<class It>
auto adjust_element_offset (offset_type offset, It first, It last) const noexcept -> offset_type
 
+bool is_contiguous () const noexcept
 
+layout_type layout () const noexcept
 Returns the layout of the xtrided_view_base.
 
+const inner_shape_type & shape () const noexcept
 Returns the shape of the xtrided_view_base.
 
bool broadcast_shape (O &shape, bool reuse_cache=false) const
 Broadcast the shape of the view to the specified parameter.
 
+xexpression_type & expression () noexcept
 Returns a reference to the underlying expression of the view.
 
+const xexpression_type & expression () const noexcept
 Returns a constant reference to the underlying expression of the view.
 
+storage_type & storage () noexcept
 Returns a reference to the buffer containing the elements of the view.
 
+const storage_type & storage () const noexcept
 Returns a constant reference to the buffer containing the elements of the view.
 
- Public Member Functions inherited from xt::xview_semantic< D >
+template<class E>
derived_type & assign_xexpression (const xexpression< E > &e)
 
+template<class E>
derived_type & computed_assign (const xexpression< E > &e)
 
+template<class E, class F>
derived_type & scalar_computed_assign (const E &e, F &&f)
 
derived_type & assign_temporary (temporary_type &&)
 Assigns the temporary tmp to *this.
 
template<class E>
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
template<class E>
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
template<class E, class F>
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
template<class E>
auto operator= (const xexpression< E > &rhs) -> derived_type &
 
- Public Member Functions inherited from xt::xsemantic_base< D >
+template<class E>
disable_xexpression< E, derived_type & > operator+= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator-= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator*= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator/= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator%= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator&= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator|= (const E &)
 
+template<class E>
disable_xexpression< E, derived_type & > operator^= (const E &)
 
+template<class E>
derived_type & operator+= (const xexpression< E > &)
 
+template<class E>
derived_type & operator-= (const xexpression< E > &)
 
+template<class E>
derived_type & operator*= (const xexpression< E > &)
 
+template<class E>
derived_type & operator/= (const xexpression< E > &)
 
+template<class E>
derived_type & operator%= (const xexpression< E > &)
 
+template<class E>
derived_type & operator&= (const xexpression< E > &)
 
+template<class E>
derived_type & operator|= (const xexpression< E > &)
 
+template<class E>
derived_type & operator^= (const xexpression< E > &)
 
+template<class E>
derived_type & assign (const xexpression< E > &)
 
+template<class E>
derived_type & plus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & minus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & multiplies_assign (const xexpression< E > &)
 
+template<class E>
derived_type & divides_assign (const xexpression< E > &)
 
+template<class E>
derived_type & modulus_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_and_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_or_assign (const xexpression< E > &)
 
+template<class E>
derived_type & bit_xor_assign (const xexpression< E > &)
 
template<class E>
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
template<class E>
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
template<class E>
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
template<class E>
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
template<class E>
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
template<class E>
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
template<class E>
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
template<class E>
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
template<class E>
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
template<class E>
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
template<class E>
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
template<class E>
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
template<class E>
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
template<class E>
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
template<class E>
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
template<class E>
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
template<class E>
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
template<class E>
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
template<class E>
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
template<class E>
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
template<class E>
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
template<class E>
auto operator= (const xexpression< E > &e) -> derived_type &
 
- Public Member Functions inherited from xt::xiterable< D >
+template<layout_type L = ::xt::layout_type::row_major>
layout_iterator< L > begin () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
layout_iterator< L > end () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
reverse_layout_iterator< L > rbegin () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
reverse_layout_iterator< L > rend () noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
broadcast_iterator< S, L > end (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > begin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > end () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > rbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > rend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
template<layout_type L>
auto begin () noexcept -> layout_iterator< L >
 Returns an iterator to the first element of the expression.
 
template<layout_type L>
auto end () noexcept -> layout_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L>
auto rbegin () noexcept -> reverse_layout_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () noexcept -> reverse_layout_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto get_begin (bool end_index) noexcept -> layout_iterator< L >
 
template<layout_type L>
auto get_end (bool end_index) noexcept -> layout_iterator< L >
 
template<layout_type L, class S>
auto get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
 
template<layout_type L, class S>
auto get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
 
template<class S>
auto get_stepper_begin (const S &shape) noexcept -> stepper
 
template<class S>
auto get_stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
template<class S>
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
- Public Member Functions inherited from xt::xconst_iterable< D >
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > begin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > end () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > cbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_layout_iterator< L > cend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > rbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > rend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > crbegin () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major>
const_reverse_layout_iterator< L > crend () const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+template<layout_type L = ::xt::layout_type::row_major, class S>
const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
template<layout_type L>
auto begin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto end () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L>
auto cbegin () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L>
auto cend () const noexcept -> const_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L>
auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto rend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L>
auto crend () const noexcept -> const_reverse_layout_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
template<layout_type L, class S>
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
template<layout_type L, class S>
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L, class S>
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
template<layout_type L, class S>
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
template<layout_type L>
auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
 
template<layout_type L>
auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
 
template<layout_type L, class S>
auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
template<layout_type L, class S>
auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
 
template<class S>
auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
+ + + + + + + +

+Static Public Attributes

static constexpr bool is_const
 
static constexpr bool contiguous_layout
 
static constexpr layout_type static_layout
 
+ + + + + + + + + + +

+Friends

template<class C>
class xstepper
 
class xview_semantic< self_type >
 
class xaccessible< self_type >
 
class xconst_accessible< self_type >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xview_semantic< D >
xview_semantic (const xview_semantic &)=default
 
+xview_semanticoperator= (const xview_semantic &)=default
 
xview_semantic (xview_semantic &&)=default
 
+xview_semanticoperator= (xview_semantic &&)=default
 
+template<class E>
derived_type & operator= (const xexpression< E > &)
 
- Protected Member Functions inherited from xt::xsemantic_base< D >
xsemantic_base (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+template<class E>
derived_type & operator= (const xexpression< E > &)
 
const inner_shape_type & get_shape () const
 
+

Detailed Description

+
template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+class xt::xdynamic_view< CT, S, L, FST >
+

Definition at line 98 of file xdynamic_view.hpp.

+

Member Typedef Documentation

+ +

◆ backstrides_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::backstrides_type = typename base_type::backstrides_type
+
+ +

Definition at line 132 of file xdynamic_view.hpp.

+ +
+
+ +

◆ base_index_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::base_index_type = xindex_type_t<shape_type>
+
+ +

Definition at line 141 of file xdynamic_view.hpp.

+ +
+
+ +

◆ base_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::base_type = xstrided_view_base<self_type>
+
+ +

Definition at line 106 of file xdynamic_view.hpp.

+ +
+
+ +

◆ bool_load_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::bool_load_type = typename base_type::bool_load_type
+
+ +

Definition at line 144 of file xdynamic_view.hpp.

+ +
+
+ +

◆ const_container_iterator

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::const_container_iterator = typename storage_type::const_iterator
+
+ +

Definition at line 239 of file xdynamic_view.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::const_pointer = typename base_type::const_pointer
+
+ +

Definition at line 118 of file xdynamic_view.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::const_reference = typename base_type::const_reference
+
+ +

Definition at line 116 of file xdynamic_view.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::const_stepper = typename iterable_base::const_stepper
+
+ +

Definition at line 135 of file xdynamic_view.hpp.

+ +
+
+ +

◆ container_iterator

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::container_iterator
+
+Initial value:
std::
+
conditional_t<is_const, typename storage_type::const_iterator, typename storage_type::iterator>
+
+

Definition at line 237 of file xdynamic_view.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::difference_type = typename base_type::difference_type
+
+ +

Definition at line 120 of file xdynamic_view.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::expression_tag = typename extension_base::expression_tag
+
+ +

Definition at line 109 of file xdynamic_view.hpp.

+ +
+
+ +

◆ extension_base

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::extension_base = extension::xdynamic_view_base_t<CT, S, L, FST>
+
+ +

Definition at line 108 of file xdynamic_view.hpp.

+ +
+
+ +

◆ inner_backstrides_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::inner_backstrides_type = typename base_type::inner_backstrides_type
+
+ +

Definition at line 128 of file xdynamic_view.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::inner_shape_type = typename iterable_base::inner_shape_type
+
+ +

Definition at line 126 of file xdynamic_view.hpp.

+ +
+
+ +

◆ inner_storage_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::inner_storage_type = typename base_type::inner_storage_type
+
+ +

Definition at line 122 of file xdynamic_view.hpp.

+ +
+
+ +

◆ inner_strides_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::inner_strides_type = typename base_type::inner_strides_type
+
+ +

Definition at line 127 of file xdynamic_view.hpp.

+ +
+
+ +

◆ iterable_base

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::iterable_base = xiterable<self_type>
+
+ +

Definition at line 125 of file xdynamic_view.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::pointer = typename base_type::pointer
+
+ +

Definition at line 117 of file xdynamic_view.hpp.

+ +
+
+ +

◆ rebind_t

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class E>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::rebind_t = xdynamic_view<E, S, L, typename FST::template rebind_t<E>>
+
+ +

Definition at line 242 of file xdynamic_view.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::reference = typename base_type::reference
+
+ +

Definition at line 115 of file xdynamic_view.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::self_type = xdynamic_view<CT, S, L, FST>
+
+ +

Definition at line 105 of file xdynamic_view.hpp.

+ +
+
+ +

◆ semantic_base

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::semantic_base = xview_semantic<self_type>
+
+ +

Definition at line 107 of file xdynamic_view.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::shape_type = typename base_type::shape_type
+
+ +

Definition at line 130 of file xdynamic_view.hpp.

+ +
+
+ +

◆ simd_value_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::simd_value_type = typename base_type::simd_value_type
+
+ +

Definition at line 143 of file xdynamic_view.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::size_type = typename base_type::size_type
+
+ +

Definition at line 119 of file xdynamic_view.hpp.

+ +
+
+ +

◆ slice_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::slice_type = std::variant<detail::xfake_slice<strides_vt>, xkeep_slice<strides_vt>, xdrop_slice<strides_vt>>
+
+ +

Definition at line 147 of file xdynamic_view.hpp.

+ +
+
+ +

◆ slice_vector_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::slice_vector_type = std::vector<slice_type>
+
+ +

Definition at line 148 of file xdynamic_view.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::stepper = typename iterable_base::stepper
+
+ +

Definition at line 134 of file xdynamic_view.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::storage_type = typename base_type::storage_type
+
+ +

Definition at line 123 of file xdynamic_view.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::strides_type = typename base_type::strides_type
+
+ +

Definition at line 131 of file xdynamic_view.hpp.

+ +
+
+ +

◆ strides_vt

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::strides_vt = typename strides_type::value_type
+
+ +

Definition at line 146 of file xdynamic_view.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
+
+ +

Definition at line 140 of file xdynamic_view.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::value_type = typename base_type::value_type
+
+ +

Definition at line 114 of file xdynamic_view.hpp.

+ +
+
+ +

◆ xexpression_type

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + +
using xt::xdynamic_view< CT, S, L, FST >::xexpression_type = typename base_type::xexpression_type
+
+ +

Definition at line 111 of file xdynamic_view.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xdynamic_view()

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+
+template<class CTA, class SA>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xt::xdynamic_view< CT, S, L, FST >::xdynamic_view (CTA && e,
SA && shape,
get_strides_t< S > && strides,
std::size_t offset,
layout_type layout,
slice_vector_type && slices,
get_strides_t< S > && adj_strides )
+
+inlinenoexcept
+
+ +

Definition at line 384 of file xdynamic_view.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ adjust_element_offset()

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::adjust_element_offset (offset_type offset,
It first,
It last ) const -> offset_type +
+
+inlinenoexcept
+
+ +

Definition at line 674 of file xdynamic_view.hpp.

+ +
+
+ +

◆ adjust_offset()

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class T, class... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::adjust_offset (offset_type offset,
T idx,
Args... args ) const -> offset_type +
+
+inlinenoexcept
+
+ +

Definition at line 630 of file xdynamic_view.hpp.

+ +
+
+ +

◆ adjust_offset_impl()

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class T, class... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::adjust_offset_impl (offset_type offset,
size_type idx_offset,
T idx,
Args... args ) const -> offset_type +
+
+inlinenoexcept
+
+ +

Definition at line 649 of file xdynamic_view.hpp.

+ +
+
+ +

◆ broadcast_shape()

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + + + + + + + +
bool xt::xstrided_view_base< self_type >::broadcast_shape (O & shape,
bool reuse_cache = false ) const
+
+ +

Broadcast the shape of the view to the specified parameter.

+
Parameters
+ + + +
shapethe result shape
reuse_cacheparameter for internal optimization
+
+
+
Returns
a boolean indicating whether the broadcasting is trivial
+ +
+
+ +

◆ build_view()

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::build_view (E && e) const -> rebind_t<E> +
+
+inline
+
+ +

Definition at line 561 of file xdynamic_view.hpp.

+ +
+
+ +

◆ data_offset()

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::data_offset () const
+
+inlinenoexcept
+
+ +

Definition at line 506 of file xdynamic_view.hpp.

+ +
+
+ +

◆ element() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::element (It first,
It last ) -> reference +
+
+inline
+
+ +

Definition at line 487 of file xdynamic_view.hpp.

+ +
+
+ +

◆ element() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::element (It first,
It last ) const -> const_reference +
+
+inline
+
+ +

Definition at line 497 of file xdynamic_view.hpp.

+ +
+
+ +

◆ fill()

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+
+template<class T>
+ + + + + +
+ + + + + + + +
void xt::xdynamic_view< CT, S, L, FST >::fill (const T & value)
+
+inline
+
+ +

Definition at line 521 of file xdynamic_view.hpp.

+ +
+
+ +

◆ flat() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::flat (size_type index)
+
+inline
+
+ +

Definition at line 474 of file xdynamic_view.hpp.

+ +
+
+ +

◆ flat() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::flat (size_type index) const
+
+inline
+
+ +

Definition at line 480 of file xdynamic_view.hpp.

+ +
+
+ +

◆ has_linear_assign()

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+
+template<class O>
+ + + + + +
+ + + + + + + +
bool xt::xdynamic_view< CT, S, L, FST >::has_linear_assign (const O & str) const
+
+inlinenoexcept
+
+ +

Definition at line 450 of file xdynamic_view.hpp.

+ +
+
+ +

◆ operator()() [1/4]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::operator() ()
+
+inline
+
+ +

Definition at line 415 of file xdynamic_view.hpp.

+ +
+
+ +

◆ operator()() [2/4]

+ +
+
+
+template<class CT, class S, layout_type L, class FST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::operator() () const
+
+inline
+
+ +

Definition at line 421 of file xdynamic_view.hpp.

+ +
+
+ +

◆ operator()() [3/4]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::operator() (Args... args) -> reference +
+
+inline
+
+ +

Definition at line 428 of file xdynamic_view.hpp.

+ +
+
+ +

◆ operator()() [4/4]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::operator() (Args... args) const -> const_reference +
+
+inline
+
+ +

Definition at line 439 of file xdynamic_view.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
+
+inline
+
+ +

Definition at line 408 of file xdynamic_view.hpp.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::operator= (const xexpression< E > & e) -> self_type& +
+
+inline
+
+ +

Definition at line 401 of file xdynamic_view.hpp.

+ +
+
+ +

◆ stepper_begin() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class ST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::stepper_begin (const ST & shape) -> stepper +
+
+inline
+
+ +

Definition at line 528 of file xdynamic_view.hpp.

+ +
+
+ +

◆ stepper_begin() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class ST>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::stepper_begin (const ST & shape) const -> const_stepper +
+
+inline
+
+ +

Definition at line 544 of file xdynamic_view.hpp.

+ +
+
+ +

◆ stepper_end() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::stepper_end (const ST & shape,
layout_type  ) -> stepper +
+
+inline
+
+ +

Definition at line 536 of file xdynamic_view.hpp.

+ +
+
+ +

◆ stepper_end() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::stepper_end (const ST & shape,
layout_type  ) const -> const_stepper +
+
+inline
+
+ +

Definition at line 552 of file xdynamic_view.hpp.

+ +
+
+ +

◆ unchecked() [1/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::unchecked (Args... args) -> reference +
+
+inline
+
+ +

Definition at line 457 of file xdynamic_view.hpp.

+ +
+
+ +

◆ unchecked() [2/2]

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xdynamic_view< CT, S, L, FST >::unchecked (Args... args) const -> const_reference +
+
+inline
+
+ +

Definition at line 466 of file xdynamic_view.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xaccessible< self_type >

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + +
+ + + + +
friend class xaccessible< self_type >
+
+friend
+
+ +

Definition at line 280 of file xdynamic_view.hpp.

+ +
+
+ +

◆ xconst_accessible< self_type >

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + +
+ + + + +
friend class xconst_accessible< self_type >
+
+friend
+
+ +

Definition at line 280 of file xdynamic_view.hpp.

+ +
+
+ +

◆ xstepper

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+
+template<class C>
+ + + + + +
+ + + + +
friend class xstepper
+
+friend
+
+ +

Definition at line 280 of file xdynamic_view.hpp.

+ +
+
+ +

◆ xview_semantic< self_type >

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + +
+ + + + +
friend class xview_semantic< self_type >
+
+friend
+
+ +

Definition at line 280 of file xdynamic_view.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ contiguous_layout

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + +
+ + + + +
bool xt::xstrided_view_base< self_type >::contiguous_layout
+
+staticconstexpr
+
+ +

Definition at line 133 of file xstrided_view_base.hpp.

+ +
+
+ +

◆ is_const

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + +
+ + + + +
bool xt::xstrided_view_base< self_type >::is_const
+
+staticconstexpr
+
+ +

Definition at line 104 of file xstrided_view_base.hpp.

+ +
+
+ +

◆ static_layout

+ +
+
+
+template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
+ + + + + +
+ + + + +
layout_type xt::xstrided_view_base< self_type >::static_layout
+
+staticconstexpr
+
+ +

Definition at line 132 of file xstrided_view_base.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xdynamic__view.js b/classxt_1_1xdynamic__view.js new file mode 100644 index 000000000..30fbee8e4 --- /dev/null +++ b/classxt_1_1xdynamic__view.js @@ -0,0 +1,10 @@ +var classxt_1_1xdynamic__view = +[ + [ "broadcast_shape", "classxt_1_1xdynamic__view.html#a0f7c1e14391c357570e1d054b19b6165", null ], + [ "expression", "classxt_1_1xdynamic__view.html#a929958921ea6477ce8a3c5aba3936146", null ], + [ "expression", "classxt_1_1xdynamic__view.html#a0ab07e56a411fedb9e0e213b8ddbc693", null ], + [ "layout", "classxt_1_1xdynamic__view.html#ae3ff4c9cf2e6873fbc934e946f1b702b", null ], + [ "shape", "classxt_1_1xdynamic__view.html#a63efb4c728be80dc8154df1b578c33cd", null ], + [ "storage", "classxt_1_1xdynamic__view.html#a12ee07f7bf30d89f9ea691a03a122e3d", null ], + [ "storage", "classxt_1_1xdynamic__view.html#a515e8cbd36c5494ab188f4c3e9d90861", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xdynamic__view.png b/classxt_1_1xdynamic__view.png new file mode 100644 index 0000000000000000000000000000000000000000..712d65fae79425897665609704a3f2e2115e64e0 GIT binary patch literal 7814 zcmeHMX;@R&))uist%@Jkq9R~x(XXH&`pFAnDOmeGN zQVo!ch+-JRAX5Sal|hIk4uyar2@)|38JIE=lH79=z@dHabD!^5f870SI79Z{Yn`>; zz1DvBPCj_ReaWKLi{{Onw`A{+yAIErw-^rIHyY}L|MQBaKH$al;NOn!)@U@~?Vvz{ z%6NR=ar1X)SK^)x_Vx9F@3(cp?}ER59(DM@k$K>=wm8hk|2}V?`Ty+Qwc}`vo{-Io z%X4JfJkQ+=%OPv5{gQc0PWbH2f2r!EP8+AM{6)I?#RI#RtJ)e9wrsYPZY5LlD9&Vx zf6w{3lKp~h#%8}@tJ)VXm@R@dk!VnKO(gQNUpre)1V^FW(dZ~NwOntmIBSQ?qbP4K zF`O;ktF*(h%)3PKsfwa5ez9<0noQde%bgQ@UMH6-JSoIP+rf}wUi}HT3|_NUuKM$5 zOY|N{9=6TVw%bvYRlLQ9k2@z`#jlW2Sv~cSg_`{0rxWz4cK%~!K4J|w z;qC}SC?f94c)>Oh2?hAr&{O`WyaM8DYqOJBY!&K{8prsTj$!IlMGU%wS2JCK>kk<* zt!A+ZA*O{^lpLfb+=NNQXSr}hBGT$v?<~`~N14ij3(9}SS9CJg^A7(U<{NmVzpQcn z1cys*+L6i}ap?s+nSR>Inv*%Q&Na&y8$Q6vB5^Sy%PN3*S`rz?`)7r3GNM*FAQWw) zK)#1<{nS3Vw26!96O5kqyoTHSvp9gW@+NLdg0c?v+EtIN*c_ckr}=R{@hBM z+eHy*nMUtZGiZJpi-?k0sot%&sCvPcO~xies8XB#pKnmUK1GNFxG=HXzmrblP?ekHfzT7eb>;nK1Uz+G9D6;i1^n3`Av}ZPfeU1Xn z|G6+p@E)L399uYka3r+@jG#m-A`$cSdQAaw>ZCu`Q*4>>!ztglZ5_Kng)!#d|$KGdTjrwwO)?zRcUQSJ-y;%_i*i7lvLq><%G(StNf9lM(f!g-`Uk! z+ef~c@sn3`72r@^NW4QFuHKlON+c2@zg&f*#V_{Z$imt(qS7yBv{Rn%JqlXZ1pYBv zB)+`cUAU1Ot5KdT0;)OW1(3YodYfoBQf7_>AebSwFoV6@yhUU;Ho2S2to!P9(t$gm zC~kGi7uq;;wffWpB4|zIY6}e=hNop5&9fi+UnN{26x8(RH!0aD+roWXge7|PgB|a? zq^J2`eq1aVZuYNjb%(}+mHo+BEr{(Jzj00p*OLz8oARB-Op7456rTxrG22>nyeDc3 zqn!vw-q1vV4V(@P-N`dvz{E0%ViV>a+0~k+)}6iILe8=L#5tg{UR97E?+~r7_3I{S zzwj9JJd8b)utuvawG?WhPBLBy09ZWm*PMVLBL8f*Z=@O1$~Ts6q>aBeHqqS~&&CNo zJxvH0(yun@Vgnc;LZPT_JOj98%Sv?#F1jab`mEqUVzbf1hY3i0w`4lX%(gc9LQ^BxR38B1 z3u{)g+5QuE2k&o6pfpaT5HhB6o0R%$Io7Rb09!kx6e81dDGo!gRiHAEg05@ISfdaa6?b` zTzNvR+mV>tfj#YC_kRf*^xriw!wW>BzUNeToxdj0&;{{`YPkT6P|wE$@nA~4-0HN3 zF?@FC1LEs_i@#k6{$M_%tLbivGN%DSq9~IY_+Ff&KUZV+7F!Ie%C*>umU+1h@uJ5t z;|XiHexm9WDp48w8DS}?V=~vfStQatjVbqEvvAU8qHnnmAgSf5j|b}1SVyg)g_)Mx8XvXLlibMQCOQ?75?#vP+G7BX=D6_VXne3YGwc`9VI_hKL zUw;1-i8z%q009p5*1O0hb|G%n`h~{&SmffPfUvkfAPNnWbtza>T90x_Nv%$sV6|MCQ*l9MkN(k(*(MVxs1`9hBisGY1-Wesz}(Iv6w^?v@?Fh`{9dGjz_ zMztG5)YIyi9vIW%#J!?wB+B8Ig&DhRu#DmxY=okgUo32`Kb}oE-ppEjjdLNM%4+V- zs0V%9f}uKcmchAqJ&uLLcHs(bF*G#y>LsH+(i?&enpdj8+Fzc8+vg42h0&KTd}tG$ zLw`r!!+w?jI_{CpPyxN6S@?yT_G_4V+nBz~)mGF|GnLDiF30l3``_hqb`%oQe_rl~ zpK=e8J?|llaPYH7T|KaMDTQxb8zPiA!ASutNhwHJzLXLMrZcZSowhHZZ2b{Lgj%|? zfcP5G+&n14468(ge)lIBgPi;gJ+j`g3$)JoSM%SYzJt$ocHUA6QfPBue6QHrtsOL5(T@+U1uqlLmLjDfJr~ zP8E2x_z1v0BE6xBfq93&8I9V4d(5-HF5~s-VSazjt@C9T#K$Fw&F_&@{;@wb1KCmW zYgn9IqTh@2ahPm-g22fOq~C6#+TUue4K=7xUiF~~G9zTGNfwXd(ptYje;47V8ee37 zxzVVopZP;yK_1ueqO!~-9E{%7(Lj@)65fuLSzC=EGuXU0!*-+TX{A~momfi_MqZiTVWUxc49;Op$-_5Q#;Of>1c^YQLd z4ACr17n-6+ubchSxIynAQ20=59flcwD#9$o92>CKZq%XWd!UnJWwQq@JA$JiVbxI` zYRCFuE;brvBML4gBtDU~7v8~*WYl%clk&RL6GE+Ba{NeL-UOq#tyg@LRfbq}ztIGz z%jveNfz`19<1H_(2uaSkta!Z098f<1dO0yM22vz9j?O&nNvBXO(vnpD^5vyQ&ytXI zDQz6I$m9SEv$>oQ2vd9^y)m$QsgbxT+7iA&IpBI+dFe%GK|HzTiB*Xk*@d4lP~21h zkg+G4FsTAG7{j{iX!+>U7Ky=)+UUs1^Vn7Mjnd7Hu!uK3JOzl2`faevlx;-w={<%C ztLFig`)E(V2rB7~D00Cr)FwCcx#Z?q&o$#~EMOMQLIUErs`rfFaIa~sU!pGxsCSpO zNTdzir1fredLnXlZ*=6}D~F<-2R%qeAr)pF^|z1*reAkFTElcDVY_z1j#Uart5@V~ z;^qI&x2}org^^QS$rdiRguHHM9ybS#wpgiD^{1LX<~i_Fx#JM7e$j1BA^a4mtS<{u zZ{xW&AYOz_$V$Rpi!y(zT!gDsWG9pGzQuz6z4k^Jsw7v)&lQCiQE(QQPpl+9i#qfrN_mz9JHxB77zPA(=O}rqeMz zi2Y;=iMnedM_Ok*fcdQMW~+pn?E? zC7{t#`}>e*ysF94gZkuenbuKN1lAau1EdW!&XIN0#;Bcu!-f%S7B)w zaOzq2ctYK!H;6=cn!owdnU%Jtd_dE#TTO$FY_-`M+%g7JcF;PdZhPho^+!i7^Q9rm zK|g8tdBB|h7ia|%j5(fB7&c2OyfX*#*}Q->J6-idNarYsYW{q+$pLU9DjD2LC^`aC z@qWy-zMdXw6KlbOT@W*uLNrvyvoJJ_Ieq_#^m83=4YdS`rl=LB(Kg=rNn-+5ec}9h z6KR!4AVJ468~5mjo&ZT|<4C*x44JJ5IdGFo&WH9xy)yUDP|$ct8IawEE(f_VM0z2f z+Q@+|TQ>T-e7}z5p0L%C)nCIv9ql0$i068y%5axFK6AqU}ay!Ex?#C~{api|G^>DWDN*Z_SAM9yHV9!aKV+A5mf z@78DA@w331L?7A8xh5Hirzq%L}C|SCtgejYL zVLS1sKRggSMRx*gM!HkRt5(MFBu0|c{W)TiHv|E1HJ&^6g^!=K-7lhhIL*lQdO{)oIBFbnb!K$ZROlF zDV+hy^Vr0eHOQgq_%>xt1G~YIpF{I~=`>PSi2zf6R^&}iI3}<}LmDTo5;I4>0!h?E zSFHmLK0L_Oe%|yoO@P9Dsyq1YD!LQj=#QdI8>-@XJP<3$n1X7?({)*qbi#+{h&n8b zY5g5ed=2am{Hg;T`2VA`u0Nkub5Y(DiXYRP)D~OKn$LJY Ut||aejOXp$ePCC~4<|1E3*gEq+W-In literal 0 HcmV?d00001 diff --git a/classxt_1_1xexpression-members.html b/classxt_1_1xexpression-members.html new file mode 100644 index 000000000..79eee2caf --- /dev/null +++ b/classxt_1_1xexpression-members.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xexpression< D > Member List
+
+
+ +

This is the complete list of members for xt::xexpression< D >, including all inherited members.

+ + + + + + + + + + + +
derived_cast() &noexceptxt::xexpression< D >inline
derived_cast() const &noexceptxt::xexpression< D >inline
derived_cast() &&noexceptxt::xexpression< D >inline
derived_type typedef (defined in xt::xexpression< D >)xt::xexpression< D >
operator=(const xexpression &)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
operator=(xexpression &&)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
xexpression()=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
xexpression(const xexpression &)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
xexpression(xexpression &&)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
~xexpression()=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
+
+ + + + diff --git a/classxt_1_1xexpression.html b/classxt_1_1xexpression.html new file mode 100644 index 000000000..9e9e64d4f --- /dev/null +++ b/classxt_1_1xexpression.html @@ -0,0 +1,311 @@ + + + + + + + +xtensor: xt::xexpression< D > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xexpression< D > Class Template Reference
+
+
+ +

Base class for xexpressions. + More...

+ +

#include <xexpression.hpp>

+
+Inheritance diagram for xt::xexpression< D >:
+
+
+ + +xt::xsharable_expression< D > +xt::xbroadcast< E, X > +xt::xgenerator< OF, OR, S > +xt::xgenerator< value_functor, value_closure, S > +xt::xgenerator< flag_functor, flag_closure, S > +xt::xreducer< Func, E, X, Opts > +xt::xscalar< xtl::closure_type_t< E > > +xt::xscalar< xtl::const_closure_type_t< E > > +xt::xscalar< T > +xt::xscalar< bool > +xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > > +xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > > +xt::xscalar< const_value_closure > +xt::xscalar< const_flag_closure > + +
+ + + + +

+Public Types

using derived_type = D
 
+ + + + + + + + + + + +

+Public Member Functions

Downcast functions
derived_type & derived_cast () &noexcept
 Returns a reference to the actual derived type of the xexpression.
 
const derived_type & derived_cast () const &noexcept
 Returns a constant reference to the actual derived type of the xexpression.
 
derived_type derived_cast () &&noexcept
 Returns a constant reference to the actual derived type of the xexpression.
 
+ + + + + + + + + +

+Protected Member Functions

xexpression (const xexpression &)=default
 
+xexpressionoperator= (const xexpression &)=default
 
xexpression (xexpression &&)=default
 
+xexpressionoperator= (xexpression &&)=default
 
+

Detailed Description

+
template<class D>
+class xt::xexpression< D >

Base class for xexpressions.

+

The xexpression class is the base class for all classes representing an expression that can be evaluated to a multidimensional container with tensor semantic. Functions that can apply to any xexpression regardless of its specific type should take a xexpression argument.

+
Template Parameters
+ + +
EThe derived type.
+
+
+ +

Definition at line 44 of file xexpression.hpp.

+

Member Typedef Documentation

+ +

◆ derived_type

+ +
+
+
+template<class D>
+ + + + +
using xt::xexpression< D >::derived_type = D
+
+ +

Definition at line 48 of file xexpression.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ derived_cast() [1/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xexpression< D >::derived_cast () &&
+
+inlinenoexcept
+
+ +

Returns a constant reference to the actual derived type of the xexpression.

+ +

Definition at line 133 of file xexpression.hpp.

+ +
+
+ +

◆ derived_cast() [2/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xexpression< D >::derived_cast () &
+
+inlinenoexcept
+
+ +

Returns a reference to the actual derived type of the xexpression.

+ +

Definition at line 115 of file xexpression.hpp.

+ +
+
+ +

◆ derived_cast() [3/3]

+ +
+
+
+template<class D>
+ + + + + +
+ + + + + + + +
auto xt::xexpression< D >::derived_cast () const &
+
+inlinenoexcept
+
+ +

Returns a constant reference to the actual derived type of the xexpression.

+ +

Definition at line 124 of file xexpression.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xexpression.js b/classxt_1_1xexpression.js new file mode 100644 index 000000000..420a231d7 --- /dev/null +++ b/classxt_1_1xexpression.js @@ -0,0 +1,6 @@ +var classxt_1_1xexpression = +[ + [ "derived_cast", "classxt_1_1xexpression.html#abf1d99fb093b7bab105ea3d8c4d8a548", null ], + [ "derived_cast", "classxt_1_1xexpression.html#a96fe8ebe879202c5a053ae5e0067b231", null ], + [ "derived_cast", "classxt_1_1xexpression.html#ab08a20008d390c970283c26f9f882483", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xexpression.png b/classxt_1_1xexpression.png new file mode 100644 index 0000000000000000000000000000000000000000..e6089d3eca1596f3e981e8aa3913591780918d30 GIT binary patch literal 10207 zcmeHNdsI_by0sX`pJQbmYX9!2s{Ab|i$roI@* z2Q^e829oyr$e_X%~{nbm1~??3IVxo54c zy>rglC)s=dzVG{ezwaE|93SgDXTh9Vvu62XH@vfD)~u&Q;Pcw=o&sk&Hk>E}&BD!_ zw!Q1|ctH2T$P}fxg}?fZW&2-YcRaXv?;bcGuH1eBTzf8OOZ?VZ;Jf!gKgs!K)~w)t z*mu@#%XY6m4RRuQ)V60_p zkmFQ8QFx@x*XA2dp#&Ubcf`b(`}KPy&1;jUEjccm+}@>2i4O4d-gVOUO!T5+zaY+` z_G1zsaeG*0wcRX~UU`%k70AOQkC~P>o$BDoH&(XEEqR%VhS2*{f;Khv)_zV%2ceX} zbVhYh3kLFOw%X+r5zt~eQS^rJ30VopLMx~bB~_s?RgesH(N#)T;}?_1}Mibe~7A{;J&@ z4@y&aB!30ftZ2{t^FeF~b_;f8F~CKp2)nZEC)$Gh1V3z+X+Qy=QTd}3xI)^*KpTz~ zC7BsB9vu`}d>a8&bgGCSBRCJU+S@Dxlaq$=;mNim$}@hF%IO0+N%UMjMXpn_kK{7_ zXFm{WTROPey@4!TkS4*{DyY^hXCKcbip8VmjdLAs)Pai+C4|w-@hszQ!k#o$8NBw9 zc`n*tlu26Nq@u2hw~4~dq8+38QAA!uANV5+UxPU2er9N9d^K9j4NE4)ghivY+T{A= z{%H8?CZ#pQi#uZnHQ*dHe|rBbX8wKUNvP9$Xqxe={_2C;BL|HWpJ}<5^x>aQjhP75 zK4wl7nYw^yYY1Y&du45PofGp^fnb^q(G-z!TUbNk;hOjx8*i~S{H4|YXeeoCl7E#g z>8Yj$8qb}|3ntZRTaM>_O(+@koBsz1%FcW%@vQbME#voXkfn$4#qQk|-z|GV9ib#8 z-wV!?lo^ozcq>}bzNNip#i~yZ9y~2ww{G1HVWw#F<~I(C#R%Y@`q=x$whsb0i;|^* zQ-?mT1=kNF-Syt9zj8NEL13ru*terJb?Mma$*Uk#C8{jeYjvoy8SDG;_9Po#thj$5 z`)rD1dhj6}7=+2y$okh}x!b&hi>@%r=ZkvNe6|7*6rbq6p10O%(NA?1UopPR=Wk_* zgTul&AtwadrHU6LQGS7Z{uIqIIX!ssR%VmmlhH3T8PPkx1nVEMMZ{;2veu#+C<`Ap zJK9^|_e{?-SAX)Xj~IaUQit`WfjE(Ir3wwd?NrnTg!XB^w!+{TLMdL2_f2-}@FVwO z;H8$KyO%rwdLB9eRd81Z2ciAOqW4xh}HNvc>^i<3l$-h~KzNKd6X z{$yUG55n;;$9u~0JWcsLT}6|R#dSC1PP5_8KB8#sh1p+6VBOdDtdFaq0U+%VR#YPs z{yEeA=j(~3sgD=gpaO^fuD{-EX`*#?pqi*L(w<*QR?PG^L4t zvG;leyw|v?xd|R~XVYS&`Gw0AkLn{&qg0h(SCij_wzB>F;V@#gzG4F_xC?PM9GLO| z7Sb^8TMrFRhpD|rJyiURgxQ%sdfa{eRfYLL_HZbKn*U#j%d^x*ql$x!m%G_)OTDxP zBZ+Zo2pR`DIapDW0Rmlcr}d?_1-GX5`x`@VL-#a7&g}@IKOG}(TbKL6 z3lHGmHy;~;)Yj$>U4&|(IWyH^1xFTZa7~p(SA4s!8b0S*?QX4&t10N))p*=>pS*z; zbv_zpR{>eDhCW zb8g880IvJwagcn^Ef#CA8kyigO&sfemMR3n!G&Drxb zC7L#OPf4$Nls~s#s0}ud$E?mgg9|? zu~aI0WYpm^(7atl21i&h)_r!W-II41mNepEVMc-3L>eF-_JlxWLP6vaGPUXC_@q6O zIFM_qjbrJDokZPI+S7XSL>Lv*vk$54ylCq)(^up0+NB`a=ufpai8k_~!wU z6w6rfvMv+bmg98SI!bxXN@K&Ly*Fdu;0UqZZM0hz^SC>EMr!De2@Y95L^X0`voTt# zJ+7Q>_zFF(48)dMzu?iEBT{})FxxgCqLu?|AgYp{xziNRC-dUPj_FU6n z*&Vw52=fb=pUZ#ca)84bH*zoPM9>!6DmIl~J%E5EGG+ zgyR}|-VsMiVu%TZh^G16+yecm4OWuSw6P5FMGT_?#oXc@K+tG&vg=K|{ac7*ChfBs z=25ANO3!zO>U&3SBqQcP^P0m;TK9BAbmPSnw`EGjiUcsFjv|>jR(Dkxy$1rlzmmF z{vMIVm&0f2i&_p5(9iYh9Ip8gcP(+sEoUO+JxxVMO~ z<2__gvZu%wBOAid8=0(q!XpV5oKSkI5@ipFU+8`%OSaM&v%{{BC^)!}6S4``$3u7% z*x7Hzq-h9~#B%x~9)j%kkowEOOn_N!y7Ut*@Trd(;mX9*1>~|-$J@?|Hivb zDI&nf>sGX{d@=9k>M|m51s&&qVycgqg8K%vo>gcLW}|&D4A$WC+$-_bHe2*A)(j^} z>x{rM9x}R$SE0N5R}e&FC@|2up1)Rb2!5e`z`#>$ZA?sOc~U%=9rG8Wa?CYOoeE2l zFu3Z#ph#!osbGcd4&X7kaH5~WW!Uz0J|(xdc)C^*p&^Pm0Wz+FHz|V*O=`1m$>1_1 zE!mn{@cQnmdn@0?JV#k|rrJha@aRo(kY2)Ur!+HJE4 zz=JXzSP{0ycC%I&6@B0b08c-#>Q;9=X|~B#D~%!ZVP*%_!#4;Cqn;*|A{&t6vS@W} zw5pqaRFb25ibBu-%xZR1=IF1wj}WSPgOBb@Ftb$iyqVTsQP2=~LOOV0_00o~q8M1P zL>tpxN$($H^^>L?1H&E7R=UKvgzuLtunm8NfS9`sSWc$-azPZegb;`;_X7B`*3AcK zjVkl{E8fSVv0Y$Ex3NxC{es>4PXs6m0VvGh*zeybu(yiziL`9{n56`TLjvD9m{G*X`&Z2zO7YaBD_Ub{pAFGy4fa2}bR04@Q#3|EU`#9; zJl^Kc2(c_uClo~G*Xiz!=c6yHm~RFqHPhru^0hUMib$;c6Oht7j9S6oG4pnDqa`cewSH(~_pGNK6Z1sJevT25~Z<}S$E znA*xODc6$yG`C_D)R2^1b#P^MaoaGdMkmvV)R`>XdH1pZMkq+S!n#XmA9GG&uHx7i ztdy8OLt~cXVWWY%OK%mCCdbCDV~AdI5t)+)WTEPM=ba6#(||H-ucQ~8c?qO3c{$lznO&pXUX;dRS|HNAW2;v zFO-HKJ4rNa3XPY@RZR_r)6-ZMvwFs;qb84owJt%{6p)X$+=7bt`SPIjPNRnJXME9t z>W=PKqs7Um1pX1nMGNu8VWU|RXW;>z#T>#3ac)$CeEaJ9@tb=+weL~QgIA(OxS|wC zPYy-myq^?WojXw|HYgbmT%A1}9gC&~D|p?&=Q7tolonk8Nj9uGZyJ(3FT$GrM+N<9 z*8Mkr09!w=7L|UB${e4BG4CGmon(}{-hw3J#*+tK#$zky?0VKTwI4Q? z5Hw*P^QBm+nc9;}al{+j3^{168FL!}vg9pKMy+z*eJi;pIw3bEiYfFnsV|n&EBtKr zf~J@xU8j8NVXED(S8kHQM7p?$EiOXhmOj(Fv_#g4p>g&S>`^4U918v&A1vl(mbrfvmwyUf7y)1}o(SK%}|}G8&V0 z;=ci+XREB|#gy&bxy8vvZ^FyH$v92Km}D58K>u()Wdg&yGWvb91ulz zfuHu}BEePnOQ_IeO7zd|e_+sU?F3Q*-tmz_zER(^63g8=kbVM!!F+k_t|A)` z9w=UAoG_`2CXR8I>WhP_aWjGBZ))qOg_a&n)fAT`{mgE-d49_A0e0nCL>do=wr_El2@i;3HtzKLdu?`Q{qkU|wKru`mFQNK6Z(pzO;=d3I*e)Ns!5|Z zGW=(#^GHU#&TIFv-n!LN#Z3L`f7cSe*I$+(d4c8MB1Q22$(D_2lE>P8g5{icDRzls zrkMBBOF#g+H@4ZTUSfO(qkl-hIdvM9+dY9^-fVf3d0<$Dd7IT|KjOy%s`%c8=)|-A z7^T%j;Q@}T{|3l(VdZd}W^l|cw0Aqt9%9d6MzU=BK>KiWT($!Wi{-Cz7)Bb0@~6hP zLjhF$LtUk+|J(bWqbnfKsUY3~+s08*uUl0ghHL4#i)3We(*wcYn>+q+A&cc*SOo z&Qs>{WfBbWkUv+%e^PTJKiYYr7Pc85rLF?!2noh2;{Pph9-siGrQBm6Zrdf-}2MR03s5(_p=D%a}7b~7=zp;7RmxG!1S)a4RS zFs2#qd6}>1KcqU)AGwHPSu5#^t~%Fk+u1eL!s}g)jX^>!AC!%DVjL{MJSM{Wr65Fb z*Fv_2aYHaR(5@K5KfKQ=pl5b5|7O*o<5?;s&-2*?p=crAxbovArf%@eAC{p0UUEvX zu#h5V-mhN7{KbXTfhEGE@2ee3M4U?r`~_3DVnszLdoPY%?(ZzTVtZK=%j(;q(qEl! zZFAnd$Vn}dt4NQIh&?d0M3IiD<=7fmzK##5Cfb!H!X&#|I~fyH?06->xxXjmOAotX_IY)=>i|`kC2e#x;xQW05qQP|$txo1PPo^FYIfoG zM>jh?d1I$!WKcvzqN^?rnxUl(jo^C!s6`7GC-fyrqu|*Sx`l9TuPbpRRx2*mc|^qm zIGN~S_Qh-T^}2|AMQ;Kpp-mE*f*wiauy`mxM_M=$-bc5H#Cke2`xdBc80Z@%a-GJi z7T4n*0QR|n zEW3kd>zIeb)+Uns`>n4*`Z`_0_Y78HzTPdIvAiV`&-jSHQ$xs=8!ff2L5GZK<5W7U zQvEOreud8EsgD~LlQbDn2B5X&ULHGEa#y6UH2FXH6e*qg<*q?NZK@jjC| zab&>QB%#{Ujlyn*fr>c>O3ZyR?bh;#AUA_oU&Zk^@)L4PhMdGmU~@5~AK09nJPcG6 zXNZ8gs98wR+?~qpW1N61*j1gLWJlw!X(`xi9FneqEOBMkDAQ6h*vV{kO>o>QTnP&3 z2_V4L(0SnqD?ZKJ<-QmnI7&H}uP@+{n~Y3dD3&1r=9#>&cd3Fo#hG~YVqHXH-gAJt zEmeax{kisgjVY`QdEJ2j+jyPemsn!*O6Ys7ThkGNeI0ur@m)VRWn8H@@||3Q%`ylj zj2ehpAOyMlcl3dOE+ncBggMWx*r0!;M9@{zJS3wFO{^|(){FEx;x4OF(8kW~*MEw_ zAvBts2HrUc3v}?q|CYVS@rN)Zsmp76VEsyWS$74FB$M+5e?|gLMoki5s~cE)Ec{E; zP~4l2jU4{7>&)(LQJvNjA}Jd0Ret-lW?Ue6=|FDI+LO>OCy>z$Capg|pp9P<&tb6O zMrHm-1@cut&>v{CGv9Vx&qw3MOX%snX6uJSDMSp?(M7qVh1u&t;zmajx8fPV@7H$$ z+4p8&NXKH6!73Fc2(_D^dAJ#YwXkcXtg{z_}xl{6nYD7ue_(Lc-b`u$C< z-}!ywZnRHWtj33(2}M&meX^TV)8h=&cI-F-2_g-b;KlZDuQPY5*NR0!7ufvuHT0cj!K;SN`VN$P zN3-^5lybsoL^HQJfLol^+}|W6+PJEhe^6Y`DBsc$ajhaJH{5)wUv&v46&DGouMkH2 z$@mO@$V<*8Kt#qpBRDjbpO?@B)MIMkJlcfq-i@wU4T;>$X~fO<>a?jdx!@b$<$}sV zD6H=tsw + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xexpression_assigner< Tag > Member List
+
+
+ +

This is the complete list of members for xt::xexpression_assigner< Tag >, including all inherited members.

+ + + + + + +
assert_compatible_shape(const xexpression< E1 > &e1, const xexpression< E2 > &e2) (defined in xt::xexpression_assigner< Tag >)xt::xexpression_assigner< Tag >inlinestatic
assign_xexpression(E1 &e1, const E2 &e2) (defined in xt::xexpression_assigner< Tag >)xt::xexpression_assigner< Tag >inlinestatic
base_type typedef (defined in xt::xexpression_assigner< Tag >)xt::xexpression_assigner< Tag >
computed_assign(xexpression< E1 > &e1, const xexpression< E2 > &e2) (defined in xt::xexpression_assigner< Tag >)xt::xexpression_assigner< Tag >inlinestatic
scalar_computed_assign(xexpression< E1 > &e1, const E2 &e2, F &&f) (defined in xt::xexpression_assigner< Tag >)xt::xexpression_assigner< Tag >inlinestatic
+
+ + + + diff --git a/classxt_1_1xexpression__assigner.html b/classxt_1_1xexpression__assigner.html new file mode 100644 index 000000000..44842ae49 --- /dev/null +++ b/classxt_1_1xexpression__assigner.html @@ -0,0 +1,324 @@ + + + + + + + +xtensor: xt::xexpression_assigner< Tag > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xexpression_assigner< Tag > Class Template Reference
+
+
+
+Inheritance diagram for xt::xexpression_assigner< Tag >:
+
+
+ + +xt::xexpression_assigner_base< Tag > + +
+ + + + +

+Public Types

using base_type = xexpression_assigner_base<Tag>
 
+ + + + + + + + + + + + + +

+Static Public Member Functions

template<class E1, class E2>
static void assign_xexpression (E1 &e1, const E2 &e2)
 
template<class E1, class E2>
static void computed_assign (xexpression< E1 > &e1, const xexpression< E2 > &e2)
 
template<class E1, class E2, class F>
static void scalar_computed_assign (xexpression< E1 > &e1, const E2 &e2, F &&f)
 
template<class E1, class E2>
static void assert_compatible_shape (const xexpression< E1 > &e1, const xexpression< E2 > &e2)
 
+

Detailed Description

+
template<class Tag>
+class xt::xexpression_assigner< Tag >
+

Definition at line 78 of file xassign.hpp.

+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<class Tag>
+ + + + +
using xt::xexpression_assigner< Tag >::base_type = xexpression_assigner_base<Tag>
+
+ +

Definition at line 82 of file xassign.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ assert_compatible_shape()

+ +
+
+
+template<class Tag>
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
void xt::xexpression_assigner< Tag >::assert_compatible_shape (const xexpression< E1 > & e1,
const xexpression< E2 > & e2 )
+
+inlinestatic
+
+ +

Definition at line 542 of file xassign.hpp.

+ +
+
+ +

◆ assign_xexpression()

+ +
+
+
+template<class Tag>
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
void xt::xexpression_assigner< Tag >::assign_xexpression (E1 & e1,
const E2 & e2 )
+
+inlinestatic
+
+ +

Definition at line 482 of file xassign.hpp.

+ +
+
+ +

◆ computed_assign()

+ +
+
+
+template<class Tag>
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + +
void xt::xexpression_assigner< Tag >::computed_assign (xexpression< E1 > & e1,
const xexpression< E2 > & e2 )
+
+inlinestatic
+
+ +

Definition at line 490 of file xassign.hpp.

+ +
+
+ +

◆ scalar_computed_assign()

+ +
+
+
+template<class Tag>
+
+template<class E1, class E2, class F>
+ + + + + +
+ + + + + + + + + + + + + + + + +
void xt::xexpression_assigner< Tag >::scalar_computed_assign (xexpression< E1 > & e1,
const E2 & e2,
F && f )
+
+inlinestatic
+
+ +

Definition at line 527 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xexpression__assigner.png b/classxt_1_1xexpression__assigner.png new file mode 100644 index 0000000000000000000000000000000000000000..d4a3fba489a773d59c7b5e6c0bcc0fde86850801 GIT binary patch literal 873 zcmeAS@N?(olHy`uVBq!ia0vp^Pk=apgBeKLUDCV*q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#Ntoc)B=-R4~4s`?~D00#8f( zM@!q!|NQqv#yhw<%)Rz9Pc&-TR)>UIr@((nk<(OnZJ3af#^? z%U$Ic>YYKTa#(Dt+EOQfk#r+gIym-(InM z(vyho_3itfdH-}*ysmfg#GdSVDrY6~l}|QWE&sQ9_8%h-&$6p_UpYM{{h2#!f{LW0 z@FW%G7mPb~P7B2_d^r4zq2Wap`-%R3^942RC)kr~PHk_Pb61ohDZ`1$fyLK@p<@9j zCxf7gBBMf+nhJxUGtdrz}bT;^g7ED?Xlc1@}(B>05H2SxxReo?mxM?BBoB_2F;*m%sTQb3OS} ziDgufmBYJ&bM0k+-ckMU{-(e#^*)3D(l-T7sg1Zg$6%Qso;PA zVEx6-v(7!JI_e9H1KmT@vnRcI;iR@wZf;TS-SkZjIkx#XV%c>s$A7h&`MCJ*)x4Z9 z=Pt!=SKfC$RyA|Y?fuUCzsPEM&VRwKcs=dXTCMwyK+)CJ|K`tr^VvHnTKszrd(fo1 rR<$K6t`}OSEa9kfST-f7;4h<6>%Mu1(_{7lGX;aEtDnm{r-UW|a8{ui literal 0 HcmV?d00001 diff --git a/classxt_1_1xexpression__assigner__base.html b/classxt_1_1xexpression__assigner__base.html new file mode 100644 index 000000000..bcdfa900e --- /dev/null +++ b/classxt_1_1xexpression__assigner__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::xexpression_assigner_base< Tag > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xexpression_assigner_base< Tag > Class Template Reference
+
+
+
+Inheritance diagram for xt::xexpression_assigner_base< Tag >:
+
+
+ + +xt::xexpression_assigner< Tag > + +
+

Detailed Description

+
template<class Tag>
+class xt::xexpression_assigner_base< Tag >
+

Definition at line 66 of file xassign.hpp.

+

The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xexpression__assigner__base.png b/classxt_1_1xexpression__assigner__base.png new file mode 100644 index 0000000000000000000000000000000000000000..2181cf3f62b30557acf0799f078597765cc6fe31 GIT binary patch literal 873 zcmV-v1D5=WP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0008? zNklvHQL41|~UOlIHziBIYa$Ouy>b#hvThD{9!MW0ZVzep*i=t7dD*cy{MH&+kmF+kI}_=_(iIjQixm+lO2W*hAWlyxoR8 zVVd1}$Xx{Uq$=55u8s7rroLPo)2gQS$?z85z+akGb<1!U=Y-R|0Hnayz5e%$P?_Tc^|OG7oMd);+0>vdO2>g)2~ z(AWGZzZG)s5{=Be<|)aH{xM1F=)miLyUC|PB<(%;m8l%xn6kdhQZcgU1d z3N8S6vu*$oU7rAXyL|xVCqUjA<5PYFAkv5(=@$Rm`F0V1|&&F z(10Y#2>K2(k>qoF;OJS?wEU6eBYGhuNnWpK0y>18ot3mL(|ILN?yvl`Y<&I8@3YpY zUG|SmXE%AdxF%V~GA}O9Kp)>^BAdfZwgtCQn{SE9VJ5OMim4$l`PgOKoT*Jna;HwY z<{Vek{NagYr8Op#B^z>`!DCbFwkm_lMHL`PIz0-x7O;o38+p48dBQZibFt@gZ6xmq z^F+Berd3Vtli@AAfxkx2YC41K6&KxP^}RRKb#ZACzFZS&$01}Q>v2%7ulr6GkfrB! zyKARq`m3H7b9}D5+JlYWS-R`u;%D8JB>TGjH}n~YzYKD2CWlq!J1|N1b@t5fxyfUG zl5FebnV&$C + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xexpression_assigner_base< xoptional_expression_tag > Member List
+
+
+ +

This is the complete list of members for xt::xexpression_assigner_base< xoptional_expression_tag >, including all inherited members.

+ + +
assign_data(xexpression< E1 > &e1, const xexpression< E2 > &e2, bool trivial) (defined in xt::xexpression_assigner_base< xoptional_expression_tag >)xt::xexpression_assigner_base< xoptional_expression_tag >inlinestatic
+
+ + + + diff --git a/classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html b/classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html new file mode 100644 index 000000000..f82050ae3 --- /dev/null +++ b/classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::xexpression_assigner_base< xoptional_expression_tag > Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xexpression_assigner_base< xoptional_expression_tag > Class Reference
+
+
+ + + + + +

+Static Public Member Functions

template<class E1, class E2>
static void assign_data (xexpression< E1 > &e1, const xexpression< E2 > &e2, bool trivial)
 
+

Detailed Description

+
+

Definition at line 263 of file xoptional.hpp.

+

Member Function Documentation

+ +

◆ assign_data()

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + + + + + + +
void xt::xexpression_assigner_base< xoptional_expression_tag >::assign_data (xexpression< E1 > & e1,
const xexpression< E2 > & e2,
bool trivial )
+
+inlinestatic
+
+ +

Definition at line 1344 of file xoptional.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4-members.html b/classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..b09301f20 --- /dev/null +++ b/classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xexpression_assigner_base< xtensor_expression_tag > Member List
+
+
+ +

This is the complete list of members for xt::xexpression_assigner_base< xtensor_expression_tag >, including all inherited members.

+ + +
assign_data(xexpression< E1 > &e1, const xexpression< E2 > &e2, bool trivial) (defined in xt::xexpression_assigner_base< xtensor_expression_tag >)xt::xexpression_assigner_base< xtensor_expression_tag >inlinestatic
+
+ + + + diff --git a/classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html b/classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..b767a4ba9 --- /dev/null +++ b/classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::xexpression_assigner_base< xtensor_expression_tag > Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xexpression_assigner_base< xtensor_expression_tag > Class Reference
+
+
+ + + + + +

+Static Public Member Functions

template<class E1, class E2>
static void assign_data (xexpression< E1 > &e1, const xexpression< E2 > &e2, bool trivial)
 
+

Detailed Description

+
+

Definition at line 69 of file xassign.hpp.

+

Member Function Documentation

+ +

◆ assign_data()

+ +
+
+
+template<class E1, class E2>
+ + + + + +
+ + + + + + + + + + + + + + + + +
void xt::xexpression_assigner_base< xtensor_expression_tag >::assign_data (xexpression< E1 > & e1,
const xexpression< E2 > & e2,
bool trivial )
+
+inlinestatic
+
+ +

Definition at line 440 of file xassign.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xexpression__holder-members.html b/classxt_1_1xexpression__holder-members.html new file mode 100644 index 000000000..5345d8232 --- /dev/null +++ b/classxt_1_1xexpression__holder-members.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xexpression_holder Member List
+
+
+ +

This is the complete list of members for xt::xexpression_holder, including all inherited members.

+ + + + + + + + + + + + +
from_json(const nlohmann::json &) (defined in xt::xexpression_holder)xt::xexpression_holderinline
implementation_type typedef (defined in xt::xexpression_holder)xt::xexpression_holder
operator=(const xexpression_holder &) (defined in xt::xexpression_holder)xt::xexpression_holderinline
operator=(xexpression_holder &&) (defined in xt::xexpression_holder)xt::xexpression_holderinline
swap(xexpression_holder &) (defined in xt::xexpression_holder)xt::xexpression_holderinline
to_json(nlohmann::json &) const (defined in xt::xexpression_holder)xt::xexpression_holderinline
xexpression_holder()=default (defined in xt::xexpression_holder)xt::xexpression_holder
xexpression_holder(E &&expr) (defined in xt::xexpression_holder)xt::xexpression_holderinline
xexpression_holder(implementation_type *holder) (defined in xt::xexpression_holder)xt::xexpression_holderinline
xexpression_holder(const xexpression_holder &holder) (defined in xt::xexpression_holder)xt::xexpression_holderinline
xexpression_holder(xexpression_holder &&holder) (defined in xt::xexpression_holder)xt::xexpression_holderinline
+
+ + + + diff --git a/classxt_1_1xexpression__holder.html b/classxt_1_1xexpression__holder.html new file mode 100644 index 000000000..fa54f83a9 --- /dev/null +++ b/classxt_1_1xexpression__holder.html @@ -0,0 +1,420 @@ + + + + + + + +xtensor: xt::xexpression_holder Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xexpression_holder Class Reference
+
+
+ + + + +

+Public Types

using implementation_type = detail::xexpression_holder_impl
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<class E>
 xexpression_holder (E &&expr)
 
 xexpression_holder (implementation_type *holder)
 
 xexpression_holder (const xexpression_holder &holder)
 
 xexpression_holder (xexpression_holder &&holder)
 
xexpression_holderoperator= (const xexpression_holder &)
 
xexpression_holderoperator= (xexpression_holder &&)
 
void swap (xexpression_holder &)
 
void to_json (nlohmann::json &) const
 
void from_json (const nlohmann::json &)
 
+

Detailed Description

+
+

Definition at line 32 of file xexpression_holder.hpp.

+

Member Typedef Documentation

+ +

◆ implementation_type

+ +
+
+ + + + +
using xt::xexpression_holder::implementation_type = detail::xexpression_holder_impl
+
+ +

Definition at line 36 of file xexpression_holder.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xexpression_holder() [1/4]

+ +
+
+
+template<class E>
+ + + + + +
+ + + + + + + +
xt::xexpression_holder::xexpression_holder (E && expr)
+
+inline
+
+ +

Definition at line 121 of file xexpression_holder.hpp.

+ +
+
+ +

◆ xexpression_holder() [2/4]

+ +
+
+ + + + + +
+ + + + + + + +
xt::xexpression_holder::xexpression_holder (implementation_type * holder)
+
+inline
+
+ +

Definition at line 126 of file xexpression_holder.hpp.

+ +
+
+ +

◆ xexpression_holder() [3/4]

+ +
+
+ + + + + +
+ + + + + + + +
xt::xexpression_holder::xexpression_holder (const xexpression_holder & holder)
+
+inline
+
+ +

Definition at line 131 of file xexpression_holder.hpp.

+ +
+
+ +

◆ xexpression_holder() [4/4]

+ +
+
+ + + + + +
+ + + + + + + +
xt::xexpression_holder::xexpression_holder (xexpression_holder && holder)
+
+inline
+
+ +

Definition at line 136 of file xexpression_holder.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ from_json()

+ +
+
+ + + + + +
+ + + + + + + +
void xt::xexpression_holder::from_json (const nlohmann::json & j)
+
+inline
+
+ +

Definition at line 168 of file xexpression_holder.hpp.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
xexpression_holder & xt::xexpression_holder::operator= (const xexpression_holder & holder)
+
+inline
+
+ +

Definition at line 141 of file xexpression_holder.hpp.

+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
xexpression_holder & xt::xexpression_holder::operator= (xexpression_holder && holder)
+
+inline
+
+ +

Definition at line 148 of file xexpression_holder.hpp.

+ +
+
+ +

◆ swap()

+ +
+
+ + + + + +
+ + + + + + + +
void xt::xexpression_holder::swap (xexpression_holder & holder)
+
+inline
+
+ +

Definition at line 154 of file xexpression_holder.hpp.

+ +
+
+ +

◆ to_json()

+ +
+
+ + + + + +
+ + + + + + + +
void xt::xexpression_holder::to_json (nlohmann::json & j) const
+
+inline
+
+ +

Definition at line 159 of file xexpression_holder.hpp.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classxt_1_1xfiltration-members.html b/classxt_1_1xfiltration-members.html new file mode 100644 index 000000000..33788642b --- /dev/null +++ b/classxt_1_1xfiltration-members.html @@ -0,0 +1,137 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xfiltration< ECT, CCT > Member List
+
+
+ +

This is the complete list of members for xt::xfiltration< ECT, CCT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + +
apply(F &&func) -> self_type & (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >inline
const_reference typedef (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator%=(const E &) (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator%=(const E &e) -> disable_xexpression< E, self_type & >xt::xfiltration< ECT, CCT >inline
operator*=(const E &) (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator*=(const E &e) -> disable_xexpression< E, self_type & >xt::xfiltration< ECT, CCT >inline
operator+=(const E &) (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator+=(const E &e) -> disable_xexpression< E, self_type & >xt::xfiltration< ECT, CCT >inline
operator-=(const E &) (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator-=(const E &e) -> disable_xexpression< E, self_type & >xt::xfiltration< ECT, CCT >inline
operator/=(const E &) (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator/=(const E &e) -> disable_xexpression< E, self_type & >xt::xfiltration< ECT, CCT >inline
operator=(const E &) (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
operator=(const E &e) -> disable_xexpression< E, self_type & >xt::xfiltration< ECT, CCT >inline
self_type typedef (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
xexpression_type typedef (defined in xt::xfiltration< ECT, CCT >)xt::xfiltration< ECT, CCT >
xfiltration(ECTA &&e, CCTA &&condition)xt::xfiltration< ECT, CCT >inline
+
+ + + + diff --git a/classxt_1_1xfiltration.html b/classxt_1_1xfiltration.html new file mode 100644 index 000000000..96f331a17 --- /dev/null +++ b/classxt_1_1xfiltration.html @@ -0,0 +1,595 @@ + + + + + + + +xtensor: xt::xfiltration< ECT, CCT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xfiltration< ECT, CCT > Class Template Reference
+
+
+ +

Filter of a xexpression for fast scalar assign. + More...

+ +

#include <xindex_view.hpp>

+ + + + + + + + +

+Public Types

using self_type = xfiltration<ECT, CCT>
 
using xexpression_type = std::decay_t<ECT>
 
using const_reference = typename xexpression_type::const_reference
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+template<class E>
disable_xexpression< E, self_type & > operator= (const E &)
 
+template<class E>
disable_xexpression< E, self_type & > operator+= (const E &)
 
+template<class E>
disable_xexpression< E, self_type & > operator-= (const E &)
 
+template<class E>
disable_xexpression< E, self_type & > operator*= (const E &)
 
+template<class E>
disable_xexpression< E, self_type & > operator/= (const E &)
 
+template<class E>
disable_xexpression< E, self_type & > operator%= (const E &)
 
Constructor
template<class ECTA, class CCTA>
 xfiltration (ECTA &&e, CCTA &&condition)
 Constructs a xfiltration on the given expression e, selecting the elements matching the specified condition.
 
Extended copy semantic
template<class E>
auto operator= (const E &e) -> disable_xexpression< E, self_type & >
 Assigns the scalar e to *this.
 
Computed assignement
template<class E>
auto operator+= (const E &e) -> disable_xexpression< E, self_type & >
 Adds the scalar e to *this.
 
template<class E>
auto operator-= (const E &e) -> disable_xexpression< E, self_type & >
 Subtracts the scalar e from *this.
 
template<class E>
auto operator*= (const E &e) -> disable_xexpression< E, self_type & >
 Multiplies *this with the scalar e.
 
template<class E>
auto operator/= (const E &e) -> disable_xexpression< E, self_type & >
 Divides *this by the scalar e.
 
template<class E>
auto operator%= (const E &e) -> disable_xexpression< E, self_type & >
 Computes the remainder of *this after division by the scalar e.
 
template<class F>
auto apply (F &&func) -> self_type &
 
+

Detailed Description

+
template<class ECT, class CCT>
+class xt::xfiltration< ECT, CCT >

Filter of a xexpression for fast scalar assign.

+

The xfiltration class implements a lazy filtration of a multidimentional xexpression, optimized for scalar and computed scalar assignments. Actually, the xfiltration class IS NOT an xexpression and the scalar and computed scalar assignments are the only method it provides. The filtering condition is not evaluated until the filtration is assigned.

+

xfiltration is not meant to be used directly, but only with the filtration helper function.

+
Template Parameters
+ + + +
ECTthe closure type of the xexpression type underlying this filtration
CCRthe closure type of the filtering xexpression type
+
+
+
See also
filtration
+ +

Definition at line 232 of file xindex_view.hpp.

+

Member Typedef Documentation

+ +

◆ const_reference

+ +
+
+
+template<class ECT, class CCT>
+ + + + +
using xt::xfiltration< ECT, CCT >::const_reference = typename xexpression_type::const_reference
+
+ +

Definition at line 238 of file xindex_view.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class ECT, class CCT>
+ + + + +
using xt::xfiltration< ECT, CCT >::self_type = xfiltration<ECT, CCT>
+
+ +

Definition at line 236 of file xindex_view.hpp.

+ +
+
+ +

◆ xexpression_type

+ +
+
+
+template<class ECT, class CCT>
+ + + + +
using xt::xfiltration< ECT, CCT >::xexpression_type = std::decay_t<ECT>
+
+ +

Definition at line 237 of file xindex_view.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xfiltration()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class ECTA, class CCTA>
+ + + + + +
+ + + + + + + + + + + +
xt::xfiltration< ECT, CCT >::xfiltration (ECTA && e,
CCTA && condition )
+
+inline
+
+ +

Constructs a xfiltration on the given expression e, selecting the elements matching the specified condition.

+
Parameters
+ + + +
ethe xexpression to filter.
conditionthe filtering xexpression to apply.
+
+
+ +

Definition at line 641 of file xindex_view.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ apply()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class F>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::apply (F && func) -> self_type& +
+
+inline
+
+ +

Definition at line 763 of file xindex_view.hpp.

+ +
+
+ +

◆ operator%=()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::operator%= (const E & e) -> disable_xexpression<E, self_type&> +
+
+inline
+
+ +

Computes the remainder of *this after division by the scalar e.

+
Parameters
+ + +
ethe scalar involved in the operation.
+
+
+
Returns
a reference to *this.
+ +

Definition at line 751 of file xindex_view.hpp.

+ +
+
+ +

◆ operator*=()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::operator*= (const E & e) -> disable_xexpression<E, self_type&> +
+
+inline
+
+ +

Multiplies *this with the scalar e.

+
Parameters
+ + +
ethe scalar involved in the operation.
+
+
+
Returns
a reference to *this.
+ +

Definition at line 717 of file xindex_view.hpp.

+ +
+
+ +

◆ operator+=()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::operator+= (const E & e) -> disable_xexpression<E, self_type&> +
+
+inline
+
+ +

Adds the scalar e to *this.

+
Parameters
+ + +
ethe scalar to add.
+
+
+
Returns
a reference to *this.
+ +

Definition at line 683 of file xindex_view.hpp.

+ +
+
+ +

◆ operator-=()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::operator-= (const E & e) -> disable_xexpression<E, self_type&> +
+
+inline
+
+ +

Subtracts the scalar e from *this.

+
Parameters
+ + +
ethe scalar to subtract.
+
+
+
Returns
a reference to *this.
+ +

Definition at line 700 of file xindex_view.hpp.

+ +
+
+ +

◆ operator/=()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::operator/= (const E & e) -> disable_xexpression<E, self_type&> +
+
+inline
+
+ +

Divides *this by the scalar e.

+
Parameters
+ + +
ethe scalar involved in the operation.
+
+
+
Returns
a reference to *this.
+ +

Definition at line 734 of file xindex_view.hpp.

+ +
+
+ +

◆ operator=()

+ +
+
+
+template<class ECT, class CCT>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfiltration< ECT, CCT >::operator= (const E & e) -> disable_xexpression<E, self_type&> +
+
+inline
+
+ +

Assigns the scalar e to *this.

+
Parameters
+ + +
ethe scalar to assign.
+
+
+
Returns
a reference to \ *this.
+ +

Definition at line 660 of file xindex_view.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xfiltration.js b/classxt_1_1xfiltration.js new file mode 100644 index 000000000..79872c570 --- /dev/null +++ b/classxt_1_1xfiltration.js @@ -0,0 +1,10 @@ +var classxt_1_1xfiltration = +[ + [ "xfiltration", "classxt_1_1xfiltration.html#a70544dbbc899cd02b70dc5c473bffd02", null ], + [ "operator%=", "classxt_1_1xfiltration.html#a75cb70a24a3740144a49ca60edfa6b65", null ], + [ "operator*=", "classxt_1_1xfiltration.html#a5911e1b618eb8b240f8f93accccda5d7", null ], + [ "operator+=", "classxt_1_1xfiltration.html#a2fae2b71a4134ec799668a13cdc60d9a", null ], + [ "operator-=", "classxt_1_1xfiltration.html#acfb314430c89b71133595cb83f84a75e", null ], + [ "operator/=", "classxt_1_1xfiltration.html#a2bc58cd24579e8d62efd55fdb750ed40", null ], + [ "operator=", "classxt_1_1xfiltration.html#a13d467d1d2a39fb0b3cdee0b60d2db68", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfixed__adaptor-members.html b/classxt_1_1xfixed__adaptor-members.html new file mode 100644 index 000000000..bbe000d79 --- /dev/null +++ b/classxt_1_1xfixed__adaptor-members.html @@ -0,0 +1,283 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xfixed_adaptor< EC, S, L, SH, Tag > Member List
+
+
+ +

This is the complete list of members for xt::xfixed_adaptor< EC, S, L, SH, Tag >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
assign_temporary(temporary_type &&)xt::xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >inline
back()xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
back()xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
backstrides() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
backstrides_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
base_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
broadcast_shape(ST &s, bool reuse_cache=false) const (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >::broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
container_closure_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
data() noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
data() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
data_offset() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
dimension() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
expression_tag typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
fill(const T &value)xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
flat(size_type i)xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
flat(size_type i) constxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
front()xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
front()xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
has_linear_assign(const S &strides) const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
inner_backstrides_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
inner_shape_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
inner_strides_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
is_contiguous() const noexcept (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
layout() const noexcept (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
N (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >static
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator=(const xfixed_adaptor &) (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
operator=(xfixed_adaptor &&) (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
operator=(temporary_type &&) (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
operator=(const xexpression< E > &e) (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
operator=(const xexpression< E > &e) -> self_type &xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >inline
reshape(ST &&shape, layout_type layout=L) constxt::xfixed_adaptor< EC, S, L, SH, Tag >inline
resize(ST &&shape, bool force=false) constxt::xfixed_adaptor< EC, S, L, SH, Tag >inline
resize(ST &&shape, layout_type l) constxt::xfixed_adaptor< EC, S, L, SH, Tag >inline
resize(ST &&shape, const strides_type &strides) constxt::xfixed_adaptor< EC, S, L, SH, Tag >inline
self_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
semantic_base typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
shape() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
shape_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
size() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
storage() noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
storage() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
storage_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
strides() const noexceptxt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
strides_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
temporary_type typedef (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
unchecked(Args... args) -> referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
unchecked(Args... args) -> referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >inline
xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > > (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >friend
xfixed_adaptor(storage_type &&data)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
xfixed_adaptor(const storage_type &data)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
xfixed_adaptor(D &&data)xt::xfixed_adaptor< EC, S, L, SH, Tag >inline
xfixed_adaptor(const xfixed_adaptor &)=default (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
xfixed_adaptor(xfixed_adaptor &&)=default (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
~xfixed_adaptor()=default (defined in xt::xfixed_adaptor< EC, S, L, SH, Tag >)xt::xfixed_adaptor< EC, S, L, SH, Tag >
+
+ + + + diff --git a/classxt_1_1xfixed__adaptor.html b/classxt_1_1xfixed__adaptor.html new file mode 100644 index 000000000..aa1a0a6e8 --- /dev/null +++ b/classxt_1_1xfixed__adaptor.html @@ -0,0 +1,1918 @@ + + + + + + + +xtensor: xt::xfixed_adaptor< EC, S, L, SH, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xfixed_adaptor< EC, S, L, SH, Tag > Class Template Reference
+
+
+ +

Dense multidimensional container adaptor with tensor semantic and fixed dimension. + More...

+ +

#include <xfixed.hpp>

+
+Inheritance diagram for xt::xfixed_adaptor< EC, S, L, SH, Tag >:
+
+
+ + +xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > > +xt::xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > > +xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > > +xt::xaccessible< xfixed_adaptor< EC, S, L, SH, Tag > > +xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > > +xt::xiterable< xfixed_adaptor< EC, S, L, SH, Tag > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using container_closure_type = EC
 
using self_type = xfixed_adaptor<EC, S, L, SH, Tag>
 
using base_type = xcontainer<self_type>
 
using semantic_base = xcontainer_semantic<self_type>
 
using storage_type = typename base_type::storage_type
 
using shape_type = typename base_type::shape_type
 
using strides_type = typename base_type::strides_type
 
using backstrides_type = typename base_type::backstrides_type
 
using inner_shape_type = typename base_type::inner_shape_type
 
using inner_strides_type = typename base_type::inner_strides_type
 
using inner_backstrides_type = typename base_type::inner_backstrides_type
 
using temporary_type = typename semantic_base::temporary_type
 
using expression_tag = Tag
 
- Public Types inherited from xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
using derived_type
 
using inner_types
 
using storage_type
 
using allocator_type
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using difference_type
 
using simd_value_type
 
using bool_load_type
 
using shape_type
 
using strides_type
 
using backstrides_type
 
using inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
using iterable_base
 
using stepper
 
using const_stepper
 
using accessible_base
 
using data_alignment
 
using simd_type
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using simd_return_type
 
using container_iterator
 
using const_container_iterator
 
- Public Types inherited from xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >
using derived_type
 
using inner_types
 
using iterable_base
 
using stepper
 
using const_stepper
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using linear_traits
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using select_iterator_impl
 
using select_iterator
 
using select_const_iterator
 
using select_reverse_iterator
 
using select_const_reverse_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
- Public Types inherited from xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

xfixed_adaptor (const xfixed_adaptor &)=default
 
xfixed_adaptor (xfixed_adaptor &&)=default
 
+template<class E>
xfixed_adaptoroperator= (const xexpression< E > &e)
 
Constructors
 xfixed_adaptor (storage_type &&data)
 Constructs an xfixed_adaptor of the given stl-like container.
 
 xfixed_adaptor (const storage_type &data)
 Constructs an xfixed_adaptor of the given stl-like container.
 
template<class D>
 xfixed_adaptor (D &&data)
 Constructs an xfixed_adaptor of the given stl-like container, with the specified shape and layout_type.
 
xfixed_adaptoroperator= (const xfixed_adaptor &)
 
xfixed_adaptoroperator= (xfixed_adaptor &&)
 
xfixed_adaptoroperator= (temporary_type &&)
 
- Public Member Functions inherited from xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
+reference operator[] (size_type i)
 
+reference back ()
 Returns a reference to the last element of the expression.
 
+reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
+reference operator() (Args... args)
 
+const_reference operator() (Args... args) const
 
+reference unchecked (Args... args)
 
+const_reference unchecked (Args... args) const
 
+reference element (It first, It last)
 
+const_reference element (It first, It last) const
 
+stepper stepper_begin (const S &shape) noexcept
 
+const_stepper stepper_begin (const S &shape) const noexcept
 
+stepper stepper_end (const S &shape, layout_type l) noexcept
 
+const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
 
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
reference back ()
 Returns a reference to the last element of the expression.
 
reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
void fill (const T &value)
 Fills the container with the given value.
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
storage_type & storage () noexcept
 Returns a reference to the buffer containing the elements of the container.
 
const storage_type & storage () const noexcept
 Returns a constant reference to the buffer containing the elements of the container.
 
pointer data () noexcept
 Returns a pointer to the underlying array serving as element storage.
 
const_pointer data () const noexcept
 Returns a constant pointer to the underlying array serving as element storage.
 
const size_type data_offset () const noexcept
 Returns the offset to the first element in the container.
 
size_type size () const noexcept
 Returns the number of element in the container.
 
constexpr size_type dimension () const noexcept
 Returns the number of dimensions of the container.
 
constexpr const inner_shape_type & shape () const noexcept
 Returns the shape of the container.
 
constexpr const inner_strides_type & strides () const noexcept
 Returns the strides of the container.
 
constexpr const inner_backstrides_type & backstrides () const noexcept
 Returns the backstrides of the container.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the container to the specified parameter.
 
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
reference data_element (size_type i)
 
const_reference data_element (size_type i) const
 
reference flat (size_type i)
 Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
 
const_reference flat (size_type i) const
 Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
 
void store_simd (size_type i, const simd &e)
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
linear_iterator linear_begin () noexcept
 
const_linear_iterator linear_begin () const noexcept
 
linear_iterator linear_end () noexcept
 
const_linear_iterator linear_end () const noexcept
 
const_linear_iterator linear_cbegin () const noexcept
 
const_linear_iterator linear_cend () const noexcept
 
reverse_linear_iterator linear_rbegin () noexcept
 
const_reverse_linear_iterator linear_rbegin () const noexcept
 
reverse_linear_iterator linear_rend () noexcept
 
const_reverse_linear_iterator linear_rend () const noexcept
 
const_reverse_linear_iterator linear_crbegin () const noexcept
 
const_reverse_linear_iterator linear_crend () const noexcept
 
- Public Member Functions inherited from xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >
+select_iterator< L > begin () noexcept
 
+select_const_iterator< L > begin () const noexcept
 
+broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+select_iterator< L > end () noexcept
 
+select_const_iterator< L > end () const noexcept
 
+broadcast_iterator< S, L > end (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+select_const_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+select_const_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+select_reverse_iterator< L > rbegin () noexcept
 
+select_const_reverse_iterator< L > rbegin () const noexcept
 
+reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+select_reverse_iterator< L > rend () noexcept
 
+select_const_reverse_iterator< L > rend () const noexcept
 
+reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
- Public Member Functions inherited from xt::xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >
+derived_typeassign_xexpression (const xexpression< E > &e)
 
+derived_typecomputed_assign (const xexpression< E > &e)
 
+derived_typescalar_computed_assign (const E &e, F &&f)
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
derived_typeassign_temporary (temporary_type &&)
 Assigns the temporary tmp to *this.
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
- Public Member Functions inherited from xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >
+disable_xexpression< E, derived_type & > operator+= (const E &)
 
+derived_type & operator+= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator-= (const E &)
 
+derived_type & operator-= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator*= (const E &)
 
+derived_type & operator*= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator/= (const E &)
 
+derived_type & operator/= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator%= (const E &)
 
+derived_type & operator%= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator&= (const E &)
 
+derived_type & operator&= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator|= (const E &)
 
+derived_type & operator|= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator^= (const E &)
 
+derived_type & operator^= (const xexpression< E > &)
 
+derived_type & assign (const xexpression< E > &)
 
+derived_type & plus_assign (const xexpression< E > &)
 
+derived_type & minus_assign (const xexpression< E > &)
 
+derived_type & multiplies_assign (const xexpression< E > &)
 
+derived_type & divides_assign (const xexpression< E > &)
 
+derived_type & modulus_assign (const xexpression< E > &)
 
+derived_type & bit_and_assign (const xexpression< E > &)
 
+derived_type & bit_or_assign (const xexpression< E > &)
 
+derived_type & bit_xor_assign (const xexpression< E > &)
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + + + + + + + + +

+Static Public Attributes

static constexpr std::size_t N = S::size()
 
- Static Public Attributes inherited from xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
static constexpr layout_type static_layout
 
static constexpr bool contiguous_layout
 
- Static Public Attributes inherited from xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >
static constexpr layout_type static_layout
 
+ + + +

+Friends

class xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Extended copy semantic

template<class ST = std::array<std::size_t, N>>
void resize (ST &&shape, bool force=false) const
 Note that the xfixed_adaptor cannot be resized.
 
template<class ST = shape_type>
void resize (ST &&shape, layout_type l) const
 Note that the xfixed_adaptor cannot be resized.
 
template<class ST = shape_type>
void resize (ST &&shape, const strides_type &strides) const
 Note that the xfixed_adaptor cannot be resized.
 
template<class ST = std::array<std::size_t, N>>
const auto & reshape (ST &&shape, layout_type layout=L) const
 Note that the xfixed_container cannot be reshaped to a shape different from S.
 
template<class ST>
bool broadcast_shape (ST &s, bool reuse_cache=false) const
 
constexpr layout_type layout () const noexcept
 
bool is_contiguous () const noexcept
 
template<class E>
auto operator= (const xexpression< E > &e) -> self_type &
 The extended assignment operator.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
xcontainer (const xcontainer &)=default
 
xcontainer (xcontainer &&)=default
 
+xcontaineroperator= (const xcontainer &)=default
 
+xcontaineroperator= (xcontainer &&)=default
 
container_iterator data_xbegin () noexcept
 
const_container_iterator data_xbegin () const noexcept
 
container_iterator data_xend (layout_type l, size_type offset) noexcept
 
const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
 
derived_typederived_cast () &noexcept
 
const derived_typederived_cast () const &noexcept
 
derived_type derived_cast () &&noexcept
 
- Protected Member Functions inherited from xt::xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >
xcontainer_semantic (const xcontainer_semantic &)=default
 
xcontainer_semantic (xcontainer_semantic &&)=default
 
+xcontainer_semanticoperator= (const xcontainer_semantic &)=default
 
+xcontainer_semanticoperator= (xcontainer_semantic &&)=default
 
+derived_typeoperator= (const xexpression< E > &)
 
- Protected Member Functions inherited from xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >
xsemantic_base (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class EC, class S, layout_type L, bool SH, class Tag>
+class xt::xfixed_adaptor< EC, S, L, SH, Tag >

Dense multidimensional container adaptor with tensor semantic and fixed dimension.

+

The xfixed_adaptor class implements a dense multidimensional container adaptor with tensor semantic and fixed dimension. It is used to provide a multidimensional container semantic and a tensor semantic to stl-like containers.

+
Template Parameters
+ + + + + + +
ECThe closure for the container type to adapt.
SThe xshape template parameter for the fixed shape of the adaptor
LThe layout_type of the adaptor.
SHWether the adaptor can be used as a shared expression.
TagThe expression tag.
+
+
+ +

Definition at line 430 of file xfixed.hpp.

+

Member Typedef Documentation

+ +

◆ backstrides_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::backstrides_type = typename base_type::backstrides_type
+
+ +

Definition at line 443 of file xfixed.hpp.

+ +
+
+ +

◆ base_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::base_type = xcontainer<self_type>
+
+ +

Definition at line 438 of file xfixed.hpp.

+ +
+
+ +

◆ container_closure_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::container_closure_type = EC
+
+ +

Definition at line 435 of file xfixed.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::expression_tag = Tag
+
+ +

Definition at line 448 of file xfixed.hpp.

+ +
+
+ +

◆ inner_backstrides_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::inner_backstrides_type = typename base_type::inner_backstrides_type
+
+ +

Definition at line 446 of file xfixed.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::inner_shape_type = typename base_type::inner_shape_type
+
+ +

Definition at line 444 of file xfixed.hpp.

+ +
+
+ +

◆ inner_strides_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::inner_strides_type = typename base_type::inner_strides_type
+
+ +

Definition at line 445 of file xfixed.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::self_type = xfixed_adaptor<EC, S, L, SH, Tag>
+
+ +

Definition at line 437 of file xfixed.hpp.

+ +
+
+ +

◆ semantic_base

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::semantic_base = xcontainer_semantic<self_type>
+
+ +

Definition at line 439 of file xfixed.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::shape_type = typename base_type::shape_type
+
+ +

Definition at line 441 of file xfixed.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::storage_type = typename base_type::storage_type
+
+ +

Definition at line 440 of file xfixed.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::strides_type = typename base_type::strides_type
+
+ +

Definition at line 442 of file xfixed.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_adaptor< EC, S, L, SH, Tag >::temporary_type = typename semantic_base::temporary_type
+
+ +

Definition at line 447 of file xfixed.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xfixed_adaptor() [1/3]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
xt::xfixed_adaptor< EC, S, L, SH, Tag >::xfixed_adaptor (storage_type && data)
+
+inline
+
+ +

Constructs an xfixed_adaptor of the given stl-like container.

+
Parameters
+ + +
datathe container to adapt
+
+
+ +

Definition at line 776 of file xfixed.hpp.

+ +
+
+ +

◆ xfixed_adaptor() [2/3]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
xt::xfixed_adaptor< EC, S, L, SH, Tag >::xfixed_adaptor (const storage_type & data)
+
+inline
+
+ +

Constructs an xfixed_adaptor of the given stl-like container.

+
Parameters
+ + +
datathe container to adapt
+
+
+ +

Definition at line 787 of file xfixed.hpp.

+ +
+
+ +

◆ xfixed_adaptor() [3/3]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+
+template<class D>
+ + + + + +
+ + + + + + + +
xt::xfixed_adaptor< EC, S, L, SH, Tag >::xfixed_adaptor (D && data)
+
+inline
+
+ +

Constructs an xfixed_adaptor of the given stl-like container, with the specified shape and layout_type.

+
Parameters
+ + +
datathe container to adapt
+
+
+ +

Definition at line 800 of file xfixed.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ broadcast_shape()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
bool xt::xfixed_adaptor< ET, S, L, SH, Tag >::broadcast_shape (ST & s,
bool reuse_cache = false ) const
+
+inline
+
+ +

Definition at line 908 of file xfixed.hpp.

+ +
+
+ +

◆ is_contiguous()

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
bool xt::xfixed_adaptor< EC, S, L, SH, Tag >::is_contiguous () const
+
+inlinenoexcept
+
+ +

Definition at line 932 of file xfixed.hpp.

+ +
+
+ +

◆ layout()

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
layout_type xt::xfixed_adaptor< EC, S, L, SH, Tag >::layout () const
+
+constexprnoexcept
+
+ +

Definition at line 926 of file xfixed.hpp.

+ +
+
+ +

◆ operator=() [1/4]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfixed_adaptor< EC, S, L, SH, Tag >::operator= (const xexpression< E > & e) -> self_type& +
+
+inline
+
+ +

The extended assignment operator.

+ +

Definition at line 841 of file xfixed.hpp.

+ +
+
+ +

◆ operator=() [2/4]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
auto xt::xfixed_adaptor< EC, S, L, SH, Tag >::operator= (const xfixed_adaptor< EC, S, L, SH, Tag > & rhs)
+
+inline
+
+ +

Definition at line 809 of file xfixed.hpp.

+ +
+
+ +

◆ operator=() [3/4]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
auto xt::xfixed_adaptor< EC, S, L, SH, Tag >::operator= (temporary_type && rhs)
+
+inline
+
+ +

Definition at line 825 of file xfixed.hpp.

+ +
+
+ +

◆ operator=() [4/4]

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
auto xt::xfixed_adaptor< EC, S, L, SH, Tag >::operator= (xfixed_adaptor< EC, S, L, SH, Tag > && rhs)
+
+inline
+
+ +

Definition at line 817 of file xfixed.hpp.

+ +
+
+ +

◆ reshape()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
const auto & xt::xfixed_adaptor< ET, S, L, SH, Tag >::reshape (ST && shape,
layout_type layout = L ) const
+
+inline
+
+ +

Note that the xfixed_container cannot be reshaped to a shape different from S.

+ +

Definition at line 896 of file xfixed.hpp.

+ +
+
+ +

◆ resize() [1/3]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xfixed_adaptor< ET, S, L, SH, Tag >::resize (ST && shape,
bool force = false ) const
+
+inline
+
+ +

Note that the xfixed_adaptor cannot be resized.

+

Attempting to resize with a different size throws an assert in debug mode.

+ +

Definition at line 854 of file xfixed.hpp.

+ +
+
+ +

◆ resize() [2/3]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xfixed_adaptor< ET, S, L, SH, Tag >::resize (ST && shape,
const strides_type & strides ) const
+
+inline
+
+ +

Note that the xfixed_adaptor cannot be resized.

+

Attempting to resize with a different size throws an assert in debug mode.

+ +

Definition at line 881 of file xfixed.hpp.

+ +
+
+ +

◆ resize() [3/3]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xfixed_adaptor< ET, S, L, SH, Tag >::resize (ST && shape,
layout_type l ) const
+
+inline
+
+ +

Note that the xfixed_adaptor cannot be resized.

+

Attempting to resize with a different size throws an assert in debug mode.

+ +

Definition at line 866 of file xfixed.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + +
friend class xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >
+
+friend
+
+ +

Definition at line 500 of file xfixed.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ N

+ +
+
+
+template<class EC, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + +
std::size_t xt::xfixed_adaptor< EC, S, L, SH, Tag >::N = S::size()
+
+staticconstexpr
+
+ +

Definition at line 450 of file xfixed.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xfixed__adaptor.js b/classxt_1_1xfixed__adaptor.js new file mode 100644 index 000000000..d209cec45 --- /dev/null +++ b/classxt_1_1xfixed__adaptor.js @@ -0,0 +1,11 @@ +var classxt_1_1xfixed__adaptor = +[ + [ "xfixed_adaptor", "classxt_1_1xfixed__adaptor.html#a4d68ba3b03788fbe1b70a7d6dce4040c", null ], + [ "xfixed_adaptor", "classxt_1_1xfixed__adaptor.html#adb3ce51eb417f3407c5b95d271c3f39c", null ], + [ "xfixed_adaptor", "classxt_1_1xfixed__adaptor.html#ab8855d521c67f4885638ab9d9108b36b", null ], + [ "operator=", "classxt_1_1xfixed__adaptor.html#a5eba04b65afb8377a248f1253605f7d2", null ], + [ "reshape", "classxt_1_1xfixed__adaptor.html#a5fe78e6500ce0bddc63c8b7de09b8031", null ], + [ "resize", "classxt_1_1xfixed__adaptor.html#a75fb0edc455232657d609bd9d79d6544", null ], + [ "resize", "classxt_1_1xfixed__adaptor.html#a656b75b805c1645d3c562a5797d7adb9", null ], + [ "resize", "classxt_1_1xfixed__adaptor.html#a10c880b192785a2108d5ab7047c1bed6", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfixed__adaptor.png b/classxt_1_1xfixed__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..878f50f97d177e98ec03a6db726fb7453e1d3947 GIT binary patch literal 5125 zcmd6rcT`i^zQ++Sqr#x~DS{5|ImCg`k*YKuMldM78A=eCPz;d405OE(Wd;~!fFT4T z9aKOhfF#la1cVWWP{&9pp-F_mP(m-#-VTg+t$WuiYu38!u6O=8XP>j{`R(ui{C;~s zw6-)875+k4KtMngcH{p`8W~N$Xqo*Z24LL2`O-EhMSANKYO5 z-8oX{^!WHV_^#dM_zdKo2)4Df69DfAm#$#uI{|?+Kf}JcW`F<4{K$;+t1Evs{jE>U zsCn0Y$p-IvJn?>KQ6DAXI4s%HK_^PIMO~~#{c~ecv0k|%=8S!oWf9ZL>jvRVSY(>5 zcyNcGR9nTlwxAujIUM#@s6cr-&6cH?=yi-pAv_Z?hxe)!kb|V!PAVWT!X${4JQs5~ zM=w#@nqf{*RX|>=CQ@31r1ZzBj4Kz@rL9OMX~@R)E>y1FN+hPUa4GfIB2v$qa{KOW zUH_IG{VcW*wnxK#_cCnxJilobWWbOSx3a+oZHC&=%g)fv$TnU+(_I;5DA~3YNtUeg z=#lQ8r`C}~wG%m;mM3jlW%{G}6bPvmyZ?%D_cf%;Fc*efumQo z`HW)pZPO_zD(Dh#Aka5>Kw*{>zwUv|)?H!xR8;5g<+!MJ_4JcgxRRv6YK;VIHMwp= z%?~xNT*Fkq;3n%P1=LJRhXp9ku8#<_vwR5Q8GJj1cx89j@g`?u;4PCoZ+SEmtDdN8 z>h=TnKK?PPZ5EMZ?2ikIY8?_G9UFrLNg5>8`(_#A_w>b0yaNZXOj#_c#8oxxa4#ov zYNlEk3~0HuMA2}!S`jsqTZMd{bj4=iCc{y@)Qg0(-S~N}M9!nWlZXuTSuaD+KCcF< zOA_Lwi&3y<4DRO`WrUFhvb3Pmr?MmV3owtvWmO`*1Xcxu=Ff}QFQYvkb4~XwA-{Q9 z8$KoNl6UKT)`>Iw}mt9Hh%i@xrIe-a;*KhOi*xGm}c3m-fD}g=llv;Vb za$u>b5?aNe^`I;Exe4(l1r+i3=$q=mumyb~Qf=E6m)0m~Opc0Qgex3tp{(YUfQj=r z?F?OR){93dDV2Ez$o1UXI*H82)1Q!0ac)Qz`Je|cfgUwPQieqA8 zy#0?@2)Xu#$^}DY6`PYiqk2GnvU_U zok^ZIam^?YIx9XA_{N2d;#^w(y<%lkEq8X%*0UrQ)e{m|M@bWOvx36t=0HBk+T@(K zQ6oO_v9;(j{nbH9lI2EDwO+hB>cWWE*!nVZGt{X%RU1F-IjlXgHdqa#-@@yR;C8?o z_J>wDv{Z6wEpBiZUUv}?Kut?rYAVES@w}aXtG_Y{Vqt`lhmBhCRhp2%&+l+*P2}k9 zsfBwJGBqSSz|z#&>df9t4XOH=c-qM05hr17*p(6O-lLCQE%0s&%956SbxpHXFL8r2 zF9RSWiI84Dfs{s*xl>VaIE>O^Q+R{WLq)xVY@OqC%4%-9eBh2$+tPkP5{#}g5#5S9j!LN^sSzkROX$}W>q2OD%KTog6cUBp76pXF zteawO#rZ|0L943w9|#I7+%Y-m{XrrWc}>CqR2O@hPXuGIzS;&l5Rn1Zg$E8sqLAkW zJvRLm<$)K9u(^Cb)?-@4 zgdhf6rgm1F9X#zV3D49H+)t$;NGZz0-bxgZAv4iKG9Z$_d_zxf|yikADZOz!=6mo8MU!rp$6 zyS()a#wByY%VY0O82uR;vL%q~$Qo@Zm-qhUK_FAi(_6Wz4mWcl=*3;&`-EhLS0tEJ zTNb0Fx@hc&?R&dBYvFtM)|Nvme;+9);iZImT1*z~;je#&On)>}-az|V)XYI3G0 zDiY2Pmwm{baXT3h6VR;*3*CH48BHN~_0R9)EKoBk-;%JC-|C)zoweDc&-5(|}j= z$RKmqU`L5Z2*K!M%j<7C+J)(Bn?X@FsQ&U<+SpBMnh|VtT!i7QHW>0Xd(BS?l~ZBf zqr`AlnfN%rsDV^@TXVcV0@{hLGSx;nbWE3bd2hH;>V5}khD;54=xTIfM^S!THI&el zN(UCr_wG!}2a8csink2QZ(vXj&v2g0H}9cSR4+)JF>+r}+gMYfgawpSD%|qZhe^6T z48kBvGrdn3T~zTfT(k~$L;uvVi&J|wPRwNwWP~#OG7|Idt$e#uy^?$#&R1<`6cwdY zw=0vHV~BKf+*x16JYMPF^=Zs1rI*p@TB=0t_+ZhEWo$exCqPM~#Ai5?i(_o~4a=3w z=qK$j*XF3$Ro<;xcg5Dod+$DSwuHhETqff#1eHx4eB!pB+s5xqRo0gE6<--^Ey##8 zyl;ig!ciw1MMF{K#rC)@PdKE#dNCar(5f|d0Y-VRiRFuVh8X2Plk%(`&1gr%dVm8Z z`Vz=`vmfio>vvbJ3|2Sm>uay>|GvIy0VHCv*Onz!Zxe|QqrV_?3t$A9881&BB5!Qf zbiWNuNXAZK)=t`LIKZ(jq}^$&fGr2xga7#jdw^O{_v4d$1W3fvGcv%e=egMTap?g` zpOVE{pSP&53hitI(2f8E2Aj;EnT|FW0;^x-c_Zts6oTIGo-p6!(Y#ET!2?>&)v9H3R_(^o)6-FHTRQ+;j^ z==iEQLeR~+_yHXdmX^PMBKTSXAZ?z-A6>sWD%LA{SP`%^;BM|!346snHGtYc&?~

+l)K4g>Kr^7_2jotHA^2g+W zZAoM!g`OYnXu|8c{R2&+Gq<$fxR{*v)@aH-VI9xD$e}uCnsq@pymUg-UR-aQT5*2A zfw1iQA~1MBC9BndtI@xd^5HCKu)CFo6 zsF{}#*YE-^-xef;97frM$o{&(YQ=6t zcW4$WZlu|do?;9o8|RacD*4t?F^t`Tl44^QzGX?3&M&y7-vkDZyzq3Cu2#={Tq0bf z+l@daG^dMZ@sdolrR?=K+9DipM_q%rIrh>+)`=mo54q%e<5Du|mr=q_a0ITQ({_W< zLrPpBBCdRuE?wGO+vZB-PPUV}NsHXJ?p8>;tX0>>c~v}FvdpkwdLf1y8KYW6gt(9M z6lR-*okbf$>4~mqZxObasug)wib}9Bj%MM&PkwX`;oBCU1xS0{Cf`$!H8(oqfCjgs z^cu;br&k^}U#179p`<2r>EZ{1}!W!1ANgKjO?!f$XQy6hLws1e>3t**{x3QuFWU7)SX{e$Ujhu+y+$ zu2K&I*>we^1yd{JDt{Pvl5ANZ6C7rMVEBK|*fc_x%H>*S7CKgka+H_`4dG=zOs$cm zkQSY}+Lqdg&<&}Ts6O0bi~AOE{Hc#Lin#nr;(V-WTml6VHKAp}e1F)oV*+PGBQjqdR@nKOvXGW;ac8im##s?{Az^l_Tg@*dyKp9Q z*uUS_5tB3aWhsABnq^ydGP9!x;O)a56p7gYU%x#_R`x>K(9saDlZ$SNE-@4%P1K7@k-3V7QbxOGsQ zQ-|dn+G(?MN5@MiEwj+??sB?5n0@ym{=Vm>*)hhIY-8~5Vx-ad$L>;4coTZX8i;_Y z8qtaFe-3in4)#O?PqBQR?4CHZ4v|vmmvJTUupKBWqp((Hn+WLtuhwMEsv bqa}Cf&z1IHyZ{Gw0 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +

+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xfixed_container< ET, S, L, SH, Tag > Member List
+
+
+ +

This is the complete list of members for xt::xfixed_container< ET, S, L, SH, Tag >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
assign_temporary(temporary_type &&)xt::xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >inline
back()xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
back()xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
backstrides() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
backstrides_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
base_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
broadcast_shape(ST &s, bool reuse_cache=false) const (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >inline
xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >::broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
const_pointer typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
const_reference typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
data() noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
data() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
data_offset() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
dimension() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
element(It first, It last) -> referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
element(It first, It last) const -> const_referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
expression_tag typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
fill(const T &value)xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
flat(size_type i)xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
flat(size_type i) constxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
from_shape(ST &&) (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >static
from_shape(ST &&shape) (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >inline
front()xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
front()xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
has_linear_assign(const S &strides) const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
inner_backstrides_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
inner_shape_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
inner_strides_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
is_contiguous() const noexcept (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >inline
layout() const noexcept (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
N (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >static
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
operator()(Args... args) -> referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
operator()(Args... args) const -> const_referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator=(const xfixed_container &)=default (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
operator=(xfixed_container &&)=default (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
operator=(const xexpression< E > &e) (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
operator=(const xexpression< E > &e) -> self_type &xt::xfixed_container< ET, S, L, SH, Tag >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >inline
pointer typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
rank (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >static
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
reference typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >inline
reshape(ST &&shape, layout_type layout=L) constxt::xfixed_container< ET, S, L, SH, Tag >inline
resize(ST &&shape, bool force=false) constxt::xfixed_container< ET, S, L, SH, Tag >inline
resize(ST &&shape, layout_type l) constxt::xfixed_container< ET, S, L, SH, Tag >inline
resize(ST &&shape, const strides_type &strides) constxt::xfixed_container< ET, S, L, SH, Tag >inline
self_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
semantic_base typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
shape() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
shape_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
size() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
storage() noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
storage() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
storage_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
strides() const noexceptxt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
strides_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
temporary_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
unchecked(Args... args) -> referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
unchecked(Args... args) -> referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
unchecked(Args... args) const -> const_referencext::xcontainer< xfixed_container< ET, S, L, SH, Tag > >inline
value_type typedef (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
xcontainer< xfixed_container< ET, S, L, SH, Tag > > (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >friend
xfixed_container()=default (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
xfixed_container(const value_type &v) (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >inline
xfixed_container(const inner_shape_type &shape, layout_type l=L)xt::xfixed_container< ET, S, L, SH, Tag >inlineexplicit
xfixed_container(const inner_shape_type &shape, value_type v, layout_type l=L)xt::xfixed_container< ET, S, L, SH, Tag >inlineexplicit
xfixed_container(nested_initializer_list_t< value_type, N > t)xt::xfixed_container< ET, S, L, SH, Tag >inline
xfixed_container(const xfixed_container &)=default (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
xfixed_container(xfixed_container &&)=default (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
xfixed_container(const xexpression< E > &e)xt::xfixed_container< ET, S, L, SH, Tag >inline
~xfixed_container()=default (defined in xt::xfixed_container< ET, S, L, SH, Tag >)xt::xfixed_container< ET, S, L, SH, Tag >
+
+ + + + diff --git a/classxt_1_1xfixed__container.html b/classxt_1_1xfixed__container.html new file mode 100644 index 000000000..fb873f8bd --- /dev/null +++ b/classxt_1_1xfixed__container.html @@ -0,0 +1,2066 @@ + + + + + + + +xtensor: xt::xfixed_container< ET, S, L, SH, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xfixed_container< ET, S, L, SH, Tag > Class Template Reference
+
+
+ +

Dense multidimensional container with tensor semantic and fixed dimension. + More...

+ +

#include <xfixed.hpp>

+
+Inheritance diagram for xt::xfixed_container< ET, S, L, SH, Tag >:
+
+
+ + +xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > > +xt::xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > > +xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > > +xt::xaccessible< xfixed_container< ET, S, L, SH, Tag > > +xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > > +xt::xiterable< xfixed_container< ET, S, L, SH, Tag > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xfixed_container<ET, S, L, SH, Tag>
 
using base_type = xcontainer<self_type>
 
using semantic_base = xcontainer_semantic<self_type>
 
using storage_type = typename base_type::storage_type
 
using value_type = typename base_type::value_type
 
using reference = typename base_type::reference
 
using const_reference = typename base_type::const_reference
 
using pointer = typename base_type::pointer
 
using const_pointer = typename base_type::const_pointer
 
using shape_type = typename base_type::shape_type
 
using inner_shape_type = typename base_type::inner_shape_type
 
using strides_type = typename base_type::strides_type
 
using backstrides_type = typename base_type::backstrides_type
 
using inner_backstrides_type = typename base_type::inner_backstrides_type
 
using inner_strides_type = typename base_type::inner_strides_type
 
using temporary_type = typename semantic_base::temporary_type
 
using expression_tag = Tag
 
- Public Types inherited from xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
using derived_type
 
using inner_types
 
using storage_type
 
using allocator_type
 
using value_type
 
using reference
 
using const_reference
 
using pointer
 
using const_pointer
 
using size_type
 
using difference_type
 
using simd_value_type
 
using bool_load_type
 
using shape_type
 
using strides_type
 
using backstrides_type
 
using inner_shape_type
 
using inner_strides_type
 
using inner_backstrides_type
 
using iterable_base
 
using stepper
 
using const_stepper
 
using accessible_base
 
using data_alignment
 
using simd_type
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using simd_return_type
 
using container_iterator
 
using const_container_iterator
 
- Public Types inherited from xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >
using derived_type
 
using inner_types
 
using iterable_base
 
using stepper
 
using const_stepper
 
using layout_iterator
 
using const_layout_iterator
 
using reverse_layout_iterator
 
using const_reverse_layout_iterator
 
using broadcast_iterator
 
using const_broadcast_iterator
 
using reverse_broadcast_iterator
 
using const_reverse_broadcast_iterator
 
using linear_traits
 
using linear_iterator
 
using const_linear_iterator
 
using reverse_linear_iterator
 
using const_reverse_linear_iterator
 
using select_iterator_impl
 
using select_iterator
 
using select_const_iterator
 
using select_reverse_iterator
 
using select_const_reverse_iterator
 
using iterator
 
using const_iterator
 
using reverse_iterator
 
using const_reverse_iterator
 
- Public Types inherited from xt::xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
- Public Types inherited from xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >
using base_type
 
using derived_type
 
using temporary_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

xfixed_container (const xfixed_container &)=default
 
+xfixed_containeroperator= (const xfixed_container &)=default
 
xfixed_container (xfixed_container &&)=default
 
+xfixed_containeroperator= (xfixed_container &&)=default
 
+template<class E>
xfixed_containeroperator= (const xexpression< E > &e)
 
Constructors
 xfixed_container (const value_type &v)
 
 xfixed_container (const inner_shape_type &shape, layout_type l=L)
 Create an uninitialized xfixed_container.
 
 xfixed_container (const inner_shape_type &shape, value_type v, layout_type l=L)
 Create an xfixed_container, and initialize with the value of v.
 
template<class IX = std::integral_constant<std::size_t, N>>
+requires (IX::value != 0)
 xfixed_container (nested_initializer_list_t< value_type, N > t)
 Allocates an xfixed_container with shape S with values from a C array.
 
template<class ST>
xfixed_container< ET, S, L, SH, Tag > from_shape (ST &&shape)
 
- Public Member Functions inherited from xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
+reference operator[] (size_type i)
 
+reference back ()
 Returns a reference to the last element of the expression.
 
+reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
+reference operator() (Args... args)
 
+const_reference operator() (Args... args) const
 
+reference unchecked (Args... args)
 
+const_reference unchecked (Args... args) const
 
+reference element (It first, It last)
 
+const_reference element (It first, It last) const
 
+stepper stepper_begin (const S &shape) noexcept
 
+const_stepper stepper_begin (const S &shape) const noexcept
 
+stepper stepper_end (const S &shape, layout_type l) noexcept
 
+const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
 
+reference at (Args... args)
 
+disable_integral_t< S, reference > operator[] (const S &index)
 
+reference operator[] (std::initializer_list< I > index)
 
reference operator[] (size_type i)
 
reference back ()
 Returns a reference to the last element of the expression.
 
reference front ()
 Returns a reference to the first element of the expression.
 
+reference periodic (Args... args)
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
void fill (const T &value)
 Fills the container with the given value.
 
auto operator() (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto unchecked (Args... args) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the container.
 
auto element (It first, It last) -> reference
 Returns a reference to the element at the specified position in the container.
 
auto element (It first, It last) const -> const_reference
 Returns a reference to the element at the specified position in the container.
 
storage_type & storage () noexcept
 Returns a reference to the buffer containing the elements of the container.
 
const storage_type & storage () const noexcept
 Returns a constant reference to the buffer containing the elements of the container.
 
pointer data () noexcept
 Returns a pointer to the underlying array serving as element storage.
 
const_pointer data () const noexcept
 Returns a constant pointer to the underlying array serving as element storage.
 
const size_type data_offset () const noexcept
 Returns the offset to the first element in the container.
 
size_type size () const noexcept
 Returns the number of element in the container.
 
constexpr size_type dimension () const noexcept
 Returns the number of dimensions of the container.
 
constexpr const inner_shape_type & shape () const noexcept
 Returns the shape of the container.
 
constexpr const inner_strides_type & strides () const noexcept
 Returns the strides of the container.
 
constexpr const inner_backstrides_type & backstrides () const noexcept
 Returns the backstrides of the container.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the container to the specified parameter.
 
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
 
auto stepper_begin (const S &shape) noexcept -> stepper
 
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
 
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
reference data_element (size_type i)
 
const_reference data_element (size_type i) const
 
reference flat (size_type i)
 Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
 
const_reference flat (size_type i) const
 Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
 
void store_simd (size_type i, const simd &e)
 
auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
 
linear_iterator linear_begin () noexcept
 
const_linear_iterator linear_begin () const noexcept
 
linear_iterator linear_end () noexcept
 
const_linear_iterator linear_end () const noexcept
 
const_linear_iterator linear_cbegin () const noexcept
 
const_linear_iterator linear_cend () const noexcept
 
reverse_linear_iterator linear_rbegin () noexcept
 
const_reverse_linear_iterator linear_rbegin () const noexcept
 
reverse_linear_iterator linear_rend () noexcept
 
const_reverse_linear_iterator linear_rend () const noexcept
 
const_reverse_linear_iterator linear_crbegin () const noexcept
 
const_reverse_linear_iterator linear_crend () const noexcept
 
- Public Member Functions inherited from xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >
+select_iterator< L > begin () noexcept
 
+select_const_iterator< L > begin () const noexcept
 
+broadcast_iterator< S, L > begin (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+select_iterator< L > end () noexcept
 
+select_const_iterator< L > end () const noexcept
 
+broadcast_iterator< S, L > end (const S &shape) noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+select_const_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+select_const_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+select_reverse_iterator< L > rbegin () noexcept
 
+select_const_reverse_iterator< L > rbegin () const noexcept
 
+reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+select_reverse_iterator< L > rend () noexcept
 
+select_const_reverse_iterator< L > rend () const noexcept
 
+reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+select_const_reverse_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin () noexcept -> select_iterator< L >
 Returns an iterator to the first element of the expression.
 
auto begin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto end () noexcept -> select_iterator< L >
 Returns an iterator to the element following the last element of the expression.
 
auto end () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the first element of the expression.
 
auto cend () const noexcept -> select_const_iterator< L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend () noexcept -> select_reverse_iterator< L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend () const noexcept -> select_const_reverse_iterator< L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the first element of the expression.
 
auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the expression.
 
auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the expression.
 
auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the first element of the reversed expression.
 
auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
 Returns an iterator to the element following the last element of the reversed expression.
 
auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the first element of the reversed expression.
 
auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
 Returns a constant iterator to the element following the last element of the reversed expression.
 
- Public Member Functions inherited from xt::xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >
+derived_typeassign_xexpression (const xexpression< E > &e)
 
+derived_typecomputed_assign (const xexpression< E > &e)
 
+derived_typescalar_computed_assign (const E &e, F &&f)
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
derived_typeassign_temporary (temporary_type &&)
 Assigns the temporary tmp to *this.
 
auto assign_xexpression (const xexpression< E > &e) -> derived_type &
 
auto computed_assign (const xexpression< E > &e) -> derived_type &
 
auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
- Public Member Functions inherited from xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >
+disable_xexpression< E, derived_type & > operator+= (const E &)
 
+derived_type & operator+= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator-= (const E &)
 
+derived_type & operator-= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator*= (const E &)
 
+derived_type & operator*= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator/= (const E &)
 
+derived_type & operator/= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator%= (const E &)
 
+derived_type & operator%= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator&= (const E &)
 
+derived_type & operator&= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator|= (const E &)
 
+derived_type & operator|= (const xexpression< E > &)
 
+disable_xexpression< E, derived_type & > operator^= (const E &)
 
+derived_type & operator^= (const xexpression< E > &)
 
+derived_type & assign (const xexpression< E > &)
 
+derived_type & plus_assign (const xexpression< E > &)
 
+derived_type & minus_assign (const xexpression< E > &)
 
+derived_type & multiplies_assign (const xexpression< E > &)
 
+derived_type & divides_assign (const xexpression< E > &)
 
+derived_type & modulus_assign (const xexpression< E > &)
 
+derived_type & bit_and_assign (const xexpression< E > &)
 
+derived_type & bit_or_assign (const xexpression< E > &)
 
+derived_type & bit_xor_assign (const xexpression< E > &)
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
 Adds the scalar e to *this.
 
auto operator+= (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
 Subtracts the scalar e from *this.
 
auto operator-= (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e from *this.
 
auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
 Multiplies *this with the scalar e.
 
auto operator*= (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
 Divides *this by the scalar e.
 
auto operator/= (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the remainder of *this after division by the scalar e.
 
auto operator%= (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise and of *this and the scalar e and assigns it to *this.
 
auto operator&= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of *this and the xexpression e and assigns it to *this.
 
auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise or of *this and the scalar e and assigns it to *this.
 
auto operator|= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of *this and the xexpression e and assigns it to *this.
 
auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
 Computes the bitwise xor of *this and the scalar e and assigns it to *this.
 
auto operator^= (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
auto assign (const xexpression< E > &e) -> derived_type &
 Assigns the xexpression e to *this.
 
auto plus_assign (const xexpression< E > &e) -> derived_type &
 Adds the xexpression e to *this.
 
auto minus_assign (const xexpression< E > &e) -> derived_type &
 Subtracts the xexpression e to *this.
 
auto multiplies_assign (const xexpression< E > &e) -> derived_type &
 Multiplies *this with the xexpression e.
 
auto divides_assign (const xexpression< E > &e) -> derived_type &
 Divides *this by the xexpression e.
 
auto modulus_assign (const xexpression< E > &e) -> derived_type &
 Computes the remainder of *this after division by the xexpression e.
 
auto bit_and_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise and of e to *this.
 
auto bit_or_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise or of e to *this.
 
auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
 Computes the bitwise xor of e to *this.
 
auto operator= (const xexpression< E > &e) -> derived_type &
 
+ + + + +

+Static Public Member Functions

+template<class ST = std::array<std::size_t, N>>
static xfixed_container from_shape (ST &&)
 
+ + + + + + + + + + + + + +

+Static Public Attributes

static constexpr std::size_t N = std::tuple_size<shape_type>::value
 
static constexpr std::size_t rank = N
 
- Static Public Attributes inherited from xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
static constexpr layout_type static_layout
 
static constexpr bool contiguous_layout
 
- Static Public Attributes inherited from xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >
static constexpr layout_type static_layout
 
+ + + +

+Friends

class xcontainer< xfixed_container< ET, S, L, SH, Tag > >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Extended copy semantic

template<class E>
 xfixed_container (const xexpression< E > &e)
 The extended copy constructor.
 
template<class ST = std::array<std::size_t, N>>
void resize (ST &&shape, bool force=false) const
 Note that the xfixed_container cannot be resized.
 
template<class ST = shape_type>
void resize (ST &&shape, layout_type l) const
 Note that the xfixed_container cannot be resized.
 
template<class ST = shape_type>
void resize (ST &&shape, const strides_type &strides) const
 Note that the xfixed_container cannot be resized.
 
template<class ST = std::array<std::size_t, N>>
const auto & reshape (ST &&shape, layout_type layout=L) const
 Note that the xfixed_container cannot be reshaped to a shape different from S.
 
template<class ST>
bool broadcast_shape (ST &s, bool reuse_cache=false) const
 
constexpr layout_type layout () const noexcept
 
bool is_contiguous () const noexcept
 
template<class E>
auto operator= (const xexpression< E > &e) -> self_type &
 The extended assignment operator.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >
xcontainer (const xcontainer &)=default
 
xcontainer (xcontainer &&)=default
 
+xcontaineroperator= (const xcontainer &)=default
 
+xcontaineroperator= (xcontainer &&)=default
 
container_iterator data_xbegin () noexcept
 
const_container_iterator data_xbegin () const noexcept
 
container_iterator data_xend (layout_type l, size_type offset) noexcept
 
const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
 
derived_typederived_cast () &noexcept
 
const derived_typederived_cast () const &noexcept
 
derived_type derived_cast () &&noexcept
 
- Protected Member Functions inherited from xt::xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >
xcontainer_semantic (const xcontainer_semantic &)=default
 
xcontainer_semantic (xcontainer_semantic &&)=default
 
+xcontainer_semanticoperator= (const xcontainer_semantic &)=default
 
+xcontainer_semanticoperator= (xcontainer_semantic &&)=default
 
+derived_typeoperator= (const xexpression< E > &)
 
- Protected Member Functions inherited from xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >
xsemantic_base (const xsemantic_base &)=default
 
xsemantic_base (xsemantic_base &&)=default
 
+xsemantic_baseoperator= (const xsemantic_base &)=default
 
+xsemantic_baseoperator= (xsemantic_base &&)=default
 
+derived_type & operator= (const xexpression< E > &)
 
+

Detailed Description

+
template<class ET, class S, layout_type L, bool SH, class Tag>
+class xt::xfixed_container< ET, S, L, SH, Tag >

Dense multidimensional container with tensor semantic and fixed dimension.

+

The xfixed_container class implements a dense multidimensional container with tensor semantic and fixed dimension

+
Template Parameters
+ + + + + + +
ETThe type of the elements.
SThe xshape template paramter of the container.
LThe layout_type of the tensor.
SHWether the tensor can be used as a shared expression.
TagThe expression tag.
+
+
+
See also
xtensor_fixed
+ +

Definition at line 295 of file xfixed.hpp.

+

Member Typedef Documentation

+ +

◆ backstrides_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::backstrides_type = typename base_type::backstrides_type
+
+ +

Definition at line 313 of file xfixed.hpp.

+ +
+
+ +

◆ base_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::base_type = xcontainer<self_type>
+
+ +

Definition at line 301 of file xfixed.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::const_pointer = typename base_type::const_pointer
+
+ +

Definition at line 309 of file xfixed.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::const_reference = typename base_type::const_reference
+
+ +

Definition at line 307 of file xfixed.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::expression_tag = Tag
+
+ +

Definition at line 317 of file xfixed.hpp.

+ +
+
+ +

◆ inner_backstrides_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::inner_backstrides_type = typename base_type::inner_backstrides_type
+
+ +

Definition at line 314 of file xfixed.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::inner_shape_type = typename base_type::inner_shape_type
+
+ +

Definition at line 311 of file xfixed.hpp.

+ +
+
+ +

◆ inner_strides_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::inner_strides_type = typename base_type::inner_strides_type
+
+ +

Definition at line 315 of file xfixed.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::pointer = typename base_type::pointer
+
+ +

Definition at line 308 of file xfixed.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::reference = typename base_type::reference
+
+ +

Definition at line 306 of file xfixed.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::self_type = xfixed_container<ET, S, L, SH, Tag>
+
+ +

Definition at line 300 of file xfixed.hpp.

+ +
+
+ +

◆ semantic_base

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::semantic_base = xcontainer_semantic<self_type>
+
+ +

Definition at line 302 of file xfixed.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::shape_type = typename base_type::shape_type
+
+ +

Definition at line 310 of file xfixed.hpp.

+ +
+
+ +

◆ storage_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::storage_type = typename base_type::storage_type
+
+ +

Definition at line 304 of file xfixed.hpp.

+ +
+
+ +

◆ strides_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::strides_type = typename base_type::strides_type
+
+ +

Definition at line 312 of file xfixed.hpp.

+ +
+
+ +

◆ temporary_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::temporary_type = typename semantic_base::temporary_type
+
+ +

Definition at line 316 of file xfixed.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + +
using xt::xfixed_container< ET, S, L, SH, Tag >::value_type = typename base_type::value_type
+
+ +

Definition at line 305 of file xfixed.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xfixed_container() [1/5]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
xt::xfixed_container< ET, S, L, SH, Tag >::xfixed_container (const value_type & v)
+
+inline
+
+ +

Definition at line 532 of file xfixed.hpp.

+ +
+
+ +

◆ xfixed_container() [2/5]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + + + + + +
xt::xfixed_container< ET, S, L, SH, Tag >::xfixed_container (const inner_shape_type & shape,
layout_type l = L )
+
+inlineexplicit
+
+ +

Create an uninitialized xfixed_container.

+

Note this function is only provided for homogeneity, and the shape & layout argument is disregarded (the template shape is always used).

+
Parameters
+ + + +
shapethe shape of the xfixed_container (unused!)
lthe layout_type of the xfixed_container (unused!)
+
+
+ +

Definition at line 523 of file xfixed.hpp.

+ +
+
+ +

◆ xfixed_container() [3/5]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + + + + + + + + + + +
xt::xfixed_container< ET, S, L, SH, Tag >::xfixed_container (const inner_shape_type & shape,
value_type v,
layout_type l = L )
+
+inlineexplicit
+
+ +

Create an xfixed_container, and initialize with the value of v.

+

Note, the shape argument to this function is only provided for homogeneity, and the shape argument is disregarded (the template shape is always used).

+
Parameters
+ + + + +
shapethe shape of the xfixed_container (unused!)
vthe fill value
lthe layout_type of the xfixed_container (unused!)
+
+
+ +

Definition at line 551 of file xfixed.hpp.

+ +
+
+ +

◆ xfixed_container() [4/5]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+requires (IX::value != 0)
+
+template<class IX>
+requires (IX::value != 0)
+ + + + + +
+ + + + + + + +
xt::xfixed_container< ET, S, L, SH, Tag >::xfixed_container (nested_initializer_list_t< value_type, N > t)
+
+inline
+
+ +

Allocates an xfixed_container with shape S with values from a C array.

+

The type returned by get_init_type_t is raw C array value_type[X][Y][Z] for xt::xshape<X, Y, Z>. C arrays can be initialized with the initializer list syntax, but the size is checked at compile time to prevent errors. Note: for clang < 3.8 this is an initializer_list and the size is not checked at compile-or runtime.

+ +

Definition at line 612 of file xfixed.hpp.

+ +
+
+ +

◆ xfixed_container() [5/5]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class E>
+ + + + + +
+ + + + + + + +
xt::xfixed_container< ET, S, L, SH, Tag >::xfixed_container (const xexpression< E > & e)
+
+inline
+
+ +

The extended copy constructor.

+ +

Definition at line 634 of file xfixed.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ broadcast_shape()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
bool xt::xfixed_container< ET, S, L, SH, Tag >::broadcast_shape (ST & s,
bool reuse_cache = false ) const
+
+inline
+
+ +

Definition at line 711 of file xfixed.hpp.

+ +
+
+ +

◆ from_shape()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + +
xfixed_container< ET, S, L, SH, Tag > xt::xfixed_container< ET, S, L, SH, Tag >::from_shape (ST && shape)
+
+inline
+
+ +

Definition at line 595 of file xfixed.hpp.

+ +
+
+ +

◆ is_contiguous()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
bool xt::xfixed_container< ET, S, L, SH, Tag >::is_contiguous () const
+
+inlinenoexcept
+
+ +

Definition at line 723 of file xfixed.hpp.

+ +
+
+ +

◆ layout()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + + + + +
layout_type xt::xfixed_container< ET, S, L, SH, Tag >::layout () const
+
+constexprnoexcept
+
+ +

Definition at line 717 of file xfixed.hpp.

+ +
+
+ +

◆ operator=()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class E>
+ + + + + +
+ + + + + + + +
auto xt::xfixed_container< ET, S, L, SH, Tag >::operator= (const xexpression< E > & e) -> self_type& +
+
+inline
+
+ +

The extended assignment operator.

+ +

Definition at line 644 of file xfixed.hpp.

+ +
+
+ +

◆ reshape()

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
const auto & xt::xfixed_container< ET, S, L, SH, Tag >::reshape (ST && shape,
layout_type layout = L ) const
+
+inline
+
+ +

Note that the xfixed_container cannot be reshaped to a shape different from S.

+ +

Definition at line 699 of file xfixed.hpp.

+ +
+
+ +

◆ resize() [1/3]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xfixed_container< ET, S, L, SH, Tag >::resize (ST && shape,
bool force = false ) const
+
+inline
+
+ +

Note that the xfixed_container cannot be resized.

+

Attempting to resize with a different size throws an assert in debug mode.

+ +

Definition at line 657 of file xfixed.hpp.

+ +
+
+ +

◆ resize() [2/3]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xfixed_container< ET, S, L, SH, Tag >::resize (ST && shape,
const strides_type & strides ) const
+
+inline
+
+ +

Note that the xfixed_container cannot be resized.

+

Attempting to resize with a different size throws an assert in debug mode.

+ +

Definition at line 684 of file xfixed.hpp.

+ +
+
+ +

◆ resize() [3/3]

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+
+template<class ST>
+ + + + + +
+ + + + + + + + + + + +
void xt::xfixed_container< ET, S, L, SH, Tag >::resize (ST && shape,
layout_type l ) const
+
+inline
+
+ +

Note that the xfixed_container cannot be resized.

+

Attempting to resize with a different size throws an assert in debug mode.

+ +

Definition at line 669 of file xfixed.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xcontainer< xfixed_container< ET, S, L, SH, Tag > >

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + +
friend class xcontainer< xfixed_container< ET, S, L, SH, Tag > >
+
+friend
+
+ +

Definition at line 378 of file xfixed.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ N

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + +
std::size_t xt::xfixed_container< ET, S, L, SH, Tag >::N = std::tuple_size<shape_type>::value
+
+staticconstexpr
+
+ +

Definition at line 319 of file xfixed.hpp.

+ +
+
+ +

◆ rank

+ +
+
+
+template<class ET, class S, layout_type L, bool SH, class Tag>
+ + + + + +
+ + + + +
std::size_t xt::xfixed_container< ET, S, L, SH, Tag >::rank = N
+
+staticconstexpr
+
+ +

Definition at line 320 of file xfixed.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xfixed__container.js b/classxt_1_1xfixed__container.js new file mode 100644 index 000000000..cd01e32d1 --- /dev/null +++ b/classxt_1_1xfixed__container.js @@ -0,0 +1,12 @@ +var classxt_1_1xfixed__container = +[ + [ "xfixed_container", "classxt_1_1xfixed__container.html#a004eaea5e4f5ef36e227b2673c11b4cd", null ], + [ "xfixed_container", "classxt_1_1xfixed__container.html#a41af8b86cc7d6df8d5713c29e404d4ab", null ], + [ "xfixed_container", "classxt_1_1xfixed__container.html#a5b08206bb93d07dc573823993aba8c67", null ], + [ "xfixed_container", "classxt_1_1xfixed__container.html#a0ddc275300f31caf95233120272df975", null ], + [ "operator=", "classxt_1_1xfixed__container.html#a02686e37949d2c9076cd7b5656e7db3b", null ], + [ "reshape", "classxt_1_1xfixed__container.html#ab5b58143fbfe4d0b7c0ea353526b286f", null ], + [ "resize", "classxt_1_1xfixed__container.html#a1c6d4565311f46f74edd7bfbbf6a2616", null ], + [ "resize", "classxt_1_1xfixed__container.html#a311dfc919ead913eb8c6f27b241619fb", null ], + [ "resize", "classxt_1_1xfixed__container.html#a591c135ebc74e8067d19a7503c635280", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfixed__container.png b/classxt_1_1xfixed__container.png new file mode 100644 index 0000000000000000000000000000000000000000..cd68caba76bc7a66245aee317515d51c5c35c2dc GIT binary patch literal 5107 zcmdUzc~q0xlE48)T9kGJML>PsMvy4r6D2GHje;0<0zr{Y8^fYmgh;{`0d2t+fi@5V zgsl~1C(XVGY@VhGLeQ{nm7hZP7Zv$TK0PH#dkCr zt#`|DfdvN@wRNW_=PSOqJnvxmQ@;Ch*8<7oGij(wO1|T?TTg&lPk`Hr5Aj)-$U4U< zCbM^%PwjkpYUc&z1Qt0<-2&BdF1z%)Vr1lT$}zY@0xL7f0tGDO?4g$A=j-+ftjOz% zN>3dVA=dWL`+RkZT=S_j|G13oK9+n4M=eN1^{=*BT2+OtVKYRNG7(3#>%-b}f)+pd z8+7UocN*2z9fHE|{)9MqhMmsR!FbFL6uHNl^Wr|#4k+)6q+yN!E@TQqQ=;ga#PkmJ zO^2I`k?#&0XO+^<2c1V%O&J!ILTcC=lO$J-&cqvcU8QuO;!!E`sPp>bW%ALAk=Nt2 z@+YFbmJ=>wKQC2Z&BZ82iu|_s=1$D+5^|shn5ioEkMzcshN@KB5S=|VgiCEMCJ`c+ zKKPMe1wF*K>dm~>mD8gMJHz(-9h}mm4BV=A9dhDM1;>xJu5XE^a*@I0t2mBKS>)^j zz8}RT2*Y}C4pHN4zDbtDC>&eO#oY>DXy})|2#vWV5dG2W;pZlv^DfF^_@>F|^dY%( z^*uqv2C%WWjEYL{)DTm%16J;?>emI`borK|$?+3aerBhAcL38PU8vee>?(F6N@4TS z-VL*V?-@~RIlBI&f|!6APCzr8;by~O)L(QhBpB|xP^HI@h(AjVMw|L8^i3|#_R?Oq zsSa#qdl@XG*_I3Qvt1VYb*R0uEJAnPZ(=mxwqT;%(A)n?u8&t?Q4T-F`P+bolJaiE zsT0p8$8UeqC%$6}(hIP86QzZ|KVc>a4MSw-yqziD2<}x!?I;Y|uP29g_8mtj4#N+RJ= zu|=%?1Bde_ltO)J`+rOF(eBhBO$G}-wHZ<-ixxsop8zT6O6&+wOP}wb<5{2tX|+i1 z@~gRdH;P8&RmDsfnrA_&FUd9+z2q#YZ0$T@hKa1rrl;|gu+~@(>1)5 z@wUe;119p&H&gjE^TNwI0WQVD64pG!`cUG&$=XlyL~|51oCf8E?RI%WGC>LC>Jwfe zj_;soKmv4rx3U)e+P=kIQ`3-oGt>s9UEmtEsO6|*J+JYE!WusCo8WoO{ca_FVf(^l z)mvxS&H~Rc8DXBUXLHRZ+jtuX+cccsOa#kI+eS&W3%FIPmEv+I3hBu#qomR4)s+$9 zC+Zwy(19E9uqDxxJ-{nS_sIzT1aTpCqeR=AZy|t&u!hDUGKou6Cbq1aeEnQB1DcYk$>_xwu zO*S&pPHxA&R@U?z56|Ouw^EPPrQZQ%^`|f8SPR|TGc86;zCoq;!^r}55VCW&sH|c3bXIKp*>gLaCl<3<1SY6m{ln%v zn@^z^f2;zob<6cFgS4%*npyOhO))GUgEGg@gTs&U;biB4$VR&d*TK0Hm zcvSs)$s#-GeJR<%Sj55df3#ZG?36t|e9+ya71gmj`!p~S06tpQCl|VIla`;}ic>v7 zH8B9V2$xEK<_J`FP4q0&ZPtHEt&0~dPK%#A)J4rYyM4g-^2Zh1ks%Do$d>{2`0*OL{_{MJp1w#cA z%bHvc-w0WyC6LBc;eA;f#}4lpko@Bzm{NMFCj9X9{#mQu=4t%+KuIljVfDT!hZlFC zj}-b}j-B-30^ZmT2aSCW>X*oMp{g*CBqA<86q{t6`Wy%Tk_ru-Tz+TXvRQY6E$ zz~ZXMaed%Imkp!F|)yeYGuB@{NbAZ zJ1uD=^|74DhLRlqt`UM1)Ox{Dry-+?3ae}$;Al`Zt`g5xC9eg0>M>_ZCfggUI$B-O ztHrg92jtgrV@Lag(sNMON70_d@mZ%wM)cBwtTz4t>4&m4$~|w?{0%G?_q2^)Q<9U| zc5AQoIj%0PmVOQ?FMd=e9b=a=i>Tst*WMy#DcokFN zSh+M%7Ez@YBWi1KH=viQ?JZxxeEKcb2eyUQ!(MWBm%^(0tPKRJ8D?DOwq;?Em73`m zFVsxu(OAN4i48Mm1#gLpHbjEODx9FCMY*m%rZH;kTLd}Ck=1AJx#+ZRZpwjK-2Sp) z2F$72MZ4#*=G~7kwx_7p(bB;QiicZL+w4J3sReF?E+gDcT4P~m@}ULiC?zdpIbfc1 zDuJ}+ptc$I6pLD{d4*Niw!?^^8!#N|Vq zsMYVuIab(BgTNL`Sp;%r`@qCIx7Ca#M_KadcNqw->XB$BKIm`MoU&er=osw)*BFFv z?Xyyd=*-Z`IEZg-8?KMUgtSD``$dTWqDMy8lI}sc*`RuMq`)~uWM#rFa-lAK`8e;; z*(J6>@b3On5pT@H%7i>IbA->2${26VcrMJJSlM$7{sgiRxMb2rGls_wiz}|yz{&ST zKc+B1JEl$^&B>i4Lof)S)KOoDawh>udHoPLZKJWgSqCIXEIG^C0tJ67U*QI%zbb#& zS8l|d;%NeWm;q`Wb;JTH^R}+ax&Io@4~&pXc{VS1#w>d);K4QwLcHzj`?(5#DUF#K zgy#MId894Y_UaK}6(+P!Mnqy@>!q=+N~3Kz#!mbE(g*91r|k8K2Ly*tD*HUP_y({T z56qtDCj3CF|3R|NUc4>kDFQHhTBQP)sSZ8Xp$hQ))dXPL9QZx5*k0bUL%!pS3BWh| ziyvl2O8U$flfSz4`?SH!bFmZplp*?Ij^87fBPiT_y3G? z^3B)TVL2L%5F0#~Sldk^%fsJpTPp?=!^RY`o*GehU_$sF9-9piZAMl(4|w_rqL&D8 zE)Vzr20$L<$Q2NK1f=D=^^CYg_7sgn$H}9T4zIP}#Y!b2{4Zvb_vWLYaqgj&kvmVHOU2q`P0ID zw8(;2zo?_tIC<;SQm=rXN5i!V9(~Z>H|f;ESE$i^YT4BGeP38unDvdYizwqO*1WWI zFqjlDRzo*-Go$CUd5AEFSCiHl=xyeA$V;1_zm1{&CJbT9x#6L}^|0r%oj4ff0R&es zIjmN8t)68>4z*t7&52%WTMmjB79#N*0JZHUg>)Tpn(^sN|H+{oz*S+qVNK?^;zIp_hvnQ*CFbyT%B)_@+D(foRaF8$0sr zX8S&7?7%JhIo*j1R3xmgaOCE%m3}G$&>B7~wbi_)!u+%Di(zyITOJC3z788LV6P!|DrLB7m%9NP{o)fP=R)@MQ zc@u;er#o+d3_0{Zk;RYizs+;~(E!SG76!itPnVIo`KVFoKjJV(`&zpU3!;&|#c!Ml zuDR&!gsBlc8(HN@aPB_yyAGjl&@=szJP4NUbQpr$qG+4HK583?`6J`Szs|b`c%Za# zQ+a4y1M?3s{I2hyc`kaU{nN}6#v_w!d%l`Ea-&L|=4&lRZrpQtT``jF z$Io973grYZ+EceM{ZfzM{zKVgUUK$2jUQtAE&FXo&i`|}3iuXQBEl#y#Ej@p%}@+R zbYq8dHrFecTWCN684#9`0po_?*O!*5pk%imE3J3mjKq%U8vjKG{0m8Q$E`;Jygw_F fkPf}KCK(p|_VlG+SRcXbISII#jcM`uYxn*QL#f$M literal 0 HcmV?d00001 diff --git a/classxt_1_1xfunction-members.html b/classxt_1_1xfunction-members.html new file mode 100644 index 000000000..5594c8e9b --- /dev/null +++ b/classxt_1_1xfunction-members.html @@ -0,0 +1,234 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
xt::xfunction< F, CT > Member List
+
+
+ +

This is the complete list of members for xt::xfunction< F, CT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
accessible_base typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
arguments() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
at(Args... args) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
back() constxt::xfunction< F, CT >
begin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
begin(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
bool_load_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
broadcast_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
broadcast_shape(S &shape, bool reuse_cache=false) constxt::xfunction< F, CT >inline
build_stepper(Func &&f, std::index_sequence< I... >) const noexcept -> const_stepper (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
cbegin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
cbegin(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
cend() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
cend(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_broadcast_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_layout_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_linear_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_pointer typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_reference typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_reverse_broadcast_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_reverse_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_reverse_layout_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_reverse_linear_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
const_stepper typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
contiguous_layout (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >static
crbegin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
crbegin(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
crend() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
crend(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
data_element(size_type i) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
xt::derived_cast() &noexceptxt::xexpression< xfunction< F, CT... > >inline
xt::xsharable_expression< xfunction< F, CT... > >::derived_cast() const &noexceptxt::xexpression< xfunction< F, CT... > >inline
xt::xsharable_expression< xfunction< F, CT... > >::derived_cast() &&noexceptxt::xexpression< xfunction< F, CT... > >inline
difference_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
dimension() const noexceptxt::xfunction< F, CT >inline
element(It first, It last) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
element(It first, It last) const -> const_referencext::xfunction< F, CT >inline
end() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
end(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
expression_tag typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
extension_base typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
flat(size_type i) constxt::xfunction< F, CT >inline
front() constxt::xfunction< F, CT >
functor() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
functor_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
has_linear_assign(const S &strides) const noexceptxt::xfunction< F, CT >inline
in_bounds(Args... args) constxt::xfunction< F, CT >
inner_shape_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
inner_types typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
is_contiguous() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
iterable_base typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
layout() const noexceptxt::xfunction< F, CT >inline
layout_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
linear_begin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_cbegin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_cend() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_crbegin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_crend() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_end() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
linear_rbegin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
linear_rend() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
load_simd(size_type i) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
load_simd(size_type i) const -> simd_return_type< requested_type > (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
only_scalar typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
operator value_type() const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
operator()(Args... args) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
operator()(Args... args) const -> const_referencext::xfunction< F, CT >inline
operator=(const xfunction &)=default (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
operator=(xfunction &&)=default (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
operator[](const S &index) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
operator[](std::initializer_list< I > index) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
operator[](size_type i) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
periodic(Args... args) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
pointer typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
rbegin() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
rbegin(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
reference typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
rend() const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
rend(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
reverse_broadcast_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
reverse_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
reverse_layout_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
reverse_linear_iterator typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
self_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
shape() constxt::xfunction< F, CT >inline
shape(size_type index) constxt::xfunction< F, CT >
xt::xconst_accessible< xfunction< F, CT... > >::shape(size_type index) constxt::xconst_accessible< xfunction< F, CT... > >inlineprivate
shape_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
simd_return_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
simd_value_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
size() const noexcept(noexcept(derived_cast().shape()))xt::xfunction< F, CT >
size_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
static_layout (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >static
stepper typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
stepper_begin(const S &shape) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >inline
tuple_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
unchecked(Args... args) const (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
unchecked(Args... args) const -> const_referencext::xfunction< F, CT >inline
value_type typedef (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
xconst_accessible< self_type > (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >friend
xconst_iterable< self_type > (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >friend
xfunction(Func &&f, CTA &&... e) noexceptxt::xfunction< F, CT >inline
xfunction(xfunction< FA, CTA... > xf) noexceptxt::xfunction< F, CT >inline
xfunction(const xfunction &)=default (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
xfunction(xfunction &&)=default (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
xfunction_iterator< F, CT... > (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >friend
xfunction_stepper< F, CT... > (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >friend
~xfunction()=default (defined in xt::xfunction< F, CT >)xt::xfunction< F, CT >
+
+ + + + diff --git a/classxt_1_1xfunction.html b/classxt_1_1xfunction.html new file mode 100644 index 000000000..d1ecb655d --- /dev/null +++ b/classxt_1_1xfunction.html @@ -0,0 +1,2363 @@ + + + + + + + +xtensor: xt::xfunction< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
xtensor +
+
+ +   + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
xt::xfunction< F, CT > Class Template Reference
+
+
+ +

Multidimensional function operating on xtensor expressions. + More...

+ +

#include <xfunction.hpp>

+
+Inheritance diagram for xt::xfunction< F, CT >:
+
+
+ + +xt::xconst_iterable< xfunction< F, CT... > > +xt::xsharable_expression< xfunction< F, CT... > > +xt::xconst_accessible< xfunction< F, CT... > > +xt::xexpression< xfunction< F, CT... > > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using self_type = xfunction<F, CT...>
 
using accessible_base = xconst_accessible<self_type>
 
using extension_base = extension::xfunction_base_t<F, CT...>
 
using expression_tag = typename extension_base::expression_tag
 
using only_scalar = all_xscalar<CT...>
 
using functor_type = typename std::remove_reference<F>::type
 
using tuple_type = std::tuple<CT...>
 
using inner_types = xcontainer_inner_types<self_type>
 
using value_type = typename inner_types::value_type
 
using reference = typename inner_types::reference
 
using const_reference = typename inner_types::const_reference
 
using pointer = value_type*
 
using const_pointer = const value_type*
 
using size_type = typename inner_types::size_type
 
using difference_type = common_difference_type_t<std::decay_t<CT>...>
 
using simd_value_type = xt_simd::simd_type<value_type>
 
using bool_load_type = detail::xfunction_bool_load_type_t<CT...>
 
template<class requested_type>
using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
 
using iterable_base = xconst_iterable<xfunction<F, CT...>>
 
using inner_shape_type = typename iterable_base::inner_shape_type
 
using shape_type = inner_shape_type
 
using stepper = typename iterable_base::stepper
 
using const_stepper = typename iterable_base::const_stepper
 
template<layout_type L>
using layout_iterator = typename iterable_base::template layout_iterator<L>
 
template<layout_type L>
using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
 
template<layout_type L>
using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
 
template<layout_type L>
using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
 
template<class S, layout_type L>
using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
 
template<class S, layout_type L>
using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
 
using const_linear_iterator = xfunction_iterator<F, CT...>
 
using linear_iterator = const_linear_iterator
 
using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>
 
using reverse_linear_iterator = std::reverse_iterator<linear_iterator>
 
using iterator = typename iterable_base::iterator
 
using const_iterator = typename iterable_base::const_iterator
 
using reverse_iterator = typename iterable_base::reverse_iterator
 
using const_reverse_iterator = typename iterable_base::const_reverse_iterator
 
- Public Types inherited from xt::xexpression< xfunction< F, CT... > >
using derived_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

xfunction (const xfunction &)=default
 
+xfunctionoperator= (const xfunction &)=default
 
xfunction (xfunction &&)=default
 
+xfunctionoperator= (xfunction &&)=default
 
+template<class... Args>
const_reference operator() (Args... args) const
 
+template<class... Args>
const_reference unchecked (Args... args) const
 
+template<class It>
const_reference element (It first, It last) const
 
+template<class S>
const_stepper stepper_begin (const S &shape) const noexcept
 
+template<class S>
const_stepper stepper_end (const S &shape, layout_type l) const noexcept
 
+template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
simd_return_type< requested_type > load_simd (size_type i) const
 
+size_type size () const noexcept(noexcept(derived_cast().shape()))
 Returns the size of the expression.
 
+size_type shape (size_type index) const
 Returns the i-th dimension of the expression.
 
+const_reference at (Args... args) const
 
+disable_integral_t< S, const_reference > operator[] (const S &index) const
 
+const_reference operator[] (std::initializer_list< I > index) const
 
+const_reference operator[] (size_type i) const
 
+const_reference back () const
 Returns a constant reference to last the element of the expression.
 
+const_reference front () const
 Returns a constant reference to first the element of the expression.
 
bool in_bounds (Args... args) const
 Returns true only if the the specified position is a valid entry in the expression.
 
+const_reference periodic (Args... args) const
 
+const_layout_iterator< L > begin () const noexcept
 
+const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
 
+const_layout_iterator< L > cbegin () const noexcept
 
+const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
 
+const_layout_iterator< L > cend () const noexcept
 
+const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > crbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > crend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
 
+const_layout_iterator< L > end () const noexcept
 
+const_broadcast_iterator< S, L > end (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rbegin () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
 
+const_reverse_layout_iterator< L > rend () const noexcept
 
+const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
 
Constructor
template<class Func, class... CTA, class U = std::enable_if_t<!std::is_base_of<std::decay_t<Func>, self_type>::value>>
 xfunction (Func &&f, CTA &&... e) noexcept
 Constructs an xfunction applying the specified function to the given arguments.
 
template<class FA, class... CTA>
 xfunction (xfunction< FA, CTA... > xf) noexcept
 Constructs an xfunction applying the specified function given by another xfunction with its arguments.
 
Data
const_reference flat (size_type i) const
 Returns a constant reference to the element at the specified position of the underlying contiguous storage of the function.
 
template<class... Args>
auto operator() (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the function.
 
template<class... Args>
auto unchecked (Args... args) const -> const_reference
 Returns a constant reference to the element at the specified position in the expression.
 
template<class It>
auto element (It first, It last) const -> const_reference
 Returns a constant reference to the element at the specified position in the function.
 
- Public Member Functions inherited from xt::xexpression< xfunction< F, CT... > >
derived_typederived_cast () &noexcept
 Returns a reference to the actual derived type of the xexpression.
 
const derived_typederived_cast () const &noexcept
 Returns a constant reference to the actual derived type of the xexpression.
 
derived_type derived_cast () &&noexcept
 Returns a constant reference to the actual derived type of the xexpression.
 
+ + + + + +

+Static Public Attributes

static constexpr layout_type static_layout = compute_layout(std::decay_t<CT>::static_layout...)
 
static constexpr bool contiguous_layout = static_layout != layout_type::dynamic
 
+ + + + + + + + + +

+Friends

class xfunction_iterator< F, CT... >
 
class xfunction_stepper< F, CT... >
 
class xconst_iterable< self_type >
 
class xconst_accessible< self_type >
 
+ + + + + + + + + + + + +

Size and shape

size_type dimension () const noexcept
 Returns the number of dimensions of the function.
 
const inner_shape_type & shape () const
 Returns the shape of the xfunction.
 
layout_type layout () const noexcept
 Returns the layout_type of the xfunction.
 
bool is_contiguous () const noexcept
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Broadcasting

template<class S>
bool broadcast_shape (S &shape, bool reuse_cache=false) const
 Broadcast the shape of the function to the specified parameter.
 
template<class S>
bool has_linear_assign (const S &strides) const noexcept
 Checks whether the xfunction can be linearly assigned to an expression with the specified strides.
 
const_linear_iterator linear_begin () const noexcept
 
const_linear_iterator linear_end () const noexcept
 
const_linear_iterator linear_cbegin () const noexcept
 
const_linear_iterator linear_cend () const noexcept
 
const_reverse_linear_iterator linear_rbegin () const noexcept
 
const_reverse_linear_iterator linear_rend () const noexcept
 
const_reverse_linear_iterator linear_crbegin () const noexcept
 
const_reverse_linear_iterator linear_crend () const noexcept
 
const_reference data_element (size_type i) const
 
template<class UT = self_type, class = typename std::enable_if<UT::only_scalar::value>::type>
 operator value_type () const
 
const tuple_type & arguments () const noexcept
 
const functor_type & functor () const noexcept
 
template<class S>
auto stepper_begin (const S &shape) const noexcept -> const_stepper
 
template<class S>
auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
 
template<class align, class requested_type, std::size_t N>
auto load_simd (size_type i) const -> simd_return_type< requested_type >
 
template<class Func, std::size_t... I>
auto build_stepper (Func &&f, std::index_sequence< I... >) const noexcept -> const_stepper
 
+ + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from xt::xsharable_expression< xfunction< F, CT... > >
xsharable_expression (const xsharable_expression &)=default
 
xsharable_expression (xsharable_expression &&)=default
 
+xsharable_expressionoperator= (const xsharable_expression &)=default
 
+xsharable_expressionoperator= (xsharable_expression &&)=default
 
- Protected Member Functions inherited from xt::xexpression< xfunction< F, CT... > >
xexpression (const xexpression &)=default
 
xexpression (xexpression &&)=default
 
+xexpressionoperator= (const xexpression &)=default
 
+xexpressionoperator= (xexpression &&)=default
 
+

Detailed Description

+
template<class F, class... CT>
+class xt::xfunction< F, CT >

Multidimensional function operating on xtensor expressions.

+

The xfunction class implements a multidimensional function operating on xtensor expressions.

+
Template Parameters
+ + + +
Fthe function type
CTthe closure types for arguments of the function
+
+
+ +

Definition at line 204 of file xfunction.hpp.

+

Member Typedef Documentation

+ +

◆ accessible_base

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::accessible_base = xconst_accessible<self_type>
+
+ +

Definition at line 212 of file xfunction.hpp.

+ +
+
+ +

◆ bool_load_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::bool_load_type = detail::xfunction_bool_load_type_t<CT...>
+
+ +

Definition at line 231 of file xfunction.hpp.

+ +
+
+ +

◆ broadcast_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<class S, layout_type L>
+ + + + +
using xt::xfunction< F, CT >::broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
+
+ +

Definition at line 256 of file xfunction.hpp.

+ +
+
+ +

◆ const_broadcast_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<class S, layout_type L>
+ + + + +
using xt::xfunction< F, CT >::const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
+
+ +

Definition at line 258 of file xfunction.hpp.

+ +
+
+ +

◆ const_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_iterator = typename iterable_base::const_iterator
+
+ +

Definition at line 270 of file xfunction.hpp.

+ +
+
+ +

◆ const_layout_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<layout_type L>
+ + + + +
using xt::xfunction< F, CT >::const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
+
+ +

Definition at line 249 of file xfunction.hpp.

+ +
+
+ +

◆ const_linear_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_linear_iterator = xfunction_iterator<F, CT...>
+
+ +

Definition at line 264 of file xfunction.hpp.

+ +
+
+ +

◆ const_pointer

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_pointer = const value_type*
+
+ +

Definition at line 224 of file xfunction.hpp.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_reference = typename inner_types::const_reference
+
+ +

Definition at line 222 of file xfunction.hpp.

+ +
+
+ +

◆ const_reverse_broadcast_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<class S, layout_type L>
+ + + + +
using xt::xfunction< F, CT >::const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
+
+ +

Definition at line 262 of file xfunction.hpp.

+ +
+
+ +

◆ const_reverse_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_reverse_iterator = typename iterable_base::const_reverse_iterator
+
+ +

Definition at line 272 of file xfunction.hpp.

+ +
+
+ +

◆ const_reverse_layout_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<layout_type L>
+ + + + +
using xt::xfunction< F, CT >::const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
+
+ +

Definition at line 253 of file xfunction.hpp.

+ +
+
+ +

◆ const_reverse_linear_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>
+
+ +

Definition at line 266 of file xfunction.hpp.

+ +
+
+ +

◆ const_stepper

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::const_stepper = typename iterable_base::const_stepper
+
+ +

Definition at line 241 of file xfunction.hpp.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::difference_type = common_difference_type_t<std::decay_t<CT>...>
+
+ +

Definition at line 226 of file xfunction.hpp.

+ +
+
+ +

◆ expression_tag

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::expression_tag = typename extension_base::expression_tag
+
+ +

Definition at line 214 of file xfunction.hpp.

+ +
+
+ +

◆ extension_base

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::extension_base = extension::xfunction_base_t<F, CT...>
+
+ +

Definition at line 213 of file xfunction.hpp.

+ +
+
+ +

◆ functor_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::functor_type = typename std::remove_reference<F>::type
+
+ +

Definition at line 216 of file xfunction.hpp.

+ +
+
+ +

◆ inner_shape_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::inner_shape_type = typename iterable_base::inner_shape_type
+
+ +

Definition at line 237 of file xfunction.hpp.

+ +
+
+ +

◆ inner_types

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::inner_types = xcontainer_inner_types<self_type>
+
+ +

Definition at line 219 of file xfunction.hpp.

+ +
+
+ +

◆ iterable_base

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::iterable_base = xconst_iterable<xfunction<F, CT...>>
+
+ +

Definition at line 236 of file xfunction.hpp.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::iterator = typename iterable_base::iterator
+
+ +

Definition at line 269 of file xfunction.hpp.

+ +
+
+ +

◆ layout_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<layout_type L>
+ + + + +
using xt::xfunction< F, CT >::layout_iterator = typename iterable_base::template layout_iterator<L>
+
+ +

Definition at line 247 of file xfunction.hpp.

+ +
+
+ +

◆ linear_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::linear_iterator = const_linear_iterator
+
+ +

Definition at line 265 of file xfunction.hpp.

+ +
+
+ +

◆ only_scalar

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::only_scalar = all_xscalar<CT...>
+
+ +

Definition at line 215 of file xfunction.hpp.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::pointer = value_type*
+
+ +

Definition at line 223 of file xfunction.hpp.

+ +
+
+ +

◆ reference

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::reference = typename inner_types::reference
+
+ +

Definition at line 221 of file xfunction.hpp.

+ +
+
+ +

◆ reverse_broadcast_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<class S, layout_type L>
+ + + + +
using xt::xfunction< F, CT >::reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
+
+ +

Definition at line 260 of file xfunction.hpp.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::reverse_iterator = typename iterable_base::reverse_iterator
+
+ +

Definition at line 271 of file xfunction.hpp.

+ +
+
+ +

◆ reverse_layout_iterator

+ +
+
+
+template<class F, class... CT>
+
+template<layout_type L>
+ + + + +
using xt::xfunction< F, CT >::reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
+
+ +

Definition at line 251 of file xfunction.hpp.

+ +
+
+ +

◆ reverse_linear_iterator

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::reverse_linear_iterator = std::reverse_iterator<linear_iterator>
+
+ +

Definition at line 267 of file xfunction.hpp.

+ +
+
+ +

◆ self_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::self_type = xfunction<F, CT...>
+
+ +

Definition at line 211 of file xfunction.hpp.

+ +
+
+ +

◆ shape_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::shape_type = inner_shape_type
+
+ +

Definition at line 238 of file xfunction.hpp.

+ +
+
+ +

◆ simd_return_type

+ +
+
+
+template<class F, class... CT>
+
+template<class requested_type>
+ + + + +
using xt::xfunction< F, CT >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
+
+ +

Definition at line 234 of file xfunction.hpp.

+ +
+
+ +

◆ simd_value_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::simd_value_type = xt_simd::simd_type<value_type>
+
+ +

Definition at line 228 of file xfunction.hpp.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::size_type = typename inner_types::size_type
+
+ +

Definition at line 225 of file xfunction.hpp.

+ +
+
+ +

◆ stepper

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::stepper = typename iterable_base::stepper
+
+ +

Definition at line 240 of file xfunction.hpp.

+ +
+
+ +

◆ tuple_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::tuple_type = std::tuple<CT...>
+
+ +

Definition at line 217 of file xfunction.hpp.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<class F, class... CT>
+ + + + +
using xt::xfunction< F, CT >::value_type = typename inner_types::value_type
+
+ +

Definition at line 220 of file xfunction.hpp.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ xfunction() [1/2]

+ +
+
+
+template<class F, class... CT>
+
+template<class Func, class... CTA, class U>
+ + + + + +
+ + + + + + + + + + + +
xt::xfunction< F, CT >::xfunction (Func && f,
CTA &&... e )
+
+inlinenoexcept
+
+ +

Constructs an xfunction applying the specified function to the given arguments.

+
Parameters
+ + + +
fthe function to apply
ethe xexpression arguments
+
+
+ +

Definition at line 501 of file xfunction.hpp.

+ +
+
+ +

◆ xfunction() [2/2]

+ +
+
+
+template<class F, class... CT>
+
+template<class FA, class... CTA>
+ + + + + +
+ + + + + + + +
xt::xfunction< F, CT >::xfunction (xfunction< FA, CTA... > xf)
+
+inlinenoexcept
+
+ +

Constructs an xfunction applying the specified function given by another xfunction with its arguments.

+
Parameters
+ + +
xfthe xfunction to apply
+
+
+ +

Definition at line 514 of file xfunction.hpp.

+ +
+
+

Member Function Documentation

+ +

◆ arguments()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::arguments () const
+
+inlinenoexcept
+
+ +

Definition at line 858 of file xfunction.hpp.

+ +
+
+ +

◆ broadcast_shape()

+ +
+
+
+template<class F, class... CT>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
bool xt::xfunction< F, CT >::broadcast_shape (S & shape,
bool reuse_cache = false ) const
+
+inline
+
+ +

Broadcast the shape of the function to the specified parameter.

+
Parameters
+ + + +
shapethe result shape
reuse_cacheboolean for reusing a previously computed shape
+
+
+
Returns
a boolean indicating whether the broadcasting is trivial
+ +

Definition at line 711 of file xfunction.hpp.

+ +
+
+ +

◆ build_stepper()

+ +
+
+
+template<class F, class... CT>
+
+template<class Func, std::size_t... I>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xfunction< F, CT >::build_stepper (Func && f,
std::index_sequence< I... >  ) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 871 of file xfunction.hpp.

+ +
+
+ +

◆ data_element()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::data_element (size_type i) const
+
+inline
+
+ +

Definition at line 826 of file xfunction.hpp.

+ +
+
+ +

◆ dimension()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::dimension () const
+
+inlinenoexcept
+
+ +

Returns the number of dimensions of the function.

+ +

Definition at line 530 of file xfunction.hpp.

+ +
+
+ +

◆ element()

+ +
+
+
+template<class F, class... CT>
+
+template<class It>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xfunction< F, CT >::element (It first,
It last ) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the function.

+
Parameters
+ + + +
firstiterator starting the sequence of indices
lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the container.
+
+
+ +

Definition at line 685 of file xfunction.hpp.

+ +
+
+ +

◆ flat()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::flat (size_type index) const
+
+inline
+
+ +

Returns a constant reference to the element at the specified position of the underlying contiguous storage of the function.

+
Parameters
+ + +
indexindex to underlying flat storage.
+
+
+ +

Definition at line 631 of file xfunction.hpp.

+ +
+
+ +

◆ functor()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::functor () const
+
+inlinenoexcept
+
+ +

Definition at line 864 of file xfunction.hpp.

+ +
+
+ +

◆ has_linear_assign()

+ +
+
+
+template<class F, class... CT>
+
+template<class S>
+ + + + + +
+ + + + + + + +
bool xt::xfunction< F, CT >::has_linear_assign (const S & strides) const
+
+inlinenoexcept
+
+ +

Checks whether the xfunction can be linearly assigned to an expression with the specified strides.

+
Returns
a boolean indicating whether a linear assign is possible
+ +

Definition at line 736 of file xfunction.hpp.

+ +
+
+ +

◆ in_bounds()

+ +
+
+
+template<class F, class... CT>
+ + + + + + + +
bool xt::xconst_accessible< self_type >::in_bounds (Args... args) const
+
+ +

Returns true only if the the specified position is a valid entry in the expression.

+
Parameters
+ + +
argsa list of indices specifying the position in the expression.
+
+
+
Returns
bool
+ +
+
+ +

◆ is_contiguous()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
bool xt::xfunction< F, CT >::is_contiguous () const
+
+inlinenoexcept
+
+ +

Definition at line 578 of file xfunction.hpp.

+ +
+
+ +

◆ layout()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
layout_type xt::xfunction< F, CT >::layout () const
+
+inlinenoexcept
+
+ +

Returns the layout_type of the xfunction.

+ +

Definition at line 566 of file xfunction.hpp.

+ +
+
+ +

◆ linear_begin()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_begin () const
+
+inlinenoexcept
+
+ +

Definition at line 748 of file xfunction.hpp.

+ +
+
+ +

◆ linear_cbegin()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_cbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 760 of file xfunction.hpp.

+ +
+
+ +

◆ linear_cend()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_cend () const
+
+inlinenoexcept
+
+ +

Definition at line 770 of file xfunction.hpp.

+ +
+
+ +

◆ linear_crbegin()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_crbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 792 of file xfunction.hpp.

+ +
+
+ +

◆ linear_crend()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_crend () const
+
+inlinenoexcept
+
+ +

Definition at line 798 of file xfunction.hpp.

+ +
+
+ +

◆ linear_end()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_end () const
+
+inlinenoexcept
+
+ +

Definition at line 754 of file xfunction.hpp.

+ +
+
+ +

◆ linear_rbegin()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_rbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 780 of file xfunction.hpp.

+ +
+
+ +

◆ linear_rend()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::linear_rend () const
+
+inlinenoexcept
+
+ +

Definition at line 786 of file xfunction.hpp.

+ +
+
+ +

◆ load_simd()

+ +
+
+
+template<class F, class... CT>
+
+template<class align, class requested_type, std::size_t N>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::load_simd (size_type i) const -> simd_return_type<requested_type> +
+
+inline
+
+ +

Definition at line 846 of file xfunction.hpp.

+ +
+
+ +

◆ operator value_type()

+ +
+
+
+template<class F, class... CT>
+
+template<class UT, class>
+ + + + + +
+ + + + + + + +
xt::xfunction< F, CT >::operator value_type () const
+
+inline
+
+ +

Definition at line 839 of file xfunction.hpp.

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<class F, class... CT>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::operator() (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the function.

+
Parameters
+ + +
argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the function.
+
+
+ +

Definition at line 605 of file xfunction.hpp.

+ +
+
+ +

◆ shape()

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::shape () const
+
+inline
+
+ +

Returns the shape of the xfunction.

+ +

Definition at line 550 of file xfunction.hpp.

+ +
+
+ +

◆ stepper_begin()

+ +
+
+
+template<class F, class... CT>
+
+template<class S>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::stepper_begin (const S & shape) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 805 of file xfunction.hpp.

+ +
+
+ +

◆ stepper_end()

+ +
+
+
+template<class F, class... CT>
+
+template<class S>
+ + + + + +
+ + + + + + + + + + + +
auto xt::xfunction< F, CT >::stepper_end (const S & shape,
layout_type l ) const -> const_stepper +
+
+inlinenoexcept
+
+ +

Definition at line 816 of file xfunction.hpp.

+ +
+
+ +

◆ unchecked()

+ +
+
+
+template<class F, class... CT>
+
+template<class... Args>
+ + + + + +
+ + + + + + + +
auto xt::xfunction< F, CT >::unchecked (Args... args) const -> const_reference +
+
+inline
+
+ +

Returns a constant reference to the element at the specified position in the expression.

+
Parameters
+ + +
argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
+
+
+
Warning
This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
+
+This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
xt::xarray<double> a = {{0, 1}, {2, 3}};
+
xt::xarray<double> b = {0, 1};
+
auto fd = a + b;
+
double res = fd.unchecked(0, 1);
+
xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
Alias template on xarray_container with default parameters for data container type and shape / stride...
+
+ +

Definition at line 663 of file xfunction.hpp.

+ +
+
+

Friends And Related Symbol Documentation

+ +

◆ xconst_accessible< self_type >

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + +
friend class xconst_accessible< self_type >
+
+friend
+
+ +

Definition at line 369 of file xfunction.hpp.

+ +
+
+ +

◆ xconst_iterable< self_type >

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + +
friend class xconst_iterable< self_type >
+
+friend
+
+ +

Definition at line 369 of file xfunction.hpp.

+ +
+
+ +

◆ xfunction_iterator< F, CT... >

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + +
friend class xfunction_iterator< F, CT... >
+
+friend
+
+ +

Definition at line 369 of file xfunction.hpp.

+ +
+
+ +

◆ xfunction_stepper< F, CT... >

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + +
friend class xfunction_stepper< F, CT... >
+
+friend
+
+ +

Definition at line 369 of file xfunction.hpp.

+ +
+
+

Member Data Documentation

+ +

◆ contiguous_layout

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + +
bool xt::xfunction< F, CT >::contiguous_layout = static_layout != layout_type::dynamic
+
+staticconstexpr
+
+ +

Definition at line 244 of file xfunction.hpp.

+ +
+
+ +

◆ static_layout

+ +
+
+
+template<class F, class... CT>
+ + + + + +
+ + + + +
layout_type xt::xfunction< F, CT >::static_layout = compute_layout(std::decay_t<CT>::static_layout...)
+
+staticconstexpr
+
+ +

Definition at line 243 of file xfunction.hpp.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
  • +
+
+
+ + + + diff --git a/classxt_1_1xfunction.js b/classxt_1_1xfunction.js new file mode 100644 index 000000000..f062d1115 --- /dev/null +++ b/classxt_1_1xfunction.js @@ -0,0 +1,19 @@ +var classxt_1_1xfunction = +[ + [ "xfunction", "classxt_1_1xfunction.html#a63fa0bf1c338ba8ff119d97dc08de3b8", null ], + [ "xfunction", "classxt_1_1xfunction.html#a08a95dc45143b002b300a6634774940d", null ], + [ "back", "classxt_1_1xfunction.html#a02e02645e16da67cf9805d8bb06ec07e", null ], + [ "broadcast_shape", "classxt_1_1xfunction.html#a2ef3340ac01fdce40b012db3ca48d2ef", null ], + [ "dimension", "classxt_1_1xfunction.html#a55ade0ce540d29ce39f0ca051946ff96", null ], + [ "element", "classxt_1_1xfunction.html#a31d1e0136cb9cfd071120e47b10ecaea", null ], + [ "flat", "classxt_1_1xfunction.html#a8313f6caaa7e9229c10e3d221a8ab77b", null ], + [ "front", "classxt_1_1xfunction.html#abd9b67dadb00c0bd094a71fe99ab0dfe", null ], + [ "has_linear_assign", "classxt_1_1xfunction.html#a7007affb74eb4e8e6dfbba267f6de5ba", null ], + [ "in_bounds", "classxt_1_1xfunction.html#a1caad16507368ef12100f68950787c47", null ], + [ "layout", "classxt_1_1xfunction.html#a40bd918815f66f76ad0f05d3e33fbdbb", null ], + [ "operator()", "classxt_1_1xfunction.html#af161015b6c0ce2dc7654f26b6e1a16c2", null ], + [ "shape", "classxt_1_1xfunction.html#a41f3d01620f13c854d163235d03e534d", null ], + [ "shape", "classxt_1_1xfunction.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb", null ], + [ "size", "classxt_1_1xfunction.html#acf990ad65941e747a737622343bb43c2", null ], + [ "unchecked", "classxt_1_1xfunction.html#ab99bdf99fd4e28328b2f4a24d6f763c2", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfunction.png b/classxt_1_1xfunction.png new file mode 100644 index 0000000000000000000000000000000000000000..a207cd9627f30d9c15b7be037a52bbab77402051 GIT binary patch literal 3215 zcmd5qyrJ6DdNHC!WStA4qTZlk_EOP^$XZoW*`pl1c=KFE(x%d0-IqyB+ zcg}fl_Ho2ldRtAm!eB5x|G)a4gu%2~kbY~k79_h!_hO)n+3~MW`>9kaNS&NsOwRkU z+Rf>UOFN2QO^%F=K+j#fkPo4`E!dNYQ!wa$eZV!zZ(y)(rvAR(r>|zB@vl
  • qoV-y73pAb9XM5X zQCCy@mtuX4g~@XAH(`jLDzJR2Fh4Xp8uiNuqy^l@ar-;}g%sJmXxSE%;S#U0OYMs_AU$gDbE&Pd4I&_IzZ{RJsixB| z4@9knhXa7)24pB6AZpa{&T(MThAp+MP)9sYX)nNw9emM-JKOp4Gth1>9@v;5_@V(o z6}53wK?6afKd8P)GVgH971~3e2a8ayU4v;r;a!Jd7(Sey{uAWt$hFYz>L6(>byYLR zARIf}%d*w+fVJ3hq21P;E>UmF=DI6tpF7*THzp6+sgJ_{>7<+(@oSdsl9+OmrtQ|H z$h05L8LFz0FD2xDr!`Wvb(Tj|uE!NX% zMG%MmU|KAQr7?9##o{U^zm=nl zu?XuJ7bg+yt8WVv+%ldZhKt3orTrpoN}sBI=0Z%$(^C}jboCaxusg8!NeogV6yQxu z{EjzUsTSUlhH%2@6NJw)2XD;ZWGQ#i3QK2Gq=t$ozH1=MYi@?E%p(yGP>e`}NonCH zGLm0J$s%x;*kX~Sot#^pQxZgnF9x7t#JLpN-$HnGdwL@4atvG7&0rt# zGF$Vi<)PV2ewffZR~$%#uLXgrCo?1hHdAi~6&+||?>W;UWeC8&T1K)W ze2_9!-K~pph_!N?nbpjTCO#OJjuKm~bM8;dHZR>4Kii*fS+eHjNt8!548S~Y&%N9+ zZF{4Zv8Z4adn!Au4SYV@e>#&UaNjGv8PMIbiFd{I71PxUTS+_gg#+F}Jkfw{<%;Hx z38swudoGIUq7OdF=}$?kLdhPoz7f1uMSaWIps0xG4p_UTVrc$ndaQJA!V&7(74V+@r`Zp({_LOSw~AevE6` z@INozSxah=8Ha}be9#OL+M_T~iN7N+!+S(hKT&92GTemlv5P#uva+jxCi5Eru=n8c zLoXS7H+ei42(7yJYBX*cuw}qA=d7aO*3+-~aPHKny{W?->(wark;$OXpN`|x)JfLA0NNRt&wKv0lHNjnwBgDQl=lAydxK%$A~@ykh6aJ7gn zTu4M^83>tL7{#K4Jf59$7YP8z2=iG>k7=hqqT^<^*n1Am`yQr3?Lf6VQJv%#E$A`; z2zwv)f(lMG)L(#Vlwjx<3j~p!`yYc-c96#@J9W+z)I9`v0wG%UXG0jXp_)LWT%>}r z1$#O`knm|OBr0fpl-N$)r)*!=fgt54DkLsanS5yZ@0j#ry5}ALP1=WKR@#$eTAJ9q^6P|qVRZrAt*ibh@57yrlXfdQaq>B0 zr~Tx(&?Z&q>F&1gDep}l-(x@vk*|XmbXWZe&rB)71?=kxulg@jbxMD4h4(cpTYnvm zA@2oUWM_lnZ;WdYzI$k-eRWf(<5}A*x$eHbK~~;l7h!2Nqm!{09c)WOvNJo%H|K2{j!WH}aq{FOf(-@q)$yZB1=iVm_Ai zziOA^C$b`T{0Q~A^|o)e|LZ=Nn=!>zq77o?IB^!|)wKL(96MW+ z|7b`Au7B$%s`GDy`dk#+=)w4P2H2Iz + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunction_iterator< F, CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunction_iterator< F, CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    equal(const self_type &rhs) const (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    functor_type typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    iterator_category typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    less_than(const self_type &rhs) const (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    operator*() const (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    operator++() (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    operator+=(difference_type n) (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    operator-(const self_type &rhs) const (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    operator--() (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    operator-=(difference_type n) (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    pointer typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    reference typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    self_type typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    tuple_max_diff(std::index_sequence< I... >, const data_type &lhs, const data_type &rhs) const -> difference_type (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    value_type typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    xfunction_iterator(const xfunction_type *func, It &&... it) noexcept (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >inline
    xfunction_type typedef (defined in xt::xfunction_iterator< F, CT >)xt::xfunction_iterator< F, CT >
    +
    + + + + diff --git a/classxt_1_1xfunction__iterator.html b/classxt_1_1xfunction__iterator.html new file mode 100644 index 000000000..823e74c42 --- /dev/null +++ b/classxt_1_1xfunction__iterator.html @@ -0,0 +1,635 @@ + + + + + + + +xtensor: xt::xfunction_iterator< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunction_iterator< F, CT > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xfunction_iterator< F, CT >:
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xfunction_iterator<F, CT...>
     
    using functor_type = typename std::remove_reference<F>::type
     
    using xfunction_type = xfunction<F, CT...>
     
    using value_type = typename xfunction_type::value_type
     
    using reference = typename xfunction_type::value_type
     
    using pointer = typename xfunction_type::const_pointer
     
    using difference_type = typename xfunction_type::difference_type
     
    using iterator_category = std::random_access_iterator_tag
     
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    Broadcasting
    template<class... It>
     xfunction_iterator (const xfunction_type *func, It &&... it) noexcept
     
    self_typeoperator++ ()
     
    self_typeoperator-- ()
     
    self_typeoperator+= (difference_type n)
     
    self_typeoperator-= (difference_type n)
     
    difference_type operator- (const self_type &rhs) const
     
    reference operator* () const
     
    bool equal (const self_type &rhs) const
     
    bool less_than (const self_type &rhs) const
     
    template<std::size_t... I>
    auto tuple_max_diff (std::index_sequence< I... >, const data_type &lhs, const data_type &rhs) const -> difference_type
     
    +

    Detailed Description

    +
    template<class F, class... CT>
    +class xt::xfunction_iterator< F, CT >
    +

    Definition at line 382 of file xfunction.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::difference_type = typename xfunction_type::difference_type
    +
    + +

    Definition at line 398 of file xfunction.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::functor_type = typename std::remove_reference<F>::type
    +
    + +

    Definition at line 392 of file xfunction.hpp.

    + +
    +
    + +

    ◆ iterator_category

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::iterator_category = std::random_access_iterator_tag
    +
    + +

    Definition at line 399 of file xfunction.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::pointer = typename xfunction_type::const_pointer
    +
    + +

    Definition at line 397 of file xfunction.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::reference = typename xfunction_type::value_type
    +
    + +

    Definition at line 396 of file xfunction.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::self_type = xfunction_iterator<F, CT...>
    +
    + +

    Definition at line 391 of file xfunction.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::value_type = typename xfunction_type::value_type
    +
    + +

    Definition at line 395 of file xfunction.hpp.

    + +
    +
    + +

    ◆ xfunction_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_iterator< F, CT >::xfunction_type = xfunction<F, CT...>
    +
    + +

    Definition at line 393 of file xfunction.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xfunction_iterator()

    + +
    +
    +
    +template<class F, class... CT>
    +
    +template<class... It>
    + + + + + +
    + + + + + + + + + + + +
    xt::xfunction_iterator< F, CT >::xfunction_iterator (const xfunction_type * func,
    It &&... it )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 900 of file xfunction.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ equal()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    bool xt::xfunction_iterator< F, CT >::equal (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 969 of file xfunction.hpp.

    + +
    +
    + +

    ◆ less_than()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    bool xt::xfunction_iterator< F, CT >::less_than (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 979 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator*()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 957 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator++()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::operator++ ()
    +
    +inline
    +
    + +

    Definition at line 907 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator+=()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::operator+= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 929 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator-()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::operator- (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 951 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator--()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::operator-- ()
    +
    +inline
    +
    + +

    Definition at line 918 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator-=()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::operator-= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 940 of file xfunction.hpp.

    + +
    +
    + +

    ◆ tuple_max_diff()

    + +
    +
    +
    +template<class F, class... CT>
    +
    +template<std::size_t... I>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::xfunction_iterator< F, CT >::tuple_max_diff (std::index_sequence< I... > ,
    const data_type & lhs,
    const data_type & rhs ) const -> difference_type +
    +
    +inline
    +
    + +

    Definition at line 990 of file xfunction.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xfunction__iterator.png b/classxt_1_1xfunction__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..0c7b3f77d417eaf488f0cf4b80c367179da595d8 GIT binary patch literal 1999 zcmd5-dsvcJ82|Fx+_aw3YMNO|WfwzB)G3OZQ@|7=;x(h1o6n}`6L=@Y>>)B#@(KvZKB)HB_W#Zw-}^i7d(Q8i^WMHoQP^-> z8%G-e0BpgC&}aa#;J`R)wK@DP{Q=<#3#X{aBOe-u1S~q!@AI7qN{@n%5N<`ch z?(w$IXgzB>wNHWE9fc$$GV;Wh6NM4^1vYMAmQy&KpOcmIqR&Y&OXMapQ-Q|rXV=&JwLF8G_><3a zy=jvWXJRr5PiH;9!kcRMbyUWft6$|JpX8O#^aLk8u8%yC(e8cO*D$lauus=il65=p z20ae9e3#dpq$Ge!qF8J$?Vo#M$mk&k= z9sUp~$DkEq7FvXp=1VBI5IJfRiCLY3PATPcq5SkwCBI?Y7=rKbqKz*s{K3Q`O{=TG z#2;{#tG?5E{d;AqLAX|pRqbUn%XnMfnf4RA-qpEVv4;Ck2XLsVNn8^ItOocp7o%9U z75E@XXR#JA3j#KsqZzill>+eO;igWU(PmK^tQN*tSiZ5JRljFc0UmaD*PAvc!^gZ? z@Ahu}rx!VZnb8RMlvVKBwE)~v%uEM;9rEs=^Y4gkX8+$rukCAULh$%sYHW;cGz)MO z+ci07`w!>enP#rXjKCsU{HQ5>TSVnyp!bJ`b2MSw=Ze99Rv8gq}G%LvyyTmJz zI~|It-ZVa~3M=Aqrxl9+k}UruKTKh3+VT+kURH+;!qecZY42U)WNQ!YE>g9qGY1-0 z4jQKXShj-!av#8fR!Fhh0L)&k> z?;hNeDEsC}sFXic630!Cp%8TThenp5b?{X$G^|eDdn;VmKb+QDo0oW-RiwA~e{0J) z@L|eN6&hu8toQ!5Zk%%m$5E24$hAwBkpB`jVXnh&!7%P!!(v$hd4YnQgS!q#=EyNl z81_kfa$5&!I$W9NrEo)Kir=^u>1ufrcBxM%&iFoG6g69WJlgoyqQn2`Yim=Sis1Bo z8?YrfLE$Z?$iXT41|*Ard@X~FKSsDLOkpkzFqrE*{sKKwwKo8GfFEN+>q3&x{td=$ BxDx;X literal 0 HcmV?d00001 diff --git a/classxt_1_1xfunction__stepper-members.html b/classxt_1_1xfunction__stepper-members.html new file mode 100644 index 000000000..cda5edc5b --- /dev/null +++ b/classxt_1_1xfunction__stepper-members.html @@ -0,0 +1,143 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunction_stepper< F, CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunction_stepper< F, CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    functor_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    operator*() const (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    pointer typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    reference typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    reset(size_type dim) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    reset_back(size_type dim) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    self_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    shape_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    simd_return_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    size_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    step(size_type dim) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    step(size_type dim, size_type n) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    step_back(size_type dim) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    step_back(size_type dim, size_type n) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    step_leading() (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    step_simd() (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    step_simd() -> simd_return_type< T > (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    to_begin() (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    to_end(layout_type l) (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    value_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    xfunction_stepper(const xfunction_type *func, St &&... st) noexcept (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >inline
    xfunction_type typedef (defined in xt::xfunction_stepper< F, CT >)xt::xfunction_stepper< F, CT >
    +
    + + + + diff --git a/classxt_1_1xfunction__stepper.html b/classxt_1_1xfunction__stepper.html new file mode 100644 index 000000000..c9bf973dd --- /dev/null +++ b/classxt_1_1xfunction__stepper.html @@ -0,0 +1,738 @@ + + + + + + + +xtensor: xt::xfunction_stepper< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunction_stepper< F, CT > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xfunction_stepper<F, CT...>
     
    using functor_type = typename std::remove_reference<F>::type
     
    using xfunction_type = xfunction<F, CT...>
     
    using value_type = typename xfunction_type::value_type
     
    using reference = typename xfunction_type::reference
     
    using pointer = typename xfunction_type::const_pointer
     
    using size_type = typename xfunction_type::size_type
     
    using difference_type = typename xfunction_type::difference_type
     
    using shape_type = typename xfunction_type::shape_type
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class T>
    simd_return_type< T > step_simd ()
     
    Broadcasting
    template<class... St>
     xfunction_stepper (const xfunction_type *func, St &&... st) noexcept
     
    void step (size_type dim)
     
    void step_back (size_type dim)
     
    void step (size_type dim, size_type n)
     
    void step_back (size_type dim, size_type n)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    reference operator* () const
     
    void step_leading ()
     
    template<class T>
    auto step_simd () -> simd_return_type< T >
     
    +

    Detailed Description

    +
    template<class F, class... CT>
    +class xt::xfunction_stepper< F, CT >
    +

    Definition at line 440 of file xfunction.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::difference_type = typename xfunction_type::difference_type
    +
    + +

    Definition at line 452 of file xfunction.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::functor_type = typename std::remove_reference<F>::type
    +
    + +

    Definition at line 445 of file xfunction.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::pointer = typename xfunction_type::const_pointer
    +
    + +

    Definition at line 450 of file xfunction.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::reference = typename xfunction_type::reference
    +
    + +

    Definition at line 449 of file xfunction.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::self_type = xfunction_stepper<F, CT...>
    +
    + +

    Definition at line 444 of file xfunction.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::shape_type = typename xfunction_type::shape_type
    +
    + +

    Definition at line 454 of file xfunction.hpp.

    + +
    +
    + +

    ◆ simd_return_type

    + +
    +
    +
    +template<class F, class... CT>
    +
    +template<class requested_type>
    + + + + +
    using xt::xfunction_stepper< F, CT >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
    +
    + +

    Definition at line 457 of file xfunction.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::size_type = typename xfunction_type::size_type
    +
    + +

    Definition at line 451 of file xfunction.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::value_type = typename xfunction_type::value_type
    +
    + +

    Definition at line 448 of file xfunction.hpp.

    + +
    +
    + +

    ◆ xfunction_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xfunction_stepper< F, CT >::xfunction_type = xfunction<F, CT...>
    +
    + +

    Definition at line 446 of file xfunction.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xfunction_stepper()

    + +
    +
    +
    +template<class F, class... CT>
    +
    +template<class... St>
    + + + + + +
    + + + + + + + + + + + +
    xt::xfunction_stepper< F, CT >::xfunction_stepper (const xfunction_type * func,
    St &&... st )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1022 of file xfunction.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_stepper< F, CT >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 1109 of file xfunction.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1069 of file xfunction.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1079 of file xfunction.hpp.

    + +
    +
    + +

    ◆ step() [1/2]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::step (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1029 of file xfunction.hpp.

    + +
    +
    + +

    ◆ step() [2/2]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xfunction_stepper< F, CT >::step (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 1049 of file xfunction.hpp.

    + +
    +
    + +

    ◆ step_back() [1/2]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::step_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1039 of file xfunction.hpp.

    + +
    +
    + +

    ◆ step_back() [2/2]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xfunction_stepper< F, CT >::step_back (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 1059 of file xfunction.hpp.

    + +
    +
    + +

    ◆ step_leading()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::step_leading ()
    +
    +inline
    +
    + +

    Definition at line 1134 of file xfunction.hpp.

    + +
    +
    + +

    ◆ step_simd()

    + +
    +
    +
    +template<class F, class... CT>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xfunction_stepper< F, CT >::step_simd () -> simd_return_type<T> +
    +
    +inline
    +
    + +

    Definition at line 1122 of file xfunction.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 1089 of file xfunction.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    void xt::xfunction_stepper< F, CT >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 1099 of file xfunction.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xfunctor__adaptor-members.html b/classxt_1_1xfunctor__adaptor-members.html new file mode 100644 index 000000000..2dc5fea1e --- /dev/null +++ b/classxt_1_1xfunctor__adaptor-members.html @@ -0,0 +1,253 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunctor_adaptor< F, CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunctor_adaptor< F, CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    assign_temporary(temporary_type &&)xt::xcontainer_semantic< xfunctor_adaptor< F, CT > >inline
    back()xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    back() constxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    back()xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    back() constxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    backstrides() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    base_type typedef (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    begin() noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    begin() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    cbegin() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    cend() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    crbegin() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    crend() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    element(IT first, IT last) -> referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    element(IT first, IT last) const -> const_referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    element(IT first, IT last) -> referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    element(IT first, IT last) const -> const_referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    end() noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    end() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    expression() noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    expression() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    front()xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    front() constxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    front()xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    front() constxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    has_linear_assign(const S &strides) constxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    layout() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator()(Args... args) -> referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    operator()(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    operator()(Args... args) -> referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    operator()(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator=(const xexpression< E > &e) (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    operator=(const E &e) (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    operator=(const xexpression< E > &e) -> self_type &xt::xfunctor_adaptor< F, CT >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_adaptor< F, CT > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rbegin() noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rbegin() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rend() noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rend() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    reshape(S &&shape, layout_type layout=base_type::static_layout) & (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    resize(S &&shape, bool force=false) (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    resize(S &&shape, layout_type l) (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    resize(S &&shape, const strides_type &strides) (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    self_type typedef (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    semantic_base typedef (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    shape() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    shape_type typedef (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    size() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    strides() const noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    strides_type typedef (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    unchecked(Args... args) -> referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    unchecked(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    unchecked(Args... args) -> referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    unchecked(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    xaccessible< self_type > (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >friend
    xcontainer_semantic< self_type > (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >friend
    xexpression_type typedef (defined in xt::xfunctor_adaptor< F, CT >)xt::xfunctor_adaptor< F, CT >
    xfunctor_applier_base(undecay_expression) noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inlineexplicit
    xfunctor_applier_base(Func &&, E &&) noexceptxt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >inline
    +
    + + + + diff --git a/classxt_1_1xfunctor__adaptor.html b/classxt_1_1xfunctor__adaptor.html new file mode 100644 index 000000000..c7f120933 --- /dev/null +++ b/classxt_1_1xfunctor__adaptor.html @@ -0,0 +1,1296 @@ + + + + + + + +xtensor: xt::xfunctor_adaptor< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunctor_adaptor< F, CT > Class Template Reference
    +
    +
    + +

    Adapt a container with a functor, forwarding methods such as resize / reshape. + More...

    + +

    #include <xfunctor_view.hpp>

    +
    +Inheritance diagram for xt::xfunctor_adaptor< F, CT >:
    +
    +
    + + +xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > > +xt::xcontainer_semantic< xfunctor_adaptor< F, CT > > +xt::xaccessible< xfunctor_adaptor< F, CT > > +xt::xsemantic_base< xfunctor_adaptor< F, CT > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xfunctor_adaptor<F, CT>
     
    using semantic_base = xcontainer_semantic<self_type>
     
    using xexpression_type = std::decay_t<CT>
     
    using base_type = xfunctor_applier_base<self_type>
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename xexpression_type::strides_type
     
    - Public Types inherited from xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    using self_type
     
    using inner_types
     
    using xexpression_type
     
    using undecay_expression
     
    using functor_type
     
    using accessible_base
     
    using extension_base
     
    using expression_tag
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using bool_load_type
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xcontainer_semantic< xfunctor_adaptor< F, CT > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xfunctor_adaptor< F, CT > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    Extended copy semantic
    template<class S = shape_type>
    auto resize (S &&shape, bool force=false)
     
    template<class S = shape_type>
    auto resize (S &&shape, layout_type l)
     
    template<class S = shape_type>
    auto resize (S &&shape, const strides_type &strides)
     
    template<class S = shape_type>
    auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    - Public Member Functions inherited from xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +const_reference operator[] (size_type i) const
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +reference element (IT first, IT last)
     
    +const_reference element (IT first, IT last) const
     
    auto data_element (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().data_element(i)))
     
    auto data_element (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().data_element(i)))
     
    auto flat (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().flat(i)))
     
    auto flat (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().flat(i)))
     
    auto load_simd (size_type i) const -> decltype(std::declval< FCT >().template proxy_simd_load< align, requested_type, N >(std::declval< undecay_expression >(), i))
     
    auto store_simd (size_type i, const simd &e) -> decltype(std::declval< FCT >() .template proxy_simd_store< align >(std::declval< undecay_expression >(), i, e))
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    const xexpression_type & expression () const noexcept
     Returns a consttant reference to the underlying expression of the view.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
     xfunctor_applier_base (undecay_expression) noexcept
     Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
     
     xfunctor_applier_base (Func &&, E &&) noexcept
     Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
     
    size_type size () const noexcept
     Returns the size of the expression.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the expression.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the expression.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the expression.
     
    layout_type layout () const noexcept
     Returns the layout_type of the expression.
     
    bool is_contiguous () const noexcept
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the function to the specified parameter.
     
    bool has_linear_assign (const S &strides) const
     Checks whether the xfunctor_applier_base can be linearly assigned to an expression with the specified strides.
     
    auto begin () noexcept
     Returns an iterator to the first element of the expression.
     
    auto begin () const noexcept
     Returns a constant iterator to the first element of the expression.
     
    auto end () noexcept
     Returns an iterator to the element following the last element of the expression.
     
    auto end () const noexcept
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () noexcept
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin () const noexcept
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () noexcept
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend () const noexcept
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    - Public Member Functions inherited from xt::xcontainer_semantic< xfunctor_adaptor< F, CT > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xfunctor_adaptor< F, CT > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + +

    +Friends

    class xcontainer_semantic< self_type >
     
    class xaccessible< self_type >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Protected Member Functions inherited from xt::xcontainer_semantic< xfunctor_adaptor< F, CT > >
    xcontainer_semantic (const xcontainer_semantic &)=default
     
    xcontainer_semantic (xcontainer_semantic &&)=default
     
    +xcontainer_semanticoperator= (const xcontainer_semantic &)=default
     
    +xcontainer_semanticoperator= (xcontainer_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xfunctor_adaptor< F, CT > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    - Protected Attributes inherited from xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >
    undecay_expression m_e
     
    functor_type m_functor
     
    +

    Detailed Description

    +
    template<class F, class CT>
    +class xt::xfunctor_adaptor< F, CT >

    Adapt a container with a functor, forwarding methods such as resize / reshape.

    +

    xt::xfunctor_adaptor has a container semantics and can only be used with containers. For a similar feature with a view semantics, one can use xt::xfunctor_view.

    +
    Template Parameters
    + + + +
    Fthe functor type to be applied to the elements of specified expression.
    CTthe closure type of the xt::xexpression type underlying this view
    +
    +
    +
    See also
    xt::xfunctor_view
    + +

    Definition at line 509 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_adaptor< F, CT >::base_type = xfunctor_applier_base<self_type>
    +
    + +

    Definition at line 518 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_adaptor< F, CT >::self_type = xfunctor_adaptor<F, CT>
    +
    + +

    Definition at line 515 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_adaptor< F, CT >::semantic_base = xcontainer_semantic<self_type>
    +
    + +

    Definition at line 516 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_adaptor< F, CT >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 519 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_adaptor< F, CT >::strides_type = typename xexpression_type::strides_type
    +
    + +

    Definition at line 520 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_adaptor< F, CT >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 517 of file xfunctor_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=()

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_adaptor< F, CT >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 1454 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reshape()

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class S>
    + + + + + + + + + + + +
    auto & xt::xfunctor_adaptor< F, CT >::reshape (S && shape,
    layout_type layout = base_type::static_layout ) &
    +
    + +

    Definition at line 1497 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ resize() [1/3]

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class S>
    + + + + + + + + + + + +
    auto xt::xfunctor_adaptor< F, CT >::resize (S && shape,
    bool force = false )
    +
    + +

    Definition at line 1476 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ resize() [2/3]

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class S>
    + + + + + + + + + + + +
    auto xt::xfunctor_adaptor< F, CT >::resize (S && shape,
    const strides_type & strides )
    +
    + +

    Definition at line 1490 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ resize() [3/3]

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class S>
    + + + + + + + + + + + +
    auto xt::xfunctor_adaptor< F, CT >::resize (S && shape,
    layout_type l )
    +
    + +

    Definition at line 1483 of file xfunctor_view.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xaccessible< self_type >

    + +
    +
    +
    +template<class F, class CT>
    + + + + + +
    + + + + +
    friend class xaccessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 545 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xcontainer_semantic< self_type >

    + +
    +
    +
    +template<class F, class CT>
    + + + + + +
    + + + + +
    friend class xcontainer_semantic< self_type >
    +
    +friend
    +
    + +

    Definition at line 545 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xfunctor__adaptor.js b/classxt_1_1xfunctor__adaptor.js new file mode 100644 index 000000000..9cd5bc9a3 --- /dev/null +++ b/classxt_1_1xfunctor__adaptor.js @@ -0,0 +1,4 @@ +var classxt_1_1xfunctor__adaptor = +[ + [ "operator=", "classxt_1_1xfunctor__adaptor.html#a4eaf31a6089dc47d2e772fa6590514bd", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfunctor__adaptor.png b/classxt_1_1xfunctor__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..f8733bbca2f0128bf428192c9fc1303dc7d65bdb GIT binary patch literal 4205 zcmd5=d011|wvXB>iU^7p86<7B@+=4{Xpku?AaXTGm4E~xrSU=`GDHF)Oz{>$5ryl; znleTlhz1EFh8e;jq|9JQVwu7qGZ8SvkdU17PU7|5zVCf^`s01yJ%8-8hP~IG&ibvj zPKvvmi`FKCO)wZt%k`AgIT&mm0MYdt>!9{#|0y=~GIT%V;S7QxL{863BGVh`)(7^5 z@1%B2kBp2!^242;k09Mf;yJhTFo;(_h_%^$Fqrm=tJ86h=ry9D0Zd`Xwv(gOwwTNB zz?)P{+aq5Yuq-K-vb%Rao8IMon|WTNC)0mt@`24wJ?k`dMg*2G`IsMzSTtSbSM_)u zr4PPHw->&)W_>T4#kbk|cZJU%gPp7e(N<|pyhDFf>Zlv%EN8V%yqUx1_Y-r>b3)_n zyq2%SiW_t#VMVO{bx*;e(0CR3ImeXif-f4{EqA;s82QU#QYTW0;SZ8u=i9h zT!yJnRMS*&m|QIn^X!Sta85-j>8aef0Uqf2X2Y^@@T&0>porCcXI6U+U|$wD{4&6t z*P4mz7xE|aS+bIRu;o&=?XPj-qo^1r58htGrwoq=G`1UgCHmk)8p!f&mp3cBRJRq5 zT8+@J2`;HPa8}VCwdnF|#KWf(kvYu=@RjtE?mzfd3;S6;V0Uh1wSeavfbE-VU!)cY zb_i!mtg&|Q$;jX$R{9M01KKP< zT4oo!e(Kp%N}X;eMN+n>m6ng*MqYL(7cb%DBj4<2N3~TV=F`cepas_^9{lt%B-vx zMp}?`b}|@hw?y+uj-mMGl{|j~N#BxRdiVR4g=q@n9@lY~UacJx*^7edJHy$GG5;sU_H>I;lzHNPDb1_SDnST~4QTT38s^(k=rtP_X=eM=M-TLPL zBK?6|e&i}=S$Jz=dvTKAfX{5OtUVe0UTp(DLy74&Rd!o|ugCTVrAfVHOSywNdyyza zu{$Cu)Dm=P>kJElA$!2MCHYROOGW&%5arZ&;M55t<*2^h6YyK{7YksSyqi*#?f0&` zy%}}H{?FOvD7YyK&9Vj(B+#raxQAE5HU@rq7fST{>LTb+*HLiK4L>D-(ia$mL1Ve!%f6_Vgzy zxf}^N1`dnTL7kEEZOVMek=B0pM*j|ct>TAstAAy8KthQ9r2WrlKeUgATVI2YW%~G7 zjJ44gW#*X8<|dtF|D7=-?&uv1Mncy`kil?AOCl!a<)7ktA){)mvXCLyRRwjV3RVn1 zVha@6A>lt%M?3`G(PG>MYz3FenBB5~D)*uI-=aNxThOqjkYV;gyMFt&yRK}$;xkjn^0e_-&-T*Fw=kqW2bv#7SUyvQVv3ZKBC}e`Kjc?0Q zJ)zW4>_;^&Ws29A9`Dku$T_14oC1GK3Y81o2RMhFzwnxr2I#-IY~#_Hp3OJh?U&VQ z0Q~rkfRE73lK#?-Mwj9&y{8=Z4_5gouQNJv0E-YWdsH~(L$r6TJluzOS?0*k+W4i9 z3wruzD(FU1M>2EF?gCK7sN0G^g^@Tz#g-5&lIv? zjyHhaQl3fL<$0x)>73r2_LA{4DVUc_tStnGMiLYr?LOtHl_`t4^3~0vmA1mVi>S5I8m6OcU~bt7pIew;M2$* zil7203!2011RNT#)bsll6%Rqgk*k?NJEmmm9Q@Rs+h^+boseQIlCgd1d8V>wo@n0K zw1;wGJqiERhh0YWP8un#XJ2xv_5g1mvU9CA=VhErwS{7r4bs=AqsFg3xHWa?KI;fF z?>pt$;*iWBI#-+kENNm3etkURrBym!AURpq{o$v~T|#W@3r;QXqFA)o+kz|Pzbo>n zrGuP?_*3A()PTm2y%LLf;Jb_*AStR2%9y};+WGy$cd-w_$5=y*&w)}RZcU-q4*_D4 zE;ir-QC_9+k;A!TIZvs@VwNRG5D~XP*JBMffiLa1L>Py(-OlDutxma>W-zkS;6-l- zaV)0DI8{sz$nzp*{|v=g2QEc_aPDh!|Ef)qexg}d1Y?3VXZCAENnkG4@&S?$4yB$Z z$9u`9mm1q=I4?T7%WvUID|_f=f`&3E-@LeeUOXZGMUWA@7u!9_qz%MzWGKjaVh$D` zLZjJ97G~42cs3mZcVsJfw>$y@0g>=N_>lA(><+auJw%&k2m7LVx3xJ5acyDd?__eM zWfU4+t|;FcudnR(hw{J>hmb|@R1-Tg1Hy2`ITe;<%tC&sB&R{hUww(BLi*1iQ1C?( z6Nrr54K)x20T4xn`iPIv|1YSge8Eqc|EEj<%9C`qTyM%>XQ{mIzq9ecX2%U9JE9X| zzOEPZktwFc-J{olJYUIhrjVk5;p8I!Z ze>d~*%??9Pv)V+Lbk&7Bx!{t^5L%l3NHy)#|k_Zr|GVSUyR-B7e`Scz%x*6*xrb#ns^z zG6WedK(^7mmQYNw9US`3CF>Kf^;-UFw%2jsEUIT z{lkmP1buSU->RtoINo@$STvqP#}3A(DO8)>bhZzCq97Yq#N`&}9u1Br%J;l|;Xv!p zL!^yM2|d;JUra>^y33HQGF1hWHf0N)!kZKevkyozQ(e;t3qTqsexG36I!)6UJ5Lc` zP@f$bEP-h_H-&z>W&i*H literal 0 HcmV?d00001 diff --git a/classxt_1_1xfunctor__applier__base-members.html b/classxt_1_1xfunctor__applier__base-members.html new file mode 100644 index 000000000..6b02efd2b --- /dev/null +++ b/classxt_1_1xfunctor__applier__base-members.html @@ -0,0 +1,267 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunctor_applier_base< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunctor_applier_base< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    accessible_base typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    at(Args... args) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    at(Args... args) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    back()xt::xfunctor_applier_base< D >inline
    back() constxt::xfunctor_applier_base< D >inline
    backstrides() const noexceptxt::xfunctor_applier_base< D >inline
    backstrides_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    begin() noexceptxt::xfunctor_applier_base< D >inline
    begin() const noexceptxt::xfunctor_applier_base< D >inline
    begin(const S &shape) noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    begin(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    bool_load_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    broadcast_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xfunctor_applier_base< D >inline
    cbegin() const noexceptxt::xfunctor_applier_base< D >inline
    cbegin(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    cend() const noexceptxt::xfunctor_applier_base< D >inline
    cend(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    const_broadcast_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_layout_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_linear_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_pointer typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_reference typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_reverse_broadcast_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_reverse_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_reverse_layout_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_reverse_linear_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    const_stepper typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    contiguous_layout (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >static
    crbegin() const noexceptxt::xfunctor_applier_base< D >inline
    crbegin(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    crend() const noexceptxt::xfunctor_applier_base< D >inline
    crend(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    data_element(size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().data_element(i))) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    data_element(size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().data_element(i))) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    difference_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    element(IT first, IT last) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    element(IT first, IT last) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    element(IT first, IT last) -> referencext::xfunctor_applier_base< D >inline
    element(IT first, IT last) const -> const_referencext::xfunctor_applier_base< D >inline
    end() noexceptxt::xfunctor_applier_base< D >inline
    end() const noexceptxt::xfunctor_applier_base< D >inline
    end(const S &shape) noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    end(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    expression() noexceptxt::xfunctor_applier_base< D >inline
    expression() const noexceptxt::xfunctor_applier_base< D >inline
    expression_tag typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    extension_base typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    flat(size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().flat(i))) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    flat(size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().flat(i))) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    front()xt::xfunctor_applier_base< D >inline
    front() constxt::xfunctor_applier_base< D >inline
    functor_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    has_linear_assign(const S &strides) constxt::xfunctor_applier_base< D >inline
    inner_backstrides_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    inner_shape_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    inner_strides_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    inner_types typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    is_contiguous() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    layout() const noexceptxt::xfunctor_applier_base< D >inline
    layout_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    linear_begin() noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_begin() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_cbegin() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_cend() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_crbegin() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_crend() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_end() noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_end() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    linear_rbegin() noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_rbegin() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_rend() noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    linear_rend() const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    load_simd(size_type i) const -> decltype(std::declval< FCT >().template proxy_simd_load< align, requested_type, N >(std::declval< undecay_expression >(), i)) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    m_e (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >protected
    m_functor (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >protected
    operator()(Args... args) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    operator()(Args... args) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    operator()(Args... args) -> referencext::xfunctor_applier_base< D >inline
    operator()(Args... args) const -> const_referencext::xfunctor_applier_base< D >inline
    operator[](const S &index) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    operator[](std::initializer_list< I > index) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    operator[](size_type i) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    operator[](const S &index) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    operator[](std::initializer_list< I > index) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    operator[](size_type i) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    periodic(Args... args) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    periodic(Args... args) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    pointer typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    rbegin() noexceptxt::xfunctor_applier_base< D >inline
    rbegin() const noexceptxt::xfunctor_applier_base< D >inline
    rbegin(const S &shape) noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    rbegin(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    reference typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    rend() noexceptxt::xfunctor_applier_base< D >inline
    rend() const noexceptxt::xfunctor_applier_base< D >inline
    rend(const S &shape) noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    rend(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< D >inline
    reverse_broadcast_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    reverse_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    reverse_layout_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    reverse_linear_iterator typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    self_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    shape() const noexceptxt::xfunctor_applier_base< D >inline
    xt::xaccessible::shape(size_type index) constxt::xconst_accessible< D >inlineprivate
    shape_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    size() const noexceptxt::xfunctor_applier_base< D >inline
    size_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    static_layout (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >static
    stepper typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    stepper_begin(const S &shape) noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    stepper_begin(const S &shape) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    stepper_end(const S &shape, layout_type l) noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    store_simd(size_type i, const simd &e) -> decltype(std::declval< FCT >() .template proxy_simd_store< align >(std::declval< undecay_expression >(), i, e)) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >inline
    strides() const noexceptxt::xfunctor_applier_base< D >inline
    strides_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    unchecked(Args... args) (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    unchecked(Args... args) const (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    unchecked(Args... args) -> referencext::xfunctor_applier_base< D >inline
    unchecked(Args... args) const -> const_referencext::xfunctor_applier_base< D >inline
    undecay_expression typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    value_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    xaccessible< D > (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >friend
    xconst_accessible< D > (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >friend
    xexpression_type typedef (defined in xt::xfunctor_applier_base< D >)xt::xfunctor_applier_base< D >
    xfunctor_applier_base(undecay_expression) noexceptxt::xfunctor_applier_base< D >inlineexplicit
    xfunctor_applier_base(Func &&, E &&) noexceptxt::xfunctor_applier_base< D >inline
    +
    + + + + diff --git a/classxt_1_1xfunctor__applier__base.html b/classxt_1_1xfunctor__applier__base.html new file mode 100644 index 000000000..898e2cff5 --- /dev/null +++ b/classxt_1_1xfunctor__applier__base.html @@ -0,0 +1,4123 @@ + + + + + + + +xtensor: xt::xfunctor_applier_base< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunctor_applier_base< D > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xfunctor_applier_base< D >:
    +
    +
    + + +xt::xaccessible< D > +xt::xfunctor_view< F, uvt > +xt::xfunctor_view< F, ucvt > +xt::xfunctor_view< F, E > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xfunctor_applier_base<D>
     
    using inner_types = xcontainer_inner_types<D>
     
    using xexpression_type = typename inner_types::xexpression_type
     
    using undecay_expression = typename inner_types::undecay_expression
     
    using functor_type = typename inner_types::functor_type
     
    using accessible_base = xaccessible<D>
     
    using extension_base = extension::xfunctor_view_base_t<functor_type, undecay_expression>
     
    using expression_tag = typename extension_base::expression_tag
     
    using value_type = typename functor_type::value_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer = typename functor_type::pointer
     
    using const_pointer = typename functor_type::const_pointer
     
    using size_type = typename inner_types::size_type
     
    using difference_type = typename xexpression_type::difference_type
     
    using shape_type = typename xexpression_type::shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type = typename xexpression_type::inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using bool_load_type = xt::bool_load_type<value_type>
     
    using stepper = xfunctor_stepper<functor_type, typename xexpression_type::stepper>
     
    using const_stepper = xfunctor_stepper<const functor_type, typename xexpression_type::const_stepper>
     
    template<layout_type L>
    using layout_iterator = xfunctor_iterator<functor_type, typename xexpression_type::template layout_iterator<L>>
     
    template<layout_type L>
    using const_layout_iterator
     
    template<layout_type L>
    using reverse_layout_iterator
     
    template<layout_type L>
    using const_reverse_layout_iterator
     
    template<class S, layout_type L>
    using broadcast_iterator = xfunctor_iterator<functor_type, xiterator<typename xexpression_type::stepper, S, L>>
     
    template<class S, layout_type L>
    using const_broadcast_iterator
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator
     
    using linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::linear_iterator>
     
    using const_linear_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_linear_iterator>
     
    using reverse_linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_linear_iterator>
     
    using const_reverse_linear_iterator
     
    using iterator = xfunctor_iterator<functor_type, typename xexpression_type::iterator>
     
    using const_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_iterator>
     
    using reverse_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_iterator>
     
    using const_reverse_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_reverse_iterator>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class... Args>
    reference operator() (Args... args)
     
    +template<class... Args>
    reference unchecked (Args... args)
     
    +template<class IT>
    reference element (IT first, IT last)
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class IT>
    const_reference element (IT first, IT last) const
     
    template<class FCT = functor_type>
    auto data_element (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().data_element(i)))
     
    template<class FCT = functor_type>
    auto data_element (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().data_element(i)))
     
    template<class FCT = functor_type>
    auto flat (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().flat(i)))
     
    template<class FCT = functor_type>
    auto flat (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().flat(i)))
     
    template<class align, class requested_type = typename xexpression_type::value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size, class FCT = functor_type>
    auto load_simd (size_type i) const -> decltype(std::declval< FCT >().template proxy_simd_load< align, requested_type, N >(std::declval< undecay_expression >(), i))
     
    template<class align, class simd, class FCT = functor_type>
    auto store_simd (size_type i, const simd &e) -> decltype(std::declval< FCT >() .template proxy_simd_store< align >(std::declval< undecay_expression >(), i, e))
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    +template<class S>
    stepper stepper_begin (const S &shape) noexcept
     
    +template<class S>
    stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +template<class S>
    const_stepper stepper_begin (const S &shape) const noexcept
     
    +template<class S>
    const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +template<class... Args>
    reference at (Args... args)
     
    +template<class... Args>
    const_reference at (Args... args) const
     
    +template<class S>
    disable_integral_t< S, reference > operator[] (const S &index)
     
    +template<class I>
    reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    +template<class S>
    disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +template<class I>
    const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +template<class... Args>
    reference periodic (Args... args)
     
    +template<class... Args>
    const_reference periodic (Args... args) const
     
    Constructors
     xfunctor_applier_base (undecay_expression) noexcept
     Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
     
    template<class Func, class E>
     xfunctor_applier_base (Func &&, E &&) noexcept
     Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
     
    Size and shape
    size_type size () const noexcept
     Returns the size of the expression.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the expression.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the expression.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the expression.
     
    layout_type layout () const noexcept
     Returns the layout_type of the expression.
     
    bool is_contiguous () const noexcept
     
    Data
    xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    const xexpression_type & expression () const noexcept
     Returns a consttant reference to the underlying expression of the view.
     
    template<class... Args>
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    template<class... Args>
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    template<class IT>
    auto element (IT first, IT last) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    template<class IT>
    auto element (IT first, IT last) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    Broadcasting
    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the function to the specified parameter.
     
    template<class S>
    bool has_linear_assign (const S &strides) const
     Checks whether the xfunctor_applier_base can be linearly assigned to an expression with the specified strides.
     
    Iterators
    template<layout_type L = ::xt::layout_type::row_major>
    auto begin () noexcept
     Returns an iterator to the first element of the expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto end () noexcept
     Returns an iterator to the element following the last element of the expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto begin () const noexcept
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto end () const noexcept
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto cbegin () const noexcept
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto cend () const noexcept
     Returns a constant iterator to the element following the last element of the expression.
     
    Reverse iterators
    template<layout_type L = ::xt::layout_type::row_major>
    auto rbegin () noexcept
     Returns an iterator to the first element of the reversed expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rend () noexcept
     Returns an iterator to the element following the last element of the reversed expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rbegin () const noexcept
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rend () const noexcept
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto crbegin () const noexcept
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto crend () const noexcept
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    Reverse broadcast iterators
    linear_iterator linear_begin () noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    template<class S, layout_type L>
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    template<class S, layout_type L>
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    template<class S, layout_type L>
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<class S, layout_type L>
    auto rend (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<class S, layout_type L>
    auto crbegin (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<class S, layout_type L>
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<class S>
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    template<class S>
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    Broadcast iterators
    template<class S, layout_type L>
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<class S, layout_type L>
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<class S, layout_type L>
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<class S, layout_type L>
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<class S, layout_type L>
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<class S, layout_type L>
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = xexpression_type::static_layout
     
    static constexpr bool contiguous_layout = xexpression_type::contiguous_layout
     
    + + + + + +

    +Protected Attributes

    undecay_expression m_e
     
    functor_type m_functor
     
    + + + + + +

    +Friends

    class xaccessible< D >
     
    class xconst_accessible< D >
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xfunctor_applier_base< D >
    +

    Definition at line 73 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accessible_base

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::accessible_base = xaccessible<D>
    +
    + +

    Definition at line 82 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::backstrides_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_backstrides_type<xexpression_type>,
    + + + +
    +

    Definition at line 100 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::bool_load_type = xt::bool_load_type<value_type>
    +
    + +

    Definition at line 115 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::broadcast_iterator = xfunctor_iterator<functor_type, xiterator<typename xexpression_type::stepper, S, L>>
    +
    + +

    Definition at line 140 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_broadcast_iterator
    +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_iterator>
    +
    + +

    Definition at line 163 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_layout_iterator
    +
    +Initial value:
    +
    const functor_type,
    +
    typename xexpression_type::template const_layout_iterator<L>>
    +
    +

    Definition at line 126 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_linear_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_linear_iterator>
    +
    + +

    Definition at line 156 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_pointer = typename functor_type::const_pointer
    +
    + +

    Definition at line 91 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 89 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_reverse_broadcast_iterator
    +
    +Initial value:
    +
    functor_type,
    +
    typename xexpression_type::template const_reverse_broadcast_iterator<S, L>>
    +
    +

    Definition at line 151 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_reverse_iterator = xfunctor_iterator<const functor_type, typename xexpression_type::const_reverse_iterator>
    +
    + +

    Definition at line 165 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_reverse_layout_iterator
    +
    +Initial value:
    +
    const functor_type,
    +
    typename xexpression_type::template const_reverse_layout_iterator<L>>
    +
    +

    Definition at line 135 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_reverse_linear_iterator
    +
    +Initial value:
    +
    const functor_type,
    +
    typename xexpression_type::const_reverse_linear_iterator>
    +
    +

    Definition at line 158 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::const_stepper = xfunctor_stepper<const functor_type, typename xexpression_type::const_stepper>
    +
    + +

    Definition at line 121 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 93 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 85 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::extension_base = extension::xfunctor_view_base_t<functor_type, undecay_expression>
    +
    + +

    Definition at line 84 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::functor_type = typename inner_types::functor_type
    +
    + +

    Definition at line 81 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::inner_backstrides_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_inner_backstrides_type<xexpression_type>,
    + +
    +

    Definition at line 110 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::inner_shape_type = typename xexpression_type::inner_shape_type
    +
    + +

    Definition at line 105 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::inner_strides_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_inner_strides_type<xexpression_type>,
    + +
    +

    Definition at line 106 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::inner_types = xcontainer_inner_types<D>
    +
    + +

    Definition at line 78 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::iterator = xfunctor_iterator<functor_type, typename xexpression_type::iterator>
    +
    + +

    Definition at line 162 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::layout_iterator = xfunctor_iterator<functor_type, typename xexpression_type::template layout_iterator<L>>
    +
    + +

    Definition at line 124 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::linear_iterator>
    +
    + +

    Definition at line 155 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::pointer = typename functor_type::pointer
    +
    + +

    Definition at line 90 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::reference = typename inner_types::reference
    +
    + +

    Definition at line 88 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reverse_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::reverse_broadcast_iterator
    +
    +Initial value:
    +
    functor_type,
    +
    typename xexpression_type::template reverse_broadcast_iterator<S, L>>
    +
    +

    Definition at line 147 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::reverse_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_iterator>
    +
    + +

    Definition at line 164 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reverse_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xfunctor_applier_base< D >::reverse_layout_iterator
    +
    +Initial value:
    +
    functor_type,
    +
    typename xexpression_type::template reverse_layout_iterator<L>>
    +
    +

    Definition at line 131 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reverse_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::reverse_linear_iterator = xfunctor_iterator<functor_type, typename xexpression_type::reverse_linear_iterator>
    +
    + +

    Definition at line 157 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::self_type = xfunctor_applier_base<D>
    +
    + +

    Definition at line 77 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::shape_type = typename xexpression_type::shape_type
    +
    + +

    Definition at line 95 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 92 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::stepper = xfunctor_stepper<functor_type, typename xexpression_type::stepper>
    +
    + +

    Definition at line 120 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::strides_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_strides_type<xexpression_type>,
    + +
    +

    Definition at line 96 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ undecay_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::undecay_expression = typename inner_types::undecay_expression
    +
    + +

    Definition at line 80 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::value_type = typename functor_type::value_type
    +
    + +

    Definition at line 87 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xfunctor_applier_base< D >::xexpression_type = typename inner_types::xexpression_type
    +
    + +

    Definition at line 79 of file xfunctor_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xfunctor_applier_base() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    xt::xfunctor_applier_base< D >::xfunctor_applier_base (undecay_expression e)
    +
    +inlineexplicitnoexcept
    +
    + +

    Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.

    +
    Parameters
    + + +
    ethe underlying expression
    +
    +
    + +

    Definition at line 679 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xfunctor_applier_base() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class Func, class E>
    + + + + + +
    + + + + + + + + + + + +
    xt::xfunctor_applier_base< D >::xfunctor_applier_base (Func && func,
    E && e )
    +
    +inlinenoexcept
    +
    + +

    Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.

    +
    Parameters
    + + + +
    functhe functor to be applied to the elements of the underlying expression.
    ethe underlying expression
    +
    +
    + +

    Definition at line 693 of file xfunctor_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xaccessible< D >::back ()
    +
    +inline
    +
    + +

    Returns a reference to the last element of the expression.

    + +

    Definition at line 109 of file xaccessible.hpp.

    + +
    +
    + +

    ◆ back() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xconst_accessible< D >::back () const
    +
    +inline
    +
    + +

    Returns a constant reference to last the element of the expression.

    + +

    Definition at line 113 of file xaccessible.hpp.

    + +
    +
    + +

    ◆ backstrides()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::backstrides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the backstrides of the expression.

    + +

    Definition at line 736 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ begin() [1/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::begin () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 962 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ begin() [2/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::begin ()
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 936 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ begin() [3/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::begin (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1051 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ begin() [4/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::begin (const S & shape) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1023 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xfunctor_applier_base< D >::broadcast_shape (S & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the function to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheboolean for reusing a previously computed shape
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 906 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ cbegin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::cbegin () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 985 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ cbegin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::cbegin (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1080 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ cend() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::cend () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1000 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ cend() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::cend (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1095 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ crbegin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::crbegin () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1164 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ crbegin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::crbegin (const S & ) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the reversed expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1260 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ crend() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::crend () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1179 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ crend() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::crend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the reversed expression.

    +
    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1275 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ data_element() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class FCT = functor_type>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::data_element (size_type i) -> decltype(std::declval<FCT>()(std::declval<undecay_expression>().data_element(i))) +
    +
    +inline
    +
    + +

    Definition at line 218 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ data_element() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class FCT = functor_type>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::data_element (size_type i) const -> decltype(std::declval<FCT>()(std::declval<const undecay_expression>().data_element(i))) +
    +
    +inline
    +
    + +

    Definition at line 225 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class IT>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xfunctor_applier_base< D >::element (IT first,
    IT last ) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the expression.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the function.
    +
    +
    + +

    Definition at line 812 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class IT>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xfunctor_applier_base< D >::element (IT first,
    IT last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the expression.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the function.
    +
    +
    + +

    Definition at line 868 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ end() [1/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::end () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 974 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ end() [2/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::end ()
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 951 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ end() [3/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::end (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1066 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ end() [4/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::end (const S & shape) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1037 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ expression() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Returns a consttant reference to the underlying expression of the view.

    + +

    Definition at line 887 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ expression() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::expression ()
    +
    +inlinenoexcept
    +
    + +

    Returns a reference to the underlying expression of the view.

    + +

    Definition at line 878 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ flat() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class FCT = functor_type>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::flat (size_type i) -> decltype(std::declval<FCT>()(std::declval<undecay_expression>().flat(i))) +
    +
    +inline
    +
    + +

    Definition at line 232 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ flat() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class FCT = functor_type>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::flat (size_type i) const -> decltype(std::declval<FCT>()(std::declval<const undecay_expression>().flat(i))) +
    +
    +inline
    +
    + +

    Definition at line 238 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ front() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xaccessible< D >::front ()
    +
    +inline
    +
    + +

    Returns a reference to the first element of the expression.

    + +

    Definition at line 108 of file xaccessible.hpp.

    + +
    +
    + +

    ◆ front() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xconst_accessible< D >::front () const
    +
    +inline
    +
    + +

    Returns a constant reference to first the element of the expression.

    + +

    Definition at line 114 of file xaccessible.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xfunctor_applier_base< D >::has_linear_assign (const S & strides) const
    +
    +inline
    +
    + +

    Checks whether the xfunctor_applier_base can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 919 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    bool xt::xfunctor_applier_base< D >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 751 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    layout_type xt::xfunctor_applier_base< D >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Returns the layout_type of the expression.

    + +

    Definition at line 745 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_begin() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_begin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1296 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_begin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1284 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_cbegin()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_cbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1308 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_cend()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_cend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1314 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_crbegin()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_crbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1344 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_crend()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_crend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1350 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_end () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1302 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_end ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1290 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_rbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1332 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_rbegin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1320 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_rend() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_rend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1338 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ linear_rend() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::linear_rend ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1326 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ load_simd()

    + +
    +
    +
    +template<class D>
    +
    +template<class align, class requested_type = typename xexpression_type::value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size, class FCT = functor_type>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::load_simd (size_type i) const -> decltype(std::declval<FCT>().template proxy_simd_load<align, requested_type, N>( + std::declval<undecay_expression>(), + i + )) +
    +
    +inline
    +
    + +

    Definition at line 251 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::operator() (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the expression.
    +
    +
    + +

    Definition at line 770 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the expression.
    +
    +
    + +

    Definition at line 826 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xaccessible< D >::operator[] (size_type i)
    +
    +inline
    +
    + +

    Definition at line 103 of file xaccessible.hpp.

    + +
    +
    + +

    ◆ operator[]() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xconst_accessible< D >::operator[] (size_type i) const
    +
    +inline
    +
    + +

    Definition at line 112 of file xaccessible.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rbegin () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1141 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rbegin ()
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1112 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rbegin() [3/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the first element of the reversed expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1230 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rbegin() [4/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rbegin (const S & shape) -> reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1202 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rend() [1/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rend () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1153 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rend() [2/4]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rend ()
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1127 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rend() [3/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rend (const S & ) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns a constant iterator to the element following the last element of the reversed expression.

    +
    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1245 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ rend() [4/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::rend (const S & shape) -> reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the reversed expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 1216 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the expression.

    + +

    Definition at line 718 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::size () const
    +
    +inlinenoexcept
    +
    + +

    Returns the size of the expression.

    + +

    Definition at line 709 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::stepper_begin (const S & shape) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1375 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::stepper_begin (const S & shape) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1361 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xfunctor_applier_base< D >::stepper_end (const S & shape,
    layout_type l ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1383 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xfunctor_applier_base< D >::stepper_end (const S & shape,
    layout_type l ) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1368 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ store_simd()

    + +
    +
    +
    +template<class D>
    +
    +template<class align, class simd, class FCT = functor_type>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xfunctor_applier_base< D >::store_simd (size_type i,
    const simd & e ) -> decltype(std::declval<FCT>() + .template proxy_simd_store<align>(std::declval<undecay_expression>(), i, e)) +
    +
    +inline
    +
    + +

    Definition at line 261 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ strides()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::strides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the strides of the expression.

    + +

    Definition at line 727 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::unchecked (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.unchecked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 798 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_applier_base< D >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    + +

    Definition at line 854 of file xfunctor_view.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xaccessible< D >

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    friend class xaccessible< D >
    +
    +friend
    +
    + +

    Definition at line 352 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xconst_accessible< D >

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    friend class xconst_accessible< D >
    +
    +friend
    +
    + +

    Definition at line 352 of file xfunctor_view.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    bool xt::xfunctor_applier_base< D >::contiguous_layout = xexpression_type::contiguous_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 118 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ m_e

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    undecay_expression xt::xfunctor_applier_base< D >::m_e
    +
    +protected
    +
    + +

    Definition at line 351 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ m_functor

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    functor_type xt::xfunctor_applier_base< D >::m_functor
    +
    +protected
    +
    + +

    Definition at line 352 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    layout_type xt::xfunctor_applier_base< D >::static_layout = xexpression_type::static_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 117 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xfunctor__applier__base.js b/classxt_1_1xfunctor__applier__base.js new file mode 100644 index 000000000..41e4e26d3 --- /dev/null +++ b/classxt_1_1xfunctor__applier__base.js @@ -0,0 +1,48 @@ +var classxt_1_1xfunctor__applier__base = +[ + [ "xfunctor_applier_base", "classxt_1_1xfunctor__applier__base.html#a41aab520408c7c729ae637b19d09be2b", null ], + [ "xfunctor_applier_base", "classxt_1_1xfunctor__applier__base.html#ac3b9ef5e95e61582edaff797f2ec7e1b", null ], + [ "back", "classxt_1_1xfunctor__applier__base.html#a905660a4d87f4d3e7b651bcf6bb690d0", null ], + [ "back", "classxt_1_1xfunctor__applier__base.html#ae8c11bf107fb871f054e2194163778fd", null ], + [ "backstrides", "classxt_1_1xfunctor__applier__base.html#a31682644280a7cb1f47f306e2fa832fe", null ], + [ "begin", "classxt_1_1xfunctor__applier__base.html#a20bbfc1e10a26d6754e31ecaca3791db", null ], + [ "begin", "classxt_1_1xfunctor__applier__base.html#acbbbfb5117f8a5cbbf6d884c99209aed", null ], + [ "begin", "classxt_1_1xfunctor__applier__base.html#a20fda1464f7c57d2bedac80130bc1b8a", null ], + [ "begin", "classxt_1_1xfunctor__applier__base.html#a3ab9bf54021db8cea2150113376a271c", null ], + [ "broadcast_shape", "classxt_1_1xfunctor__applier__base.html#ada44e2d571b044340c22c3c16137aa73", null ], + [ "cbegin", "classxt_1_1xfunctor__applier__base.html#a8ff3057fce404b976998dda117b669b4", null ], + [ "cbegin", "classxt_1_1xfunctor__applier__base.html#a358932daa1dd93cc97016f99f24b9be6", null ], + [ "cend", "classxt_1_1xfunctor__applier__base.html#a8f40de3c5e5d01ed40bab3060d1ad8e9", null ], + [ "cend", "classxt_1_1xfunctor__applier__base.html#a3eb421464069330b8305abdb39b43f24", null ], + [ "crbegin", "classxt_1_1xfunctor__applier__base.html#afb3b6d645d6ef28238b50f032f3477f6", null ], + [ "crbegin", "classxt_1_1xfunctor__applier__base.html#a69f77212c23e7a9e20b3774a2e59d3cc", null ], + [ "crend", "classxt_1_1xfunctor__applier__base.html#ae9c21d7315862c7b30de7f21d5d47bf3", null ], + [ "crend", "classxt_1_1xfunctor__applier__base.html#a9424de315b89fd06b19590443bc20629", null ], + [ "element", "classxt_1_1xfunctor__applier__base.html#a94f49676b373d866812ee9a128cdc3e8", null ], + [ "element", "classxt_1_1xfunctor__applier__base.html#a173b3e1e7c31df616b7e978462fece33", null ], + [ "end", "classxt_1_1xfunctor__applier__base.html#ab31ad55714884efed4c525ae1018339e", null ], + [ "end", "classxt_1_1xfunctor__applier__base.html#a1ede7d79cffaf8f76e8b6895a7877759", null ], + [ "end", "classxt_1_1xfunctor__applier__base.html#aba04a5d73546572558aa9bbb6e4eca36", null ], + [ "end", "classxt_1_1xfunctor__applier__base.html#a51190ea53109af3cdceebf66f8d10cbc", null ], + [ "expression", "classxt_1_1xfunctor__applier__base.html#a62a9deb497e7420aed40dcd2bcac02bc", null ], + [ "expression", "classxt_1_1xfunctor__applier__base.html#a5c676f9bf0dcbba9c63d589d2a417abd", null ], + [ "front", "classxt_1_1xfunctor__applier__base.html#ad36ac2c194e7e6f470548dad89e88ca2", null ], + [ "front", "classxt_1_1xfunctor__applier__base.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8", null ], + [ "has_linear_assign", "classxt_1_1xfunctor__applier__base.html#a9ded44a42136f6472c91f0d60462d7a5", null ], + [ "layout", "classxt_1_1xfunctor__applier__base.html#a41a690f43f808ba326e0bd3e4ab19f95", null ], + [ "operator()", "classxt_1_1xfunctor__applier__base.html#a5b63f2bdd4620e52cc453fafd78831d3", null ], + [ "operator()", "classxt_1_1xfunctor__applier__base.html#a63939aecf0c7f315aab8119a2790aa69", null ], + [ "rbegin", "classxt_1_1xfunctor__applier__base.html#a683da35bece5497aead059605a406235", null ], + [ "rbegin", "classxt_1_1xfunctor__applier__base.html#abacad02a84f1b459e87948192e2c5d05", null ], + [ "rbegin", "classxt_1_1xfunctor__applier__base.html#a81666e7d863a7679298d37a373cd1395", null ], + [ "rbegin", "classxt_1_1xfunctor__applier__base.html#aff09d88c2dfc4cb00850f42c8f695337", null ], + [ "rend", "classxt_1_1xfunctor__applier__base.html#a20631d9fd8aaa1e5a95393c31537ef81", null ], + [ "rend", "classxt_1_1xfunctor__applier__base.html#a8201e2518627bdc8e1fb6f33653aacbb", null ], + [ "rend", "classxt_1_1xfunctor__applier__base.html#a367facbe0356cf7de42ed9cd1e60a163", null ], + [ "rend", "classxt_1_1xfunctor__applier__base.html#a23da38db60689cea813d3995b7b93de2", null ], + [ "shape", "classxt_1_1xfunctor__applier__base.html#a982e33a6deafe2b8f8048ce8c91956b3", null ], + [ "size", "classxt_1_1xfunctor__applier__base.html#ae971620a3e942d234f19e65a10005e45", null ], + [ "strides", "classxt_1_1xfunctor__applier__base.html#aee81935fb3b87f6e71e49e5410236645", null ], + [ "unchecked", "classxt_1_1xfunctor__applier__base.html#ad86eba7c460e85d7e6bd558091531376", null ], + [ "unchecked", "classxt_1_1xfunctor__applier__base.html#a5b9d6e6df937ed2b534d8a68c0d4ceff", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfunctor__applier__base.png b/classxt_1_1xfunctor__applier__base.png new file mode 100644 index 0000000000000000000000000000000000000000..f24f7d28038c2a55d5bffd8f9c7b28889ea0d184 GIT binary patch literal 1768 zcmb_dYdBPC93PjJCSlX`C@ZFfim=kiB{@xGT?XSMHX)PL3NdJv>plllF5T8FDulFS zc1T5yTSjCemugls!$WB@65}>AWpMV4eV(4${jgv5eE7e=-~0aGbKdj&UtWr*hx2Om z1~dwVTJ3TG?~Ot!0tn7jRYI)YuVgkd=y3&;cReBAyEkKpoC^EpJ!++BEyAETCdv)4TJX`9*s4!;I!!KjBP& zIow@E)jbbXuek9P2;dx*O+E()c?;#0qAxjA5urrTq{af_a~FKdj|vbjwBNv z+ZdH{OyM5T!sCcYX-4AV}3ed9RBUq=Ut z>NSs1vS+_2kt`FBPDj7DwXa{YiOaHVA7j6bE_f3$M{0Lv)%RGJidVOqpOnYQy&yt+ zk`I=!ubdw0C?4yL&~BfIm}6y8gG*D1P`hYfO1qo-@q|ZOPz06z3&e|;w$BLrCSu=U z%tY(fK|y88H0HG2+; zvqe^pP$YHOQ}<%R0x~&!=T`5QX|;X0lkufS_Ai1%h=wZJgK4Pj{B7iy@9573(MfTp zw$u>^-BJ2Q-65NPy6YIT5r>&v5H4siaINN9ymDprR&%#ZM38m4$FWrY@9i1nTl%8 zS5j7;vXSS}NL1!N%^X&0~OCWR5!riB`)ggMpf@wA}g_5bbqF{eo+(;MlP zCc;F6bOcv?;rPLS&fPXD2{oy_$;b}~FwnzTDjJTcTZFPh9_ojKgGq5b>Bnr(fAt>i0<4HsPt z>7+)@fu4Ar#2GW6Jl>qh)nJ{u0Kl8`Xw3TE0$(tm%lsxr`DB4~V1Gqj^MS9J5MIGn0eu==0Lx-#P|XS7w0 zU}b6(D17j8cE*f4d)F1)n0bzof1z_@e0RUa5|iPoJFz&=Eb_c9nC}tUsg3wS{*R;S z2}3s?B_Mq)!ID6~M?1-C-Q)?14QuJikrv_Eg23%$Zz%^1w@KCGF5wvP6HEfp#Fh;p z{k-Oh*#p{pOp>!2cZo)G!k5r!p>iYnjJ}`?Yan?Gyxb>|BA16jGd3MYsaI(HNU9GA QK<*@z%YF|$0|-j{3&BBI4gdfE literal 0 HcmV?d00001 diff --git a/classxt_1_1xfunctor__iterator-members.html b/classxt_1_1xfunctor__iterator-members.html new file mode 100644 index 000000000..8457b186f --- /dev/null +++ b/classxt_1_1xfunctor__iterator-members.html @@ -0,0 +1,139 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunctor_iterator< F, IT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunctor_iterator< F, IT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    equal(const xfunctor_iterator &rhs) const (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    functor_type typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    iterator_category typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    less_than(const xfunctor_iterator &rhs) const (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    operator*() const (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    operator++() (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >inline
    operator+=(difference_type n) (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >inline
    operator-(xfunctor_iterator rhs) const (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >inline
    operator--() (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >inline
    operator-=(difference_type n) (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >inline
    operator->() const (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    pointer typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    proxy_inner typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    reference typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    self_type typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    subiterator_traits typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    value_type typedef (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    xfunctor_iterator(const IT &, functor_type *) (defined in xt::xfunctor_iterator< F, IT >)xt::xfunctor_iterator< F, IT >
    +
    + + + + diff --git a/classxt_1_1xfunctor__iterator.html b/classxt_1_1xfunctor__iterator.html new file mode 100644 index 000000000..caf0fbf7b --- /dev/null +++ b/classxt_1_1xfunctor__iterator.html @@ -0,0 +1,599 @@ + + + + + + + +xtensor: xt::xfunctor_iterator< F, IT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunctor_iterator< F, IT > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xfunctor_iterator< F, IT >:
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using functor_type = F
     
    using subiterator_traits = std::iterator_traits<IT>
     
    using proxy_inner = xproxy_inner_types<detail::xfunctor_invoker_t<F, IT>>
     
    using value_type = typename functor_type::value_type
     
    using reference = typename proxy_inner::reference
     
    using pointer = typename proxy_inner::pointer
     
    using difference_type = typename subiterator_traits::difference_type
     
    using iterator_category = typename subiterator_traits::iterator_category
     
    using self_type = xfunctor_iterator<F, IT>
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    Extended copy semantic
     xfunctor_iterator (const IT &, functor_type *)
     
    self_typeoperator++ ()
     
    self_typeoperator-- ()
     
    self_typeoperator+= (difference_type n)
     
    self_typeoperator-= (difference_type n)
     
    difference_type operator- (xfunctor_iterator rhs) const
     
    reference operator* () const
     
    pointer operator-> () const
     
    bool equal (const xfunctor_iterator &rhs) const
     
    bool less_than (const xfunctor_iterator &rhs) const
     
    +

    Detailed Description

    +
    template<class F, class IT>
    +class xt::xfunctor_iterator< F, IT >
    +

    Definition at line 574 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::difference_type = typename subiterator_traits::difference_type
    +
    + +

    Definition at line 590 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::functor_type = F
    +
    + +

    Definition at line 583 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ iterator_category

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::iterator_category = typename subiterator_traits::iterator_category
    +
    + +

    Definition at line 591 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::pointer = typename proxy_inner::pointer
    +
    + +

    Definition at line 589 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ proxy_inner

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::proxy_inner = xproxy_inner_types<detail::xfunctor_invoker_t<F, IT>>
    +
    + +

    Definition at line 586 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::reference = typename proxy_inner::reference
    +
    + +

    Definition at line 588 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::self_type = xfunctor_iterator<F, IT>
    +
    + +

    Definition at line 593 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ subiterator_traits

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::subiterator_traits = std::iterator_traits<IT>
    +
    + +

    Definition at line 584 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class IT>
    + + + + +
    using xt::xfunctor_iterator< F, IT >::value_type = typename functor_type::value_type
    +
    + +

    Definition at line 587 of file xfunctor_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xfunctor_iterator()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + + + + + +
    xt::xfunctor_iterator< F, IT >::xfunctor_iterator (const IT & it,
    functor_type * pf )
    +
    + +

    Definition at line 1508 of file xfunctor_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ equal()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::equal (const xfunctor_iterator< F, IT > & rhs) const
    +
    + +

    Definition at line 1561 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ less_than()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::less_than (const xfunctor_iterator< F, IT > & rhs) const
    +
    + +

    Definition at line 1567 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator*()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator* () const
    +
    + +

    Definition at line 1549 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator++()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator++ ()
    +
    +inline
    +
    + +

    Definition at line 1515 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator+=()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator+= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 1529 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator-()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator- (xfunctor_iterator< F, IT > rhs) const
    +
    +inline
    +
    + +

    Definition at line 1543 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator--()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator-- ()
    +
    +inline
    +
    + +

    Definition at line 1522 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator-=()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator-= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 1536 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator->()

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + +
    auto xt::xfunctor_iterator< F, IT >::operator-> () const
    +
    + +

    Definition at line 1555 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xfunctor__iterator.png b/classxt_1_1xfunctor__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..a518038f6bcb806e58852d1e4fcf43c3afd50aa4 GIT binary patch literal 2610 zcmdT_`#;p_9-pX`R@&^5CG^U~cA<{!kV~@)>$`+iDEE#NW*Ksu!DQytbd*JwENYsm zn5|rg3=?Bmjgp2m?&cDr+{YzjOfzHlJ0s_G_O<`O`Tp?zJm2U2c|OnQd4Im2_mk$~ z_PvI>t~vw)(EywsJRy+Hdf?b&iz@iG++&dr8a)r!Gmdh(92`!}2otiNKD0Wr|DsNQ z`^50@FgX8hhc_9-w#Iw9orZwl%EwZL&;!mf00;Xsi5q5#{Jbe^io?SwRIdcSK+{!e zsZ!mVemtx?Afx>Ou)FPJ)l^nzge2Qj`zMBBD!?p*q*Y23V~=RTsS)E+3EMod)* zC=|2M+BcH-R$or?y?1pR6@*?rbdYwO@Tk>*{ySlj68psZ>>O$-giwUi@t)EeEzVqN z%w*im9mAQ6xvEJ5@)GA>*Ghd~{JHtW*SyG9|D!+GQ?89<4!t^uLEDuiW73-?Pdg-| zB5Q6d?J)|9NIf%B~G{&qkHax1}o~p#|G?iV5*+p%RFV=e!J(xbi za8?Uw3PCoM_8VNgtQmLK6Gxn#h_Q)0ns|>97?1X=h>BxY0E;*yG5%bvlw2l?>rSOV zMG|SF%WVyFKQNN%Rs8K#v#T=tZ0GYgwOn7uo5Gs*sV)4AWGE~@YIa`72EnvF8;UhcJzU~)2Pmg*JL><+}G z(jv7W(V46R!YDL6J>0(uD!0sm4@?x_jD?r9Qb+1LLOAnh>ALPNchcLidxl7sn@JhB zY8cZjf^8#3gHqdNmAp?tv@YxBAx_?`?-QrI+a@|lU~b{u(A!8uz97mPPg6Sz&zqq= zEelK!&Xu;5cgiu@CFH!Y+l;C{+UdC%okYJ?`$>6}t?BIR8xPqec?n(Z-Bite(d{vu zg_xghh4vKW2{^Ca#eoUi5ho7=e(a&uz%1s1&cwmG+MY+;z=+-bsr`NkeZV)s{aH#S zZTuLU+{hMd)+xvW+75L6F&&>8)dz6riDQ!mDVT}$J+`wCB2Q= zvGVAcq-&f zlK%Ij;WfW{l;Iiu!A7~AP6O<6+eMS&I@l)Ofs;U1=_G@3N64uh$Bs@n-h6&u??Xw9 z+Rpj-CePy0t1#QI{=tnYx@bT@4A^9RKp*PzW5pX7j1TuF>N@c;yEnhlf5e8SR2TWA z>5~ZfSz)0Avd$@HCi&DN{I;|?+Y0O1_m;{|CD@j+Vv|P4pYvBtr&ZG!D*8#YMhv7%$`^qVp z4)5NHlrnVnsTr1xWa``Rlnypo#GQKMlO0Li#3605KUtJF=o?@-EnA>!2?s(9L*nk` z?S_f5O-0-mSQ=;WgIFLi?{;c<*;gBpBkeT7VW4iLTsMW-brBkzM~D6?rX94Hs*{KM zG~8GMc+tO&36t{3IJ+<-tNP<@`Q%+voa6j4}uU<=R)l|@{Kt;_EfXvZn)nn)|u84*>eSo=wx7P&H$>syBh5~| zuBvq3195ewDsd1AHF>GP6#$sU`og;ZE(9-;HF!fXm@{O<+BV?*p^W<-q<|2<9=83| zf5L*d&Hr=Q%YUN0`@|rsayFRTT#HAlaY^7U3!3e<`jIvR%OF9Z`2>#}bJo4K*V=(B zeewcfkW+=%;ZSZ%O?U4o7bg%LublldL2MC0p~aFEq0m}L#V$eZ57N+>k7M{SPB6XB z%rdq>0rszfLoX8c%Ej?;+$!Tzz}WSXUnFE>|iD*H9pt^t%Z-Z?nN z0xJ(ji)H0LoJ#X()|`m`sq>-6l$w!+Ufx+vk(}qtrC9}~6Mua&i5AU;cE#tP3E74d|e`@b9xQ5*F}lPYMHYb#G=r=K7jSmutcDCczkg8#Mh zbe>YCwN^w7_+u+;sVpMc2A`E0Y{t(@{TI!+2=978CU+W^dqBVkaCCF1I1zm14*?Yi A{r~^~ literal 0 HcmV?d00001 diff --git a/classxt_1_1xfunctor__stepper-members.html b/classxt_1_1xfunctor__stepper-members.html new file mode 100644 index 000000000..10009eee3 --- /dev/null +++ b/classxt_1_1xfunctor__stepper-members.html @@ -0,0 +1,139 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunctor_stepper< F, ST > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunctor_stepper< F, ST >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    functor_type typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    operator*() const (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    pointer typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    proxy_inner typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    reference typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    reset(size_type dim) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    reset_back(size_type dim) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    shape_type typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    size_type typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    step(size_type dim) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    step(size_type dim, size_type n) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    step_back(size_type dim) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    step_back(size_type dim, size_type n) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    to_begin() (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    to_end(layout_type) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    value_type typedef (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    xfunctor_stepper()=default (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    xfunctor_stepper(const ST &, functor_type *) (defined in xt::xfunctor_stepper< F, ST >)xt::xfunctor_stepper< F, ST >
    +
    + + + + diff --git a/classxt_1_1xfunctor__stepper.html b/classxt_1_1xfunctor__stepper.html new file mode 100644 index 000000000..7a05b5502 --- /dev/null +++ b/classxt_1_1xfunctor__stepper.html @@ -0,0 +1,541 @@ + + + + + + + +xtensor: xt::xfunctor_stepper< F, ST > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunctor_stepper< F, ST > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Types

    using functor_type = F
     
    using proxy_inner = xproxy_inner_types<detail::xfunctor_invoker_t<F, ST>>
     
    using value_type = typename functor_type::value_type
     
    using reference = typename proxy_inner::reference
     
    using pointer = std::remove_reference_t<reference>*
     
    using size_type = typename ST::size_type
     
    using difference_type = typename ST::difference_type
     
    using shape_type = typename ST::shape_type
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    Extended copy semantic
     xfunctor_stepper (const ST &, functor_type *)
     
    reference operator* () const
     
    void step (size_type dim)
     
    void step_back (size_type dim)
     
    void step (size_type dim, size_type n)
     
    void step_back (size_type dim, size_type n)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type)
     
    +

    Detailed Description

    +
    template<class F, class ST>
    +class xt::xfunctor_stepper< F, ST >
    +

    Definition at line 628 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::difference_type = typename ST::difference_type
    +
    + +

    Definition at line 639 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::functor_type = F
    +
    + +

    Definition at line 632 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::pointer = std::remove_reference_t<reference>*
    +
    + +

    Definition at line 637 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ proxy_inner

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::proxy_inner = xproxy_inner_types<detail::xfunctor_invoker_t<F, ST>>
    +
    + +

    Definition at line 634 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::reference = typename proxy_inner::reference
    +
    + +

    Definition at line 636 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::shape_type = typename ST::shape_type
    +
    + +

    Definition at line 641 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::size_type = typename ST::size_type
    +
    + +

    Definition at line 638 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class ST>
    + + + + +
    using xt::xfunctor_stepper< F, ST >::value_type = typename functor_type::value_type
    +
    + +

    Definition at line 635 of file xfunctor_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xfunctor_stepper()

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + + + + + +
    xt::xfunctor_stepper< F, ST >::xfunctor_stepper (const ST & stepper,
    functor_type * pf )
    +
    + +

    Definition at line 1589 of file xfunctor_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    auto xt::xfunctor_stepper< F, ST >::operator* () const
    +
    + +

    Definition at line 1596 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::reset (size_type dim)
    +
    + +

    Definition at line 1626 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::reset_back (size_type dim)
    +
    + +

    Definition at line 1632 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ step() [1/2]

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::step (size_type dim)
    +
    + +

    Definition at line 1602 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ step() [2/2]

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::step (size_type dim,
    size_type n )
    +
    + +

    Definition at line 1614 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ step_back() [1/2]

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::step_back (size_type dim)
    +
    + +

    Definition at line 1608 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ step_back() [2/2]

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::step_back (size_type dim,
    size_type n )
    +
    + +

    Definition at line 1620 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::to_begin ()
    +
    + +

    Definition at line 1638 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class F, class ST>
    + + + + + + + +
    void xt::xfunctor_stepper< F, ST >::to_end (layout_type l)
    +
    + +

    Definition at line 1644 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xfunctor__view-members.html b/classxt_1_1xfunctor__view-members.html new file mode 100644 index 000000000..a822954f2 --- /dev/null +++ b/classxt_1_1xfunctor__view-members.html @@ -0,0 +1,249 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunctor_view< F, CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunctor_view< F, CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< xfunctor_view< F, CT > >inline
    back()xt::xfunctor_applier_base< xfunctor_view< F, CT > >
    back() constxt::xfunctor_applier_base< xfunctor_view< F, CT > >
    back()xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    back() constxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    backstrides() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    begin() noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    begin() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    build_functor_view(E &&e) const (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >
    build_functor_view(E &&e) const -> rebind_t< E > (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    cbegin() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    cend() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    crbegin() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    crend() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    element(IT first, IT last) -> referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    element(IT first, IT last) const -> const_referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    element(IT first, IT last) -> referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    element(IT first, IT last) const -> const_referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    end() noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    end() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    expression() noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    expression() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    front()xt::xfunctor_applier_base< xfunctor_view< F, CT > >
    front() constxt::xfunctor_applier_base< xfunctor_view< F, CT > >
    front()xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    front() constxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    has_linear_assign(const S &strides) constxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    layout() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator()(Args... args) -> referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    operator()(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    operator()(Args... args) -> referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    operator()(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator=(const xexpression< E > &e) (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >
    operator=(const E &e) (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >
    operator=(const xexpression< E > &e) -> self_type &xt::xfunctor_view< F, CT >inline
    operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xfunctor_view< F, CT > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xfunctor_view< F, CT > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rbegin() noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rbegin() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rebind_t typedef (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rend() noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rend() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    self_type typedef (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >
    semantic_base typedef (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >
    shape() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    size() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    strides() const noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    unchecked(Args... args) -> referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    unchecked(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    unchecked(Args... args) -> referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    unchecked(Args... args) const -> const_referencext::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    xaccessible< self_type > (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >friend
    xfunctor_applier_base(undecay_expression) noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inlineexplicit
    xfunctor_applier_base(Func &&, E &&) noexceptxt::xfunctor_applier_base< xfunctor_view< F, CT > >inline
    xview_semantic< self_type > (defined in xt::xfunctor_view< F, CT >)xt::xfunctor_view< F, CT >friend
    +
    + + + + diff --git a/classxt_1_1xfunctor__view.html b/classxt_1_1xfunctor__view.html new file mode 100644 index 000000000..b2db10053 --- /dev/null +++ b/classxt_1_1xfunctor__view.html @@ -0,0 +1,1197 @@ + + + + + + + +xtensor: xt::xfunctor_view< F, CT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunctor_view< F, CT > Class Template Reference
    +
    +
    + +

    View of an xexpression . + More...

    + +

    #include <xfunctor_view.hpp>

    +
    +Inheritance diagram for xt::xfunctor_view< F, CT >:
    +
    +
    + + +xt::xfunctor_applier_base< xfunctor_view< F, CT > > +xt::xview_semantic< xfunctor_view< F, CT > > +xt::xaccessible< xfunctor_view< F, CT > > +xt::xsemantic_base< xfunctor_view< F, CT > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xfunctor_view<F, CT>
     
    using semantic_base = xview_semantic<self_type>
     
    template<class E>
    using rebind_t = xfunctor_view<F, E>
     
    - Public Types inherited from xt::xfunctor_applier_base< xfunctor_view< F, CT > >
    using self_type
     
    using inner_types
     
    using xexpression_type
     
    using undecay_expression
     
    using functor_type
     
    using accessible_base
     
    using extension_base
     
    using expression_tag
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using bool_load_type
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xview_semantic< xfunctor_view< F, CT > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xfunctor_view< F, CT > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    +template<class E>
    rebind_t< E > build_functor_view (E &&e) const
     
    - Public Member Functions inherited from xt::xfunctor_applier_base< xfunctor_view< F, CT > >
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +const_reference operator[] (size_type i) const
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +reference element (IT first, IT last)
     
    +const_reference element (IT first, IT last) const
     
    auto data_element (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().data_element(i)))
     
    auto data_element (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().data_element(i)))
     
    auto flat (size_type i) -> decltype(std::declval< FCT >()(std::declval< undecay_expression >().flat(i)))
     
    auto flat (size_type i) const -> decltype(std::declval< FCT >()(std::declval< const undecay_expression >().flat(i)))
     
    auto load_simd (size_type i) const -> decltype(std::declval< FCT >().template proxy_simd_load< align, requested_type, N >(std::declval< undecay_expression >(), i))
     
    auto store_simd (size_type i, const simd &e) -> decltype(std::declval< FCT >() .template proxy_simd_store< align >(std::declval< undecay_expression >(), i, e))
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) -> reference
     Returns a reference to the element at the specified position in the expression.
     
    auto element (IT first, IT last) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    const xexpression_type & expression () const noexcept
     Returns a consttant reference to the underlying expression of the view.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
     xfunctor_applier_base (undecay_expression) noexcept
     Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
     
     xfunctor_applier_base (Func &&, E &&) noexcept
     Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
     
    size_type size () const noexcept
     Returns the size of the expression.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the expression.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the expression.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the expression.
     
    layout_type layout () const noexcept
     Returns the layout_type of the expression.
     
    bool is_contiguous () const noexcept
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the function to the specified parameter.
     
    bool has_linear_assign (const S &strides) const
     Checks whether the xfunctor_applier_base can be linearly assigned to an expression with the specified strides.
     
    auto begin () noexcept
     Returns an iterator to the first element of the expression.
     
    auto begin () const noexcept
     Returns a constant iterator to the first element of the expression.
     
    auto end () noexcept
     Returns an iterator to the element following the last element of the expression.
     
    auto end () const noexcept
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () noexcept
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin () const noexcept
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () noexcept
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend () const noexcept
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    - Public Member Functions inherited from xt::xview_semantic< xfunctor_view< F, CT > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xfunctor_view< F, CT > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + +

    +Friends

    class xview_semantic< self_type >
     
    class xaccessible< self_type >
     
    + + + + + + + + + + + +

    Extended copy semantic

    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    template<class E>
    auto operator= (const E &e) -> disable_xexpression< E, self_type > &
     
    template<class E>
    auto build_functor_view (E &&e) const -> rebind_t< E >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::xfunctor_applier_base< xfunctor_view< F, CT > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Protected Member Functions inherited from xt::xview_semantic< xfunctor_view< F, CT > >
    xview_semantic (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xfunctor_view< F, CT > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    - Protected Attributes inherited from xt::xfunctor_applier_base< xfunctor_view< F, CT > >
    undecay_expression m_e
     
    functor_type m_functor
     
    +

    Detailed Description

    +
    template<class F, class CT>
    +class xt::xfunctor_view< F, CT >

    View of an xexpression .

    +

    The xt::xfunctor_view class is an expression addressing its elements by applying a functor to the corresponding element of an underlying expression. Unlike e.g. xgenerator, an xt::xfunctor_view is an lvalue. It is used e.g. to access real and imaginary parts of complex expressions.

    +

    xt::xfunctor_view has a view semantics and can be used on any expression. For a similar feature with a container semantics, one can use xt::xfunctor_adaptor.

    +

    xt::xfunctor_view is not meant to be used directly, but through helper functions such as xt::real or xt::imag.

    +
    Template Parameters
    + + + +
    Fthe functor type to be applied to the elements of specified expression.
    CTthe closure type of the xt::xexpression type underlying this view
    +
    +
    +
    See also
    xt::real, xt::imag
    + +

    Definition at line 440 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class E>
    + + + + +
    using xt::xfunctor_view< F, CT >::rebind_t = xfunctor_view<F, E>
    +
    + +

    Definition at line 459 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_view< F, CT >::self_type = xfunctor_view<F, CT>
    +
    + +

    Definition at line 446 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xfunctor_view< F, CT >::semantic_base = xview_semantic<self_type>
    +
    + +

    Definition at line 447 of file xfunctor_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ build_functor_view()

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_view< F, CT >::build_functor_view (E && e) const -> rebind_t<E> +
    +
    +inline
    +
    + +

    Definition at line 1436 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_view< F, CT >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
    +
    +inline
    +
    + +

    Definition at line 1422 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<class F, class CT>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xfunctor_view< F, CT >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 1403 of file xfunctor_view.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xaccessible< self_type >

    + +
    +
    +
    +template<class F, class CT>
    + + + + + +
    + + + + +
    friend class xaccessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 467 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xview_semantic< self_type >

    + +
    +
    +
    +template<class F, class CT>
    + + + + + +
    + + + + +
    friend class xview_semantic< self_type >
    +
    +friend
    +
    + +

    Definition at line 467 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp
    • +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xfunctor_view.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xfunctor__view.js b/classxt_1_1xfunctor__view.js new file mode 100644 index 000000000..666d4a24b --- /dev/null +++ b/classxt_1_1xfunctor__view.js @@ -0,0 +1,4 @@ +var classxt_1_1xfunctor__view = +[ + [ "operator=", "classxt_1_1xfunctor__view.html#a9e41f726bcd647106ca9f420a045d228", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xfunctor__view.png b/classxt_1_1xfunctor__view.png new file mode 100644 index 0000000000000000000000000000000000000000..32fcb42c8185efad5a04f12bf8adf014b4c84ce1 GIT binary patch literal 4096 zcmd5Vi;TqF{KQN<%~cim%t#@C?mK!9?1p;E68Z}qnz~ABqo^abs&)%9elm90 ze$B#~;WP17Ro0LLxdER+sJsEUe>_-(V#S8oEH|8lRo6l9G8|;D=dx)h)0g>3vx4Kz z_eYlcQ%qK6tzwUZ7Hw-@iWxn1(y6qmny7`?s@k(HQCc(WQ3fC2=lpMsxBncDD)-l| zfU9Ozi~K!9i|)IzCK)wRS&t^3CX?#Xd^4+nSpk}7x`wG|F{x<6lvmL%chjK?1LCc1 z`*WQgXv`l}9Fa`2j(r+jzoLO0Y62y-zss=fo-zu%_s|NHY=-2i@9IIWpE!*;+kCWiG}0#k~+9& zto%Ggs4F;AxdmM|^tNM#GaX}3j6v# zkhxwpNk<{(42Hpx&%+VDZo_8~z0v8x6l zu`b2L$q)nx#)43_-67$vWS9McT<1;Xa0d`Tm{(w59gOa4UAgob`kz$y=Xw|xZfksf z2yqd-HCh|P*y>lrDe%)25J1%viLavi{M3l?;Rr~RtZ^$|_UC>y0DZkag#O=6UEpIu zSQr8W5%j|zOTGN&=!<*O(EJPFTWsV4M_d4a3KIqjVFUnW(Ngfyyud@Ay+s4}vq(*f zX@ki4lFJhmbp%jrMyUHG4UGkZ5wirMV zNhRGnyY%X@7PMF!GJ7Z9HIxqcv_*s#94!u>4FfT23u(!WiI=iph7wrD1L&4YAg)!L zypBp~lf9~Sa-Z5qiZst0BUl^8lu{vfyX{Sql@j_W2GZrJp^n2f4u88F+dPL-y?QFU zF6IE4rTu8o=F@8G3vePY><#bfg*OSGT!zSoUeEkF7PcsCp;TTvCgU}$IWa>h0XCo5iJ6-&YA zi{Ke?HV3@v(uoYeqU_4n!49r1L?{p?@R(T3p`l$g(oF=SBX~sKpZ9T~Xz)M{B34 z5_v=RxI@A`{u;;3Mzqa%_3 z9K?l?gcIW3^fCEQn@`~GjYPkPdQ?Q{F?3e0$%rp$}Fx}+@8&N zVrG$(ig(`o0JsI_n2!#(^$?5F(UzmP0jYe@?ALth+8G_QoBf`Fvmboz(r@}@_PyOf zCYdC6GC322X`>5q1&WkR-yV`o5t2=Tj%=oz5T;-Orf7I?a^>K&_ToF(GWZD675b$A z3II&wJH@e)Id4QRme#7yO{`!yWSH@a`zA5WH~Y)1947Rz>$QXh3^KP(X_Zf$gc2Jd zby7JE8+f>@W6ZJIc>Xanl=#$xg#Sk54PtcYQ<@tbLGUaooN;anM$A27O6Mr*R7q*U zlwLdaRxY%A{EHw9qR0(_EQQX<{@AEffD4Ae_6bo zq5zSs34}9fSG)LEpr3(SlNl7rH+-C6wsGC;TFts2_B2Hs_yixhyRO7{Yq-OD>q-#l zht3l}zxuE^ZxiqO_!Cgv=hvjQOJT^&)33Ys8-1Ia^Bup@j`w{Z1{zD)8J<`Bd8XQw zQ{kQ_q=ARpl-iT+WlObCJ+sJ5UoHH*W$ftwJ+q3%#YOE?U>lNvtz&<##`I^tTAHh* zWH3YiFVn1pd>ne5P6^RmqcsyvXH74?m?xZh`3 zL6@9w;Ko3W$&(3*W`rG!ta9`FpgCAu(w`oD{j^_P^BnR;!&`Y&sBrFMUd=5kgUvOa z|5)%${a1frkITD-k9x>G^^@Fhf4L{H5o`f#vCedN%EuEaUGJ3F8`WxC+2t~VaGu>6 zV!2Y(ih5AWkRZDowbM(=y>DhWe+tlb`XCs2k~$j!%atY8H2>Gi~ax!?4=GYRm?(R@d + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xgenerator< F, R, S > Member List
    +
    +
    + +

    This is the complete list of members for xt::xgenerator< F, R, S >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    accessible_base typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    assign_to(xexpression< E > &e) const noexcept (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    at(Args... args) const -> const_referencext::xconst_accessible< xgenerator< F, R, S > >inline
    at(Args... args) const -> const_referencext::xconst_accessible< xgenerator< F, R, S > >inline
    back() constxt::xconst_accessible< xgenerator< F, R, S > >inline
    begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    bool_load_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    broadcast_shape(O &shape, bool reuse_cache=false) constxt::xgenerator< F, R, S >inline
    build_generator(OF &&func) const (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    build_generator(OF &&func) const -> rebind_t< OR, OF > (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    const_pointer typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    const_reference typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    const_stepper typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    contiguous_layout (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >static
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    xt::derived_cast() &noexceptxt::xexpression< xgenerator< F, R, S > >inline
    xt::derived_cast() const &noexceptxt::xexpression< xgenerator< F, R, S > >inline
    xt::derived_cast() &&noexceptxt::xexpression< xgenerator< F, R, S > >inline
    difference_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    dimension() const noexceptxt::xconst_accessible< xgenerator< F, R, S > >inline
    element(It first, It last) const (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    element(It first, It last) const -> const_referencext::xgenerator< F, R, S >inline
    end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    expression_tag typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    extension_base typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    front() constxt::xconst_accessible< xgenerator< F, R, S > >inline
    functor() const noexcept (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    functor_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    has_linear_assign(const O &) const noexceptxt::xgenerator< F, R, S >inline
    in_bounds(Args... args) constxt::xconst_accessible< xgenerator< F, R, S > >inline
    inner_shape_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    inner_types typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    is_contiguous() const noexcept (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    iterable_base typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    layout() const noexcept (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    operator()(Args... args) const (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    operator()(Args... args) const -> const_referencext::xgenerator< F, R, S >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< xgenerator< F, R, S > >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< xgenerator< F, R, S > >inline
    periodic(Args... args) const -> const_referencext::xconst_accessible< xgenerator< F, R, S > >inline
    periodic(Args... args) const -> const_referencext::xconst_accessible< xgenerator< F, R, S > >inline
    pointer typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rebind_t typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    reference typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xgenerator< F, R, S > >inline
    reshape(O &&shape) const &xt::xgenerator< F, R, S >inline
    reshape(O &&shape) && (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    reshape(std::initializer_list< T > shape) const & (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    reshape(std::initializer_list< T > shape) && (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    self_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    shape() const noexceptxt::xgenerator< F, R, S >inline
    shape(size_type index) constxt::xgenerator< F, R, S >
    shape_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< xgenerator< F, R, S > >inline
    size_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    static_layout (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >static
    stepper typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    stepper_begin(const O &shape) const noexcept (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    stepper_begin(const O &shape) const noexcept -> const_stepper (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    stepper_end(const O &shape, layout_type) const noexcept (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    stepper_end(const O &shape, layout_type) const noexcept -> const_stepper (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >inline
    unchecked(Args... args) const (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    unchecked(Args... args) const -> const_referencext::xgenerator< F, R, S >inline
    value_type typedef (defined in xt::xgenerator< F, R, S >)xt::xgenerator< F, R, S >
    xgenerator(Func &&f, const S &shape) noexceptxt::xgenerator< F, R, S >inline
    +
    + + + + diff --git a/classxt_1_1xgenerator.html b/classxt_1_1xgenerator.html new file mode 100644 index 000000000..159aea290 --- /dev/null +++ b/classxt_1_1xgenerator.html @@ -0,0 +1,1699 @@ + + + + + + + +xtensor: xt::xgenerator< F, R, S > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xgenerator< F, R, S > Class Template Reference
    +
    +
    + +

    Multidimensional function operating on indices. + More...

    + +

    #include <xgenerator.hpp>

    +
    +Inheritance diagram for xt::xgenerator< F, R, S >:
    +
    +
    + + +xt::xsharable_expression< xgenerator< F, R, S > > +xt::xconst_iterable< xgenerator< F, R, S > > +xt::xconst_accessible< xgenerator< F, R, S > > +xt::xexpression< xgenerator< F, R, S > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xgenerator<F, R, S>
     
    using functor_type = typename std::remove_reference<F>::type
     
    using accessible_base = xconst_accessible<self_type>
     
    using extension_base = extension::xgenerator_base_t<F, R, S>
     
    using expression_tag = typename extension_base::expression_tag
     
    using inner_types = xcontainer_inner_types<self_type>
     
    using value_type = R
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer = value_type*
     
    using const_pointer = const value_type*
     
    using size_type = typename inner_types::size_type
     
    using difference_type = std::ptrdiff_t
     
    using iterable_base = xconst_iterable<self_type>
     
    using inner_shape_type = typename iterable_base::inner_shape_type
     
    using shape_type = inner_shape_type
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using bool_load_type = xt::bool_load_type<R>
     
    template<class OR, class OF>
    using rebind_t = xgenerator<OF, OR, S>
     
    - Public Types inherited from xt::xexpression< xgenerator< F, R, S > >
    using derived_type
     
    - Public Types inherited from xt::xconst_iterable< xgenerator< F, R, S > >
    using derived_type
     
    using iterable_types
     
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xconst_accessible< xgenerator< F, R, S > >
    using derived_type
     
    using inner_types
     
    using reference
     
    using const_reference
     
    using size_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class O>
    const_stepper stepper_begin (const O &shape) const noexcept
     
    +template<class O>
    const_stepper stepper_end (const O &shape, layout_type) const noexcept
     
    +template<class OR, class OF>
    rebind_t< OR, OF > build_generator (OF &&func) const
     
    +size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    Constructor
    template<class Func>
     xgenerator (Func &&f, const S &shape) noexcept
     Constructs an xgenerator applying the specified function over the given shape.
     
    Size and shape
    const inner_shape_type & shape () const noexcept
     Returns the shape of the xgenerator.
     
    layout_type layout () const noexcept
     
    bool is_contiguous () const noexcept
     
    Data
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns the evaluated element at the specified position in the function.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the function.
     
    - Public Member Functions inherited from xt::xexpression< xgenerator< F, R, S > >
    derived_typederived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    const derived_typederived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    - Public Member Functions inherited from xt::xconst_iterable< xgenerator< F, R, S > >
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_layout_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +const_layout_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    - Public Member Functions inherited from xt::xconst_accessible< xgenerator< F, R, S > >
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    size_type size () const noexcept(noexcept(derived_cast().shape()))
     Returns the size of the expression.
     
    size_type dimension () const noexcept
     Returns the number of dimensions of the expression.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    +const_reference at (Args... args) const
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    +const_reference periodic (Args... args) const
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = layout_type::dynamic
     
    static constexpr bool contiguous_layout = false
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

    template<class O>
    bool broadcast_shape (O &shape, bool reuse_cache=false) const
     Broadcast the shape of the function to the specified parameter.
     
    template<class O>
    bool has_linear_assign (const O &) const noexcept
     Checks whether the xgenerator can be linearly assigned to an expression with the specified strides.
     
    template<class E, class FE = F>
    +requires (has_assign_to_v<E, FE>)
    void assign_to (xexpression< E > &e) const noexcept
     
    const functor_type & functor () const noexcept
     
    template<class O = xt::dynamic_shape<typename shape_type::value_type>>
    auto reshape (O &&shape) const &
     Reshapes the generator and keeps old elements.
     
    template<class O = xt::dynamic_shape<typename shape_type::value_type>>
    auto reshape (O &&shape) &&
     
    template<class T>
    auto reshape (std::initializer_list< T > shape) const &
     
    template<class T>
    auto reshape (std::initializer_list< T > shape) &&
     
    template<class O>
    auto stepper_begin (const O &shape) const noexcept -> const_stepper
     
    template<class O>
    auto stepper_end (const O &shape, layout_type) const noexcept -> const_stepper
     
    template<class OR, class OF>
    auto build_generator (OF &&func) const -> rebind_t< OR, OF >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xsharable_expression< xgenerator< F, R, S > >
    xsharable_expression (const xsharable_expression &)=default
     
    xsharable_expression (xsharable_expression &&)=default
     
    +xsharable_expressionoperator= (const xsharable_expression &)=default
     
    +xsharable_expressionoperator= (xsharable_expression &&)=default
     
    - Protected Member Functions inherited from xt::xexpression< xgenerator< F, R, S > >
    xexpression (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    const inner_shape_type & get_shape () const
     
    - Protected Member Functions inherited from xt::xconst_accessible< xgenerator< F, R, S > >
    xconst_accessible (const xconst_accessible &)=default
     
    xconst_accessible (xconst_accessible &&)=default
     
    +xconst_accessibleoperator= (const xconst_accessible &)=default
     
    +xconst_accessibleoperator= (xconst_accessible &&)=default
     
    +

    Detailed Description

    +
    template<class F, class R, class S>
    +class xt::xgenerator< F, R, S >

    Multidimensional function operating on indices.

    +

    The xgenerator class implements a multidimensional function, generating a value from the supplied indices.

    +
    Template Parameters
    + + + + +
    Fthe function type
    Rthe return type of the function
    Sthe shape type of the generator
    +
    +
    + +

    Definition at line 106 of file xgenerator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accessible_base

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::accessible_base = xconst_accessible<self_type>
    +
    + +

    Definition at line 116 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::bool_load_type = xt::bool_load_type<R>
    +
    + +

    Definition at line 136 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::const_pointer = const value_type*
    +
    + +

    Definition at line 125 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 123 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 134 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::difference_type = std::ptrdiff_t
    +
    + +

    Definition at line 127 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 118 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::extension_base = extension::xgenerator_base_t<F, R, S>
    +
    + +

    Definition at line 117 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::functor_type = typename std::remove_reference<F>::type
    +
    + +

    Definition at line 114 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::inner_shape_type = typename iterable_base::inner_shape_type
    +
    + +

    Definition at line 130 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::inner_types = xcontainer_inner_types<self_type>
    +
    + +

    Definition at line 120 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::iterable_base = xconst_iterable<self_type>
    +
    + +

    Definition at line 129 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::pointer = value_type*
    +
    + +

    Definition at line 124 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class OR, class OF>
    + + + + +
    using xt::xgenerator< F, R, S >::rebind_t = xgenerator<OF, OR, S>
    +
    + +

    Definition at line 175 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::reference = typename inner_types::reference
    +
    + +

    Definition at line 122 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::self_type = xgenerator<F, R, S>
    +
    + +

    Definition at line 113 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::shape_type = inner_shape_type
    +
    + +

    Definition at line 131 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 126 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 133 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::xgenerator< F, R, S >::value_type = R
    +
    + +

    Definition at line 121 of file xgenerator.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xgenerator()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class Func>
    + + + + + +
    + + + + + + + + + + + +
    xt::xgenerator< F, R, S >::xgenerator (Func && f,
    const S & shape )
    +
    +inlinenoexcept
    +
    + +

    Constructs an xgenerator applying the specified function over the given shape.

    +
    Parameters
    + + + +
    fthe function to apply
    shapethe shape of the xgenerator
    +
    +
    + +

    Definition at line 229 of file xgenerator.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ assign_to()

    + +
    +
    +
    +template<class F, class R, class S>
    +requires (has_assign_to_v<E, FE>)
    +
    +template<class E, class FE>
    +requires (has_assign_to_v<E, FE>)
    + + + + + +
    + + + + + + + +
    void xt::xgenerator< F, R, S >::assign_to (xexpression< E > & e) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 376 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class O>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xgenerator< F, R, S >::broadcast_shape (O & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the function to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 339 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ build_generator()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class OR, class OF>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::build_generator (OF && func) const -> rebind_t<OR, OF> +
    +
    +inline
    +
    + +

    Definition at line 391 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ element()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xgenerator< F, R, S >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the function.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the container.
    +
    +
    + +

    Definition at line 318 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ functor()

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::functor () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 384 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class O>
    + + + + + +
    + + + + + + + +
    bool xt::xgenerator< F, R, S >::has_linear_assign (const O & ) const
    +
    +inlinenoexcept
    +
    + +

    Checks whether the xgenerator can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 351 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + +
    + + + + + + + +
    bool xt::xgenerator< F, R, S >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 257 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + +
    + + + + + + + +
    layout_type xt::xgenerator< F, R, S >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 251 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns the evaluated element at the specified position in the function.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the function.
    +
    +
    + +

    Definition at line 276 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ reshape() [1/4]

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class O>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::reshape (O && shape) &&
    +
    +inline
    +
    + +

    Definition at line 415 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ reshape() [2/4]

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class O>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::reshape (O && shape) const &
    +
    +inline
    +
    + +

    Reshapes the generator and keeps old elements.

    +

    The shape argument can have one of its value equal to -1, in this case the value is inferred from the number of elements in the generator and the remaining values in the shape.

    auto a = xt::arange<double>(50).reshape({-1, 10});
    +
    //a.shape() is {5, 10}
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    Parameters
    + + +
    shapethe new shape (has to have same number of elements as the original generator)
    +
    +
    + +

    Definition at line 408 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ reshape() [3/4]

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::reshape (std::initializer_list< T > shape) &&
    +
    +inline
    +
    + +

    Definition at line 432 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ reshape() [4/4]

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::reshape (std::initializer_list< T > shape) const &
    +
    +inline
    +
    + +

    Definition at line 425 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the xgenerator.

    + +

    Definition at line 245 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ stepper_begin()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class O>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::stepper_begin (const O & shape) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 360 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ stepper_end()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class O>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xgenerator< F, R, S >::stepper_end (const O & shape,
    layout_type  ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 368 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ unchecked()

    + +
    +
    +
    +template<class F, class R, class S>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xgenerator< F, R, S >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 304 of file xgenerator.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + +
    + + + + +
    bool xt::xgenerator< F, R, S >::contiguous_layout = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 139 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + +
    + + + + +
    layout_type xt::xgenerator< F, R, S >::static_layout = layout_type::dynamic
    +
    +staticconstexpr
    +
    + +

    Definition at line 138 of file xgenerator.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xgenerator.js b/classxt_1_1xgenerator.js new file mode 100644 index 000000000..f8b0cf804 --- /dev/null +++ b/classxt_1_1xgenerator.js @@ -0,0 +1,12 @@ +var classxt_1_1xgenerator = +[ + [ "xgenerator", "classxt_1_1xgenerator.html#a6f07eda985bc0f0e510a44afa3b8899d", null ], + [ "broadcast_shape", "classxt_1_1xgenerator.html#ae6b7796ce3f5e9aa5333e6c066013b24", null ], + [ "element", "classxt_1_1xgenerator.html#a78b35b4322ef73b541653bc0e009c058", null ], + [ "has_linear_assign", "classxt_1_1xgenerator.html#ab1a2913449b319eede92915d0b410c0d", null ], + [ "operator()", "classxt_1_1xgenerator.html#a5d2e22a7df365f2d238aef28715a46f8", null ], + [ "reshape", "classxt_1_1xgenerator.html#a8d78d70b368a9010ded32ee263299b8b", null ], + [ "shape", "classxt_1_1xgenerator.html#a72035cb01c8e3ead3dedcd013fe59737", null ], + [ "shape", "classxt_1_1xgenerator.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb", null ], + [ "unchecked", "classxt_1_1xgenerator.html#af95208893a8690ab495c3ac4f570d590", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xgenerator.png b/classxt_1_1xgenerator.png new file mode 100644 index 0000000000000000000000000000000000000000..781e6993d99ca97b911d92172bb23c9fbd8a80f7 GIT binary patch literal 3398 zcmd5Gm(oz-` z0YwmbkpPl_CLvKlQ;UG2B#}U(LO=*%hY+^R4dL|6oX(t?KjzGt`^Q`E`|j`i?zi3F zOWp6a2eD-J5-lw)gy#>t4`^xWwt(j=`isETC=GoA+)(?m2i;XF6?pvIKOUX_ti;h~ z)9F99_xZ6^C-YXa@`j}>2?@5j*FS>WYs^Ytil<_3VWzOI<;`{Sj+7liG$Owi5R}}9!uf;OM zP~kR@%*EO|{TUWza0tq0wXS}}-aMak_o;peg2(mUhg`(BeGzA!W_jv(k?T zlr!A5c}^Toc!9a~9>FR8O=TE&T}(j8c8R>RrHux3uhUr9#b|-4yi>Tx==SIbmkADz zrSfyXh&~q8wLYxjx9)@-EMqZ#lVk76Q0vM|wE5(p3rZ1}nXWPe_%g(6{nJjy!Suk^$XiR9gB#Ftgz{IjfJKwhWk%uu^g5uyU zi5xG;>h}?N9U?RnuW=CqlZ!n=sI7YCpQJF|IOuXXsj_b-GcvWzi|&6P4w5>5h~IVh z^*nM38`tKp8_D&Db6zx;CzM4)R9nHDuAhmI-~T04+x1Wz*5fKB6sZBulw+I{db*Pb z;M=~UBTIVH8-~Z?k8g+JQf!0Es+fR2X1{xW6@MJFlo;T4FTdd(aMAMln5bO@2M(dU z*$G*CGIr=k3xtlYaD$Uin_x+VZF9lbR%-uGy!6V%1t`#?2cg+7H6a$OW31BqQ;`3C zM)Xc|43i`Z6i6l=-MHs^y80kbwxqVK2kFI=cA9ztg*t1p)rRPw_IJICECHFOeGQ{_ zp{}F-S0KZde|Vx+{QdbwE7iNuUWV0tv{Bpk|NC*@*g_$hRfBR0THz;AB-#0f1qh<= z$e7`areJtKG@hZXIx=5j8A2GodBc*lD&-r4Ive)9V=?)SFboz#keyGPjlnKEA3W5G z8wtZf4!^3!Q(IDwtpZn2a~Z)^FnpsP2eo1|(FS#|v6(oCk>#8VL5*hB0Hlz9Y*k7S z4kLqMzH`_uh4VU~{32l=4L+g_DjgWB3BM1QwmTeztcY>w8VTQiWc2eeJ+^D6+!luM z!`rJ1iXe!Qys7n)RDmjXxiN%va1HDlZ=rtG^N5eAv%yMfK*2{NRV}baTpuga)U=R- z8t6*Tnuuz1J8MP_@i~|21GWBDg(F^W95hrLIut4{2BvB1KYgGJrbh~EVt;d(_N{fI zBt;kGdatd@Unx_(CH*2ABZ^5+pLfZgOj`}TKj+pzaOPh6-q7h7Dm;~9g-N*C)n8cR zcUV`^%4Q}TZyU6^3&Tc|`iV4p_N4(%H>&@-lJTv4^dW7v^29)zkG+azy4tK+|;N zeK_QKP35d(*%7p1iF5nWJ--hIW1QTkmp=CAn%Fld4M&L+`!PgC2_Y}Mn4Y}IO_iu0zh z#SiGLUnK3q!pP>YA*d`ay@hWY{QlKFwh$;Shls|e?U^w&N(6Hc#_tuY?5xXk%VI0q z@o!4QHx;uI@K%#Yg&RvdGSRd627#pW5Pud|3i_F-|0!Gf^Ybfu5wBTu<7sh8+q@;W z!Fkf7-Hb8`uil4AxZc%yIm)QxOn1$;!L9QVe?CE_<4$Z1t1y)cV7f?9l$UIQMB^tr zX~7#GF)9NsNJ&h_!|oJR%CW#EexkU-^T%IXtdBKQ>LSMziaQp!Pxn0(DzoCspV2}B zaelF!9nCr9tq-WMkxY&jSzHy#Uj~T^=_Q_G!t@krXwqoNtfw~UAjJ5TD?FFOuiMeu z8nEr;Ik)}z*w!a`EaW}EO(b;B8@7XYW_92>c_XzK8QejmU){+%)aHId(C_Udc{Cxu z*34l>H&F^jPh_`=V!65hzQ7PN=ZhxuKm^O$fpzQcYt~iz{c@B1_~sELC}O&W-1_DF zS?`((VUvK@H}@i6%C7qfhH>CfGi+hXc}gKqo$?MKq+V<4{1BVM(P28Z;d zgFZGMI+39+A{SnD=gb_Vh0|_lPk4E04B^6*5YuuoXa&mt*ZB#Q(!i3u1C@%n=^6GKd;C(FnbiUan5f7* z`Gp4LTzvaMaxK8~K^k^M8JL=!{;Yk`=uXDhj>L?{oR!$_`2GLkb*z9kXCaUe=YswtC` zw9#YN-#AvYtLq0XI>K=v6PmZ*CK~agoaayPP4fCXa|8 zMAr`O#0%0(du*fE@P@swsA*fkNX?44t|H(g!s(hOH`b+j1asAHeS&%X+tj&Tciq+h z0 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xindex_view< CT, I > Member List
    +
    +
    + +

    This is the complete list of members for xt::xindex_view< CT, I >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< xindex_view< CT, I > >inline
    base_index_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    begin() noexcept -> layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    begin() noexcept -> layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    bool_load_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    broadcast_shape(O &shape, bool reuse_cache=false) constxt::xindex_view< CT, I >inline
    build_index_view(E &&e) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    build_index_view(E &&e) const -> rebind_t< E > (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    const_pointer typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    const_reference typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    const_stepper typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    contiguous_layout (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >static
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xindex_view< CT, I > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xindex_view< CT, I > >inline
    difference_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    dimension() const noexceptxt::xindex_view< CT, I >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    element(It first, It last) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    element(It first, It last) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    element(It first, It) -> referencext::xindex_view< CT, I >inline
    element(It first, It) const -> const_referencext::xindex_view< CT, I >inline
    end() noexcept -> layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    end() noexcept -> layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    expression() noexceptxt::xindex_view< CT, I >inline
    expression() const noexceptxt::xindex_view< CT, I >inline
    expression_tag typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    extension_base typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    fill(const T &value)xt::xindex_view< CT, I >inline
    has_linear_assign(const O &) const noexceptxt::xindex_view< CT, I >inline
    indices_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    inner_shape_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    is_contiguous() const noexcept (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    iterable_base typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    layout() const noexcept (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator()(size_type idx=size_type(0))xt::xindex_view< CT, I >inline
    operator()(size_type idx0, size_type idx1, Args... args) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator()(size_type idx=size_type(0)) constxt::xindex_view< CT, I >inline
    operator()(size_type idx0, size_type idx1, Args... args) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator()(size_type, size_type idx1, Args... args) -> reference (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator()(size_type, size_type idx1, Args... args) const -> const_reference (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator=(const xexpression< E > &e) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator=(const E &e) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator=(const xexpression< E > &e) -> self_type &xt::xindex_view< CT, I >inline
    operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator[](const S &index) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator[](std::initializer_list< OI > index) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator[](size_type i) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator[](const S &index) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator[](std::initializer_list< OI > index) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    operator[](size_type i) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xindex_view< CT, I >inline
    operator[](std::initializer_list< OI > index) -> reference (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xindex_view< CT, I >inline
    operator[](std::initializer_list< OI > index) const -> const_reference (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xindex_view< CT, I > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xindex_view< CT, I > >inline
    pointer typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    rbegin() noexcept -> reverse_layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    rbegin() noexcept -> reverse_layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    rebind_t typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    reference typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    rend() noexcept -> reverse_layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    rend() noexcept -> reverse_layout_iterator< L >xt::xiterable< xindex_view< CT, I > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< xindex_view< CT, I > >inline
    self_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    semantic_base typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    shape() const noexceptxt::xindex_view< CT, I >inline
    shape(size_type index) constxt::xindex_view< CT, I >inline
    shape_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    size() const noexceptxt::xindex_view< CT, I >inline
    size_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    static_layout (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >static
    stepper typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    stepper_begin(const ST &shape) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    stepper_begin(const ST &shape) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    stepper_begin(const ST &shape) -> stepper (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    stepper_begin(const ST &shape) const -> const_stepper (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    stepper_end(const ST &shape, layout_type) (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    stepper_end(const ST &shape, layout_type) const (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    stepper_end(const ST &shape, layout_type) -> stepper (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    stepper_end(const ST &shape, layout_type) const -> const_stepper (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >inline
    temporary_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    unchecked(size_type idx)xt::xindex_view< CT, I >inline
    unchecked(size_type idx) constxt::xindex_view< CT, I >inline
    value_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    xexpression_type typedef (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >
    xindex_view(CTA &&e, I2 &&indices) noexceptxt::xindex_view< CT, I >inline
    xview_semantic< xindex_view< CT, I > > (defined in xt::xindex_view< CT, I >)xt::xindex_view< CT, I >friend
    +
    + + + + diff --git a/classxt_1_1xindex__view.html b/classxt_1_1xindex__view.html new file mode 100644 index 000000000..696baf565 --- /dev/null +++ b/classxt_1_1xindex__view.html @@ -0,0 +1,2750 @@ + + + + + + + +xtensor: xt::xindex_view< CT, I > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xindex_view< CT, I > Class Template Reference
    +
    +
    + +

    View of an xexpression from vector of indices. + More...

    + +

    #include <xindex_view.hpp>

    +
    +Inheritance diagram for xt::xindex_view< CT, I >:
    +
    +
    + + +xt::xview_semantic< xindex_view< CT, I > > +xt::xiterable< xindex_view< CT, I > > +xt::xsemantic_base< xindex_view< CT, I > > +xt::xconst_iterable< xindex_view< CT, I > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xindex_view<CT, I>
     
    using xexpression_type = std::decay_t<CT>
     
    using semantic_base = xview_semantic<self_type>
     
    using extension_base = extension::xindex_view_base_t<CT, I>
     
    using expression_tag = typename extension_base::expression_tag
     
    using value_type = typename xexpression_type::value_type
     
    using reference = inner_reference_t<CT>
     
    using const_reference = typename xexpression_type::const_reference
     
    using pointer = typename xexpression_type::pointer
     
    using const_pointer = typename xexpression_type::const_pointer
     
    using size_type = typename xexpression_type::size_type
     
    using difference_type = typename xexpression_type::difference_type
     
    using iterable_base = xiterable<self_type>
     
    using inner_shape_type = typename iterable_base::inner_shape_type
     
    using shape_type = inner_shape_type
     
    using indices_type = I
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
     
    using base_index_type = xindex_type_t<shape_type>
     
    using bool_load_type = typename xexpression_type::bool_load_type
     
    template<class E>
    using rebind_t = xindex_view<E, I>
     
    - Public Types inherited from xt::xview_semantic< xindex_view< CT, I > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xindex_view< CT, I > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xiterable< xindex_view< CT, I > >
    using derived_type
     
    using base_type
     
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    using linear_iterator
     
    using reverse_linear_iterator
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xconst_iterable< xindex_view< CT, I > >
    using derived_type
     
    using iterable_types
     
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    +template<class... Args>
    reference operator() (size_type idx0, size_type idx1, Args... args)
     
    +template<class S>
    disable_integral_t< S, reference > operator[] (const S &index)
     
    +template<class OI>
    reference operator[] (std::initializer_list< OI > index)
     
    +template<class It>
    reference element (It first, It last)
     
    +template<class... Args>
    const_reference operator() (size_type idx0, size_type idx1, Args... args) const
     
    +template<class S>
    disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +template<class OI>
    const_reference operator[] (std::initializer_list< OI > index) const
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class ST>
    stepper stepper_begin (const ST &shape)
     
    +template<class ST>
    stepper stepper_end (const ST &shape, layout_type)
     
    +template<class ST>
    const_stepper stepper_begin (const ST &shape) const
     
    +template<class ST>
    const_stepper stepper_end (const ST &shape, layout_type) const
     
    +template<class E>
    rebind_t< E > build_index_view (E &&e) const
     
    Constructor
    template<class CTA, class I2>
     xindex_view (CTA &&e, I2 &&indices) noexcept
     Constructs an xindex_view, selecting the indices specified by indices.
     
    Size and shape
    size_type size () const noexcept
     Returns the size of the xindex_view.
     
    size_type dimension () const noexcept
     Returns the number of dimensions of the xindex_view.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the xindex_view.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    layout_type layout () const noexcept
     
    bool is_contiguous () const noexcept
     
    Data
    template<class T>
    void fill (const T &value)
     Fills the view with the given value.
     
    reference operator() (size_type idx=size_type(0))
     Returns a reference to the element at the specified position in the xindex_view.
     
    reference unchecked (size_type idx)
     Returns a reference to the element at the specified position in the xindex_view.
     
    reference operator[] (size_type i)
     
    const_reference operator() (size_type idx=size_type(0)) const
     Returns a constant reference to the element at the specified position in the xindex_view.
     
    const_reference unchecked (size_type idx) const
     Returns a constant reference to the element at the specified position in the xindex_view.
     
    const_reference operator[] (size_type i) const
     
    xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    const xexpression_type & expression () const noexcept
     Returns a constant reference to the underlying expression of the view.
     
    template<class... Args>
    auto operator() (size_type, size_type idx1, Args... args) -> reference
     
    template<class... Args>
    auto operator() (size_type, size_type idx1, Args... args) const -> const_reference
     
    template<class S>
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the container.
     
    template<class OI>
    auto operator[] (std::initializer_list< OI > index) -> reference
     
    template<class S>
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the container.
     
    template<class OI>
    auto operator[] (std::initializer_list< OI > index) const -> const_reference
     
    template<class It>
    auto element (It first, It) -> reference
     Returns a reference to the element at the specified position in the xindex_view.
     
    template<class It>
    auto element (It first, It) const -> const_reference
     Returns a reference to the element at the specified position in the xindex_view.
     
    Broadcasting
    template<class O>
    bool broadcast_shape (O &shape, bool reuse_cache=false) const
     Broadcast the shape of the xindex_view to the specified parameter.
     
    template<class O>
    bool has_linear_assign (const O &) const noexcept
     Checks whether the xindex_view can be linearly assigned to an expression with the specified strides.
     
    template<class ST>
    auto stepper_begin (const ST &shape) -> stepper
     
    template<class ST>
    auto stepper_end (const ST &shape, layout_type) -> stepper
     
    template<class ST>
    auto stepper_begin (const ST &shape) const -> const_stepper
     
    template<class ST>
    auto stepper_end (const ST &shape, layout_type) const -> const_stepper
     
    template<class E>
    auto build_index_view (E &&e) const -> rebind_t< E >
     
    - Public Member Functions inherited from xt::xview_semantic< xindex_view< CT, I > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xindex_view< CT, I > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xiterable< xindex_view< CT, I > >
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +layout_iterator< L > begin () noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +layout_iterator< L > end () noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rbegin () noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rend () noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    auto begin () noexcept -> layout_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto end () noexcept -> layout_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin () noexcept -> layout_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto end () noexcept -> layout_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto rbegin () noexcept -> reverse_layout_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> reverse_layout_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin () noexcept -> reverse_layout_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> reverse_layout_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto get_begin (bool end_index) noexcept -> layout_iterator< L >
     
    auto get_end (bool end_index) noexcept -> layout_iterator< L >
     
    auto get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
     
    auto get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) noexcept -> stepper
     
    auto get_stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto get_begin (bool end_index) noexcept -> layout_iterator< L >
     
    auto get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
     
    auto get_end (bool end_index) noexcept -> layout_iterator< L >
     
    auto get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) noexcept -> stepper
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    - Public Member Functions inherited from xt::xconst_iterable< xindex_view< CT, I > >
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_layout_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +const_layout_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = layout_type::dynamic
     
    static constexpr bool contiguous_layout = false
     
    + + + +

    +Friends

    class xview_semantic< xindex_view< CT, I > >
     
    + + + + + + + + +

    Extended copy semantic

    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    template<class E>
    auto operator= (const E &e) -> disable_xexpression< E, self_type > &
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xview_semantic< xindex_view< CT, I > >
    xview_semantic (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xindex_view< CT, I > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    const inner_shape_type & get_shape () const
     
    +

    Detailed Description

    +
    template<class CT, class I>
    +class xt::xindex_view< CT, I >

    View of an xexpression from vector of indices.

    +

    The xindex_view class implements a flat (1D) view into a multidimensional xexpression yielding the values at the indices of the index array. xindex_view is not meant to be used directly, but only with the index_view and filter helper functions.

    +
    Template Parameters
    + + + +
    CTthe closure type of the xexpression type underlying this view
    Ithe index array type of the view
    +
    +
    +
    See also
    index_view, filter
    + +

    Definition at line 90 of file xindex_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_index_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::base_index_type = xindex_type_t<shape_type>
    +
    + +

    Definition at line 121 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::bool_load_type = typename xexpression_type::bool_load_type
    +
    + +

    Definition at line 123 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::const_pointer = typename xexpression_type::const_pointer
    +
    + +

    Definition at line 107 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::const_reference = typename xexpression_type::const_reference
    +
    + +

    Definition at line 105 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 118 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 109 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 101 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::extension_base = extension::xindex_view_base_t<CT, I>
    +
    + +

    Definition at line 100 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ indices_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::indices_type = I
    +
    + +

    Definition at line 115 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::inner_shape_type = typename iterable_base::inner_shape_type
    +
    + +

    Definition at line 112 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::iterable_base = xiterable<self_type>
    +
    + +

    Definition at line 111 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::pointer = typename xexpression_type::pointer
    +
    + +

    Definition at line 106 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class E>
    + + + + +
    using xt::xindex_view< CT, I >::rebind_t = xindex_view<E, I>
    +
    + +

    Definition at line 193 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::reference = inner_reference_t<CT>
    +
    + +

    Definition at line 104 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::self_type = xindex_view<CT, I>
    +
    + +

    Definition at line 96 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::semantic_base = xview_semantic<self_type>
    +
    + +

    Definition at line 98 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::shape_type = inner_shape_type
    +
    + +

    Definition at line 113 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 108 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 117 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
    +
    + +

    Definition at line 120 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::value_type = typename xexpression_type::value_type
    +
    + +

    Definition at line 103 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xindex_view< CT, I >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 97 of file xindex_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xindex_view()

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class CTA, class I2>
    + + + + + +
    + + + + + + + + + + + +
    xt::xindex_view< CT, I >::xindex_view (CTA && e,
    I2 && indices )
    +
    +inlinenoexcept
    +
    + +

    Constructs an xindex_view, selecting the indices specified by indices.

    +

    The resulting xexpression has a 1D shape with a length of n for n indices.

    +
    Parameters
    + + + +
    ethe underlying xexpression for this view
    indicesthe indices to select
    +
    +
    + +

    Definition at line 287 of file xindex_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class O>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xindex_view< CT, I >::broadcast_shape (O & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the xindex_view to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 562 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ build_index_view()

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::build_index_view (E && e) const -> rebind_t<E> +
    +
    +inline
    +
    + +

    Definition at line 619 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ dimension()

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::dimension () const
    +
    +inlinenoexcept
    +
    + +

    Returns the number of dimensions of the xindex_view.

    + +

    Definition at line 343 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xindex_view< CT, I >::element (It first,
    It  ) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xindex_view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices (not used, only for compatibility with xexpression operator()) The number of indices in the sequence should be equal to or greater 1.
    +
    +
    + +

    Definition at line 512 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xindex_view< CT, I >::element (It first,
    It  ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xindex_view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices (not used, only for compatibility with xexpression operator()) The number of indices in the sequence should be equal to or greater 1.
    +
    +
    + +

    Definition at line 525 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ expression() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant reference to the underlying expression of the view.

    + +

    Definition at line 543 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ expression() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::expression ()
    +
    +inlinenoexcept
    +
    + +

    Returns a reference to the underlying expression of the view.

    + +

    Definition at line 534 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ fill()

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    void xt::xindex_view< CT, I >::fill (const T & value)
    +
    +inline
    +
    + +

    Fills the view with the given value.

    +
    Parameters
    + + +
    valuethe value to fill the view with.
    +
    +
    + +

    Definition at line 391 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class O>
    + + + + + +
    + + + + + + + +
    bool xt::xindex_view< CT, I >::has_linear_assign (const O & ) const
    +
    +inlinenoexcept
    +
    + +

    Checks whether the xindex_view can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 574 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    bool xt::xindex_view< CT, I >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 373 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    layout_type xt::xindex_view< CT, I >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 367 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator()() [1/4]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator() (size_type idx = size_type(0))
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xindex_view.

    +
    Parameters
    + + +
    idxindex specifying the position in the index_view. More indices may be provided, only the last one will be used.
    +
    +
    + +

    Definition at line 402 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator()() [2/4]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator() (size_type idx = size_type(0)) const
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the xindex_view.

    +
    Parameters
    + + +
    idxindex specifying the position in the index_view. More indices may be provided, only the last one will be used.
    +
    +
    + +

    Definition at line 430 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator()() [3/4]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::xindex_view< CT, I >::operator() (size_type ,
    size_type idx1,
    Args... args ) -> reference +
    +
    +inline
    +
    + +

    Definition at line 409 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator()() [4/4]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::xindex_view< CT, I >::operator() (size_type ,
    size_type idx1,
    Args... args ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 437 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
    +
    +inline
    +
    + +

    Definition at line 314 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 305 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [1/6]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator[] (const S & index) -> disable_integral_t<S, reference> +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the container.

    +
    Parameters
    + + +
    indexa sequence of indices specifying the position in the container. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the container.
    +
    +
    + +

    Definition at line 460 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [2/6]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator[] (const S & index) const -> disable_integral_t<S, const_reference> +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the container.

    +
    Parameters
    + + +
    indexa sequence of indices specifying the position in the container. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the container.
    +
    +
    + +

    Definition at line 486 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [3/6]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator[] (size_type i)
    +
    +inline
    +
    + +

    Definition at line 473 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [4/6]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator[] (size_type i) const
    +
    +inline
    +
    + +

    Definition at line 499 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [5/6]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class OI>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator[] (std::initializer_list< OI > index) -> reference +
    +
    +inline
    +
    + +

    Definition at line 467 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ operator[]() [6/6]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class OI>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::operator[] (std::initializer_list< OI > index) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 493 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ shape() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the xindex_view.

    + +

    Definition at line 352 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ shape() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::shape (size_type index) const
    +
    +inline
    +
    + +

    Returns the i-th dimension of the expression.

    + +

    Definition at line 361 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::size () const
    +
    +inlinenoexcept
    +
    + +

    Returns the size of the xindex_view.

    + +

    Definition at line 334 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::stepper_begin (const ST & shape) -> stepper +
    +
    +inline
    +
    + +

    Definition at line 587 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::stepper_begin (const ST & shape) const -> const_stepper +
    +
    +inline
    +
    + +

    Definition at line 603 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xindex_view< CT, I >::stepper_end (const ST & shape,
    layout_type  ) -> stepper +
    +
    +inline
    +
    + +

    Definition at line 595 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xindex_view< CT, I >::stepper_end (const ST & shape,
    layout_type  ) const -> const_stepper +
    +
    +inline
    +
    + +

    Definition at line 611 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::unchecked (size_type idx)
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xindex_view.

    +
    Parameters
    + + +
    idxindex specifying the position in the index_view.
    +
    +
    + +

    Definition at line 419 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + + + + +
    auto xt::xindex_view< CT, I >::unchecked (size_type idx) const
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the xindex_view.

    +
    Parameters
    + + +
    idxindex specifying the position in the index_view.
    +
    +
    + +

    Definition at line 447 of file xindex_view.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xview_semantic< xindex_view< CT, I > >

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + +
    friend class xview_semantic< xindex_view< CT, I > >
    +
    +friend
    +
    + +

    Definition at line 204 of file xindex_view.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + +
    bool xt::xindex_view< CT, I >::contiguous_layout = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 126 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class CT, class I>
    + + + + + +
    + + + + +
    layout_type xt::xindex_view< CT, I >::static_layout = layout_type::dynamic
    +
    +staticconstexpr
    +
    + +

    Definition at line 125 of file xindex_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xindex__view.js b/classxt_1_1xindex__view.js new file mode 100644 index 000000000..187aa9dae --- /dev/null +++ b/classxt_1_1xindex__view.js @@ -0,0 +1,22 @@ +var classxt_1_1xindex__view = +[ + [ "xindex_view", "classxt_1_1xindex__view.html#a0306275ff45341e84fe63836010c7ad5", null ], + [ "broadcast_shape", "classxt_1_1xindex__view.html#ac341559ffeb015df5070beec5596d2a9", null ], + [ "dimension", "classxt_1_1xindex__view.html#afeaa3f6f6c150f659935d1a625497203", null ], + [ "element", "classxt_1_1xindex__view.html#a4bdd94010df7af626590d532b2febefb", null ], + [ "element", "classxt_1_1xindex__view.html#a49787050a31b9c40a75f6644c6ee4c10", null ], + [ "expression", "classxt_1_1xindex__view.html#abad555c9ed25f834763760c88a236325", null ], + [ "expression", "classxt_1_1xindex__view.html#ab19a3dd1a9b7f67c557ee57bc189d319", null ], + [ "fill", "classxt_1_1xindex__view.html#aeecb2ec9572eac54def9d4f9934a86fd", null ], + [ "has_linear_assign", "classxt_1_1xindex__view.html#a436dfb313bdf3ce42a16cfa2a5c9f98f", null ], + [ "operator()", "classxt_1_1xindex__view.html#ab0eefdf0f3dedf19a78763643718e353", null ], + [ "operator()", "classxt_1_1xindex__view.html#aab9b1fd3d2f19db29b52cd9cad772a2d", null ], + [ "operator=", "classxt_1_1xindex__view.html#aac159eb55755735609a3095f1e73bf3a", null ], + [ "operator[]", "classxt_1_1xindex__view.html#a5f26e28734c1db46865b6eeb39009a2a", null ], + [ "operator[]", "classxt_1_1xindex__view.html#a2a2211fb97b8bbb0b6a8ea3e4ac6c0b5", null ], + [ "shape", "classxt_1_1xindex__view.html#ad124eaa3959093d86deab646c4a2fb18", null ], + [ "shape", "classxt_1_1xindex__view.html#a47f560d67ba251afd96c617e6c6e2a0e", null ], + [ "size", "classxt_1_1xindex__view.html#a9c3f7c72cb0e1172b75bb256e92e6b94", null ], + [ "unchecked", "classxt_1_1xindex__view.html#aa6c15d2a26e0a3a993332606bb3d8ddc", null ], + [ "unchecked", "classxt_1_1xindex__view.html#a9ff5247ea89e3a5ed114685960edd042", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xindex__view.png b/classxt_1_1xindex__view.png new file mode 100644 index 0000000000000000000000000000000000000000..c502074722667ce771a1c12f6f61686f457b55d9 GIT binary patch literal 3936 zcmdT{X;c$g76x}=1k@I~Q9!5VAcLR{0!9g_AP8!rV%UTrDnvj;2?P=#C@vA%R8&Mr zP!J=<5|ACj(ndvOi5N*(!X`)(!fFx%1d^%5?&;Gr=gdr>Gc)H*{is)U@4K&V-Fx4C z-xqfb=CDRZTSZApX^rC{yAw)EOG)5!!>Xm={S@>F9UL|uJ96@%OeO;#xnrWR1owA+6&LV3Km2LrTd9vn>e z4>atP#f3jKP|J#)yPRHTf57!Bu!K-z798fqx>3llHs5zesfJO;^f+Ho#<7F1n$pce z1r`)+#T~dJ)_|T04AO63zl2KQc6kIE#gQ}ypmubo$05BfMK>OExUq|N7_`iMld~BP9scB$l%STd zv4z)=d%s>r$-KFm#qvpOZirtx6n`}QW+1yVlsXaiK5RPo9ET5UL%Nmj1iexp_Pj%O z(!Cw&IWhzg6DpaqsL_ax>YGT*RL%Tct0HPH{XCtc*W2I3^BJFxO%`QX9ktK11%J|v zTXl?`8d7U0J06)~nqP8y?n2^RLf5UTE%EA!>35rxA9odP=tUp@z+J7}M|mNgEk;*#L(X`cOb`w0%Q`Bt$`xG2LjH0zu%YCmm!6ivL(?;%i{!`ySG-@}3l`f|0%4RwT~K@Ey~mrWrm`&g|wC zeN9&+o2fa%qkze=7_F+b4-D!gC4+UKkIbz460gvI{H+9HV8u+2$OrQ1*b2e4KKOU4 zCG@u{ll{e8WAnZ%@GW2xl`>zmTo`t{?LjzDi>NeT$^Axq+}2vSr_u zKz0lt89H+G3`6BsFuxc%Q9HDYU()nd5wW=g@MCb=>N_jCXF_DX%&GsSafq3 zvwM?T&sC+3kdufT0KiEQ-vJ9vP z-sb}W`t2n^z~1)t$SuAuh_ZWJcSISHyP7gp+ENVwK~eCkv@-uR-aw;srU^S*Mnop- z;iqcBG)Yxx?{c_rZFLLga&r&DBNBRp-!7mYfJw=>>6KePjX>|;4SXaGGw`M4gK}-jB7vgjxyaGK;$f__p(k-7{!NXcs zrN4mfPdGD+j@T9Y2%{U5!ryVo822jBYFkO+=+77z(aBXbe3?{mt-0QATtwujRNF5mW2^ zz(aVQRq5?Vb`U>139C`n?PH+l1N-zY&qW((Rbk?r`{u?L)bjEk?=*bm^D*RUt(#x6 zkebdG7qh#&*pE2B+n1Y2+;5X`q$fLo(eZQ1PJ*;u9YLl-qp zJDl(xb~I?!)%<-eTAV75BG^$_sX?SX;e z_c;132VespmuvosI={Un52*H;JCEqlu0z>)oW@N|=aBjii5J6hQ2cC@)@(7UB)%_k zFiL3YcM@UFA>;begqI3R+J%Azd%q1cvQGl!!_-3asLA6;>P@o&07BtnNB5^-Lbrc) zcGxr7qMrO|cUzrWof`2r8tEG{^9tMG8#nkel{jdTYRq=0j|O1VqpIiLkZDQ!ySgZa zH^;5UJz{B9bL936EYFzzF5>6L9Lqv!)oO%!7ybjZ23XnS{^ZLeysJF|fku8nYjCP{ z`m33KJwzHKJNxNb=jV-Wns8wT(vND^KJgcxGZeL_g4yk*%ZFIKLe;2d!49998?J>| z)=SR~P-7<_^hKcXmg;+H^PeSGN#d8D=lxab4c_;UBRVozB5HY4PsI(|*`=BsPgiO- z2O8txdg>#ZeKa$iE{d&t!kPM$bb`+yFPvj842RWMYnP{cOJF>rAH1=z=5E&$a!y6v zEas!&>lauf>L(rbg{%Ys7@=lyGV6;2$cv3kYbKidd2?&)d^`>|F+xRq`BV=$Ls_cx zZuGPWmecnS-e6^+7c4Hne0}sF2vQ_NWIpV0F#boqPN-H%#+#k~;q~V7u~k(I=lX+4=$qXp6^@ppd%W7Z_K14#ai{no0C9yVzX9 z5Hz#PN7F)R%O8q7cW|7b^qfoC9B~@2xJf-?4+JP4+G9JHsObiL4m3=(?=z~6v<#^t z3J`B8hnMC7x&kzm?2de`eNm>((69AQmB(94xL`7LIC~y5dcO1ZlR+AH>T*rHfIh(g z5Q!scRksWB8JQ)hR*LN;cgCQ(xH7)Bw2Vm-90PY$eRAe~HecRWb)`neF>*M(xMpEk zRhEjAVguM#qj`YzEFMDyF(##5AbTYLTrxwD0S_!N7KAq3UTae>@E#)}5R|W!P;foj zy_l*<5Od}Ii|zWy)NK_c5Q1pP8_Dt?q3Q(M7O(-+RP1q>Z-{F{gTdG3$`*Ior}s9k zaY?C^59KNB)5hN3O{(Sh{z2UDufL=7P{_6Mt(I;_KgWVYCoJUJnyuUA!|#P1TTTA+ z!l>xz=o=L9ni7dbWqUysX#K1Ogp2!Dj3 zB5#qR`^CR9ow`ZMuPC=)yyyht&ItAPl1T~v8!1{8W)xWUMn`p#EjzwJG#5HwQYTYZ zaGwfZmw55Kq{}zCgpdltSE(uH1vkZ#RgPhD;S~~V+@5f&h|w$S3z7)*;M5W=P2&WR zUj?5_zCAII$EL?c`CaXT&k{70@}s0~Qf900pys=;$CK}d4n5x;lU})tg{GQ4 zm~|Ah9ljA4*>So}3_7K7jUY+^g*woB`{n#WJ(3G4rSc{Ua#G;VP{N|1I22@i^dg7k zAFR?R)JBLKhkQS=D}2Tt#D&nF`9j5a%|QGeUYt!r=?4p~GUxC$p-s!7aFhWqX~$*j zNNaQKI$?DGq@9BKOx~W5)b$g?qvPcKfQI7EkvAf>&wx?0=$p||xE*s)JSM4&S@{c} z6i3(Jlh3skf>Lhn1zfKN>i_@% literal 0 HcmV?d00001 diff --git a/classxt_1_1xindexed__stepper-members.html b/classxt_1_1xindexed__stepper-members.html new file mode 100644 index 000000000..7462ba8e8 --- /dev/null +++ b/classxt_1_1xindexed__stepper-members.html @@ -0,0 +1,138 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xindexed_stepper< E, is_const > Member List
    +
    +
    + +

    This is the complete list of members for xt::xindexed_stepper< E, is_const >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    index_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    operator*() const (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    pointer typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    reference typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    reset(size_type dim) (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    reset_back(size_type dim) (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    self_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    shape_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    size_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    step(size_type dim, size_type n=1) (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    step_back(size_type dim, size_type n=1) (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    to_begin() (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    to_end(layout_type l) (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    value_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    xexpression_type typedef (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    xindexed_stepper()=default (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >
    xindexed_stepper(xexpression_type *e, size_type offset, bool end=false) noexcept (defined in xt::xindexed_stepper< E, is_const >)xt::xindexed_stepper< E, is_const >inline
    +
    + + + + diff --git a/classxt_1_1xindexed__stepper.html b/classxt_1_1xindexed__stepper.html new file mode 100644 index 000000000..3455eff56 --- /dev/null +++ b/classxt_1_1xindexed__stepper.html @@ -0,0 +1,588 @@ + + + + + + + +xtensor: xt::xindexed_stepper< E, is_const > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xindexed_stepper< E, is_const > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xindexed_stepper<E, is_const>
     
    using xexpression_type = std::conditional_t<is_const, const E, E>
     
    using value_type = typename xexpression_type::value_type
     
    using reference
     
    using pointer
     
    using size_type = typename xexpression_type::size_type
     
    using difference_type = typename xexpression_type::difference_type
     
    using shape_type = typename xexpression_type::shape_type
     
    using index_type = xindex_type_t<shape_type>
     
    + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xindexed_stepper (xexpression_type *e, size_type offset, bool end=false) noexcept
     
    reference operator* () const
     
    void step (size_type dim, size_type n=1)
     
    void step_back (size_type dim, size_type n=1)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    +

    Detailed Description

    +
    template<class E, bool is_const>
    +class xt::xindexed_stepper< E, is_const >
    +

    Definition at line 176 of file xiterator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 189 of file xiterator.hpp.

    + +
    +
    + +

    ◆ index_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::index_type = xindex_type_t<shape_type>
    +
    + +

    Definition at line 192 of file xiterator.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::pointer
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename xexpression_type::const_pointer, typename xexpression_type::pointer>
    +
    +

    Definition at line 186 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::reference
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename xexpression_type::const_reference, typename xexpression_type::reference>
    +
    +

    Definition at line 184 of file xiterator.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::self_type = xindexed_stepper<E, is_const>
    +
    + +

    Definition at line 180 of file xiterator.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::shape_type = typename xexpression_type::shape_type
    +
    + +

    Definition at line 191 of file xiterator.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 188 of file xiterator.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::value_type = typename xexpression_type::value_type
    +
    + +

    Definition at line 183 of file xiterator.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class E, bool is_const>
    + + + + +
    using xt::xindexed_stepper< E, is_const >::xexpression_type = std::conditional_t<is_const, const E, E>
    +
    + +

    Definition at line 181 of file xiterator.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xindexed_stepper()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xindexed_stepper< C, is_const >::xindexed_stepper (xexpression_type * e,
    size_type offset,
    bool end = false )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 962 of file xiterator.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + +
    auto xt::xindexed_stepper< C, is_const >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 975 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + +
    void xt::xindexed_stepper< C, is_const >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 999 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + +
    void xt::xindexed_stepper< C, is_const >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1008 of file xiterator.hpp.

    + +
    +
    + +

    ◆ step()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xindexed_stepper< C, is_const >::step (size_type dim,
    size_type n = 1 )
    +
    +inline
    +
    + +

    Definition at line 981 of file xiterator.hpp.

    + +
    +
    + +

    ◆ step_back()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xindexed_stepper< C, is_const >::step_back (size_type dim,
    size_type n = 1 )
    +
    +inline
    +
    + +

    Definition at line 990 of file xiterator.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + +
    void xt::xindexed_stepper< C, is_const >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 1017 of file xiterator.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class C, bool is_const>
    + + + + + +
    + + + + + + + +
    void xt::xindexed_stepper< C, is_const >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 1023 of file xiterator.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xiterable-members.html b/classxt_1_1xiterable-members.html new file mode 100644 index 000000000..8ec9f099c --- /dev/null +++ b/classxt_1_1xiterable-members.html @@ -0,0 +1,195 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    base_type typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    begin() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    begin(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    begin() noexcept -> layout_iterator< L >xt::xiterable< D >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< D >inline
    begin() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    begin(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    cbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    cbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
    cend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    cend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< D >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
    const_broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    const_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    const_layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    const_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    const_reverse_broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    const_reverse_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    const_reverse_layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    const_reverse_linear_iterator typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    const_stepper typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    crbegin() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    crbegin(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
    crend() const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    crend(const S &shape) const noexcept (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< D >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< D >inline
    derived_type typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    end() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    end(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    end() noexcept -> layout_iterator< L >xt::xiterable< D >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xiterable< D >inline
    end() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    end(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    get_begin(bool end_index) noexcept -> layout_iterator< L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_begin(const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_cbegin(bool end_index) const noexcept -> const_layout_iterator< L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
    get_cbegin(const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
    get_cend(bool end_index) const noexcept -> const_layout_iterator< L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
    get_cend(const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inline
    get_end(bool end_index) noexcept -> layout_iterator< L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_end(const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L > (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_shape() const (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >inlineprotected
    get_stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
    get_stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xiterable< D >)xt::xiterable< D >inline
    inner_shape_type typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    iterable_types typedef (defined in xt::xconst_iterable< D >)xt::xconst_iterable< D >
    iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    linear_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    rbegin() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rbegin(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rbegin() noexcept -> reverse_layout_iterator< L >xt::xiterable< D >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< D >inline
    rbegin() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rbegin(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rend() noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rend(const S &shape) noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rend() noexcept -> reverse_layout_iterator< L >xt::xiterable< D >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xiterable< D >inline
    rend() const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    rend(const S &shape) const noexcept (defined in xt::xiterable< D >)xt::xiterable< D >
    reverse_broadcast_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    reverse_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    reverse_layout_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    reverse_linear_iterator typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    stepper typedef (defined in xt::xiterable< D >)xt::xiterable< D >
    +
    + + + + diff --git a/classxt_1_1xiterable.html b/classxt_1_1xiterable.html new file mode 100644 index 000000000..e6b32f286 --- /dev/null +++ b/classxt_1_1xiterable.html @@ -0,0 +1,1534 @@ + + + + + + + +xtensor: xt::xiterable< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable< D > Class Template Reference
    +
    +
    + +

    Base class for multidimensional iterable expressions. + More...

    + +

    #include <xiterable.hpp>

    +
    +Inheritance diagram for xt::xiterable< D >:
    +
    +
    + + +xt::xconst_iterable< D > +xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xdynamic_view< CT, S, L, FST > +xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > > +xt::xindex_view< uvt, I > +xt::xindex_view< uft, I > +xt::xindex_view< ucvt, I > +xt::xindex_view< ucft, I > +xt::xindex_view< E, I > +xt::xscalar< xtl::closure_type_t< E > > +xt::xscalar< xtl::const_closure_type_t< E > > +xt::xscalar< T > +xt::xscalar< bool > +xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > > +xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > > +xt::xscalar< const_value_closure > +xt::xscalar< const_flag_closure > +xt::xcontiguous_iterable< D > +xt::xdynamic_view< CT, S, L, FST > +xt::xoptional_assembly_base< D > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using derived_type = D
     
    using base_type = xconst_iterable<D>
     
    using inner_shape_type = typename base_type::inner_shape_type
     
    using stepper = typename base_type::stepper
     
    using const_stepper = typename base_type::const_stepper
     
    using linear_iterator = typename base_type::linear_iterator
     
    using reverse_linear_iterator = typename base_type::reverse_linear_iterator
     
    template<layout_type L>
    using layout_iterator = typename base_type::template layout_iterator<L>
     
    template<layout_type L>
    using const_layout_iterator = typename base_type::template const_layout_iterator<L>
     
    template<layout_type L>
    using reverse_layout_iterator = typename base_type::template reverse_layout_iterator<L>
     
    template<layout_type L>
    using const_reverse_layout_iterator = typename base_type::template const_reverse_layout_iterator<L>
     
    template<class S, layout_type L>
    using broadcast_iterator = typename base_type::template broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_broadcast_iterator = typename base_type::template const_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator = typename base_type::template reverse_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator = typename base_type::template const_reverse_broadcast_iterator<S, L>
     
    using iterator = typename base_type::iterator
     
    using const_iterator = typename base_type::const_iterator
     
    using reverse_iterator = typename base_type::reverse_iterator
     
    using const_reverse_iterator = typename base_type::const_reverse_iterator
     
    - Public Types inherited from xt::xconst_iterable< D >
    using derived_type = D
     
    using iterable_types = xiterable_inner_types<D>
     
    using inner_shape_type = typename iterable_types::inner_shape_type
     
    using stepper = typename iterable_types::stepper
     
    using const_stepper = typename iterable_types::const_stepper
     
    template<layout_type L>
    using layout_iterator = xiterator<stepper, inner_shape_type*, L>
     
    template<layout_type L>
    using const_layout_iterator = xiterator<const_stepper, inner_shape_type*, L>
     
    template<layout_type L>
    using reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>
     
    template<layout_type L>
    using const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>
     
    using linear_iterator = layout_iterator< ::xt::layout_type::row_major >
     
    using const_linear_iterator = const_layout_iterator< ::xt::layout_type::row_major >
     
    using reverse_linear_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
     
    using const_reverse_linear_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
     
    template<class S, layout_type L>
    using broadcast_iterator = xiterator<stepper, S, L>
     
    template<class S, layout_type L>
    using const_broadcast_iterator = xiterator<const_stepper, S, L>
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator = std::reverse_iterator<broadcast_iterator<S, L>>
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator = std::reverse_iterator<const_broadcast_iterator<S, L>>
     
    using iterator = layout_iterator< ::xt::layout_type::row_major >
     
    using const_iterator = const_layout_iterator< ::xt::layout_type::row_major >
     
    using reverse_iterator = reverse_layout_iterator< ::xt::layout_type::row_major >
     
    using const_reverse_iterator = const_reverse_layout_iterator< ::xt::layout_type::row_major >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<layout_type L = ::xt::layout_type::row_major>
    layout_iterator< L > begin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    layout_iterator< L > end () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    reverse_layout_iterator< L > rbegin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    reverse_layout_iterator< L > rend () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > begin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > end () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > rend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    Iterators
    template<layout_type L>
    auto begin () noexcept -> layout_iterator< L >
     Returns an iterator to the first element of the expression.
     
    template<layout_type L>
    auto end () noexcept -> layout_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    Reverse iterators
    template<layout_type L>
    auto rbegin () noexcept -> reverse_layout_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    template<layout_type L>
    auto rend () noexcept -> reverse_layout_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    Broadcast iterators
    template<layout_type L, class S>
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    template<layout_type L, class S>
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    - Public Member Functions inherited from xt::xconst_iterable< D >
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > begin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > end () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > cbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > cend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > rend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > crbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > crend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    template<layout_type L>
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L>
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L>
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L>
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L>
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L>
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L>
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L>
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L, class S>
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L, class S>
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L, class S>
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L, class S>
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L, class S>
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L, class S>
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L, class S>
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L, class S>
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L>
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    template<layout_type L>
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    template<layout_type L, class S>
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    template<layout_type L, class S>
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    template<class S>
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Reverse broadcast iterators

    template<layout_type L, class S>
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    template<layout_type L, class S>
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    template<layout_type L>
    auto get_begin (bool end_index) noexcept -> layout_iterator< L >
     
    template<layout_type L>
    auto get_end (bool end_index) noexcept -> layout_iterator< L >
     
    template<layout_type L, class S>
    auto get_begin (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
     
    template<layout_type L, class S>
    auto get_end (const S &shape, bool end_index) noexcept -> broadcast_iterator< S, L >
     
    template<class S>
    auto get_stepper_begin (const S &shape) noexcept -> stepper
     
    template<class S>
    auto get_stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    template<class S>
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    + + + +

    +Additional Inherited Members

    const inner_shape_type & get_shape () const
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xiterable< D >

    Base class for multidimensional iterable expressions.

    +

    The xiterable class defines the interface for multidimensional expressions that can be iterated.

    +
    Template Parameters
    + + +
    DThe derived type, i.e. the inheriting class for which xiterable provides the interface.
    +
    +
    + +

    Definition at line 151 of file xiterable.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::base_type = xconst_iterable<D>
    +
    + +

    Definition at line 157 of file xiterable.hpp.

    + +
    +
    + +

    ◆ broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xiterable< D >::broadcast_iterator = typename base_type::template broadcast_iterator<S, L>
    +
    + +

    Definition at line 176 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xiterable< D >::const_broadcast_iterator = typename base_type::template const_broadcast_iterator<S, L>
    +
    + +

    Definition at line 178 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::const_iterator = typename base_type::const_iterator
    +
    + +

    Definition at line 185 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xiterable< D >::const_layout_iterator = typename base_type::template const_layout_iterator<L>
    +
    + +

    Definition at line 169 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_reverse_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xiterable< D >::const_reverse_broadcast_iterator = typename base_type::template const_reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 182 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::const_reverse_iterator = typename base_type::const_reverse_iterator
    +
    + +

    Definition at line 187 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_reverse_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xiterable< D >::const_reverse_layout_iterator = typename base_type::template const_reverse_layout_iterator<L>
    +
    + +

    Definition at line 173 of file xiterable.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::const_stepper = typename base_type::const_stepper
    +
    + +

    Definition at line 161 of file xiterable.hpp.

    + +
    +
    + +

    ◆ derived_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::derived_type = D
    +
    + +

    Definition at line 155 of file xiterable.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::inner_shape_type = typename base_type::inner_shape_type
    +
    + +

    Definition at line 158 of file xiterable.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::iterator = typename base_type::iterator
    +
    + +

    Definition at line 184 of file xiterable.hpp.

    + +
    +
    + +

    ◆ layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xiterable< D >::layout_iterator = typename base_type::template layout_iterator<L>
    +
    + +

    Definition at line 167 of file xiterable.hpp.

    + +
    +
    + +

    ◆ linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::linear_iterator = typename base_type::linear_iterator
    +
    + +

    Definition at line 163 of file xiterable.hpp.

    + +
    +
    + +

    ◆ reverse_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xiterable< D >::reverse_broadcast_iterator = typename base_type::template reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 180 of file xiterable.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::reverse_iterator = typename base_type::reverse_iterator
    +
    + +

    Definition at line 186 of file xiterable.hpp.

    + +
    +
    + +

    ◆ reverse_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xiterable< D >::reverse_layout_iterator = typename base_type::template reverse_layout_iterator<L>
    +
    + +

    Definition at line 171 of file xiterable.hpp.

    + +
    +
    + +

    ◆ reverse_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::reverse_linear_iterator = typename base_type::reverse_linear_iterator
    +
    + +

    Definition at line 164 of file xiterable.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xiterable< D >::stepper = typename base_type::stepper
    +
    + +

    Definition at line 160 of file xiterable.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ begin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::begin () -> layout_iterator<L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 757 of file xiterable.hpp.

    + +
    +
    + +

    ◆ begin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::begin (const S & shape) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 818 of file xiterable.hpp.

    + +
    +
    + +

    ◆ end() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::end () -> layout_iterator<L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 769 of file xiterable.hpp.

    + +
    +
    + +

    ◆ end() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::end (const S & shape) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 832 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_begin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::get_begin (bool end_index) -> layout_iterator<L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 875 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_begin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xiterable< D >::get_begin (const S & shape,
    bool end_index ) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 889 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_end() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::get_end (bool end_index) -> layout_iterator<L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 882 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_end() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xiterable< D >::get_end (const S & shape,
    bool end_index ) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 896 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_stepper_begin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::get_stepper_begin (const S & shape) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 917 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_stepper_begin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::get_stepper_begin (const S & shape) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 903 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_stepper_end() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xiterable< D >::get_stepper_end (const S & shape,
    layout_type l ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 924 of file xiterable.hpp.

    + +
    +
    + +

    ◆ get_stepper_end() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xiterable< D >::get_stepper_end (const S & shape,
    layout_type l ) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 910 of file xiterable.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::rbegin () -> reverse_layout_iterator<L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 786 of file xiterable.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::rbegin (const S & shape) -> reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the first element of the reversed expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 852 of file xiterable.hpp.

    + +
    +
    + +

    ◆ rend() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::rend () -> reverse_layout_iterator<L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the reversed expression.

    +
    Template Parameters
    + + +
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 798 of file xiterable.hpp.

    + +
    +
    + +

    ◆ rend() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xiterable< D >::rend (const S & shape) -> reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Returns an iterator to the element following the last element of the reversed expression.

    +

    The iteration is broadcasted to the specified shape.

    Parameters
    + + +
    shapethe shape used for broadcasting
    +
    +
    +
    Template Parameters
    + + + +
    Stype of the shape parameter.
    Lorder used for the traversal. Default value is XTENSOR_DEFAULT_TRAVERSAL.
    +
    +
    + +

    Definition at line 866 of file xiterable.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterable.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xiterable.js b/classxt_1_1xiterable.js new file mode 100644 index 000000000..072be20fb --- /dev/null +++ b/classxt_1_1xiterable.js @@ -0,0 +1,11 @@ +var classxt_1_1xiterable = +[ + [ "begin", "classxt_1_1xiterable.html#aa92f6e2edb798a381d131475e463bf31", null ], + [ "begin", "classxt_1_1xiterable.html#a4123b26a873b7ed680b13ef557cd3c3c", null ], + [ "end", "classxt_1_1xiterable.html#a76c73882716f9e9915dab847639db2da", null ], + [ "end", "classxt_1_1xiterable.html#a9b56f37894a5055ffe49a46c857b7111", null ], + [ "rbegin", "classxt_1_1xiterable.html#a7bc86e4fb6f2f55c74e33836a32739eb", null ], + [ "rbegin", "classxt_1_1xiterable.html#a66bef4e8cff9bf584e71f0ac7ba828ad", null ], + [ "rend", "classxt_1_1xiterable.html#af04d43d598e8933225287e044c12d4c6", null ], + [ "rend", "classxt_1_1xiterable.html#a92e4a1b212968fcc8a8240be122fe8e4", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xiterable.png b/classxt_1_1xiterable.png new file mode 100644 index 0000000000000000000000000000000000000000..8518663e2fd68eead0702d66d20a547282963f3e GIT binary patch literal 17198 zcmeHveOwb~*0!#-w)KOzTer4VNUagtT0x}}`Al0|F|9ybTNU|Q1wxgCh(H2_khWH- zTLlej#F%7TT2tjCHIWGrlBif|3?Ws77=|PwA5p?2KukgiN#1*K-FEkRx9#)(^X&8M z`upKM%uFUT_ndRC>s;sD9DFxEcK#F3Juzd(jQNC(Z@xcc#w=*YjM>jWHVf=ouZrvd z!{T>0eejmg=L4H}N9+X^mj&xqy|m{UcKhAiw{L^}Yt>u62FD)He?NZn4DkE(KinTU zH)qUvqlxh5>mL-(MD*spJwNn7~WGO*DSUdm=+yX8XbIav@n>BN7(n;Oi z40mID2yHXE|o;R}5e)IvJGK83o(&%G@iQyh)tPnB`1?2R!*iTY_` zSUZWn(GqNytQVy^vUq=xF{he3ZACDNaxR`F=pyYPwr0?|&r-J1?3N*A3dE_Sohn@g zmoLl#UlVr{Q6CkYwIcx1|`=bVS_%u>r>8-C1t0(Fal5~YwymH~8KM#Zt zP8gei>>qBp9tUyGBycV9ycc?ibMrXQ!<*05knqXxl=!B`tbZJfV^fkgP#ScXzc^`1 z^ne@C?1om!{yWq1tLOeS{R*WG2R{QInZ*YURR(hi=#PP=Tdrgs5pf z{~Xvg?@M&^|DZ?zr#DmAz#t5PXjJuh%U`tZVT6|nL)U=^tHTI^oxd;|uQ`rjlW1Yf z6IWI&m>9oOHV0!!Vv(0>neG*6v{IZP zv!>F`H6yy$Xrq6d_TwWYClHOXN z+10tb)+Vob327$NzE^c{Y?aAu{Q>7bjQ)mfadJgz2U~-%T zH!o1Q{=zTyVO?i{4ZC+j(O4(@Lx_FY^pz&T8FtM)tLUZM#a9Mhy-^Un#;FKxZs zMmJu9lX1?Y>+4mHUQV=>LU&rlo(oO)7a5s0o4w!~2%nC(AZ=o%q?vJ{UOcumF@$D1 zsuuJgDquoQ+;SW_XV{2Jm(CXR$Cd?C}3()S8%KU7pQ z?x!r)5eurAVP!eI%jVDFxkiG$6f!SvNj6#Lr*77(hiM|2XRnrj+Q#cDWJep74vx{c z=rW^@#GINK>mS4_)1_WVX4I(<>r;fek+3CR;l4MN z-RnN;?jX@^o=Es|G?!eN(SQFDD{r{s>>x*Hm`e$bweqgmZu!0JAwteIO>CqT^1K4C z-o`>TVQ(nbFfHh5w5IFsu)>4nznsB$R8wqV@T&XWh; zRO1C&qN}lARS?j7d(x6qf8Kl0)p*dh(KHw_o_kZZ+AJ*g=E8Aeldw>7nPcT+72kru z6QcH2gaMo z8u$`DG)EWHcPy{@n+|C7g;OY29I6AC1Y4WV{K5!;V0Yq)%)rr?Q`aQD_~J7O;{Bg~ zy7X0a^NoM=&6W&EC3>ad71f%j3jZXmLLa%k`WGJc;Z(>ufKfme(%Yi#0sfV=sSYQ8FRnwcAKPsxTvMAKh;^X7wN1=o=oF4`Nj$3WYhyFL=IMAt^Ue0 zm=iYjC5cjh{<#rN1}CGTq+rOa3Q{^ze`o6gFn3hFd8KD6#Fy^fD|VN}{LP;oJ6cGJ zCC3JuPhTxmT=ouNwV9H>{?Fz(^Q@NcYGZtDO@hEhbF1UcX1!S&9nd778iMLuDe^o0 zA$+V+3j$P{1}Yoyimo|CW6AejGmRUH)Q&%1vVX4H++0qFGg)1Gvmi!3-p^tQ)2ibJ zj+jN!PNK$AYW3zq{4ln6L`5l;%8%~_fWzP-1v_3M63D{a06%s9BJ`B~e~;}1Dbe}OQI-rcIQw_)>=cRh9>fKuzd}C(pJD2eCbqS zIAQ#33e&wVK)oU@gPwvXyZ1tRZGH$0yIuD!IR~0k`>BwgTk7oeMv_8|x~IJtIzZf{ z6@O0ibF__&t4Y=dNmVsX)4ywk$wFkCESXY18Lx62NoKdrq=*^$BT%PCF(upp*jkRU z!*O!BL27R6T0eQdzB)!oFS<^u{F;?P z0+;M2Rc5UDg%Ns1^*-=~&`-9Gu~3XH{CB|E-*yju%f%^wOA0R56so5mIp7x__2E=F zil8#Au37w&a(7YwMRri2vSa9UD{L0eWSag^^CkXKyxf1QrawBs*=(xJ=2OWP6Wvt` zj~bnSO%?~syf(QL!>9bC`@WhqvFsEgKdL&ESIRPW8-4h?7GZ#&`_>+PUeAT+%q`aR zU}+AVGFCji>xyR;pb_KA88I;GV-?(OTlw)et0OYiIxeC!ByG#IY-4YC!GwD2 zR0kjAFgJkXRuBQCFcUNBy29Yescn?%79zdqzA!eK_d`K1NAe+_utkMJF*mwV1E5$^ z`4Eaj7*5Rv6pEeRd7QNK3Ge3siW{p-6;$en)u9FWarp5J-yw|Y7(H)X-Q$V1qkhY; z2?!4DdEmEGLqv*5=F~RJ_^O+edVH(%GRQr|#&&9SdH}`+k|8KMC6K57l4HujpC92_ zBF`E$R0f}|(#tg2=cI|Act~O#n^ff)#LrnprbwN)hu;_3C*J}A=baea%Ni&L-ir-T z2R`s#`m5?*dMb*=Tt+efXIQ+;M~2uwyUsDB`BC?DSOjc%RYX6HA38=M(uIxcB{I4r zK0S@97v2ZJtQts#+&YJt~@7VteD4xE_ z%kL1SKSiQb(~lhW8y?O)6^;q)0d#>giW>`n8o$()xOG%9$8Je4*hp0&OGM1}iq31YaF>PDLf?)DEEw1H_MJ6nxdut+ zl((K@xgQAAndhX6Sj8xAg4&4Qj$2os)!x6Exv^Unc2?CZ4$rsUXH+57Ru4&wD{AW2 zb6Ue>M(yzr7Q( zc0le^mP|T5iEkKCzpKse?SQ16*3us4abyrMYks#bOj!^fEt3XKrf+uvF8vkUeq9@OaBD>}wo*oNijgc`0LwhS?lzfHQLd*>)+sJYrnL~EIQmR6Vwudf=a-W7F?=}I zTs)EMj=5&*ER4?RG8S3wH*J&ZJci7Sye7dl$y+(uwM=46&Yh?mMTz=5ZQrufyVIOg zvm{@PP6f3j-PS8!2W%P;Wcq0`tK^Ora|Y|0FUbu`3~@38SOaM`KI0*BO98pQ9Tn)(_7qRj-YVI2(%9|@yx>_P6AqUa_*TI|2O-_%UfxR&Gs>C3>cgb!!D*v6 z=j{}TyM00^Z9Iy6YoIvmV{FlLs5#C9;V#JgMQ~32*heSgSOPRB(C`uGr>>KKl62;< zN;;Ff06g||W<_pUMHrt>NNgI2@cx4g<{^vvSL5%IP-cUGlws~TgRL37J~Qof;Y1-K zDG9sCrm?Wjlwj(A5q3t~VIlWH+V1s`DhF`Ahur6P$m|J3dfwr#KQjYiaHU+pAQDi+ z#sTQL#xA-&m7%Cp_?X*^(xL+#=lhyX7j~`fE;6?DQuQEl;FAh5=Ih*Esn8y$f0zey zr}My&qQ8SqLY?~Q(zk#I%~_!IWFAK{`Nlb&s2U7-(oL=OzdsCGoiMz-K8EUu5&i;}2K`l6wV z&DvrXta(!!>qLoUnwBKgM#zNwnq=3ze(*ziWE0?#hdg()eW}xMQzlB$oNO~$j?}Wr zY3zd^<=q`>YVjQ^rCw2UlgkwJw3?V4<^rnDP%1EosEahs5*yE&;dW`g+@B|a^MRam zFzQsw133rc?q?;l8F5aLOjem-H50!zug%GV_4jCa#F9yKQPdD&%R9iuKFETxP1gG_ zS_7;V;X{Bnejwt5L~say&5;`D6zS7Oeoi1Qk&IPV-lD{3#ZhjF1aG$=@kaSGF(CzPh4gykqn;arFbVx=+eFsFH= zOtFDgf+{xNHz7@^^R(q_@yeFZ!DWtP)6tL#wjRjZ|6=?}&}6qi{lpVjJ4s*u_0Nx~ z!RCP<|IIf;su0mD@2pgb+8;^%K70C+ABg$?;!z(?#h0RJEYK*r^c`69piM^TR!!bc zi&#zIy*4eR18sGDjvKrUbQTltRdZY6Y}usO;V|wpwq31Q7Ej+Q;Dx0+c;t{hx}v6d z@%|t!aO7}*mRsfREYQXs5d>;=sgu1KbQ+W*IE~fRg4gq?(y>kb@>RH_JM>--l$<3^ zZCd24CdEF13L!(+9G(Whku{fi4jxm0GC!bkNUO+r zH6&gc#RXc%__3Hz!vh;qWKS2J+Ng;oH|sCR7TDguv+HB?C7iDODO7wsd>nbHi$hAF z8w?%dVJ@kHjsxYQ?WWRa2MtFF;{$+jlMaE$z=!RuS3jM4>4HukS7#MsUH;3q0^MUb zs(k*EnDEb-@H@nUux&tGsL7Nz!&Mow61lVZ){eXZoaSwo2`v(&X91;e>fjYa8z?ya z1vRbVW&EF+*6Jo_L#Kg!kRx+PXp#(mjmcl@E{n6l+pR_8weMcDIS}4_%1jD5Sl=%X zh3hwivST;6Fep3D%lcD4Bu*)CKc2@$iU(7BX=4AEdjWantc0Cf`FYhN^d5RDbq?bw z^4ibnN5&)Cm-b4FldMCXVX%2}S5j8eGuuH(EP5ZKUXldYr{+b*eQl}^)8}xK8;TC* zhF&B?v))2guv1Ne}xP_R9qj9zeBP4s?u>Jqk*)Q7765hjWbYLXAf5Zd1-1T z$}vd*zf^obP{o}A<|v9^@zDZ`&_3*jVWxnAS&T1Vhoo?edkS@QNOp1XNN3OBUiH(w zZ2{biAF(S@g&A{GCH&J`ypAE!y&czP2TASsgPnvM$TeUhV#tRz_a$ z!NTuNt3C%s3?`y#-t?V7X3C`f7l~dV zkl}5!&oqG2=4Lba znqNe`hcNJP{2e0TC;xQwq^@t@FO_7GqD~jT{0fi8i{eL$xr^tVKulAY)hzj`B zcvh6uys#-nR!6h#;vfZ{3w7d^^MoLrM15JYt-OxBRoKK0ykUEflY=7*t6M&3eD?MZ zsQOJbVlDew#5z_q9kE{2yp`$~p71?~e-QiZ1{C{`fS@(Ie-H$)KW#dNz%6Lch;eOB zgZk++K%e;KBJV#Jfq$wog;b%HZNa}y8T(fy_W$2HcYh{*qi8!+Bjo~4WuoUz6f%4h z*rK=5xKe_KEc_G5&;W66LOsYsZIhqhjlcwKH5v`xNW^_>BKOKJ>+sFat15$-IJbW{ z0KO|f0bjo$4l)@(Y15^aZ)D9xQ}T_v09)esjl4IV6i&B8SHHEpKgBej(w075Dt?Mc z-%VL`n`$j8diNf8{<8h)OL+7q8k#aWSl{9I^2pHW6GI)2bxiN> z{nh_rP^^sKRGz_tYO7#!q=#M%tM5Ni00E`C6at!a1bjK|1_(3W^tL|;pE76K zpVRFl3HOuYi;qkeH1RDj!$?CnH>fqRV ze9DI81g+apKTEHdr81bym7CGjQo#jb^02L91M3i)kEBM!{VheC3Oqipp0MTs;EHCF zl$#BJdLy6||LFpF$UXmg^u7&9zN?pA*5W^Uct=i!tAk*S*eh|5j=jxN2*JdH5A@o< z00FKNZ7lPJ!4+BVh!sCK)XGL+s4bE97OL)i#7EJinVyp4o<0Fr`y?e;N9v=Xq0btD z<-Y<;vNHtnF^khZR3OKntMT+nYfj@SLpJs2(lLnEFnQ{M(N1flzICv99!=a_dLty8 zt;a2`t?UhG(MdHUmYH;Cc?$=jI`r{ZnXA#XfPR1^SzM9eTm6@J{wm1>JqL#5-I#v+ z$L0fZMesffjba%NR4blA<$Q$?Ezv3R;&w#V8QO*LpCMb1Y=)wb%c7W9fb zfOM||GU2qQ5|R(av6x-wFPg6uC(0bQ=V5cJBK%&ekn<#zf(Y}sTLjW;RQh^zdn$@9Z|6sJ0!vJ@ee<^&w%IF>oB zg-F08Z|hLJLRfPMO?B{a|Em*o2kR2H`Fzs;KDeOpGwP0R0E0nUm=G~-{dGu7pxN96uqL_bo;{=;`Ad|{KBI?oC?k|pud+`#+H`# zuOI|YH?=u9rXb~us4g%{!WTW_LF2fk3zlv^;cnC{PRJVtor|ANcP?H7W(PWEY_HM{=d<%9Va1KYETZoa<_%lXy3+UNblw0lY*2N(feV641u>LVa> z(w5Sez-h8mfz4e)1=HJT`B3)?fQWwS0=JNq-n~>_;JGDIsU-@?mUZh_B}&$c~&_#h$6gGGHq>U^_i?v)p4R zml#rO1VfB~D2hVPSVwNGnvIVS=SgYt2?E8fKn=Xa89vK$%Y1SszBYp!ptRkT{#293{7#6OI2x`Y|9 zYlK*uf`8XtMr2+DRI=(Liw5#L^DWXv6OTI=M0OY0$hb6Hdrq{51Hg*2m8&iM|Ox$zD##NtRg4C$5sc zcfPD?T~H>BpWLtVjrFkxj-r#!BH{6t9e^grDNZA90sfW_6A(-YKxsY$!c=thAq}aX zlP{M)h}Jp8OBI{TO?7YF;+3XGc8IM>!u6@noB*eaQJ1uhQk;KKUu9f3Qs_3POG3xI z340RpzGzGGm}Wj3TY-YA8nmdyBtjHz7V<|k@=Qg%f_X)4u))Ng@}?iDZ%buYs4u&_ zcSwv5gIq1J8`JSp@1?%(na0DY-{pv8-XD#%_52g6o=m4@b#GLmxs$>({@w5NQIKCq zF6T#fnci^OJJ%3hWKDb4@&(EmM(Da6T!10f^l3*V*|-P({1ZrK;hl}7Xh06`CU)aXr+&`mAJFaVsHeXxan#DH26mZ{6IB zgFP21n1uCdg8u%EZLec8=>9{^I~bQkr&TU1v*k3l=uz!wQ0K6EsyX;xq!=L{%7$>& z~iH(sC@#R?H3cUhgr$P@pqVz(XWE;#_=Y~5*9YHMhp<(>V)ha ztP*ro>>!4m0zscRw-rp!IF4~_Zy~*IE1r0@-(iN!Iu9`ZES;svX8W5M=G9^QdQxP{n^#Fv)$VHB4-wDk)ER9wK%`-16@M88Gnn-yR0qgooYRa@~E6-NZ>j5%1^h%kn_~0 zC!7r;kI{#A=)YQiHu<@2nta^a9HLA}gw@Z`Om{S3IggZ@pZkF8BSbm!NzD(zzPiqqL%E*1TfCxx;rqVb zRHl5|4h7eMoOU9sV-*2(zU;4(ZG$M{0rv`Jad`Y!PUmvvM`%_cM$QgltI*@Wwy5;s zanN({FvZS5S2uz+Hvhw`8-Mc(%R(iI{nOf=Q24j5r;VngIpSq_wK04|)tZom87TqE zB3QJCrsJTmc`6=K(7wUCG$>){B+}al*0geK!pZC8{suz@AKx8g0CXhww6=R0b0o4N z-`~EjcX$Lo({>j$vbFPQV5J$2ZHJfYUXjGs>L5ODV8B9B*nNBEW8z9aP9icYZ9Cc^Rw!5)nKDsZ>_Tg4 zRV^R>ZCBuUD!N)3wZFDlP>v%04pj=roBz;i$DeRSczt6#B%ZO?*iQw_KZ0c@fhn5L z1F%+J@rlr<*Lh!rLmu78Qq-dswiNE~WL911Sl#mf?4-*t)Kl?S%Od4R5rw;xg;k&l zC+{B?K;Fwimt82`#aF(umg!RcTra@%bVLIJ*H`GdFTnk?6m+lFHWb)__QNHT=ccLU zV96D3OrPQQ_AF_PxkH#Pqdz&_^tO8eSjI@DRvpEa<@{yx6*%Q{kerb_rToKLkD-AR z6sx8S2XMWDQA;x!gko7eA7Z3Kvd72XgS4}NrfKX%%LSiyb}ClfNxwWrgm7OXrn`&} zoi*+Rt|86&H<0T$%}!{e@b{DdGnaSf!=0K%h3O! znE$2a&V*9TiWa2gg0IuYBAw{Ggfo@o9cgv1An-N=lReA^B?B9u=vFP-#PXqk)FApj zsO{|RJDeGO5tE6#|xGumM&=?(>Nw1petnqteyT43H z757d0K+CdIEDIeN42H_|y}MXZWoYPH3WFx4N+h@Sr8Avvw$*-TI#VF?ljWwIYrR?S zjGr_+-j(35=m%qNL5Ho+`38OJdChox7_5HGr00^qyiK8laJLSZx}vFGF3AJc3>;`d zFfT8wJz*bGM|nnLccz%`8F-=7Wv$C3d_=_e_usqqQhkMFbDMx1gh|4U`M0fGkUPm_ z-^u*Ue$a%tpLC?i$wkdu0N?yP2;h9cH39UaK5{ zQ88jL3w8~mU$J;O3Vf~}bZymtGvd1NXTIyGy}0q4&%j@{m_c|e{>}O~{`~3x1q+D8 A1^@s6 literal 0 HcmV?d00001 diff --git a/classxt_1_1xiterator-members.html b/classxt_1_1xiterator-members.html new file mode 100644 index 000000000..e9a6f2da6 --- /dev/null +++ b/classxt_1_1xiterator-members.html @@ -0,0 +1,143 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterator< St, S, L > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterator< St, S, L >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    equal(const xiterator &rhs) const (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    index_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    iterator_category typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    less_than(const xiterator &rhs) const (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator*() const (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator++() (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator+=(difference_type n) (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator-(const self_type &rhs) const (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator--() (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator-=(difference_type n) (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    operator->() const (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    pointer typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    private_base typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    reference typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    self_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    shape_param_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    shape_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    size_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    stepper_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    value_type typedef (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    xiterator()=default (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >
    xiterator(St st, shape_param_type shape, bool end_index) (defined in xt::xiterator< St, S, L >)xt::xiterator< St, S, L >inline
    +
    + + + + diff --git a/classxt_1_1xiterator.html b/classxt_1_1xiterator.html new file mode 100644 index 000000000..b2ec8be58 --- /dev/null +++ b/classxt_1_1xiterator.html @@ -0,0 +1,704 @@ + + + + + + + +xtensor: xt::xiterator< St, S, L > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterator< St, S, L > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterator< St, S, L >:
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xiterator<St, S, L>
     
    using stepper_type = St
     
    using value_type = typename stepper_type::value_type
     
    using reference = typename stepper_type::reference
     
    using pointer = typename stepper_type::pointer
     
    using difference_type = typename stepper_type::difference_type
     
    using size_type = typename stepper_type::size_type
     
    using iterator_category = std::random_access_iterator_tag
     
    using private_base = detail::shape_storage<S>
     
    using shape_type = typename private_base::shape_type
     
    using shape_param_type = typename private_base::param_type
     
    using index_type = xindex_type_t<shape_type>
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xiterator (St st, shape_param_type shape, bool end_index)
     
    self_typeoperator++ ()
     
    self_typeoperator-- ()
     
    self_typeoperator+= (difference_type n)
     
    self_typeoperator-= (difference_type n)
     
    difference_type operator- (const self_type &rhs) const
     
    reference operator* () const
     
    pointer operator-> () const
     
    bool equal (const xiterator &rhs) const
     
    bool less_than (const xiterator &rhs) const
     
    +

    Detailed Description

    +
    template<class St, class S, layout_type L>
    +class xt::xiterator< St, S, L >
    +

    Definition at line 286 of file xiterator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::difference_type = typename stepper_type::difference_type
    +
    + +

    Definition at line 302 of file xiterator.hpp.

    + +
    +
    + +

    ◆ index_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::index_type = xindex_type_t<shape_type>
    +
    + +

    Definition at line 309 of file xiterator.hpp.

    + +
    +
    + +

    ◆ iterator_category

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::iterator_category = std::random_access_iterator_tag
    +
    + +

    Definition at line 304 of file xiterator.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::pointer = typename stepper_type::pointer
    +
    + +

    Definition at line 301 of file xiterator.hpp.

    + +
    +
    + +

    ◆ private_base

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::private_base = detail::shape_storage<S>
    +
    + +

    Definition at line 306 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::reference = typename stepper_type::reference
    +
    + +

    Definition at line 300 of file xiterator.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::self_type = xiterator<St, S, L>
    +
    + +

    Definition at line 296 of file xiterator.hpp.

    + +
    +
    + +

    ◆ shape_param_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::shape_param_type = typename private_base::param_type
    +
    + +

    Definition at line 308 of file xiterator.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::shape_type = typename private_base::shape_type
    +
    + +

    Definition at line 307 of file xiterator.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::size_type = typename stepper_type::size_type
    +
    + +

    Definition at line 303 of file xiterator.hpp.

    + +
    +
    + +

    ◆ stepper_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::stepper_type = St
    +
    + +

    Definition at line 298 of file xiterator.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + +
    using xt::xiterator< St, S, L >::value_type = typename stepper_type::value_type
    +
    + +

    Definition at line 299 of file xiterator.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xiterator()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xiterator< St, S, L >::xiterator (St st,
    shape_param_type shape,
    bool end_index )
    +
    +inline
    +
    + +

    Definition at line 1084 of file xiterator.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ equal()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    bool xt::xiterator< St, S, L >::equal (const xiterator< St, S, L > & rhs) const
    +
    +inline
    +
    + +

    Definition at line 1184 of file xiterator.hpp.

    + +
    +
    + +

    ◆ less_than()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    bool xt::xiterator< St, S, L >::less_than (const xiterator< St, S, L > & rhs) const
    +
    +inline
    +
    + +

    Definition at line 1191 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator*()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 1172 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator++()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator++ ()
    +
    +inline
    +
    + +

    Definition at line 1120 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator+=()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator+= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 1136 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator-()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator- (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 1166 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator--()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator-- ()
    +
    +inline
    +
    + +

    Definition at line 1128 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator-=()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator-= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 1151 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator->()

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator< St, S, L >::operator-> () const
    +
    +inline
    +
    + +

    Definition at line 1178 of file xiterator.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xiterator.png b/classxt_1_1xiterator.png new file mode 100644 index 0000000000000000000000000000000000000000..12ef3547772f6cca69c983d258bd7b92dfc2ca28 GIT binary patch literal 2340 zcmcImeLRzU8y|Ag8d7 z*xS)@d-9*v1rG@Nx__K}+jIzvvSH$|>q?kgdnZsO%s?!vh>4S*U4z-dIEQT6UV+EV zXDmY!zPqQLI4x;oBlR(Nu1D>MP=7D39b|SKDZ0U0jWJ#VVsY14D>KP9DBpH3FM-x= zmn#@Sr`>$naI;@vXGyrh(wX}?bp(&rT=M}=2u%IIO?Rq{wsgPOs49xZMaX*T3BPQm zq@YhWr;%a~V%z=5L)?kZ^nR&|yP@cOU36)!h$_SJoXU4MiV2^bob*ug1gMRWci7HGn zIl569(dT#MGwayz-&!YUs@_n#+GoOJJL(Lr-Z*1f06s&`4l2JLpSv}V7q+L;_td=o zU6qD(vQc5Q;Gx=Hl|kFxgYMfBLFXQIQ=XBMw#}uIj6S~4F2-X-hbww*-M6fi>{G1% zBn>yU96op<#dT)laxi0>et=tkZ!pPd{Kykgn^Q`jeP zSKsDv#=jCgZc%%)BDk7TNfxE0KDBwk+~sReA%!LW2*eq`K_7_U*Ho-lN0MsDQH`yR zS0FZ7%K_fJP}v~Abk~PkckbY#=PJ@~cE8qnyd%}7dI*)SeAl;B>84|fwt+5Lal`H2 zbh2VX>6{~+c-;*ozJKK7TDVYL<@PiwuDB#G1$?wnqDsrfEuQSC#Mx!3OKL)8&{XrrFr8TZ3~=v%lfd<>`b3D4mAYZg6una8=iMfSk`!CT*ZBR)!hp2w~ZFvUncsYcIDJU z*`2Gcrk#W3)$#7>>yHYCLo$Nh@#+-!Dk3Y};X}3p%Zs4WTft64r3-YCH>T)Qf+t;y z)*rhmxBcXoG?Er)OSnw9^_D31#hGgFJ!?`_dL0RVTXo93-XOrE(9(oT zzIR)K0b^uqLzx)J2cI;9-5(hvjZ@1Nokk%u^q+Rl&|VukCroej7BCX$`)@;|1YvQ8 zI~X3HRj`z#Hc64w@-*}CA#|=CBsB%k22Vd8u7V^-u^d*HOsK;lb-6ODE^B5*$$D0l zF2SPI;tNNzT?31fAu#!d!|)9h;BPeKL@sV}Q_!-1Hcs zyB%@se3Z#*#2a7kg2f2=$M{T&j_wm0E#-v(vM{@cKa2R$x@`kwmQkK0)vhe|D_&}` z6@SCBe4!9?&LS2g0<1;)1_;L?{lyTExff&z11HVk7}p)NHuBY48yM)gM26_D&~)ZN zk>_e{VBqd9Z8pdMSfF*@s@CnF~LK5JarTJ7>ojP!^3mxp~NHv+5JRv#pZvx#KaHC`_OpiPD zKp$9@Oe6|F_;0=z1FRerjakm-&a5HkoGB6mCzkhv)N*mf7ApZngr%V9 mf4IPx4*KnAGKZQgVcbe$Y=q`S?tP4a9*lQ@7kg*qxjzBD3RCF- literal 0 HcmV?d00001 diff --git a/classxt_1_1xiterator__adaptor-members.html b/classxt_1_1xiterator__adaptor-members.html new file mode 100644 index 000000000..06a534605 --- /dev/null +++ b/classxt_1_1xiterator__adaptor-members.html @@ -0,0 +1,142 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterator_adaptor< I, CI > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterator_adaptor< I, CI >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    base_type typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    const_iterator typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    data() noexcept (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    data() const noexcept (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    iterator typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    operator=(const self_type &)=default (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    operator=(self_type &&)=default (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    operator=(const temporary_type &rhs) (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    operator=(temporary_type &&rhs) (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    resize(size_type size) (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    self_type typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    size() const noexcept (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    size_type typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    swap(self_type &rhs) noexcept (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    temporary_type typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    value_type typedef (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    xiterator_adaptor()=default (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    xiterator_adaptor(I it, CI cit, size_type size) (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >inline
    xiterator_adaptor(const self_type &)=default (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    xiterator_adaptor(self_type &&)=default (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    ~xiterator_adaptor()=default (defined in xt::xiterator_adaptor< I, CI >)xt::xiterator_adaptor< I, CI >
    +
    + + + + diff --git a/classxt_1_1xiterator__adaptor.html b/classxt_1_1xiterator__adaptor.html new file mode 100644 index 000000000..053c1ddbd --- /dev/null +++ b/classxt_1_1xiterator__adaptor.html @@ -0,0 +1,667 @@ + + + + + + + +xtensor: xt::xiterator_adaptor< I, CI > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterator_adaptor< I, CI > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterator_adaptor< I, CI >:
    +
    +
    + + +xt::xbuffer_adaptor_base< xiterator_adaptor< I, CI > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xiterator_adaptor<I, CI>
     
    using base_type = xbuffer_adaptor_base<self_type>
     
    using value_type = typename base_type::value_type
     
    using allocator_type = std::allocator<value_type>
     
    using size_type = typename base_type::size_type
     
    using iterator = typename base_type::iterator
     
    using const_iterator = typename base_type::const_iterator
     
    using temporary_type = uvector<value_type, allocator_type>
     
    - Public Types inherited from xt::xbuffer_adaptor_base< xiterator_adaptor< I, CI > >
    using self_type
     
    using derived_type
     
    using inner_types
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    using index_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xiterator_adaptor (I it, CI cit, size_type size)
     
    xiterator_adaptor (const self_type &)=default
     
    +xiterator_adaptoroperator= (const self_type &)=default
     
    xiterator_adaptor (self_type &&)=default
     
    +xiterator_adaptoroperator= (self_type &&)=default
     
    xiterator_adaptoroperator= (const temporary_type &rhs)
     
    xiterator_adaptoroperator= (temporary_type &&rhs)
     
    size_type size () const noexcept
     
    void resize (size_type size)
     
    iterator data () noexcept
     
    const_iterator data () const noexcept
     
    void swap (self_type &rhs) noexcept
     
    - Public Member Functions inherited from xt::xbuffer_adaptor_base< xiterator_adaptor< I, CI > >
    bool empty () const noexcept
     
    reference operator[] (size_type i)
     
    const_reference operator[] (size_type i) const
     
    reference front ()
     
    const_reference front () const
     
    reference back ()
     
    const_reference back () const
     
    iterator begin () noexcept
     
    const_iterator begin () const noexcept
     
    iterator end () noexcept
     
    const_iterator end () const noexcept
     
    const_iterator cbegin () const noexcept
     
    const_iterator cend () const noexcept
     
    reverse_iterator rbegin () noexcept
     
    const_reverse_iterator rbegin () const noexcept
     
    reverse_iterator rend () noexcept
     
    const_reverse_iterator rend () const noexcept
     
    const_reverse_iterator crbegin () const noexcept
     
    const_reverse_iterator crend () const noexcept
     
    derived_typederived_cast () noexcept
     
    const derived_typederived_cast () const noexcept
     
    + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xbuffer_adaptor_base< xiterator_adaptor< I, CI > >
    xbuffer_adaptor_base (const self_type &)=default
     
    xbuffer_adaptor_base (self_type &&)=default
     
    +self_typeoperator= (const self_type &)=default
     
    +self_typeoperator= (self_type &&)=default
     
    +

    Detailed Description

    +
    template<class I, class CI>
    +class xt::xiterator_adaptor< I, CI >
    +

    Definition at line 441 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::allocator_type = std::allocator<value_type>
    +
    + +

    Definition at line 448 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::base_type = xbuffer_adaptor_base<self_type>
    +
    + +

    Definition at line 446 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::const_iterator = typename base_type::const_iterator
    +
    + +

    Definition at line 451 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::iterator = typename base_type::iterator
    +
    + +

    Definition at line 450 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::self_type = xiterator_adaptor<I, CI>
    +
    + +

    Definition at line 445 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::size_type = typename base_type::size_type
    +
    + +

    Definition at line 449 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::temporary_type = uvector<value_type, allocator_type>
    +
    + +

    Definition at line 452 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::xiterator_adaptor< I, CI >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 447 of file xbuffer_adaptor.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xiterator_adaptor()

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xiterator_adaptor< I, CI >::xiterator_adaptor (I it,
    CI cit,
    size_type size )
    +
    +inline
    +
    + +

    Definition at line 1077 of file xbuffer_adaptor.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_adaptor< I, CI >::data () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1120 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_adaptor< I, CI >::data ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1114 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_adaptor< I, CI >::operator= (const temporary_type & rhs)
    +
    +inline
    +
    + +

    Definition at line 1085 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_adaptor< I, CI >::operator= (temporary_type && rhs)
    +
    +inline
    +
    + +

    Definition at line 1093 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ resize()

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    void xt::xiterator_adaptor< I, CI >::resize (size_type size)
    +
    +inline
    +
    + +

    Definition at line 1105 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_adaptor< I, CI >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1099 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ swap()

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + +
    void xt::xiterator_adaptor< I, CI >::swap (self_type & rhs)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1126 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xiterator__adaptor.png b/classxt_1_1xiterator__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb1628edb9eeddfe1c626ec0bdb90008ca1747a GIT binary patch literal 1041 zcmeAS@N?(olHy`uVBq!ia0y~yV6+Fa12~w0WW?I0ML3f*F8(FfeDDeT9L6d5))xV@L(#+qtjv4lD4u z@y9PY`TqZr?AhFWiqordxBA{Ix)O81LcQU?5zpZXJckWh5+*EhnZ&fj-m`1+KNU^C zUz3+uy!4;+$mCy_O8J)Q+h1Ex+H(3?<^IEw5}sdo^lN)c`z?++v+VPVJO9qPR~)I>=1JEle-5mCTl;(d(!2ida&MnKf0ylRyv0nS+Wy>j+hrHlCGWkl z=cvhs{-FFlO0#?Ir!QA|yXnk+rP98qXa0u795QXne(#)HwPj(f@%0TJ{~{Kx`Sn*v z+Wy);`~RtTD`WSc%_YPPubiSN(%@8-Gqx!iL0)rjS3G!Ntv8O}+>`OoRQgrT&37$Ym%7x;=ajNN|2==Tc+kZ*=G0$7e-_=k0 z66M!6Z3%yo?(Fp9e+%~?pLWl0*5MewYL83&6?W2|s~^AIQ}oX>XihmW^#8-702U|b z&fYiRaR$bh0OJGm&#V&|T0H6*68G&3QgE2^g+Xl|ukAGcXY=l?@XHnMuk$VcXMbKlLsn*T|IndRKLN&F2brKTrbLd+hyQukn z%>KJi-%Nl0@6T%f-S+=0ff2oXwRqZ5vpGMl@BNq3Z~ywe|4seo4JT)=-@Y!-&-Lom zD`$Vr{dMMRdETDuhtFs4XaBSFS9aPrv304xZhrrn`cIBEEq`I`sV|4ufBye${>+=t ve|Q6fqD~qV41TB~V_v^>%A_elUM=||Ndm`Rb2ZlkGcSXutDnm{r-UW|x@jtQ literal 0 HcmV?d00001 diff --git a/classxt_1_1xiterator__owner__adaptor-members.html b/classxt_1_1xiterator__owner__adaptor-members.html new file mode 100644 index 000000000..2d676cd4b --- /dev/null +++ b/classxt_1_1xiterator__owner__adaptor-members.html @@ -0,0 +1,141 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterator_owner_adaptor< C, IG > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterator_owner_adaptor< C, IG >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    base_type typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    const_iterator typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    data() noexcept (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    data() const noexcept (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    iterator typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    operator=(const self_type &) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    operator=(self_type &&) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    operator=(const temporary_type &rhs) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    operator=(temporary_type &&rhs) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    resize(size_type size) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    self_type typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    size() const noexcept (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    size_type typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    swap(self_type &rhs) noexcept (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    temporary_type typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    value_type typedef (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    xiterator_owner_adaptor(C &&c) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    xiterator_owner_adaptor(const self_type &) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    xiterator_owner_adaptor(self_type &&) (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >inline
    ~xiterator_owner_adaptor()=default (defined in xt::xiterator_owner_adaptor< C, IG >)xt::xiterator_owner_adaptor< C, IG >
    +
    + + + + diff --git a/classxt_1_1xiterator__owner__adaptor.html b/classxt_1_1xiterator__owner__adaptor.html new file mode 100644 index 000000000..1c71c7d42 --- /dev/null +++ b/classxt_1_1xiterator__owner__adaptor.html @@ -0,0 +1,770 @@ + + + + + + + +xtensor: xt::xiterator_owner_adaptor< C, IG > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterator_owner_adaptor< C, IG > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterator_owner_adaptor< C, IG >:
    +
    +
    + + +xt::xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xiterator_owner_adaptor<C, IG>
     
    using base_type = xbuffer_adaptor_base<self_type>
     
    using value_type = typename base_type::value_type
     
    using allocator_type = std::allocator<value_type>
     
    using size_type = typename base_type::size_type
     
    using iterator = typename base_type::iterator
     
    using const_iterator = typename base_type::const_iterator
     
    using temporary_type = uvector<value_type, allocator_type>
     
    - Public Types inherited from xt::xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >
    using self_type
     
    using derived_type
     
    using inner_types
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    using index_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xiterator_owner_adaptor (C &&c)
     
     xiterator_owner_adaptor (const self_type &)
     
    xiterator_owner_adaptoroperator= (const self_type &)
     
     xiterator_owner_adaptor (self_type &&)
     
    xiterator_owner_adaptoroperator= (self_type &&)
     
    xiterator_owner_adaptoroperator= (const temporary_type &rhs)
     
    xiterator_owner_adaptoroperator= (temporary_type &&rhs)
     
    size_type size () const noexcept
     
    void resize (size_type size)
     
    iterator data () noexcept
     
    const_iterator data () const noexcept
     
    void swap (self_type &rhs) noexcept
     
    - Public Member Functions inherited from xt::xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >
    bool empty () const noexcept
     
    reference operator[] (size_type i)
     
    const_reference operator[] (size_type i) const
     
    reference front ()
     
    const_reference front () const
     
    reference back ()
     
    const_reference back () const
     
    iterator begin () noexcept
     
    const_iterator begin () const noexcept
     
    iterator end () noexcept
     
    const_iterator end () const noexcept
     
    const_iterator cbegin () const noexcept
     
    const_iterator cend () const noexcept
     
    reverse_iterator rbegin () noexcept
     
    const_reverse_iterator rbegin () const noexcept
     
    reverse_iterator rend () noexcept
     
    const_reverse_iterator rend () const noexcept
     
    const_reverse_iterator crbegin () const noexcept
     
    const_reverse_iterator crend () const noexcept
     
    derived_typederived_cast () noexcept
     
    const derived_typederived_cast () const noexcept
     
    + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >
    xbuffer_adaptor_base (const self_type &)=default
     
    xbuffer_adaptor_base (self_type &&)=default
     
    +self_typeoperator= (const self_type &)=default
     
    +self_typeoperator= (self_type &&)=default
     
    +

    Detailed Description

    +
    template<class C, class IG>
    +class xt::xiterator_owner_adaptor< C, IG >
    +

    Definition at line 520 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::allocator_type = std::allocator<value_type>
    +
    + +

    Definition at line 527 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::base_type = xbuffer_adaptor_base<self_type>
    +
    + +

    Definition at line 525 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::const_iterator = typename base_type::const_iterator
    +
    + +

    Definition at line 530 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::iterator = typename base_type::iterator
    +
    + +

    Definition at line 529 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::self_type = xiterator_owner_adaptor<C, IG>
    +
    + +

    Definition at line 524 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::size_type = typename base_type::size_type
    +
    + +

    Definition at line 528 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::temporary_type = uvector<value_type, allocator_type>
    +
    + +

    Definition at line 531 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::xiterator_owner_adaptor< C, IG >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 526 of file xbuffer_adaptor.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xiterator_owner_adaptor() [1/3]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xt::xiterator_owner_adaptor< C, IG >::xiterator_owner_adaptor (C && c)
    +
    +inline
    +
    + +

    Definition at line 1145 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ xiterator_owner_adaptor() [2/3]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xt::xiterator_owner_adaptor< C, IG >::xiterator_owner_adaptor (const self_type & rhs)
    +
    +inline
    +
    + +

    Definition at line 1152 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ xiterator_owner_adaptor() [3/3]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xt::xiterator_owner_adaptor< C, IG >::xiterator_owner_adaptor (self_type && rhs)
    +
    +inline
    +
    + +

    Definition at line 1166 of file xbuffer_adaptor.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_owner_adaptor< C, IG >::data () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1215 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_owner_adaptor< C, IG >::data ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1209 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator=() [1/4]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xiterator_owner_adaptor< C, IG > & xt::xiterator_owner_adaptor< C, IG >::operator= (const self_type & rhs)
    +
    +inline
    +
    + +

    Definition at line 1159 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator=() [2/4]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xiterator_owner_adaptor< C, IG > & xt::xiterator_owner_adaptor< C, IG >::operator= (const temporary_type & rhs)
    +
    +inline
    +
    + +

    Definition at line 1180 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator=() [3/4]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xiterator_owner_adaptor< C, IG > & xt::xiterator_owner_adaptor< C, IG >::operator= (self_type && rhs)
    +
    +inline
    +
    + +

    Definition at line 1173 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator=() [4/4]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    xiterator_owner_adaptor< C, IG > & xt::xiterator_owner_adaptor< C, IG >::operator= (temporary_type && rhs)
    +
    +inline
    +
    + +

    Definition at line 1188 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ resize()

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    void xt::xiterator_owner_adaptor< C, IG >::resize (size_type size)
    +
    +inline
    +
    + +

    Definition at line 1200 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    auto xt::xiterator_owner_adaptor< C, IG >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1194 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ swap()

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + +
    void xt::xiterator_owner_adaptor< C, IG >::swap (self_type & rhs)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1221 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xiterator__owner__adaptor.png b/classxt_1_1xiterator__owner__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff84ddb4ea0af0f5cf740623662a9847614677b GIT binary patch literal 1171 zcmeAS@N?(olHy`uVBq!ia0y~yV9W=y12~w0lK z)4f+@OWsa1|GtN_pmeWa$`m1*G{i~GB zNq?s968e7Cw(i95Qr4eKY*+U;j{j_q;rAxdtRb4bDO_{WWK{emAEBMp2B^GeT-D9_R)|MRSt}Xm| z?&`w#pMJdV`MW@+HZ*WgdHMhK73VANI+$yC#$Wwjx!Wdk+lPvI%BMeU&S!g*adux< z!n}RF{5tdPH@{qMKKuR8d%o=rm#UoW#9uDZ4cS(1eoJNc!`dXv`u(@0*JY^hJNSFr zsUmmV$e=Ujvs+5%FO$sGjGElI)G^fm%DJw0#-2vGrrX@iH*`MTdqpz1c-_ZspJ!LE zfA;a*&B8BypLUn(dB$Iv`!yvZZr1LXbASouPnpN9Gwf3qw z(cm=UdC7Ly;yUk3`>#&5J^Jqd^pAD19r?0PoKJICbKR?Zwq51u%m0(NtNitY2OOMX jTQNPzYt@t>r7!mTYAw>&wU?Lziw_1*S3j3^P6C literal 0 HcmV?d00001 diff --git a/classxt_1_1xkeep__slice-members.html b/classxt_1_1xkeep__slice-members.html new file mode 100644 index 000000000..64f7bb077 --- /dev/null +++ b/classxt_1_1xkeep__slice-members.html @@ -0,0 +1,137 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xkeep_slice< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::xkeep_slice< T >, including all inherited members.

    + + + + + + + + + + + + + + + + + + +
    container_type typedef (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >
    contains(size_type i) const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    convert() const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    normalize(std::size_t s) (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    operator xkeep_slice< S >() const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    operator!=(const self_type &rhs) const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    operator()(size_type i) const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    operator==(const self_type &rhs) const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    revert_index(std::size_t i) const (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    self_type typedef (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >
    size() const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    size_type typedef (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >
    step_size(std::size_t i, std::size_t n=1) const noexcept (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    xkeep_slice (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >friend
    xkeep_slice(C &cont) (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inlineexplicit
    xkeep_slice(container_type &&cont) (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inlineexplicit
    xkeep_slice(std::initializer_list< S > t) (defined in xt::xkeep_slice< T >)xt::xkeep_slice< T >inline
    +
    + + + + diff --git a/classxt_1_1xkeep__slice.html b/classxt_1_1xkeep__slice.html new file mode 100644 index 000000000..946b1adc3 --- /dev/null +++ b/classxt_1_1xkeep__slice.html @@ -0,0 +1,683 @@ + + + + + + + +xtensor: xt::xkeep_slice< T > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xkeep_slice< T > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xkeep_slice< T >:
    +
    +
    + + +xt::xslice< xkeep_slice< T > > + +
    + + + + + + + + + + + +

    +Public Types

    using container_type = svector<T>
     
    using size_type = typename container_type::value_type
     
    using self_type = xkeep_slice<T>
     
    - Public Types inherited from xt::xslice< xkeep_slice< T > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class C>
    +requires (!detail::is_xkeep_slice<std::decay_t<C>>::value)
     xkeep_slice (C &cont)
     
     xkeep_slice (container_type &&cont)
     
    template<class S>
     xkeep_slice (std::initializer_list< S > t)
     
    template<std::convertible_to< T > S>
     operator xkeep_slice< S > () const noexcept
     
    template<std::convertible_to< T > S>
    xkeep_slice< S > convert () const noexcept
     
    size_type operator() (size_type i) const noexcept
     
    size_type size () const noexcept
     
    void normalize (std::size_t s)
     
    size_type step_size (std::size_t i, std::size_t n=1) const noexcept
     
    size_type revert_index (std::size_t i) const
     
    bool contains (size_type i) const noexcept
     
    bool operator== (const self_type &rhs) const noexcept
     
    bool operator!= (const self_type &rhs) const noexcept
     
    - Public Member Functions inherited from xt::xslice< xkeep_slice< T > >
    derived_typederived_cast () noexcept
     
    const derived_typederived_cast () const noexcept
     
    + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xslice< xkeep_slice< T > >
    xslice (const xslice &)=default
     
    xslice (xslice &&)=default
     
    +xsliceoperator= (const xslice &)=default
     
    +xsliceoperator= (xslice &&)=default
     
    +

    Detailed Description

    +
    template<class T>
    +class xt::xkeep_slice< T >
    +

    Definition at line 323 of file xslice.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ container_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xkeep_slice< T >::container_type = svector<T>
    +
    + +

    Definition at line 327 of file xslice.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xkeep_slice< T >::self_type = xkeep_slice<T>
    +
    + +

    Definition at line 329 of file xslice.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xkeep_slice< T >::size_type = typename container_type::value_type
    +
    + +

    Definition at line 328 of file xslice.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xkeep_slice() [1/3]

    + +
    +
    +
    +template<class T>
    +requires (!detail::is_xkeep_slice<std::decay_t<C>>::value)
    +
    +template<class C>
    +requires (!detail::is_xkeep_slice<std::decay_t<C>>::value)
    + + + + + +
    + + + + + + + +
    xt::xkeep_slice< T >::xkeep_slice (C & cont)
    +
    +inlineexplicit
    +
    + +

    Definition at line 1285 of file xslice.hpp.

    + +
    +
    + +

    ◆ xkeep_slice() [2/3]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xt::xkeep_slice< T >::xkeep_slice (container_type && cont)
    +
    +inlineexplicit
    +
    + +

    Definition at line 1292 of file xslice.hpp.

    + +
    +
    + +

    ◆ xkeep_slice() [3/3]

    + +
    +
    +
    +template<class T>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    xt::xkeep_slice< T >::xkeep_slice (std::initializer_list< S > t)
    +
    +inline
    +
    + +

    Definition at line 1299 of file xslice.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ contains()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xkeep_slice< T >::contains (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1406 of file xslice.hpp.

    + +
    +
    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xkeep_slice< S > xt::xkeep_slice< T >::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1345 of file xslice.hpp.

    + +
    +
    + +

    ◆ normalize()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    void xt::xkeep_slice< T >::normalize (std::size_t s)
    +
    +inline
    +
    + +

    Definition at line 1351 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator xkeep_slice< S >()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xt::xkeep_slice< T >::operator xkeep_slice< S > () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1315 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xkeep_slice< T >::operator!= (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1418 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xkeep_slice< T >::operator() (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1363 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xkeep_slice< T >::operator== (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1412 of file xslice.hpp.

    + +
    +
    + +

    ◆ revert_index()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xkeep_slice< T >::revert_index (std::size_t i) const
    +
    +inline
    +
    + +

    Definition at line 1392 of file xslice.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xkeep_slice< T >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1369 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xkeep_slice< T >::step_size (std::size_t i,
    std::size_t n = 1 ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1375 of file xslice.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xkeep_slice

    + +
    +
    +
    +template<class T>
    +
    +template<class S>
    + + + + + +
    + + + + +
    friend class xkeep_slice
    +
    +friend
    +
    + +

    Definition at line 368 of file xslice.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xkeep__slice.png b/classxt_1_1xkeep__slice.png new file mode 100644 index 0000000000000000000000000000000000000000..993db7ec5b09401235069fcd1b0e68dc15f2b512 GIT binary patch literal 659 zcmeAS@N?(olHy`uVBq!ia0vp^TYxx#gBeJ+A6q{KNJ$6ygt-3y{~ySF@#br3|Doj; z2ATyD)6cwk@ZbSZ-1KbN5}+JsNswPK1CS2}=1jA%FfcI5dAc};R4~4sdok~c0*|Y{ zcxK7}|J~-+jYlV#D8B6rRSA~~lxUwL(Y{CN`J8a(nJU+nmUv!jo}lK*&-T(~lJe~* zFKs+8t2w2GdH)X++yQ0VL|G9r^@v?^&IomVCj(_!fR`s&(5T+Zx+AN z-FwR(pDqniHaTW(K<>+zesKt}m}=JH8fOYX1D|n(0&eE;BRKaAY!kP*}ovpm_ot1HY3L zgAE~phD^<+TckWDZ4pz{^^|MbqEh+6p^9V9-n{PJT)NL2ReT>S>3WLW+W-n`q)hpVVV5$sz5Z`0JH0J#QjT$K?SjCnO+L?nL9|ACTF-oI z)0t{_54H13zE|-K{}WNAKN}b<%WPJCvCcD)b`$>kYlY3Pg@H0cl~Ib<-hZB%mw)f0 z>z}QrvAW$WD%ru6{1-oD!M<_&_ic literal 0 HcmV?d00001 diff --git a/classxt_1_1xmasked__value.html b/classxt_1_1xmasked__value.html new file mode 100644 index 000000000..d3084459c --- /dev/null +++ b/classxt_1_1xmasked__value.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::xmasked_value< T, B > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xmasked_value< T, B > Class Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class T, class B>
    +class xt::xmasked_value< T, B >
    +

    Definition at line 418 of file xmime.hpp.

    +

    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xmasked__view-members.html b/classxt_1_1xmasked__view-members.html new file mode 100644 index 000000000..1c323f9c8 --- /dev/null +++ b/classxt_1_1xmasked__view-members.html @@ -0,0 +1,302 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xmasked_view< CTD, CTM > Member List
    +
    +
    + +

    This is the complete list of members for xt::xmasked_view< CTD, CTM >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    accessible_base typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< xmasked_view< CTD, CTM > >
    assign_temporary(temporary_type &&)xt::xview_semantic< xmasked_view< CTD, CTM > >inline
    at(Args... args) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    at(Args... args) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    back()xt::xmasked_view< CTD, CTM >
    back() constxt::xmasked_view< CTD, CTM >
    backstrides() const noexceptxt::xmasked_view< CTD, CTM >inline
    base_const_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    base_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    base_value_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    begin() noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    begin(const S &shape) noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    begin() const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    begin(const S &shape) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bool_load_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    broadcast_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_broadcast_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_layout_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_pointer typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_reverse_broadcast_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_reverse_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_reverse_layout_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    const_stepper typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    contiguous_layout (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >static
    data_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    difference_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    element(It first, It last) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    element(It first, It last) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    element(It first, It last) -> referencext::xmasked_view< CTD, CTM >inline
    element(It first, It last) const -> const_referencext::xmasked_view< CTD, CTM >inline
    end() noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    end(const S &shape) noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    end() const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    end(const S &shape) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    expression_tag typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    fill(const T &value)xt::xmasked_view< CTD, CTM >inline
    flag_const_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    flag_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    flag_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    front()xt::xmasked_view< CTD, CTM >
    front() constxt::xmasked_view< CTD, CTM >
    has_linear_assign(const S &strides) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    inner_backstrides_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    inner_shape_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    inner_strides_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    inner_types typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    is_contiguous() const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    is_data_const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >static
    iterable_base typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    layout() const noexceptxt::xmasked_view< CTD, CTM >inline
    layout_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    mask_expression typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    mask_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    mask_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator()(Args... args) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator()(Args... args) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator()(Args... args) -> referencext::xmasked_view< CTD, CTM >inline
    operator()(Args... args) const -> const_referencext::xmasked_view< CTD, CTM >inline
    operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator=(const self_type &rhs) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    operator=(const xexpression< E > &e) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator=(const E &e) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator=(const xexpression< E > &e) -> self_type & (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator[](const S &index) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator[](std::initializer_list< I > index) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator[](size_type i) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator[](const S &index) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator[](std::initializer_list< I > index) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator[](size_type i) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    periodic(Args... args) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    periodic(Args... args) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    pointer typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rbegin() noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rbegin(const S &shape) noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rbegin() const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rbegin(const S &shape) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rend() noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rend(const S &shape) noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rend() const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    rend(const S &shape) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    reverse_broadcast_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    reverse_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    reverse_layout_iterator typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    self_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    semantic_base typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    shape() const noexceptxt::xmasked_view< CTD, CTM >inline
    xt::xaccessible< xmasked_view< CTD, CTM > >::shape(size_type index) constxt::xconst_accessible< xmasked_view< CTD, CTM > >inlineprivate
    shape_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    size() const noexceptxt::xmasked_view< CTD, CTM >inline
    size_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    static_layout (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >static
    stepper typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    stepper_begin(const S &shape) noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    stepper_begin(const S &shape) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    stepper_end(const S &shape, layout_type l) noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >inline
    strides() const noexceptxt::xmasked_view< CTD, CTM >inline
    strides_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    temporary_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    unchecked(Args... args) (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    unchecked(Args... args) const (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    unchecked(Args... args) -> referencext::xmasked_view< CTD, CTM >inline
    unchecked(Args... args) const -> const_referencext::xmasked_view< CTD, CTM >inline
    val_reference typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    value() noexceptxt::xmasked_view< CTD, CTM >inline
    value() const noexceptxt::xmasked_view< CTD, CTM >inline
    value_expression typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    value_type typedef (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    visible() noexceptxt::xmasked_view< CTD, CTM >inline
    visible() const noexceptxt::xmasked_view< CTD, CTM >inline
    xaccessible< self_type > (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >friend
    xconst_accessible< self_type > (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >friend
    xconst_iterable< self_type > (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >friend
    xiterable< self_type > (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >friend
    xmasked_view(D &&data, M &&mask)xt::xmasked_view< CTD, CTM >inline
    xmasked_view(const xmasked_view &)=default (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >
    xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xview_semantic< self_type > (defined in xt::xmasked_view< CTD, CTM >)xt::xmasked_view< CTD, CTM >friend
    ~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    +
    + + + + diff --git a/classxt_1_1xmasked__view.html b/classxt_1_1xmasked__view.html new file mode 100644 index 000000000..93c732de0 --- /dev/null +++ b/classxt_1_1xmasked__view.html @@ -0,0 +1,2804 @@ + + + + + + + +xtensor: xt::xmasked_view< CTD, CTM > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xmasked_view< CTD, CTM > Class Template Reference
    +
    +
    + +

    View on an xoptional_assembly or xoptional_assembly_adaptor hiding values depending on a given mask. + More...

    + +

    #include <xmasked_view.hpp>

    +
    +Inheritance diagram for xt::xmasked_view< CTD, CTM >:
    +
    +
    + + +xt::xview_semantic< xmasked_view< CTD, CTM > > +xt::xaccessible< xmasked_view< CTD, CTM > > +xt::xiterable< xmasked_view< CTD, CTM > > +xt::xsemantic_base< D > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xmasked_view<CTD, CTM>
     
    using semantic_base = xview_semantic<xmasked_view<CTD, CTM>>
     
    using accessible_base = xaccessible<self_type>
     
    using inner_types = xcontainer_inner_types<self_type>
     
    using temporary_type = typename inner_types::temporary_type
     
    using data_type = typename inner_types::data_type
     
    using mask_type = typename inner_types::mask_type
     
    using value_expression = CTD
     
    using mask_expression = CTM
     
    using base_value_type = typename inner_types::base_value_type
     
    using base_reference = typename data_type::reference
     
    using base_const_reference = typename data_type::const_reference
     
    using flag_type = typename inner_types::flag_type
     
    using flag_reference = typename mask_type::reference
     
    using flag_const_reference = typename mask_type::const_reference
     
    using val_reference = typename inner_types::val_reference
     
    using mask_reference = typename inner_types::mask_reference
     
    using value_type = typename inner_types::value_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer = xtl::xclosure_pointer<reference>
     
    using const_pointer = xtl::xclosure_pointer<const_reference>
     
    using size_type = typename inner_types::size_type
     
    using difference_type = typename data_type::difference_type
     
    using bool_load_type = xtl::xmasked_value<typename data_type::bool_load_type, mask_type>
     
    using shape_type = typename data_type::shape_type
     
    using strides_type = typename data_type::strides_type
     
    using inner_shape_type = typename data_type::inner_shape_type
     
    using inner_strides_type = typename data_type::inner_strides_type
     
    using inner_backstrides_type = typename data_type::inner_backstrides_type
     
    using expression_tag = xtensor_expression_tag
     
    using iterable_base = xiterable<xmasked_view<CTD, CTM>>
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    template<layout_type L>
    using layout_iterator = typename iterable_base::template layout_iterator<L>
     
    template<layout_type L>
    using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
     
    template<layout_type L>
    using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
     
    template<layout_type L>
    using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
     
    template<class S, layout_type L>
    using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
     
    using iterator = typename iterable_base::iterator
     
    using const_iterator = typename iterable_base::const_iterator
     
    using reverse_iterator = typename iterable_base::reverse_iterator
     
    using const_reverse_iterator = typename iterable_base::const_reverse_iterator
     
    - Public Types inherited from xt::xview_semantic< xmasked_view< CTD, CTM > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< D >
    using base_type = select_expression_base_t<D>
     
    using derived_type = typename base_type::derived_type
     
    using temporary_type = typename xcontainer_inner_types<D>::temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    xmasked_view (const xmasked_view &)=default
     
    +template<class... Args>
    reference operator() (Args... args)
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    reference unchecked (Args... args)
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    reference element (It first, It last)
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class S>
    stepper stepper_begin (const S &shape) noexcept
     
    +template<class S>
    stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +template<class S>
    const_stepper stepper_begin (const S &shape) const noexcept
     
    +template<class S>
    const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +const_reference operator[] (size_type i) const
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    +layout_iterator< L > begin () noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +layout_iterator< L > end () noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rbegin () noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rend () noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    Constructors
    template<class D, class M>
     xmasked_view (D &&data, M &&mask)
     Creates an xmasked_view, given the xoptional_assembly or xoptional_assembly_adaptor and the mask.
     
    Size and shape
    size_type size () const noexcept
     Returns the number of elements in the xmasked_view.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the xmasked_view.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the xmasked_view.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the xmasked_view.
     
    layout_type layout () const noexcept
     Return the layout_type of the xmasked_view.
     
    bool is_contiguous () const noexcept
     
    template<class T>
    void fill (const T &value)
     Fills the data with the given value.
     
    - Public Member Functions inherited from xt::xview_semantic< xmasked_view< CTD, CTM > >
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< D >
    +template<class E>
    disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +template<class E>
    derived_type & operator+= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator-= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator*= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator/= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator%= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator&= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator|= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator^= (const xexpression< E > &)
     
    +template<class E>
    derived_type & assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & plus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & minus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & multiplies_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & divides_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & modulus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_and_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_or_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_xor_assign (const xexpression< E > &)
     
    template<class E>
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    template<class E>
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    template<class E>
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    template<class E>
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    template<class E>
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    template<class E>
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    template<class E>
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    template<class E>
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    template<class E>
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    template<class E>
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    template<class E>
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + + + +

    +Static Public Attributes

    static constexpr bool is_data_const = std::is_const<std::remove_reference_t<value_expression>>::value
     
    static constexpr layout_type static_layout = data_type::static_layout
     
    static constexpr bool contiguous_layout = false
     
    + + + + + + + + + + + +

    +Friends

    class xiterable< self_type >
     
    class xconst_iterable< self_type >
     
    class xview_semantic< self_type >
     
    class xaccessible< self_type >
     
    class xconst_accessible< self_type >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data

    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     
    data_type & value () noexcept
     Return an expression for the values of the xmasked_view.
     
    const data_type & value () const noexcept
     Return a constant expression for the values of the xmasked_view.
     
    mask_type & visible () noexcept
     Return an expression for the mask of the xmasked_view.
     
    const mask_type & visible () const noexcept
     Return a constant expression for the mask of the xmasked_view.
     
    self_typeoperator= (const self_type &rhs)
     
    template<class... Args>
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the xmasked_view.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the xmasked_view.
     
    template<class... Args>
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the xmasked_view.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the xmasked_view.
     
    template<class It>
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the xmasked_view.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the xmasked_view.
     
    template<class S>
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    template<class S>
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     
    template<class E>
    auto operator= (const E &e) -> disable_xexpression< E, self_type > &
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xview_semantic< xmasked_view< CTD, CTM > >
    xview_semantic (const xview_semantic &)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    xview_semantic (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< D >
    xsemantic_base (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +template<class E>
    derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class CTD, class CTM>
    +class xt::xmasked_view< CTD, CTM >

    View on an xoptional_assembly or xoptional_assembly_adaptor hiding values depending on a given mask.

    +

    The xmasked_view class implements a view on an xoptional_assembly or xoptional_assembly_adaptor, it takes this xoptional_assembly and a mask as input. The mask is an xexpression containing boolean values, whenever the value of the mask is false, the optional value of xmasked_view is considered missing, otherwise it depends on the underlying xoptional_assembly.

    +
    Template Parameters
    + + + +
    CTDThe type of expression holding the values.
    CTMThe type of expression holding the mask.
    +
    +
    + +

    Definition at line 78 of file xmasked_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accessible_base

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::accessible_base = xaccessible<self_type>
    +
    + +

    Definition at line 86 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ base_const_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::base_const_reference = typename data_type::const_reference
    +
    + +

    Definition at line 99 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ base_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::base_reference = typename data_type::reference
    +
    + +

    Definition at line 98 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ base_value_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::base_value_type = typename inner_types::base_value_type
    +
    + +

    Definition at line 97 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::bool_load_type = xtl::xmasked_value<typename data_type::bool_load_type, mask_type>
    +
    + +

    Definition at line 118 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ broadcast_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
    +
    + +

    Definition at line 146 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_broadcast_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
    +
    + +

    Definition at line 148 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_iterator = typename iterable_base::const_iterator
    +
    + +

    Definition at line 155 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_layout_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
    +
    + +

    Definition at line 139 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_pointer = xtl::xclosure_pointer<const_reference>
    +
    + +

    Definition at line 113 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 110 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_broadcast_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 152 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_reverse_iterator = typename iterable_base::const_reverse_iterator
    +
    + +

    Definition at line 157 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_layout_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
    +
    + +

    Definition at line 143 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 134 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ data_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::data_type = typename inner_types::data_type
    +
    + +

    Definition at line 90 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::difference_type = typename data_type::difference_type
    +
    + +

    Definition at line 116 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::expression_tag = xtensor_expression_tag
    +
    + +

    Definition at line 130 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ flag_const_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::flag_const_reference = typename mask_type::const_reference
    +
    + +

    Definition at line 103 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ flag_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::flag_reference = typename mask_type::reference
    +
    + +

    Definition at line 102 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ flag_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::flag_type = typename inner_types::flag_type
    +
    + +

    Definition at line 101 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::inner_backstrides_type = typename data_type::inner_backstrides_type
    +
    + +

    Definition at line 128 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::inner_shape_type = typename data_type::inner_shape_type
    +
    + +

    Definition at line 126 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::inner_strides_type = typename data_type::inner_strides_type
    +
    + +

    Definition at line 127 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::inner_types = xcontainer_inner_types<self_type>
    +
    + +

    Definition at line 87 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::iterable_base = xiterable<xmasked_view<CTD, CTM>>
    +
    + +

    Definition at line 132 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::iterator = typename iterable_base::iterator
    +
    + +

    Definition at line 154 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ layout_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::layout_iterator = typename iterable_base::template layout_iterator<L>
    +
    + +

    Definition at line 137 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_expression

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::mask_expression = CTM
    +
    + +

    Definition at line 93 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::mask_reference = typename inner_types::mask_reference
    +
    + +

    Definition at line 106 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::mask_type = typename inner_types::mask_type
    +
    + +

    Definition at line 91 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::pointer = xtl::xclosure_pointer<reference>
    +
    + +

    Definition at line 112 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::reference = typename inner_types::reference
    +
    + +

    Definition at line 109 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reverse_broadcast_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 150 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::reverse_iterator = typename iterable_base::reverse_iterator
    +
    + +

    Definition at line 156 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reverse_layout_iterator

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<layout_type L>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
    +
    + +

    Definition at line 141 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::self_type = xmasked_view<CTD, CTM>
    +
    + +

    Definition at line 84 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::semantic_base = xview_semantic<xmasked_view<CTD, CTM>>
    +
    + +

    Definition at line 85 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::shape_type = typename data_type::shape_type
    +
    + +

    Definition at line 120 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 115 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 133 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::strides_type = typename data_type::strides_type
    +
    + +

    Definition at line 121 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::temporary_type = typename inner_types::temporary_type
    +
    + +

    Definition at line 88 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ val_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::val_reference = typename inner_types::val_reference
    +
    + +

    Definition at line 105 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::value_expression = CTD
    +
    + +

    Definition at line 92 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xmasked_view< CTD, CTM >::value_type = typename inner_types::value_type
    +
    + +

    Definition at line 108 of file xmasked_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xmasked_view()

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class D, class M>
    + + + + + +
    + + + + + + + + + + + +
    xt::xmasked_view< CTD, CTM >::xmasked_view (D && data,
    M && mask )
    +
    +inline
    +
    + +

    Creates an xmasked_view, given the xoptional_assembly or xoptional_assembly_adaptor and the mask.

    +
    Parameters
    + + + +
    datathe underlying xoptional_assembly or xoptional_assembly_adaptor
    maskthe mask.
    +
    +
    + +

    Definition at line 309 of file xmasked_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ backstrides()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::backstrides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the backstrides of the xmasked_view.

    + +

    Definition at line 350 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::element (It first,
    It last ) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xmasked_view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the xmasked_view.
    +
    +
    + +

    Definition at line 475 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the xmasked_view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the xmasked_view.
    +
    +
    + +

    Definition at line 489 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ fill()

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view< CTD, CTM >::fill (const T & value)
    +
    +inline
    +
    + +

    Fills the data with the given value.

    +
    Parameters
    + + +
    valuethe value to fill the data with.
    +
    +
    + +

    Definition at line 379 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xmasked_view< CTD, CTM >::has_linear_assign (const S & strides) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 498 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    bool xt::xmasked_view< CTD, CTM >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 368 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    layout_type xt::xmasked_view< CTD, CTM >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Return the layout_type of the xmasked_view.

    +
    Returns
    layout_type of the xmasked_view
    + +

    Definition at line 362 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::operator() (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xmasked_view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the xmasked_view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the xmasked_view.
    +
    +
    + +

    Definition at line 396 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the xmasked_view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the xmasked_view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the xmasked_view.
    +
    +
    + +

    Definition at line 409 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ operator=() [1/3]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
    +
    +inline
    +
    + +

    Definition at line 584 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ operator=() [2/3]

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::operator= (const self_type & rhs)
    +
    +inline
    +
    + +

    Definition at line 569 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ operator=() [3/3]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    Definition at line 577 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the xmasked_view.

    + +

    Definition at line 332 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::size () const
    +
    +inlinenoexcept
    +
    + +

    Returns the number of elements in the xmasked_view.

    + +

    Definition at line 323 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::stepper_begin (const S & shape) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 555 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::stepper_begin (const S & shape) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 541 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::stepper_end (const S & shape,
    layout_type l ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 562 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::stepper_end (const S & shape,
    layout_type l ) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 548 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ strides()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::strides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the strides of the xmasked_view.

    + +

    Definition at line 341 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::unchecked (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the xmasked_view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the xmasked_view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the xmasked_view, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 435 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the xmasked_view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the xmasked_view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the xmasked_view, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    + +

    Definition at line 461 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::value () const
    +
    +inlinenoexcept
    +
    + +

    Return a constant expression for the values of the xmasked_view.

    + +

    Definition at line 516 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::value ()
    +
    +inlinenoexcept
    +
    + +

    Return an expression for the values of the xmasked_view.

    + +

    Definition at line 507 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ visible() [1/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::visible () const
    +
    +inlinenoexcept
    +
    + +

    Return a constant expression for the mask of the xmasked_view.

    + +

    Definition at line 534 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ visible() [2/2]

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view< CTD, CTM >::visible ()
    +
    +inlinenoexcept
    +
    + +

    Return an expression for the mask of the xmasked_view.

    + +

    Definition at line 525 of file xmasked_view.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xaccessible< self_type >

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    friend class xaccessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 243 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ xconst_accessible< self_type >

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    friend class xconst_accessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 243 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ xconst_iterable< self_type >

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    friend class xconst_iterable< self_type >
    +
    +friend
    +
    + +

    Definition at line 243 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ xiterable< self_type >

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    friend class xiterable< self_type >
    +
    +friend
    +
    + +

    Definition at line 243 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ xview_semantic< self_type >

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    friend class xview_semantic< self_type >
    +
    +friend
    +
    + +

    Definition at line 243 of file xmasked_view.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    bool xt::xmasked_view< CTD, CTM >::contiguous_layout = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 124 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ is_data_const

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    bool xt::xmasked_view< CTD, CTM >::is_data_const = std::is_const<std::remove_reference_t<value_expression>>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 95 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + +
    layout_type xt::xmasked_view< CTD, CTM >::static_layout = data_type::static_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 123 of file xmasked_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp
    • +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xmasked_view.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xmasked__view.js b/classxt_1_1xmasked__view.js new file mode 100644 index 000000000..285959548 --- /dev/null +++ b/classxt_1_1xmasked__view.js @@ -0,0 +1,24 @@ +var classxt_1_1xmasked__view = +[ + [ "xmasked_view", "classxt_1_1xmasked__view.html#a9c3d8a13f687279e628800050a8d4048", null ], + [ "back", "classxt_1_1xmasked__view.html#a13a096e0045b2375006fec3bcd1c8d1c", null ], + [ "back", "classxt_1_1xmasked__view.html#a37c6719faba4d4aa425d0e5302482e99", null ], + [ "backstrides", "classxt_1_1xmasked__view.html#a11f6663bf33dc7e1afbce7f6132e58fe", null ], + [ "element", "classxt_1_1xmasked__view.html#a9ac6b54e4c97bd60b65a6c02d5823380", null ], + [ "element", "classxt_1_1xmasked__view.html#ae44c90a8ceb326570ea97116ecc5dd2f", null ], + [ "fill", "classxt_1_1xmasked__view.html#a4c949ee680c72512a1d9f02b60536428", null ], + [ "front", "classxt_1_1xmasked__view.html#a13ab25eb31d4b48cb01b7bc38d27e8e0", null ], + [ "front", "classxt_1_1xmasked__view.html#a2ba0b92d6fbdb39b879378eb72c285d4", null ], + [ "layout", "classxt_1_1xmasked__view.html#a7f160d16d17eea921739b9ff1457c374", null ], + [ "operator()", "classxt_1_1xmasked__view.html#a871b0392cccaac8fb981273bb5008186", null ], + [ "operator()", "classxt_1_1xmasked__view.html#a7cd2236961bba48f19933c8450052790", null ], + [ "shape", "classxt_1_1xmasked__view.html#a3e501b72ae46be33e45dd249ac6e369c", null ], + [ "size", "classxt_1_1xmasked__view.html#a9b8f0d6d6f4fd32f161ffbae9828a7e2", null ], + [ "strides", "classxt_1_1xmasked__view.html#a0cc1342c4e640acb9f726ccbb1a74da7", null ], + [ "unchecked", "classxt_1_1xmasked__view.html#a1f080554ead02ec72ee2e53691b2d793", null ], + [ "unchecked", "classxt_1_1xmasked__view.html#a430cf3c34d4e7ac88d55522fcef881ff", null ], + [ "value", "classxt_1_1xmasked__view.html#a8c5a06d1b2b6f5aa3f08ac36dc6956f8", null ], + [ "value", "classxt_1_1xmasked__view.html#a888a7481ce4e40148e55a280dd2d721e", null ], + [ "visible", "classxt_1_1xmasked__view.html#ae0e58b3d80d80523a86ee38b97550c68", null ], + [ "visible", "classxt_1_1xmasked__view.html#a420f33aa357210c322d5d34f06c6b81e", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xmasked__view.png b/classxt_1_1xmasked__view.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fc2602bd2668cfa3219db967fdaf568f594ff5 GIT binary patch literal 3412 zcmd51a0TBa*u!E?9B(eqwN$!_ed!Oh2x$S-KkIs)XXU@zs%X#O#b0*~! z#zA4T`epDrT`Sq|g(+N$3D~(gmu67cM1Xkb7ED|!BOHhaP!gppp zdowyZ3fql4+$~K2~AXBD9*N zqqR^q_&18Fs04@Y+Ix4L>i#*@7~ONVI4GxJo!q)z_B{k|)q2`A$=)>?@kAMFpiLvU zL3uGFj>Cib3NVR(@IiZ>(JYS{O@uY0J zo=1=kFL9NQPvZjd<-kOQoZ`d^@#wA6!Z_j)^__jyerLj8i$=IJjM1n@avi2I$Ar;e zeUbU3c`&P9UApkmrnHR`gDdDxS^}?kFu<#{NyM!W=zhGN@0)ykM^%HDrVqtz{sFv% zxpYhI`mXt@sK`r&9LfcZnrF>nlFC`e*T}Peyk8dK6X<>mwvB$}Qy#t1VmKkoEXE?& zbIz1e#940U&Se3Njkj5!+IEfCfMMNB*({g-Di#W~yTp0Z_z>;Hzn-Gs8e7OAz9TVR zA^CSsv2py)4iC51ih$#<)?5RMLwX2R^dio$9d3B0qF1QE414#pk5Dd&4_U;oUN~UPueT0+S zr7l>D2(sM5Zmh;PP6ywhP4l=yHMp;A53or*>j?cD0#zp%z38L=fy{pevBwB~KBss^ zZ`&U0m?VVUy1ehm?EkCdY@E!$n?LN)MC={?B{g6 z@bn(*#Fq0^U<0wbWT+PfL#&VCEu%6i9#G9?DZVc?o6`Jq4Dvc2)P>g_&WI1vULU5FmJMnTwOOp9mfawS z*{RO-PT77^L9GXU#^8nqRMY>?wYd8iEH`&cxr)FoMYlHYC(Z-I{KY(=bS_OA0SuSL zBg?b7nh%ajY?IJ{=1q1jTa!DYoDQ^C4uXn`U z_n_yXIOZ{-rz@;7vY`99O(phO1#6y2Y{g1V;rQ_zi#$^ag@|XSY%?AR{+r zc;5HJs`2b=@coi<a)|7s;~SLl5JUm1Y7<;HXa@i!`$!yAlOc_nlnb>05cfwz zknmeLUUJ)_s9?b1&va)4G{m~H*bP9zJ4Rf5V(WGOMiBfWM=%n;hEhw1jDxGxthTNt zap{JB0%sAp%5^2EER7*oU+J-n;kYG5wGRGR19GanHiVGLhS#X6=Wwi_MW&EshCv0Z z*R3+k`zWj4dsj;JJSlOTE~Q0m63@P#GuE(F%yJT#D{Q$&D3~u1jU`1YmCvcnL&w`@ zy{*XhwQEa-0csll;YS0%nAiYlC9`66YC`cLqJ_|66B}^uHpP^ltZgzK4qzhv+u^t@ zr9bT-PbulKyor=XP89L>G^agz1x#n=pS!RS>1+8CwcKlzKHf2JYAK0qFovjHsuh~m zBx=5jrvWremAmixDpE+)^8|4cqmFw07Z~3l(fD2CRI;ZhfogoyTImIf_pD$h+sN|7 zWFH%UFzu#^hNOj$ zYY@`r*Nl2D`e&b3u<|!2)yZu)P4!a-3ppZVdywuMop+sWBA!?c`|>v@sEILeRLVs8 zJ3)cUolX*bu7afaq~VGe`Uf0(h`r{Q1Kc%mSyp>+9_H&=; z5U}e>$C{DU)lX9{+#beKRU#0p+cnEFP&`^k%+7njo~sKwU&O>$Vd?h# zC=11q(5_ieWjc-(q+I4QJTgk}AQ665feApQJ>%Fj1z+(+&lseilXqx4ks!amS!Svhn@ z3s%R5UOw1t9y5aP4=YcaR78FP`DyismS@1KGIpqJCC<^`A{N2}p1@c%3=N$4J4jM4zBM4*ro(7sW_|(@$sx>GLg;_Aad0Q5X z!bKhl{6ZUMeddq4(GfiYeXe&)F756X?e%1LCx~2?0%~K;T{TXdZ}66qXz5BA%@7hJTh$i-A%@&YNA(&C%C+ystKKF!k| zK}p}}*r + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xmasked_view_stepper< D, is_const > Member List
    +
    +
    + +

    This is the complete list of members for xt::xmasked_view_stepper< D, is_const >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + +
    data_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    difference_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    mask_stepper typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    mask_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    masked_view_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    operator*() const (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    pointer typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    reference typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    reset(size_type dim) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    reset_back(size_type dim) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    self_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    size_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    step(size_type dim) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    step(size_type dim, size_type n) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    step_back(size_type dim) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    step_back(size_type dim, size_type n) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    to_begin() (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    to_end(layout_type l) (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    value_stepper typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    value_type typedef (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >
    xmasked_view_stepper(value_stepper vs, mask_stepper fs) noexcept (defined in xt::xmasked_view_stepper< D, is_const >)xt::xmasked_view_stepper< D, is_const >inline
    +
    + + + + diff --git a/classxt_1_1xmasked__view__stepper.html b/classxt_1_1xmasked__view__stepper.html new file mode 100644 index 000000000..b8656fe26 --- /dev/null +++ b/classxt_1_1xmasked__view__stepper.html @@ -0,0 +1,685 @@ + + + + + + + +xtensor: xt::xmasked_view_stepper< D, is_const > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xmasked_view_stepper< D, is_const > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xmasked_view_stepper<D, is_const>
     
    using masked_view_type = std::decay_t<D>
     
    using value_type = typename masked_view_type::value_type
     
    using reference
     
    using pointer
     
    using size_type = typename masked_view_type::size_type
     
    using difference_type = typename masked_view_type::difference_type
     
    using data_type = typename masked_view_type::data_type
     
    using mask_type = typename masked_view_type::mask_type
     
    using value_stepper = std::conditional_t<is_const, typename data_type::const_stepper, typename data_type::stepper>
     
    using mask_stepper = std::conditional_t<is_const, typename mask_type::const_stepper, typename mask_type::stepper>
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    Data
     xmasked_view_stepper (value_stepper vs, mask_stepper fs) noexcept
     
    void step (size_type dim)
     
    void step_back (size_type dim)
     
    void step (size_type dim, size_type n)
     
    void step_back (size_type dim, size_type n)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    reference operator* () const
     
    +

    Detailed Description

    +
    template<class D, bool is_const>
    +class xt::xmasked_view_stepper< D, is_const >
    +

    Definition at line 253 of file xmasked_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ data_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::data_type = typename masked_view_type::data_type
    +
    + +

    Definition at line 266 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::difference_type = typename masked_view_type::difference_type
    +
    + +

    Definition at line 265 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_stepper

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::mask_stepper = std::conditional_t<is_const, typename mask_type::const_stepper, typename mask_type::stepper>
    +
    + +

    Definition at line 269 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::mask_type = typename masked_view_type::mask_type
    +
    + +

    Definition at line 267 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ masked_view_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::masked_view_type = std::decay_t<D>
    +
    + +

    Definition at line 258 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::pointer
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename masked_view_type::const_pointer, typename masked_view_type::pointer>
    +
    +

    Definition at line 262 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::reference
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename masked_view_type::const_reference, typename masked_view_type::reference>
    +
    +

    Definition at line 260 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::self_type = xmasked_view_stepper<D, is_const>
    +
    + +

    Definition at line 257 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::size_type = typename masked_view_type::size_type
    +
    + +

    Definition at line 264 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value_stepper

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::value_stepper = std::conditional_t<is_const, typename data_type::const_stepper, typename data_type::stepper>
    +
    + +

    Definition at line 268 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xmasked_view_stepper< D, is_const >::value_type = typename masked_view_type::value_type
    +
    + +

    Definition at line 259 of file xmasked_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xmasked_view_stepper()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + + + + + +
    xt::xmasked_view_stepper< D, C >::xmasked_view_stepper (value_stepper vs,
    mask_stepper fs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 607 of file xmasked_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xmasked_view_stepper< D, C >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 670 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 642 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 649 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ step() [1/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::step (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 614 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ step() [2/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::step (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 628 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ step_back() [1/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::step_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 621 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ step_back() [2/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::step_back (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 635 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 656 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xmasked_view_stepper< D, C >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 663 of file xmasked_view.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xmultiindex__iterator-members.html b/classxt_1_1xmultiindex__iterator-members.html new file mode 100644 index 000000000..0dc4defa9 --- /dev/null +++ b/classxt_1_1xmultiindex__iterator-members.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xmultiindex_iterator< S > Member List
    +
    +
    + +

    This is the complete list of members for xt::xmultiindex_iterator< S >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    iterator_category typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    operator!=(const self_type &rhs) const (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    operator*() (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    operator*() const (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    operator++() (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    operator++(int) (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    operator==(const self_type &rhs) const (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    pointer typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    reference typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    self_type typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    shape_type typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    value_type typedef (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    xmultiindex_iterator()=default (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >
    xmultiindex_iterator(B &&begin, E &&end, C &&current, const std::size_t linear_index) (defined in xt::xmultiindex_iterator< S >)xt::xmultiindex_iterator< S >inline
    +
    + + + + diff --git a/classxt_1_1xmultiindex__iterator.html b/classxt_1_1xmultiindex__iterator.html new file mode 100644 index 000000000..8f3579be0 --- /dev/null +++ b/classxt_1_1xmultiindex__iterator.html @@ -0,0 +1,513 @@ + + + + + + + +xtensor: xt::xmultiindex_iterator< S > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xmultiindex_iterator< S > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xmultiindex_iterator<S>
     
    using shape_type = S
     
    using value_type = shape_type
     
    using reference = value_type&
     
    using pointer = value_type*
     
    using difference_type = std::size_t
     
    using iterator_category = std::forward_iterator_tag
     
    + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class B, class E, class C>
     xmultiindex_iterator (B &&begin, E &&end, C &&current, const std::size_t linear_index)
     
    self_typeoperator++ ()
     
    self_type operator++ (int)
     
    shape_type & operator* ()
     
    const shape_type & operator* () const
     
    bool operator== (const self_type &rhs) const
     
    bool operator!= (const self_type &rhs) const
     
    +

    Detailed Description

    +
    template<class S>
    +class xt::xmultiindex_iterator< S >
    +

    Definition at line 20 of file xmultiindex_iterator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::difference_type = std::size_t
    +
    + +

    Definition at line 30 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ iterator_category

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::iterator_category = std::forward_iterator_tag
    +
    + +

    Definition at line 31 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::pointer = value_type*
    +
    + +

    Definition at line 29 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::reference = value_type&
    +
    + +

    Definition at line 28 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::self_type = xmultiindex_iterator<S>
    +
    + +

    Definition at line 24 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::shape_type = S
    +
    + +

    Definition at line 25 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::xmultiindex_iterator< S >::value_type = shape_type
    +
    + +

    Definition at line 27 of file xmultiindex_iterator.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xmultiindex_iterator()

    + +
    +
    +
    +template<class S>
    +
    +template<class B, class E, class C>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    xt::xmultiindex_iterator< S >::xmultiindex_iterator (B && begin,
    E && end,
    C && current,
    const std::size_t linear_index )
    +
    +inline
    +
    + +

    Definition at line 36 of file xmultiindex_iterator.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator!=()

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xmultiindex_iterator< S >::operator!= (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 86 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ operator*() [1/2]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    shape_type & xt::xmultiindex_iterator< S >::operator* ()
    +
    +inline
    +
    + +

    Definition at line 71 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ operator*() [2/2]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    const shape_type & xt::xmultiindex_iterator< S >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 76 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ operator++() [1/2]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    self_type & xt::xmultiindex_iterator< S >::operator++ ()
    +
    +inline
    +
    + +

    Definition at line 44 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ operator++() [2/2]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    self_type xt::xmultiindex_iterator< S >::operator++ (int )
    +
    +inline
    +
    + +

    Definition at line 64 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xmultiindex_iterator< S >::operator== (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 81 of file xmultiindex_iterator.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xnewaxis-members.html b/classxt_1_1xnewaxis-members.html new file mode 100644 index 000000000..5c2b10690 --- /dev/null +++ b/classxt_1_1xnewaxis-members.html @@ -0,0 +1,133 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xnewaxis< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::xnewaxis< T >, including all inherited members.

    + + + + + + + + + + + + + + +
    contains(size_type i) const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    convert() const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    operator xnewaxis< S >() const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    operator!=(const self_type &rhs) const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    operator()(size_type i) const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    operator==(const self_type &rhs) const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    revert_index(std::size_t i) const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    self_type typedef (defined in xt::xnewaxis< T >)xt::xnewaxis< T >
    size() const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    size_type typedef (defined in xt::xnewaxis< T >)xt::xnewaxis< T >
    step_size() const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    step_size(std::size_t i, std::size_t n=1) const noexcept (defined in xt::xnewaxis< T >)xt::xnewaxis< T >inline
    xnewaxis()=default (defined in xt::xnewaxis< T >)xt::xnewaxis< T >
    +
    + + + + diff --git a/classxt_1_1xnewaxis.html b/classxt_1_1xnewaxis.html new file mode 100644 index 000000000..6aa2a59d7 --- /dev/null +++ b/classxt_1_1xnewaxis.html @@ -0,0 +1,531 @@ + + + + + + + +xtensor: xt::xnewaxis< T > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xnewaxis< T > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xnewaxis< T >:
    +
    +
    + + +xt::xslice< xnewaxis< T > > + +
    + + + + + + + + + +

    +Public Types

    using size_type = T
     
    using self_type = xnewaxis<T>
     
    - Public Types inherited from xt::xslice< xnewaxis< T > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<std::convertible_to< T > S>
     operator xnewaxis< S > () const noexcept
     
    template<std::convertible_to< T > S>
    xnewaxis< S > convert () const noexcept
     
    size_type operator() (size_type i) const noexcept
     
    size_type size () const noexcept
     
    size_type step_size () const noexcept
     
    size_type step_size (std::size_t i, std::size_t n=1) const noexcept
     
    size_type revert_index (std::size_t i) const noexcept
     
    bool contains (size_type i) const noexcept
     
    bool operator== (const self_type &rhs) const noexcept
     
    bool operator!= (const self_type &rhs) const noexcept
     
    - Public Member Functions inherited from xt::xslice< xnewaxis< T > >
    derived_typederived_cast () noexcept
     
    const derived_typederived_cast () const noexcept
     
    + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xslice< xnewaxis< T > >
    xslice (const xslice &)=default
     
    xslice (xslice &&)=default
     
    +xsliceoperator= (const xslice &)=default
     
    +xsliceoperator= (xslice &&)=default
     
    +

    Detailed Description

    +
    template<class T>
    +class xt::xnewaxis< T >
    +

    Definition at line 262 of file xslice.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ self_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xnewaxis< T >::self_type = xnewaxis<T>
    +
    + +

    Definition at line 267 of file xslice.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xnewaxis< T >::size_type = T
    +
    + +

    Definition at line 266 of file xslice.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ contains()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xnewaxis< T >::contains (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1262 of file xslice.hpp.

    + +
    +
    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xnewaxis< S > xt::xnewaxis< T >::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1226 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator xnewaxis< S >()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xt::xnewaxis< T >::operator xnewaxis< S > () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1219 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xnewaxis< T >::operator!= (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1274 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xnewaxis< T >::operator() (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1232 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xnewaxis< T >::operator== (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1268 of file xslice.hpp.

    + +
    +
    + +

    ◆ revert_index()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xnewaxis< T >::revert_index (std::size_t i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1256 of file xslice.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xnewaxis< T >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1238 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [1/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xnewaxis< T >::step_size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1244 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [2/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xnewaxis< T >::step_size (std::size_t i,
    std::size_t n = 1 ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1250 of file xslice.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xnewaxis.png b/classxt_1_1xnewaxis.png new file mode 100644 index 0000000000000000000000000000000000000000..313a92357fbbc0580321226770ce458b49761959 GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^OMy6mgBeKruX1$)QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B;Co-U3d6^w7^UYxX8LBLi2 z`l>5`|Lfn=5Rg)lp8WDmR<650uY%d}Wi!)tPH&ncr=wC?bZC-FEr<7{FNqs`R4j|+ z=k!f}Qhnyol0V8Pm&#X)q@-7x>%d5|8dsP$h z-!Jx>>giQ`Q|&IFEqHx>VZ80*NniZoF556gMP4s?W{_9 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_assembly< VE, FE > Member List
    +
    +
    + +

    This is the complete list of members for xt::xoptional_assembly< VE, FE >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assembly_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    assign_temporary(temporary_type &&)xt::xcontainer_semantic< xoptional_assembly< VE, FE > >inline
    at(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    at(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    at(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    at(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    back()xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    back() constxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    backstrides() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    base_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    const_flag_expression typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    const_pointer typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    const_reference typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    const_value_expression typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    dimension() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    element(It first, It last) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    element(It first, It last) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    element(It first, It last) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    element(It first, It last) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    fill(const T &value)xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    flag_expression typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    flat(size_type args)xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    flat(size_type args) constxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    from_shape(S &&s) (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >static
    from_shape(S &&s)xt::xoptional_assembly< VE, FE >inline
    front()xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    front() constxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    has_linear_assign(const S &strides) const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    has_value() noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    has_value() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    in_bounds(Args... args) constxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    layout() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator()(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator()(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator()(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator()(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator=(const xoptional_assembly &) (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >inline
    operator=(xoptional_assembly &&) (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >inline
    operator=(const xexpression< E > &e) (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    operator=(const xexpression< E > &e) -> self_type &xt::xoptional_assembly< VE, FE >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    periodic(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    periodic(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    periodic(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    periodic(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly< VE, FE > >inline
    pointer typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    raw_flag_expression typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    raw_value_expression typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    reference typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    reshape(const S &shape, layout_type layout=static_layout) &xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    resize(const S &shape, bool force=false)xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    resize(const S &shape, layout_type l)xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    resize(const S &shape, const strides_type &strides)xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    self_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    semantic_base typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    shape() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    shape(size_type index) constxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    shape_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    size() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    storage_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    strides() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    strides_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    unchecked(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    unchecked(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    unchecked(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    unchecked(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    value() noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    value() const noexceptxt::xoptional_assembly_base< xoptional_assembly< VE, FE > >inline
    value_expression typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    value_type typedef (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    xoptional_assembly()xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(const shape_type &shape, layout_type l=base_type::static_layout)xt::xoptional_assembly< VE, FE >inlineexplicit
    xoptional_assembly(const shape_type &shape, const value_type &value, layout_type l=base_type::static_layout)xt::xoptional_assembly< VE, FE >inlineexplicit
    xoptional_assembly(const shape_type &shape, const strides_type &strides)xt::xoptional_assembly< VE, FE >inlineexplicit
    xoptional_assembly(const shape_type &shape, const strides_type &strides, const value_type &value)xt::xoptional_assembly< VE, FE >inlineexplicit
    xoptional_assembly(const VE &ve)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(VE &&ve)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(OVE &&ove, OFE &&ofe)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(const value_type &value)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(nested_initializer_list_t< value_type, 1 > t)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(nested_initializer_list_t< value_type, 2 > t)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(nested_initializer_list_t< value_type, 3 > t)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(nested_initializer_list_t< value_type, 4 > t)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(nested_initializer_list_t< value_type, 5 > t)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(const xoptional_assembly &) (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(xoptional_assembly &&) (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly(const xexpression< E > &e)xt::xoptional_assembly< VE, FE >inline
    xoptional_assembly_base< xoptional_assembly< VE, FE > > (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >friend
    ~xoptional_assembly()=default (defined in xt::xoptional_assembly< VE, FE >)xt::xoptional_assembly< VE, FE >
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly.html b/classxt_1_1xoptional__assembly.html new file mode 100644 index 000000000..46cf9a18e --- /dev/null +++ b/classxt_1_1xoptional__assembly.html @@ -0,0 +1,2204 @@ + + + + + + + +xtensor: xt::xoptional_assembly< VE, FE > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly< VE, FE > Class Template Reference
    +
    +
    + +

    Dense multidimensional container holding optional values, optimized for tensor operations. + More...

    + +

    #include <xoptional_assembly.hpp>

    +
    +Inheritance diagram for xt::xoptional_assembly< VE, FE >:
    +
    +
    + + +xt::xoptional_assembly_base< xoptional_assembly< VE, FE > > +xt::xcontainer_semantic< xoptional_assembly< VE, FE > > +xt::xiterable< xoptional_assembly< VE, FE > > +xt::xsemantic_base< xoptional_assembly< VE, FE > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xoptional_assembly<VE, FE>
     
    using base_type = xoptional_assembly_base<self_type>
     
    using semantic_base = xcontainer_semantic<self_type>
     
    using raw_value_expression = typename base_type::raw_value_expression
     
    using raw_flag_expression = typename base_type::raw_flag_expression
     
    using value_expression = typename base_type::value_expression
     
    using flag_expression = typename base_type::flag_expression
     
    using const_value_expression = typename base_type::const_value_expression
     
    using const_flag_expression = typename base_type::const_flag_expression
     
    using storage_type = typename base_type::storage_type
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using const_reference = typename base_type::const_reference
     
    using pointer = typename base_type::pointer
     
    using const_pointer = typename base_type::const_pointer
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename base_type::strides_type
     
    using assembly_type = base_type
     
    - Public Types inherited from xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >
    using self_type
     
    using derived_type
     
    using inner_types
     
    using raw_value_expression
     
    using base_value_type
     
    using base_reference
     
    using base_const_reference
     
    using raw_flag_expression
     
    using flag_type
     
    using flag_reference
     
    using flag_const_reference
     
    using storage_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using simd_value_type
     
    using bool_load_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using expression_tag
     
    using value_expression
     
    using flag_expression
     
    using const_value_expression
     
    using const_flag_expression
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xcontainer_semantic< xoptional_assembly< VE, FE > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xoptional_assembly< VE, FE > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    xoptional_assemblyoperator= (const xexpression< E > &e)
     
    Constructors
     xoptional_assembly ()
     Allocates an uninitialized xoptional_assembly that holds 0 element.
     
     xoptional_assembly (const shape_type &shape, layout_type l=base_type::static_layout)
     Allocates an uninitialized xoptional_assembly with the specified shape and layout_type.
     
     xoptional_assembly (const shape_type &shape, const value_type &value, layout_type l=base_type::static_layout)
     Allocates an xoptional_assembly with the specified shape and layout_type.
     
     xoptional_assembly (const shape_type &shape, const strides_type &strides)
     Allocates an uninitialized xoptional_assembly with the specified shape and strides.
     
     xoptional_assembly (const shape_type &shape, const strides_type &strides, const value_type &value)
     Allocates an uninitialized xoptional_assembly with the specified shape and strides.
     
     xoptional_assembly (const VE &ve)
     Allocates an xoptional_assembly from the specified value expression.
     
     xoptional_assembly (VE &&ve)
     Allocates an xoptional_assembly from the specified value expression.
     
    template<class OVE, class OFE, typename = std::enable_if_t<is_xexpression<OVE>::value && is_xexpression<OFE>::value>>
     xoptional_assembly (OVE &&ove, OFE &&ofe)
     Allocates an xoptional_assembly from the specified value expression and missing mask expression.
     
     xoptional_assembly (const value_type &value)
     Allocates an xoptional_assembly that holds a single element initialized to the specified value.
     
    Constructors from initializer list
     xoptional_assembly (nested_initializer_list_t< value_type, 1 > t)
     Allocates a one-dimensional xoptional_assembly.
     
     xoptional_assembly (nested_initializer_list_t< value_type, 2 > t)
     Allocates a two-dimensional xoptional_assembly.
     
     xoptional_assembly (nested_initializer_list_t< value_type, 3 > t)
     Allocates a three-dimensional xoptional_assembly.
     
     xoptional_assembly (nested_initializer_list_t< value_type, 4 > t)
     Allocates a four-dimensional xoptional_assembly.
     
     xoptional_assembly (nested_initializer_list_t< value_type, 5 > t)
     Allocates a five-dimensional xoptional_assembly.
     
     xoptional_assembly (const xoptional_assembly &)
     
    xoptional_assemblyoperator= (const xoptional_assembly &)
     
     xoptional_assembly (xoptional_assembly &&)
     
    xoptional_assemblyoperator= (xoptional_assembly &&)
     
    template<class S>
    xoptional_assembly< VE, FE > from_shape (S &&s)
     Allocates and returns an xoptional_assembly with the specified shape.
     
    - Public Member Functions inherited from xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >
    +layout_iterator< L > begin () noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +layout_iterator< L > end () noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rbegin () noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rend () noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    +reference element (It first, It last)
     
    +const_reference element (It first, It last) const
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +layout_iterator< L > begin () noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +layout_iterator< L > end () noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rbegin () noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rend () noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    reference operator[] (size_type i)
     
    const_reference operator[] (size_type i) const
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    reference front ()
     Returns a reference to the first element of the optional assembly.
     
    const_reference front () const
     Returns a constant reference to the first element of the optional assembly.
     
    reference back ()
     Returns a reference to the last element of the optional assembly.
     
    const_reference back () const
     Returns a constant reference to the last element of the optional assembly.
     
    reference flat (size_type args)
     Returns a reference to the element at the specified position of the underlying storage in the optional assembly.
     
    const_reference flat (size_type args) const
     Returns a constant reference to the element at the specified position of the underlying storage in the optional assembly.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    storage_type & storage () noexcept
     
    const storage_type & storage () const noexcept
     
    value_type * data () noexcept
     
    const value_type * data () const noexcept
     
    const size_type data_offset () const noexcept
     
    size_type size () const noexcept
     Returns the number of element in the optional assembly.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the optional assembly.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the optional assembly.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the optional assembly.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the optional assembly.
     
    void resize (const S &shape, bool force=false)
     Resizes the optional assembly.
     
    void resize (const S &shape, layout_type l)
     Resizes the optional assembly.
     
    void resize (const S &shape, const strides_type &strides)
     Resizes the optional assembly.
     
    auto & reshape (const S &shape, layout_type layout=static_layout) &
     Reshapes the optional assembly.
     
    auto & reshape (std::initializer_list< T > shape, layout_type layout=static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
    void fill (const T &value)
     Fills the data with the given value.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the optional assembly to the specified parameter.
     
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xoptional_assembly_base can be linearly assigned to an expression with the specified strides.
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    value_expression value () noexcept
     Return an expression for the values of the optional assembly.
     
    const_value_expression value () const noexcept
     Return a constant expression for the values of the optional assembly.
     
    flag_expression has_value () noexcept
     Return an expression for the missing mask of the optional assembly.
     
    const_flag_expression has_value () const noexcept
     Return a constant expression for the missing mask of the optional assembly.
     
    - Public Member Functions inherited from xt::xcontainer_semantic< xoptional_assembly< VE, FE > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xoptional_assembly< VE, FE > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + +

    +Static Public Member Functions

    +template<class S = shape_type>
    static xoptional_assembly from_shape (S &&s)
     
    + + + +

    +Friends

    class xoptional_assembly_base< xoptional_assembly< VE, FE > >
     
    + + + + + + + + + +

    Extended copy semantic

    template<class E>
     xoptional_assembly (const xexpression< E > &e)
     The extended copy constructor.
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Protected Member Functions inherited from xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >
    xoptional_assembly_base (const xoptional_assembly_base &)=default
     
    xoptional_assembly_base (xoptional_assembly_base &&)=default
     
    +xoptional_assembly_baseoperator= (const xoptional_assembly_base &)=default
     
    +xoptional_assembly_baseoperator= (xoptional_assembly_base &&)=default
     
    - Protected Member Functions inherited from xt::xcontainer_semantic< xoptional_assembly< VE, FE > >
    xcontainer_semantic (const xcontainer_semantic &)=default
     
    xcontainer_semantic (xcontainer_semantic &&)=default
     
    +xcontainer_semanticoperator= (const xcontainer_semantic &)=default
     
    +xcontainer_semanticoperator= (xcontainer_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xoptional_assembly< VE, FE > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class VE, class FE>
    +class xt::xoptional_assembly< VE, FE >

    Dense multidimensional container holding optional values, optimized for tensor operations.

    +

    The xoptional_assembly class implements a dense multidimensional container hoding optional values. This container is optimized of tensor operations: contrary to xarray_optional, xoptional_assembly holds two separated expressions, one for the values, the other for the missing mask.

    +
    Template Parameters
    + + + +
    VEThe type of expression holding the values.
    FEThe type of expression holding the missing mask.
    +
    +
    + +

    Definition at line 61 of file xoptional_assembly.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ assembly_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::assembly_type = base_type
    +
    + +

    Definition at line 84 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::base_type = xoptional_assembly_base<self_type>
    +
    + +

    Definition at line 67 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_flag_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::const_flag_expression = typename base_type::const_flag_expression
    +
    + +

    Definition at line 74 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::const_pointer = typename base_type::const_pointer
    +
    + +

    Definition at line 80 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::const_reference = typename base_type::const_reference
    +
    + +

    Definition at line 78 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_value_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::const_value_expression = typename base_type::const_value_expression
    +
    + +

    Definition at line 73 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ flag_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::flag_expression = typename base_type::flag_expression
    +
    + +

    Definition at line 72 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 79 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ raw_flag_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::raw_flag_expression = typename base_type::raw_flag_expression
    +
    + +

    Definition at line 70 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ raw_value_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::raw_value_expression = typename base_type::raw_value_expression
    +
    + +

    Definition at line 69 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::reference = typename base_type::reference
    +
    + +

    Definition at line 77 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::self_type = xoptional_assembly<VE, FE>
    +
    + +

    Definition at line 66 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::semantic_base = xcontainer_semantic<self_type>
    +
    + +

    Definition at line 68 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 81 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 75 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 82 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::value_expression = typename base_type::value_expression
    +
    + +

    Definition at line 71 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly< VE, FE >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 76 of file xoptional_assembly.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xoptional_assembly() [1/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly ()
    +
    +inline
    +
    + +

    Allocates an uninitialized xoptional_assembly that holds 0 element.

    + +

    Definition at line 279 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [2/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const shape_type & shape,
    layout_type l = base_type::static_layout )
    +
    +inlineexplicit
    +
    + +

    Allocates an uninitialized xoptional_assembly with the specified shape and layout_type.

    +
    Parameters
    + + + +
    shapethe shape of the xoptional_assembly
    lthe layout_type of the xoptional_assembly
    +
    +
    + +

    Definition at line 293 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [3/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const shape_type & shape,
    const value_type & value,
    layout_type l = base_type::static_layout )
    +
    +inlineexplicit
    +
    + +

    Allocates an xoptional_assembly with the specified shape and layout_type.

    +

    Elements are initialized to the specified value.

    Parameters
    + + + + +
    shapethe shape of the xoptional_assembly
    valuethe value of the elements
    lthe layout_type of the xoptional_assembly
    +
    +
    + +

    Definition at line 308 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [4/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const shape_type & shape,
    const strides_type & strides )
    +
    +inlineexplicit
    +
    + +

    Allocates an uninitialized xoptional_assembly with the specified shape and strides.

    +
    Parameters
    + + + +
    shapethe shape of the xoptional_assembly
    stridesthe strides of the xoptional_assembly
    +
    +
    + +

    Definition at line 325 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [5/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const shape_type & shape,
    const strides_type & strides,
    const value_type & value )
    +
    +inlineexplicit
    +
    + +

    Allocates an uninitialized xoptional_assembly with the specified shape and strides.

    +

    Elements are initialized to the specified value.

    Parameters
    + + + + +
    shapethe shape of the xoptional_assembly
    stridesthe strides of the xoptional_assembly
    valuethe value of the elements
    +
    +
    + +

    Definition at line 340 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [6/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const VE & ve)
    +
    +inline
    +
    + +

    Allocates an xoptional_assembly from the specified value expression.

    +

    The flag expression is initialized as if no value is missing.

    Parameters
    + + +
    vethe expression holding the values
    +
    +
    + +

    Definition at line 370 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [7/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (VE && ve)
    +
    +inline
    +
    + +

    Allocates an xoptional_assembly from the specified value expression.

    +

    The flag expression is initialized as if no value is missing. The value expression is moved inside the xoptional_assembly and is therefore not available after the xoptional_assembly has been constructed.

    Parameters
    + + +
    vethe expression holding the values
    +
    +
    + +

    Definition at line 385 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [8/17]

    + +
    +
    +
    +template<class VE, class FE>
    +
    +template<class OVE, class OFE, typename>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (OVE && ove,
    OFE && ofe )
    +
    +inline
    +
    + +

    Allocates an xoptional_assembly from the specified value expression and missing mask expression.

    +
    Parameters
    + + + +
    ovethe expression holding the values
    ofethe expression holding the missing mask
    +
    +
    + +

    Definition at line 400 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [9/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const value_type & value)
    +
    +inline
    +
    + +

    Allocates an xoptional_assembly that holds a single element initialized to the specified value.

    +
    Parameters
    + + +
    valuethe value of the element
    +
    +
    + +

    Definition at line 357 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [10/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (nested_initializer_list_t< value_type, 1 > t)
    +
    +inline
    +
    + +

    Allocates a one-dimensional xoptional_assembly.

    +
    Parameters
    + + +
    tthe elements of the xoptional_assembly
    +
    +
    + +

    Definition at line 418 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [11/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (nested_initializer_list_t< value_type, 2 > t)
    +
    +inline
    +
    + +

    Allocates a two-dimensional xoptional_assembly.

    +
    Parameters
    + + +
    tthe elements of the xoptional_assembly
    +
    +
    + +

    Definition at line 436 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [12/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (nested_initializer_list_t< value_type, 3 > t)
    +
    +inline
    +
    + +

    Allocates a three-dimensional xoptional_assembly.

    +
    Parameters
    + + +
    tthe elements of the xoptional_assembly
    +
    +
    + +

    Definition at line 454 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [13/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (nested_initializer_list_t< value_type, 4 > t)
    +
    +inline
    +
    + +

    Allocates a four-dimensional xoptional_assembly.

    +
    Parameters
    + + +
    tthe elements of the xoptional_assembly
    +
    +
    + +

    Definition at line 472 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [14/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (nested_initializer_list_t< value_type, 5 > t)
    +
    +inline
    +
    + +

    Allocates a five-dimensional xoptional_assembly.

    +
    Parameters
    + + +
    tthe elements of the xoptional_assembly
    +
    +
    + +

    Definition at line 490 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [15/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const xoptional_assembly< VE, FE > & rhs)
    +
    +inline
    +
    + +

    Definition at line 518 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [16/17]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (xoptional_assembly< VE, FE > && rhs)
    +
    +inline
    +
    + +

    Definition at line 528 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly() [17/17]

    + +
    +
    +
    +template<class VE, class FE>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly< VE, FE >::xoptional_assembly (const xexpression< E > & e)
    +
    +inline
    +
    + +

    The extended copy constructor.

    + +

    Definition at line 564 of file xoptional_assembly.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ from_shape()

    + +
    +
    +
    +template<class VE, class FE>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    xoptional_assembly< VE, FE > xt::xoptional_assembly< VE, FE >::from_shape (S && s)
    +
    +inline
    +
    + +

    Allocates and returns an xoptional_assembly with the specified shape.

    +
    Parameters
    + + +
    sthe shape of the xoptional_assembly
    +
    +
    + +

    Definition at line 511 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ operator=() [1/3]

    + +
    +
    +
    +template<class VE, class FE>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly< VE, FE >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 578 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ operator=() [2/3]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly< VE, FE >::operator= (const xoptional_assembly< VE, FE > & rhs)
    +
    +inline
    +
    + +

    Definition at line 538 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ operator=() [3/3]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly< VE, FE >::operator= (xoptional_assembly< VE, FE > && rhs)
    +
    +inline
    +
    + +

    Definition at line 547 of file xoptional_assembly.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xoptional_assembly_base< xoptional_assembly< VE, FE > >

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + +
    friend class xoptional_assembly_base< xoptional_assembly< VE, FE > >
    +
    +friend
    +
    + +

    Definition at line 139 of file xoptional_assembly.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly.js b/classxt_1_1xoptional__assembly.js new file mode 100644 index 000000000..b8e055c42 --- /dev/null +++ b/classxt_1_1xoptional__assembly.js @@ -0,0 +1,20 @@ +var classxt_1_1xoptional__assembly = +[ + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a13b42b1a2ff43f41688d9e9dfecb70ab", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a9148277e3915fdc930d875a7ad4b1156", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#af86f39ed88264ad627dcc09454b02d3e", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#af53e6578e2720b3de87db901d4ef63c0", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a91d71b9f5a1c0df8f7f10568a667149c", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a3ded488b5944690be387afa5e35165fb", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#aa525cc23b8a082ca1caf3fafcd321c88", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a18157a685aad00bd30890b9fe0484628", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#ae5c0585bcb1ec14efb01b993aa17c9d7", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a2454d878267c2ac27179ef2ca365d48e", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#ae13345d56e1c0e1b2a21290a66c8aa46", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a61dd51f2bf58adb62310d475253fc5b5", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#ace216a4aee450e4bd52f50b791091d99", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a16611b26c4241fdbbc7e6afcc8a09780", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html#a251ff352299adb4dd685ae71755c112f", null ], + [ "from_shape", "classxt_1_1xoptional__assembly.html#a04719a5f78f5bba3faa0f9a8d6aa393d", null ], + [ "operator=", "classxt_1_1xoptional__assembly.html#af67042d373194546b43afffb160ce687", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xoptional__assembly.png b/classxt_1_1xoptional__assembly.png new file mode 100644 index 0000000000000000000000000000000000000000..03b0fe269c6b7e95e323d85cbec6beebc795b5ca GIT binary patch literal 3481 zcmc(idpMNq7Qm_2w$Si2K9!WXDHyaO;?=kogv`wwU6=oyk2lkRp9tBm*{nq`Rv$HE!hn=Cl?LqLOE8- z^PdwHb@dy^E)>}&Hoo89iG+wbl6~Yi8b~!bZW75ViL$m5DlV_6VuxQ-lVmN;wM{Md zX=5Z*dK>;)HR8!@$eZYDa(gn3q50BrWHXjmk599Wv z)IIETOASWN_9c;t#S49`7C|+8!dyu__YvLDi)<+YxDmHnzPW)C|E9>Z4B_Xm5;Ur~ zsZIO^q3m@80ROG)^!=vLEUT`Dtn0Ep_`bp1$)`R87==o9~T$q$0((N@ixYh z4^>CBNBorWvixhS+b45Z3_i`-*&3VQJB~#mwr9TxtI1E%Kt=h9fBVN+K;hLw@@E6d za>_4e)6y!Gf;||MLgj9o*xpCSCVKhzxCn`WO^8$0?zK{Pv@rO38!F3b5IikkqU}UU z)s4Kahr!9gDK>5xm{$H> zS{eD;7$;TM@0&*3=?Gq`$hL48@vWze34D<>)oPaatc9sUzvwrlzB!>Gv`t@+% zv zF2E%te2NPkq30u$N6GyeQE%!xf@ukhx^p>$3cr<>scu|)Zj#|8J$2WOTI!|~0stnp zMmUSbK9sKRg8UZ)=DYIM;??LgJTEhHsM=Fd>Lb9bqLC-hwcxiN~-e*q1g7TnOkB2sB8lh234|y4-Uh!xoERw#bE5{A(Ezw1(k+;uo)>K*|R}$^%C_*7p4! z>)ys3rF)yQmFgi^GEm@#2B!c0h94tP(3bGSqp)`+u8e5ID39mZ26!I!NE6a)( z)ILeE&FIVJK<9v(_l1!I&aqz~342%(sqBWA?B&YRy{l%p52ep}y;b*Z7T}uv&NP^I ztjFll=m1Zf1GQTj>DLZwY6gMip3lkF+5)t4W=E?}Z+Ex#X{#9sv3`%@HPy&GFRa@1 z)pf-=9M531a}!*&{ZqXKZH4(#(bS%~Z;>K*-B3sereNkcV~o?_RdFVm0kVZ+N_y=u zDx2!1{@hn{a6!i{IM+q+;Ds2gHLhlBffW>Mrsd=vuc222tsF#CPxJC)n+7U8 z&(iC9SbV80L-RJ$g5xQp$ii$5Ld%HI#ScE1EXPhafOn122qb@=j7$}UqD}2y^;5FT zn7fU+bUPty#};d_Xy%Oor!qIVkoyIpwZ;OCUxX)k0}A0pF0CVu+7p2@-3(6Tq8RBl z`NiY*o}rW_BkR4(3zg33FZ)a$2c;GS8&6K{FC%N1a~&?F7Eg}Ak#CY-lh2z}Ex-5)B^=FMA`->)D9S)ZsG6arH6l^4mb;3W%Z2My=L9mY*9a(KpKdgy%KKiG6ZJNws0{t)ZPT~Ro9_?` z9(cIK?UvXSr~@~k?z}^C-;u$U`-Ekrn&1s7!P(eW>QTn#OB`&7@>IwB^J$ElK)oRimC%!mjH+ML*O}%)${46G2`_ SiK4$;5Wvd*_*2Vs*Zv7cD7Q)g literal 0 HcmV?d00001 diff --git a/classxt_1_1xoptional__assembly__adaptor-members.html b/classxt_1_1xoptional__assembly__adaptor-members.html new file mode 100644 index 000000000..7a99ea9fc --- /dev/null +++ b/classxt_1_1xoptional__assembly__adaptor-members.html @@ -0,0 +1,247 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_assembly_adaptor< VEC, FEC > Member List
    +
    +
    + +

    This is the complete list of members for xt::xoptional_assembly_adaptor< VEC, FEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assembly_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    assign_temporary(temporary_type &&)xt::xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >inline
    at(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    at(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    at(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    at(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    back()xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    back() constxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    backstrides() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    base_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    const_flag_expression typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    const_pointer typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    const_reference typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    const_value_expression typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    dimension() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    element(It first, It last) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    element(It first, It last) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    element(It first, It last) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    element(It first, It last) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    fill(const T &value)xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    flag_expression typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    flat(size_type args)xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    flat(size_type args) constxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    front()xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    front() constxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    has_linear_assign(const S &strides) const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    has_value() noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    has_value() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    in_bounds(Args... args) constxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    layout() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator()(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator()(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator()(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator()(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator=(const xoptional_assembly_adaptor &) (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >inline
    operator=(xoptional_assembly_adaptor &&) (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >inline
    operator=(temporary_type &&) (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >inline
    operator=(const xexpression< E > &e) (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    operator=(const xexpression< E > &e) -> self_type &xt::xoptional_assembly_adaptor< VEC, FEC >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    periodic(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    periodic(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    periodic(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    periodic(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    pointer typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    reference typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    reshape(const S &shape, layout_type layout=static_layout) &xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    resize(const S &shape, bool force=false)xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    resize(const S &shape, layout_type l)xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    resize(const S &shape, const strides_type &strides)xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    self_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    semantic_base typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    shape() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    shape(size_type index) constxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    shape_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    size() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    storage_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    strides() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    strides_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    temporary_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    unchecked(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    unchecked(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    unchecked(Args... args) -> referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    unchecked(Args... args) const -> const_referencext::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    value() noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    value() const noexceptxt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >inline
    value_expression typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    value_type typedef (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    xoptional_assembly_adaptor(OVE &&ve, OFE &&fe)xt::xoptional_assembly_adaptor< VEC, FEC >inline
    xoptional_assembly_adaptor(const xoptional_assembly_adaptor &) (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >inline
    xoptional_assembly_adaptor(xoptional_assembly_adaptor &&) (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >inline
    xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > > (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >friend
    ~xoptional_assembly_adaptor()=default (defined in xt::xoptional_assembly_adaptor< VEC, FEC >)xt::xoptional_assembly_adaptor< VEC, FEC >
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__adaptor.html b/classxt_1_1xoptional__assembly__adaptor.html new file mode 100644 index 000000000..487c5c28f --- /dev/null +++ b/classxt_1_1xoptional__assembly__adaptor.html @@ -0,0 +1,1580 @@ + + + + + + + +xtensor: xt::xoptional_assembly_adaptor< VEC, FEC > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly_adaptor< VEC, FEC > Class Template Reference
    +
    +
    + +

    Dense multidimensional adaptor holding optional values, optimized for tensor operations. + More...

    + +

    #include <xoptional_assembly.hpp>

    +
    +Inheritance diagram for xt::xoptional_assembly_adaptor< VEC, FEC >:
    +
    +
    + + +xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > > +xt::xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > > +xt::xiterable< xoptional_assembly_adaptor< VEC, FEC > > +xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xoptional_assembly_adaptor<VEC, FEC>
     
    using base_type = xoptional_assembly_base<self_type>
     
    using semantic_base = xcontainer_semantic<self_type>
     
    using storage_type = typename base_type::storage_type
     
    using value_expression = typename base_type::value_expression
     
    using flag_expression = typename base_type::flag_expression
     
    using const_value_expression = typename base_type::const_value_expression
     
    using const_flag_expression = typename base_type::const_flag_expression
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using const_reference = typename base_type::const_reference
     
    using pointer = typename base_type::pointer
     
    using const_pointer = typename base_type::const_pointer
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename base_type::strides_type
     
    using temporary_type = typename semantic_base::temporary_type
     
    using assembly_type = base_type
     
    - Public Types inherited from xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >
    using self_type
     
    using derived_type
     
    using inner_types
     
    using raw_value_expression
     
    using base_value_type
     
    using base_reference
     
    using base_const_reference
     
    using raw_flag_expression
     
    using flag_type
     
    using flag_reference
     
    using flag_const_reference
     
    using storage_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using simd_value_type
     
    using bool_load_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using expression_tag
     
    using value_expression
     
    using flag_expression
     
    using const_value_expression
     
    using const_flag_expression
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    xoptional_assembly_adaptoroperator= (const xexpression< E > &e)
     
    Constructors
    template<class OVE, class OFE>
     xoptional_assembly_adaptor (OVE &&ve, OFE &&fe)
     Constructs an xoptional_assembly_adaptor of the given value and missing mask expressions.
     
     xoptional_assembly_adaptor (const xoptional_assembly_adaptor &)
     
    xoptional_assembly_adaptoroperator= (const xoptional_assembly_adaptor &)
     
     xoptional_assembly_adaptor (xoptional_assembly_adaptor &&)
     
    xoptional_assembly_adaptoroperator= (xoptional_assembly_adaptor &&)
     
    xoptional_assembly_adaptoroperator= (temporary_type &&)
     
    - Public Member Functions inherited from xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >
    +layout_iterator< L > begin () noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +layout_iterator< L > end () noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rbegin () noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rend () noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference at (Args... args)
     
    +const_reference at (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +reference periodic (Args... args)
     
    +const_reference periodic (Args... args) const
     
    +reference element (It first, It last)
     
    +const_reference element (It first, It last) const
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +layout_iterator< L > begin () noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +layout_iterator< L > end () noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rbegin () noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +reverse_layout_iterator< L > rend () noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    reference operator[] (size_type i)
     
    const_reference operator[] (size_type i) const
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    reference front ()
     Returns a reference to the first element of the optional assembly.
     
    const_reference front () const
     Returns a constant reference to the first element of the optional assembly.
     
    reference back ()
     Returns a reference to the last element of the optional assembly.
     
    const_reference back () const
     Returns a constant reference to the last element of the optional assembly.
     
    reference flat (size_type args)
     Returns a reference to the element at the specified position of the underlying storage in the optional assembly.
     
    const_reference flat (size_type args) const
     Returns a constant reference to the element at the specified position of the underlying storage in the optional assembly.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    storage_type & storage () noexcept
     
    const storage_type & storage () const noexcept
     
    value_type * data () noexcept
     
    const value_type * data () const noexcept
     
    const size_type data_offset () const noexcept
     
    size_type size () const noexcept
     Returns the number of element in the optional assembly.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the optional assembly.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the optional assembly.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the optional assembly.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the optional assembly.
     
    void resize (const S &shape, bool force=false)
     Resizes the optional assembly.
     
    void resize (const S &shape, layout_type l)
     Resizes the optional assembly.
     
    void resize (const S &shape, const strides_type &strides)
     Resizes the optional assembly.
     
    auto & reshape (const S &shape, layout_type layout=static_layout) &
     Reshapes the optional assembly.
     
    auto & reshape (std::initializer_list< T > shape, layout_type layout=static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
    void fill (const T &value)
     Fills the data with the given value.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the optional assembly to the specified parameter.
     
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xoptional_assembly_base can be linearly assigned to an expression with the specified strides.
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    value_expression value () noexcept
     Return an expression for the values of the optional assembly.
     
    const_value_expression value () const noexcept
     Return a constant expression for the values of the optional assembly.
     
    flag_expression has_value () noexcept
     Return an expression for the missing mask of the optional assembly.
     
    const_flag_expression has_value () const noexcept
     Return a constant expression for the missing mask of the optional assembly.
     
    - Public Member Functions inherited from xt::xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + +

    +Friends

    class xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >
     
    + + + + + +

    Extended copy semantic

    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Protected Member Functions inherited from xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >
    xoptional_assembly_base (const xoptional_assembly_base &)=default
     
    xoptional_assembly_base (xoptional_assembly_base &&)=default
     
    +xoptional_assembly_baseoperator= (const xoptional_assembly_base &)=default
     
    +xoptional_assembly_baseoperator= (xoptional_assembly_base &&)=default
     
    - Protected Member Functions inherited from xt::xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >
    xcontainer_semantic (const xcontainer_semantic &)=default
     
    xcontainer_semantic (xcontainer_semantic &&)=default
     
    +xcontainer_semanticoperator= (const xcontainer_semantic &)=default
     
    +xcontainer_semanticoperator= (xcontainer_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class VEC, class FEC>
    +class xt::xoptional_assembly_adaptor< VEC, FEC >

    Dense multidimensional adaptor holding optional values, optimized for tensor operations.

    +

    The xoptional_assembly_adaptor class implements a dense multidimensional adaptor hoding optional values. It is used to provide an optional expression semantic to two tensor expressions, one holding the value, the hother holding the missing mask.

    +
    Template Parameters
    + + + +
    VECThe closure for the type of expression holding the values.
    FEThe closure for the type of expression holding the missing mask.
    +
    +
    + +

    Definition at line 190 of file xoptional_assembly.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ assembly_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::assembly_type = base_type
    +
    + +

    Definition at line 212 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::base_type = xoptional_assembly_base<self_type>
    +
    + +

    Definition at line 196 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_flag_expression

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::const_flag_expression = typename base_type::const_flag_expression
    +
    + +

    Definition at line 202 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::const_pointer = typename base_type::const_pointer
    +
    + +

    Definition at line 207 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::const_reference = typename base_type::const_reference
    +
    + +

    Definition at line 205 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_value_expression

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::const_value_expression = typename base_type::const_value_expression
    +
    + +

    Definition at line 201 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ flag_expression

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::flag_expression = typename base_type::flag_expression
    +
    + +

    Definition at line 200 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 206 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::reference = typename base_type::reference
    +
    + +

    Definition at line 204 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::self_type = xoptional_assembly_adaptor<VEC, FEC>
    +
    + +

    Definition at line 195 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::semantic_base = xcontainer_semantic<self_type>
    +
    + +

    Definition at line 197 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 208 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 198 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 209 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::temporary_type = typename semantic_base::temporary_type
    +
    + +

    Definition at line 210 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::value_expression = typename base_type::value_expression
    +
    + +

    Definition at line 199 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xoptional_assembly_adaptor< VEC, FEC >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 203 of file xoptional_assembly.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xoptional_assembly_adaptor() [1/3]

    + +
    +
    +
    +template<class VEC, class FEC>
    +
    +template<class OVE, class OFE>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly_adaptor< VEC, FEC >::xoptional_assembly_adaptor (OVE && ve,
    OFE && fe )
    +
    +inline
    +
    + +

    Constructs an xoptional_assembly_adaptor of the given value and missing mask expressions.

    +
    Parameters
    + + + +
    vethe expression holding the values
    fethe expression holding the missing mask
    +
    +
    + +

    Definition at line 637 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_adaptor() [2/3]

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly_adaptor< VEC, FEC >::xoptional_assembly_adaptor (const xoptional_assembly_adaptor< VEC, FEC > & rhs)
    +
    +inline
    +
    + +

    Definition at line 647 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_adaptor() [3/3]

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly_adaptor< VEC, FEC >::xoptional_assembly_adaptor (xoptional_assembly_adaptor< VEC, FEC > && rhs)
    +
    +inline
    +
    + +

    Definition at line 666 of file xoptional_assembly.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=() [1/4]

    + +
    +
    +
    +template<class VEC, class FEC>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_adaptor< VEC, FEC >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 701 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ operator=() [2/4]

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_adaptor< VEC, FEC >::operator= (const xoptional_assembly_adaptor< VEC, FEC > & rhs)
    +
    +inline
    +
    + +

    Definition at line 657 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ operator=() [3/4]

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_adaptor< VEC, FEC >::operator= (temporary_type && tmp)
    +
    +inline
    +
    + +

    Definition at line 685 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ operator=() [4/4]

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_adaptor< VEC, FEC >::operator= (xoptional_assembly_adaptor< VEC, FEC > && rhs)
    +
    +inline
    +
    + +

    Definition at line 676 of file xoptional_assembly.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + +
    + + + + +
    friend class xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >
    +
    +friend
    +
    + +

    Definition at line 242 of file xoptional_assembly.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files: +
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__adaptor.js b/classxt_1_1xoptional__assembly__adaptor.js new file mode 100644 index 000000000..87fc476ce --- /dev/null +++ b/classxt_1_1xoptional__assembly__adaptor.js @@ -0,0 +1,5 @@ +var classxt_1_1xoptional__assembly__adaptor = +[ + [ "xoptional_assembly_adaptor", "classxt_1_1xoptional__assembly__adaptor.html#a49ed47cb40d83d823a72f7907f4b4430", null ], + [ "operator=", "classxt_1_1xoptional__assembly__adaptor.html#ae9fc0069591e77f0b879152b82032987", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xoptional__assembly__adaptor.png b/classxt_1_1xoptional__assembly__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..18fe3941788b21215296a5ba6dd521ba0e8327e6 GIT binary patch literal 3928 zcmc&%X;c$g77n1`g3G8NEd*OYkwwG>6F_l6g(MIq${JRYMUb#0ktP_x#s&e6ECFl? z&|*RaB#5k?fGCR51j8m|1Oh0=7y^W~k%(j}I6X7xO!u5Ke`e~Os`u4>_uhI{=icvq zm2wtow{Fe0H6RdZ9nAhD3ItNY0r<%(72q2CwKEzRw9h)6KP8vT0r+Wb4u89a4mCH5 z(8_K5G(0>E*ezbWP=UGCI27_62)JK9Aj`y&N6u%QMmJ+95>MGXUZ8jDra1QFJ^Qw1SM8}`ocE#>(#0;zZUJO_76~^8cE_51VS@e~# zspm8pLvzCd2|d@A=*|p@?&G_GR5oT2EyM^uI_;EE`P=unfv^iTNAfhsNBhTB1fR2U zELYr-F}Q2|lL@SG{pkM3IiE}QO30|z#o>pod&W({$9%1<$LiEaS30?r2DH|+WN+wY zLulnEUT;OD5o!e{0*pqqYAx}?QBMJWdyJu%{)^f;8y_(yGzeIFb-$l=Pcd4|>?ihr zxW8$9%6uai8!0RF1u!sOGiG?mZy-k^iyoxr9eG49T^U)*2S zQ?2jsvkpfH>AAe0gvZ56WRCv2QYfe2OU&6+uPxpGyd-Gf4fs>W6)5yr%+5+dY5H{0 z26)Gr4!t{d!V+#G_rA71tp@B<-yo&UKZhC7@@hwQt`J-E!{3@Ja(Dve*cxd!ynVqJ zp*Csvc}j!4T&oi=x|CMDP*l^ho2eJvsI}#fO@UfTPt~89uTXvh(n=V5wh|aXDwE!( z-~=UekW>^^g$JoV0X2dVYQ7-#CtnsKc)dyr56m|Yx~~wVo}dI(`ZmAX%?hOA3qn5W zQaD8@=d4$x-TV-zNJ2@VshERQhgW$B%~WJqF@ah3OM1J7zN{TXLcF@QjH`Nnr*uldwoy;T+A;S5wMg9sA6-^2CXj#AF=3n6Zcg->Uh$J88uqat%j97z`ZuyfQqRJU@grCUTnIkGf+>KgYRPdu-??Yxd~ z9P=Y*JOaWAxZ&7NSPkh9%fDlFcj)ebf0rPmY%i^x`yq0zXqG{FyjwtN(#vwKJ5DV0 zk#BYOK}DK|(bW)KOMi5|p378<#JaxOk<`0tZm9;pM}M!BVRIaCDVNL)MfD2SMFX{v z|HEmfmGf7zaY;iV<&p80n2KU3JrlR#4BQYF{*IL^(!c9NnAcV_gIV0RH-sHc!y1Eh6333Efd3afMl+>e(U`;F6+PF#=wI7s{YaZHFn&@a4P;W&xNZA-Lh6;Q)02;kf^I_yV`<)(A8&QipvEN*sZb{QSrU`Y^xUv@FG- zV2E`9Ljdpir{EI665<=TlkM8Wf6F=##*TOuCI4t|Op4wx?$W4zi*8qx$Xa4~w>5`m zExZC6H>BYVGxqV-(3zI8_@7l^Wee<0yGo(DWCd9$iw#QI(wBaJ*9Ym;q-dZ%_D;2( zM4-4n4tJ>U-Ke2tFJ(ta((NJfBEfl}pTQ~cU1o`rBrJa}M4R}w@o}(?Z0xRvSO2_e z|KQ@v%vArBN8C4l>!qB*tz80#kDbGnL!O4ev^j>?VLm)rokdmY1xP^PpJ#SyH%aDQ zyKf7`>PU&v{T7RqiW4q-dOeq3cGNM{q=i`YhB={5&e{g3ysT>-Y95-`AnVVo6u(|L zjAmO#w2We5{Z;V#39WJAHPus+km54!{-NW>x6zwx(>hEOinKgBYe@qiA|O)9B)z5k z)jQ7&k_WCDkQB+U#vBI*(*oatc`o6)y|tgNgG1&Y;aHGL|Gwe}Ve8@UqD0B#x#4)< z;8PE*rp=OHANHvq5kYu~rg4=xp^ih5d3(2+?*VjEOfVvO^DdZ0Iqvnt*sQ3C%B6ul zXvxqONCk6(R<4IT#4FnFAr*YRH8ZDU<1AjE74z`(yifCXj%zjEQ%o_339IZO&84Xa zy?FUg6E|Df3-2CpbsEGZ{g9sXUL`It7|nX5hr|B0EwtZ*-`CwM%lr zDJaDI^xL0>0ZMU8XdYAhBjYCna0DGExY(OjqaKH0I(p{k4_?+d;MsnQIv&wt;LO%5 zFaS@x*~6ImuD0?I9o~d_L_u>pGBeIZ9@qlxS@keTiu}{d-h%g2jH5?uT)QSc)||cw+^{n;RUl? z?#^8biL$8LxLfIeCQ6!b`e~^iP=B^@l|obR5K$a?mdQ_-b()ZZ{kwGIS+c)Lw|_Hz z6m$u0%BLnjE!d9aX%CH7$6mQNHTwx0!H?&sEkuXyKWd4|!1BTs;UDQVuBAw~*_Jtq zeCuy{^q&)966)Kf+*6hUEt@#{jKn!IoMl|jnLW2u5bLl`#E>}CL%$T#kdDtn0{v1R zos*npR;N;EDmQpvT)64j`8#j8F$z|2zL=_ApqqtsZiwS2Mz`54+B z4mKRlORe>G3GB%W3#f8$<=z^XrekApG!tfThPK$l>5w)ZCCI=q-r4OLEGwX?tZI{H zVd_))b4{n*`*Bp0=HN7EyFnP=KB}Uq-IWPh{u!8gL31+c*gQ7uUBN4vkkuQb!}!Ej zE1Bg3TqQyT2PErnjbV{(<#is}-9k?{T{7n7uZO48)9y72vKgk4VRw4ol>{~UAKY1! zU6C_ez;U-q=m7r3%2%R=T8y>R1UVB*FN#`-_wE^O+n4%d&2MfbixXbhI!3?;p#Xaa zxdTmQDSA=^!`Bm0hHfgB?Y?%W$Wtf$sw7vjiMKnr@_s$6_yPbAo%>4+?rLa{<(Q1K zRlY_9ST8QQ(OCME(v5~9N)fPeuGqD-sm)RpzZTeRwGg>jUKJpnuT|kJMLK_Cy7PMp bB{a9m&1IL1`1X#eAmD(VLY`!t@cr>`zsWv0 literal 0 HcmV?d00001 diff --git a/classxt_1_1xoptional__assembly__base-members.html b/classxt_1_1xoptional__assembly__base-members.html new file mode 100644 index 000000000..2abfa96f7 --- /dev/null +++ b/classxt_1_1xoptional__assembly__base-members.html @@ -0,0 +1,279 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_assembly_base< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xoptional_assembly_base< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    at(Args... args) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    at(Args... args) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    at(Args... args) -> referencext::xoptional_assembly_base< D >inline
    at(Args... args) const -> const_referencext::xoptional_assembly_base< D >inline
    back()xt::xoptional_assembly_base< D >inline
    back() constxt::xoptional_assembly_base< D >inline
    backstrides() const noexceptxt::xoptional_assembly_base< D >inline
    backstrides_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    base_const_reference typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    base_reference typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    base_value_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    begin() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    begin(const S &shape) noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    begin() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    begin(const S &shape) const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    bool_load_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    broadcast_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xoptional_assembly_base< D >inline
    const_broadcast_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_flag_expression typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_layout_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_linear_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_pointer typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_reference typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_reverse_broadcast_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_reverse_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_reverse_layout_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_reverse_linear_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_stepper typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    const_value_expression typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    contiguous_layout (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >static
    data() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    data() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    data_offset() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    derived_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    difference_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    dimension() const noexceptxt::xoptional_assembly_base< D >inline
    element(It first, It last) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    element(It first, It last) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    element(It first, It last) -> referencext::xoptional_assembly_base< D >inline
    element(It first, It last) const -> const_referencext::xoptional_assembly_base< D >inline
    end() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    end(const S &shape) noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    end() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    end(const S &shape) const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    expression_tag typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    fill(const T &value)xt::xoptional_assembly_base< D >inline
    flag_const_reference typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    flag_expression typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    flag_reference typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    flag_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    flat(size_type args)xt::xoptional_assembly_base< D >inline
    flat(size_type args) constxt::xoptional_assembly_base< D >inline
    front()xt::xoptional_assembly_base< D >inline
    front() constxt::xoptional_assembly_base< D >inline
    has_linear_assign(const S &strides) const noexceptxt::xoptional_assembly_base< D >inline
    has_value() noexceptxt::xoptional_assembly_base< D >inline
    has_value() const noexceptxt::xoptional_assembly_base< D >inline
    in_bounds(Args... args) constxt::xoptional_assembly_base< D >inline
    inner_backstrides_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    inner_shape_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    inner_strides_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    inner_types typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    is_contiguous() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    iterable_base typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    layout() const noexceptxt::xoptional_assembly_base< D >inline
    layout_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    linear_begin() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_begin() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_cbegin() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_cend() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_crbegin() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_crend() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_end() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_end() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    linear_rbegin() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_rbegin() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_rend() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    linear_rend() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    operator()(Args... args) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    operator()(Args... args) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    operator()(Args... args) -> referencext::xoptional_assembly_base< D >inline
    operator()(Args... args) const -> const_referencext::xoptional_assembly_base< D >inline
    operator=(const xoptional_assembly_base &)=default (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >protected
    operator=(xoptional_assembly_base &&)=default (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >protected
    operator[](const S &index) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    operator[](std::initializer_list< I > index) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    operator[](size_type i) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    operator[](const S &index) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    operator[](std::initializer_list< I > index) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    operator[](size_type i) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xoptional_assembly_base< D >inline
    operator[](std::initializer_list< I > index) -> reference (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xoptional_assembly_base< D >inline
    operator[](std::initializer_list< I > index) const -> const_reference (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    periodic(Args... args) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    periodic(Args... args) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    periodic(Args... args) -> referencext::xoptional_assembly_base< D >inline
    periodic(Args... args) const -> const_referencext::xoptional_assembly_base< D >inline
    pointer typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    raw_flag_expression typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    raw_value_expression typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rbegin() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rbegin(const S &shape) noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rbegin() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rbegin(const S &shape) const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    reference typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rend() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rend(const S &shape) noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rend() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    rend(const S &shape) const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    reshape(const S &shape, layout_type layout=static_layout) &xt::xoptional_assembly_base< D >inline
    reshape(std::initializer_list< T > shape, layout_type layout=static_layout) & (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    resize(const S &shape, bool force=false)xt::xoptional_assembly_base< D >inline
    resize(const S &shape, layout_type l)xt::xoptional_assembly_base< D >inline
    resize(const S &shape, const strides_type &strides)xt::xoptional_assembly_base< D >inline
    reverse_broadcast_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    reverse_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    reverse_layout_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    reverse_linear_iterator typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    self_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    shape() const noexceptxt::xoptional_assembly_base< D >inline
    shape(size_type index) constxt::xoptional_assembly_base< D >inline
    shape_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    simd_value_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    size() const noexceptxt::xoptional_assembly_base< D >inline
    size_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    static_layout (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >static
    stepper typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    stepper_begin(const S &shape) noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    stepper_begin(const S &shape) const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    stepper_end(const S &shape, layout_type l) noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    storage() noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    storage() const noexcept (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >inline
    storage_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    strides() const noexceptxt::xoptional_assembly_base< D >inline
    strides_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    unchecked(Args... args) (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    unchecked(Args... args) const (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    unchecked(Args... args) -> referencext::xoptional_assembly_base< D >inline
    unchecked(Args... args) const -> const_referencext::xoptional_assembly_base< D >inline
    value() noexceptxt::xoptional_assembly_base< D >inline
    value() const noexceptxt::xoptional_assembly_base< D >inline
    value_expression typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    value_type typedef (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >
    xconst_iterable< D > (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >friend
    xiterable< D > (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >friend
    xoptional_assembly_base()=default (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >protected
    xoptional_assembly_base(const xoptional_assembly_base &)=default (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >protected
    xoptional_assembly_base(xoptional_assembly_base &&)=default (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >protected
    ~xoptional_assembly_base()=default (defined in xt::xoptional_assembly_base< D >)xt::xoptional_assembly_base< D >protected
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__base.html b/classxt_1_1xoptional__assembly__base.html new file mode 100644 index 000000000..c837b28ab --- /dev/null +++ b/classxt_1_1xoptional__assembly__base.html @@ -0,0 +1,3881 @@ + + + + + + + +xtensor: xt::xoptional_assembly_base< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly_base< D > Class Template Reference
    +
    +
    + +

    Base class for dense multidimensional optional assemblies. + More...

    + +

    #include <xoptional_assembly_base.hpp>

    +
    +Inheritance diagram for xt::xoptional_assembly_base< D >:
    +
    +
    + + +xt::xiterable< D > +xt::xoptional_assembly< raw_value_expression, raw_flag_expression > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xoptional_assembly_base<D>
     
    using derived_type = D
     
    using inner_types = xcontainer_inner_types<D>
     
    using raw_value_expression = typename inner_types::raw_value_expression
     
    using base_value_type = typename raw_value_expression::value_type
     
    using base_reference = typename raw_value_expression::reference
     
    using base_const_reference = typename raw_value_expression::const_reference
     
    using raw_flag_expression = typename inner_types::raw_flag_expression
     
    using flag_type = typename raw_flag_expression::value_type
     
    using flag_reference = typename raw_flag_expression::reference
     
    using flag_const_reference = typename raw_flag_expression::const_reference
     
    using storage_type = typename inner_types::storage_type
     
    using value_type = typename storage_type::value_type
     
    using reference = typename storage_type::reference
     
    using const_reference = typename storage_type::const_reference
     
    using pointer = typename storage_type::pointer
     
    using const_pointer = typename storage_type::const_pointer
     
    using size_type = typename raw_value_expression::size_type
     
    using difference_type = typename raw_value_expression::difference_type
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    using bool_load_type = xt::bool_load_type<value_type>
     
    using shape_type = typename raw_value_expression::shape_type
     
    using strides_type = typename raw_value_expression::strides_type
     
    using backstrides_type = typename raw_value_expression::backstrides_type
     
    using inner_shape_type = typename raw_value_expression::inner_shape_type
     
    using inner_strides_type = typename raw_value_expression::inner_strides_type
     
    using inner_backstrides_type = typename raw_value_expression::inner_backstrides_type
     
    using iterable_base = xiterable<D>
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using expression_tag = xoptional_expression_tag
     
    using value_expression = raw_value_expression&
     
    using flag_expression = raw_flag_expression&
     
    using const_value_expression = const raw_value_expression&
     
    using const_flag_expression = const raw_flag_expression&
     
    template<layout_type L>
    using layout_iterator = typename iterable_base::template layout_iterator<L>
     
    template<layout_type L>
    using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
     
    template<layout_type L>
    using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
     
    template<layout_type L>
    using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
     
    template<class S, layout_type L>
    using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
     
    using linear_iterator = typename storage_type::iterator
     
    using const_linear_iterator = typename storage_type::const_iterator
     
    using reverse_linear_iterator = typename storage_type::reverse_iterator
     
    using const_reverse_linear_iterator = typename storage_type::const_reverse_iterator
     
    using iterator = typename iterable_base::iterator
     
    using const_iterator = typename iterable_base::const_iterator
     
    using reverse_iterator = typename iterable_base::reverse_iterator
     
    using const_reverse_iterator = typename iterable_base::const_reverse_iterator
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class... Args>
    reference operator() (Args... args)
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    reference at (Args... args)
     
    +template<class... Args>
    const_reference at (Args... args) const
     
    +template<class... Args>
    reference unchecked (Args... args)
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class S>
    disable_integral_t< S, reference > operator[] (const S &index)
     
    +template<class I>
    reference operator[] (std::initializer_list< I > index)
     
    +template<class S>
    disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +template<class I>
    const_reference operator[] (std::initializer_list< I > index) const
     
    +template<class... Args>
    reference periodic (Args... args)
     
    +template<class... Args>
    const_reference periodic (Args... args) const
     
    +template<class It>
    reference element (It first, It last)
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class S>
    stepper stepper_begin (const S &shape) noexcept
     
    +template<class S>
    stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +template<class S>
    const_stepper stepper_begin (const S &shape) const noexcept
     
    +template<class S>
    const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    layout_iterator< L > begin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > begin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    layout_iterator< L > end () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_layout_iterator< L > end () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    reverse_layout_iterator< L > rbegin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    reverse_layout_iterator< L > rend () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_layout_iterator< L > rend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    Size and shape
    size_type size () const noexcept
     Returns the number of element in the optional assembly.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the optional assembly.
     
    const inner_shape_type & shape () const noexcept
     Returns the shape of the optional assembly.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the optional assembly.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the optional assembly.
     
    template<class S = shape_type>
    void resize (const S &shape, bool force=false)
     Resizes the optional assembly.
     
    template<class S = shape_type>
    void resize (const S &shape, layout_type l)
     Resizes the optional assembly.
     
    template<class S = shape_type>
    void resize (const S &shape, const strides_type &strides)
     Resizes the optional assembly.
     
    template<class S = shape_type>
    auto & reshape (const S &shape, layout_type layout=static_layout) &
     Reshapes the optional assembly.
     
    template<class T>
    auto & reshape (std::initializer_list< T > shape, layout_type layout=static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
    template<class T>
    void fill (const T &value)
     Fills the data with the given value.
     
    Data
    reference operator[] (size_type i)
     
    const_reference operator[] (size_type i) const
     
    reference front ()
     Returns a reference to the first element of the optional assembly.
     
    const_reference front () const
     Returns a constant reference to the first element of the optional assembly.
     
    reference back ()
     Returns a reference to the last element of the optional assembly.
     
    const_reference back () const
     Returns a constant reference to the last element of the optional assembly.
     
    reference flat (size_type args)
     Returns a reference to the element at the specified position of the underlying storage in the optional assembly.
     
    const_reference flat (size_type args) const
     Returns a constant reference to the element at the specified position of the underlying storage in the optional assembly.
     
    template<class... Args>
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    storage_type & storage () noexcept
     
    const storage_type & storage () const noexcept
     
    value_type * data () noexcept
     
    const value_type * data () const noexcept
     
    const size_type data_offset () const noexcept
     
    template<class... Args>
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    template<class... Args>
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    template<class... Args>
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after dimension and bounds checking.
     
    template<class... Args>
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    template<class S>
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the optional assembly.
     
    template<class I>
    auto operator[] (std::initializer_list< I > index) -> reference
     
    template<class S>
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    template<class I>
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    template<class... Args>
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    template<class... Args>
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    template<class It>
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the optional assembly.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the optional assembly.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = raw_value_expression::static_layout
     
    static constexpr bool contiguous_layout = raw_value_expression::contiguous_layout
     
    + + + + + + + + + +

    +Protected Member Functions

    xoptional_assembly_base (const xoptional_assembly_base &)=default
     
    +xoptional_assembly_baseoperator= (const xoptional_assembly_base &)=default
     
    xoptional_assembly_base (xoptional_assembly_base &&)=default
     
    +xoptional_assembly_baseoperator= (xoptional_assembly_base &&)=default
     
    + + + + + +

    +Friends

    class xiterable< D >
     
    class xconst_iterable< D >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the optional assembly to the specified parameter.
     
    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xoptional_assembly_base can be linearly assigned to an expression with the specified strides.
     
    linear_iterator linear_begin () noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    value_expression value () noexcept
     Return an expression for the values of the optional assembly.
     
    const_value_expression value () const noexcept
     Return a constant expression for the values of the optional assembly.
     
    flag_expression has_value () noexcept
     Return an expression for the missing mask of the optional assembly.
     
    const_flag_expression has_value () const noexcept
     Return a constant expression for the missing mask of the optional assembly.
     
    template<class S>
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    template<class S>
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xoptional_assembly_base< D >

    Base class for dense multidimensional optional assemblies.

    +

    The xoptional_assembly_base class defines the interface for dense multidimensional optional assembly classes. Optional assembly classes hold optional values and are optimized for tensor operations. xoptional_assembly_base does not embed any data container, this responsibility is delegated to the inheriting classes.

    +
    Template Parameters
    + + +
    DThe derived type, i.e. the inheriting class for which xoptional_assembly_base provides the interface.
    +
    +
    + +

    Definition at line 39 of file xoptional_assembly_base.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::backstrides_type = typename raw_value_expression::backstrides_type
    +
    + +

    Definition at line 71 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ base_const_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::base_const_reference = typename raw_value_expression::const_reference
    +
    + +

    Definition at line 50 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ base_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::base_reference = typename raw_value_expression::reference
    +
    + +

    Definition at line 49 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ base_value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::base_value_type = typename raw_value_expression::value_type
    +
    + +

    Definition at line 48 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::bool_load_type = xt::bool_load_type<value_type>
    +
    + +

    Definition at line 67 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
    +
    + +

    Definition at line 100 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
    +
    + +

    Definition at line 102 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_flag_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_flag_expression = const raw_flag_expression&
    +
    + +

    Definition at line 88 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_iterator = typename iterable_base::const_iterator
    +
    + +

    Definition at line 114 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
    +
    + +

    Definition at line 93 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_linear_iterator = typename storage_type::const_iterator
    +
    + +

    Definition at line 109 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_pointer = typename storage_type::const_pointer
    +
    + +

    Definition at line 63 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 61 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_reverse_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 106 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_reverse_iterator = typename iterable_base::const_reverse_iterator
    +
    + +

    Definition at line 116 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_reverse_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
    +
    + +

    Definition at line 97 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_reverse_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_reverse_linear_iterator = typename storage_type::const_reverse_iterator
    +
    + +

    Definition at line 111 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 79 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ const_value_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::const_value_expression = const raw_value_expression&
    +
    + +

    Definition at line 87 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ derived_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::derived_type = D
    +
    + +

    Definition at line 44 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::difference_type = typename raw_value_expression::difference_type
    +
    + +

    Definition at line 65 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::expression_tag = xoptional_expression_tag
    +
    + +

    Definition at line 84 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flag_const_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::flag_const_reference = typename raw_flag_expression::const_reference
    +
    + +

    Definition at line 55 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flag_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::flag_expression = raw_flag_expression&
    +
    + +

    Definition at line 86 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flag_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::flag_reference = typename raw_flag_expression::reference
    +
    + +

    Definition at line 54 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flag_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::flag_type = typename raw_flag_expression::value_type
    +
    + +

    Definition at line 53 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::inner_backstrides_type = typename raw_value_expression::inner_backstrides_type
    +
    + +

    Definition at line 75 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::inner_shape_type = typename raw_value_expression::inner_shape_type
    +
    + +

    Definition at line 73 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::inner_strides_type = typename raw_value_expression::inner_strides_type
    +
    + +

    Definition at line 74 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::inner_types = xcontainer_inner_types<D>
    +
    + +

    Definition at line 45 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::iterable_base = xiterable<D>
    +
    + +

    Definition at line 77 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::iterator = typename iterable_base::iterator
    +
    + +

    Definition at line 113 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::layout_iterator = typename iterable_base::template layout_iterator<L>
    +
    + +

    Definition at line 91 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::linear_iterator = typename storage_type::iterator
    +
    + +

    Definition at line 108 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::pointer = typename storage_type::pointer
    +
    + +

    Definition at line 62 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ raw_flag_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::raw_flag_expression = typename inner_types::raw_flag_expression
    +
    + +

    Definition at line 52 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ raw_value_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::raw_value_expression = typename inner_types::raw_value_expression
    +
    + +

    Definition at line 47 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::reference = typename storage_type::reference
    +
    + +

    Definition at line 60 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reverse_broadcast_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 104 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::reverse_iterator = typename iterable_base::reverse_iterator
    +
    + +

    Definition at line 115 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reverse_layout_iterator

    + +
    +
    +
    +template<class D>
    +
    +template<layout_type L>
    + + + + +
    using xt::xoptional_assembly_base< D >::reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
    +
    + +

    Definition at line 95 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reverse_linear_iterator

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::reverse_linear_iterator = typename storage_type::reverse_iterator
    +
    + +

    Definition at line 110 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::self_type = xoptional_assembly_base<D>
    +
    + +

    Definition at line 43 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::shape_type = typename raw_value_expression::shape_type
    +
    + +

    Definition at line 69 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 66 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::size_type = typename raw_value_expression::size_type
    +
    + +

    Definition at line 64 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 78 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::storage_type = typename inner_types::storage_type
    +
    + +

    Definition at line 57 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::strides_type = typename raw_value_expression::strides_type
    +
    + +

    Definition at line 70 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::value_expression = raw_value_expression&
    +
    + +

    Definition at line 85 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xoptional_assembly_base< D >::value_type = typename storage_type::value_type
    +
    + +

    Definition at line 59 of file xoptional_assembly_base.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ at() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::at (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the optional assembly, after dimension and bounds checking.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the optional assembly.
    +
    +
    +
    Exceptions
    + + +
    std::out_of_rangeif the number of argument is greater than the number of dimensions or if indices are out of bounds.
    +
    +
    + +

    Definition at line 510 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ at() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::at (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the optional assembly, after dimension and bounds checking.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the optional assembly.
    +
    +
    +
    Exceptions
    + + +
    std::out_of_rangeif the number of argument is greater than the number of dimensions or if indices are out of bounds.
    +
    +
    + +

    Definition at line 526 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ back() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::back ()
    +
    +inline
    +
    + +

    Returns a reference to the last element of the optional assembly.

    + +

    Definition at line 686 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ back() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::back () const
    +
    +inline
    +
    + +

    Returns a constant reference to the last element of the optional assembly.

    + +

    Definition at line 695 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ backstrides()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::backstrides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the backstrides of the optional assembly.

    + +

    Definition at line 373 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xoptional_assembly_base< D >::broadcast_shape (S & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the optional assembly to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 806 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::data () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 783 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::data ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 777 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ data_offset()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::data_offset () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 789 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ dimension()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::dimension () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Returns the number of dimensions of the optional assembly.

    + +

    Definition at line 337 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xoptional_assembly_base< D >::element (It first,
    It last ) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 731 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xoptional_assembly_base< D >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 745 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ fill()

    + +
    +
    +
    +template<class D>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_base< D >::fill (const T & value)
    +
    +inline
    +
    + +

    Fills the data with the given value.

    +
    Parameters
    + + +
    valuethe value to fill the data with.
    +
    +
    + +

    Definition at line 464 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flat() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::flat (size_type i)
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position of the underlying storage in the optional assembly.

    +
    Parameters
    + + +
    iindex to underlying flat storage.
    +
    +
    + +

    Definition at line 706 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flat() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::flat (size_type i) const
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position of the underlying storage in the optional assembly.

    +
    Parameters
    + + +
    iindex to underlying flat storage.
    +
    +
    + +

    Definition at line 717 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ front() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::front ()
    +
    +inline
    +
    + +

    Returns a reference to the first element of the optional assembly.

    + +

    Definition at line 668 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ front() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::front () const
    +
    +inline
    +
    + +

    Returns a constant reference to the first element of the optional assembly.

    + +

    Definition at line 677 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xoptional_assembly_base< D >::has_linear_assign (const S & strides) const
    +
    +inlinenoexcept
    +
    + +

    Checks whether the xoptional_assembly_base can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 819 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ has_value() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::has_value () const
    +
    +inlinenoexcept
    +
    + +

    Return a constant expression for the missing mask of the optional assembly.

    + +

    Definition at line 958 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ has_value() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::has_value ()
    +
    +inlinenoexcept
    +
    + +

    Return an expression for the missing mask of the optional assembly.

    + +

    Definition at line 949 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ in_bounds()

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    bool xt::xoptional_assembly_base< D >::in_bounds (Args... args) const
    +
    +inline
    +
    + +

    Returns true only if the the specified position is a valid entry in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the expression.
    +
    +
    +
    Returns
    bool
    + +

    Definition at line 757 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    bool xt::xoptional_assembly_base< D >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 453 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    layout_type xt::xoptional_assembly_base< D >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Return the layout_type of the container.

    +
    Returns
    layout_type of the container
    + +

    Definition at line 447 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_begin() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_begin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 839 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_begin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 827 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_cbegin()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_cbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 851 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_cend()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_cend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 857 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_crbegin()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_crbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 887 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_crend()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_crend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 893 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_end () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 845 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_end ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 833 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_rbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 875 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_rbegin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 863 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_rend() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_rend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 881 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ linear_rend() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::linear_rend ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 869 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator() (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 481 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 494 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator[]() [1/6]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator[] (const S & index) -> disable_integral_t<S, reference> +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + +
    indexa sequence of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 591 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator[]() [2/6]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator[] (const S & index) const -> disable_integral_t<S, const_reference> +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + +
    indexa sequence of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices in the list should be equal or greater than the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 617 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator[]() [3/6]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator[] (size_type i)
    +
    +inline
    +
    + +

    Definition at line 604 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator[]() [4/6]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator[] (size_type i) const
    +
    +inline
    +
    + +

    Definition at line 631 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator[]() [5/6]

    + +
    +
    +
    +template<class D>
    +
    +template<class I>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator[] (std::initializer_list< I > index) -> reference +
    +
    +inline
    +
    + +

    Definition at line 598 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ operator[]() [6/6]

    + +
    +
    +
    +template<class D>
    +
    +template<class I>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::operator[] (std::initializer_list< I > index) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 625 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ periodic() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::periodic (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 645 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ periodic() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::periodic (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the optional assembly, after applying periodicity to the indices (negative and 'overflowing' indices are changed).

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices should be equal to the number of dimensions of the optional assembly.
    +
    +
    + +

    Definition at line 659 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reshape() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto & xt::xoptional_assembly_base< D >::reshape (const S & shape,
    layout_type layout = static_layout ) &
    +
    +inline
    +
    + +

    Reshapes the optional assembly.

    +
    Parameters
    + + + +
    shapethe new shape
    layoutthe new layout
    +
    +
    + +

    Definition at line 426 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reshape() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    auto & xt::xoptional_assembly_base< D >::reshape (std::initializer_list< T > shape,
    layout_type layout = static_layout ) &
    +
    +inline
    +
    + +

    Definition at line 435 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ resize() [1/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xoptional_assembly_base< D >::resize (const S & shape,
    bool force = false )
    +
    +inline
    +
    + +

    Resizes the optional assembly.

    +
    Parameters
    + + + +
    shapethe new shape
    forceforce reshaping, even if the shape stays the same (default: false)
    +
    +
    + +

    Definition at line 387 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ resize() [2/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xoptional_assembly_base< D >::resize (const S & shape,
    const strides_type & strides )
    +
    +inline
    +
    + +

    Resizes the optional assembly.

    +
    Parameters
    + + + +
    shapethe new shape
    stridesthe new strides
    +
    +
    + +

    Definition at line 413 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ resize() [3/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xoptional_assembly_base< D >::resize (const S & shape,
    layout_type l )
    +
    +inline
    +
    + +

    Resizes the optional assembly.

    +
    Parameters
    + + + +
    shapethe new shape
    lthe new layout_type
    +
    +
    + +

    Definition at line 400 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ shape() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the optional assembly.

    + +

    Definition at line 346 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ shape() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::shape (size_type index) const
    +
    +inline
    +
    + +

    Returns the i-th dimension of the expression.

    + +

    Definition at line 355 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::size () const
    +
    +inlinenoexcept
    +
    + +

    Returns the number of element in the optional assembly.

    + +

    Definition at line 328 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::stepper_begin (const S & shape) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 914 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::stepper_begin (const S & shape) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 900 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xoptional_assembly_base< D >::stepper_end (const S & shape,
    layout_type l ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 921 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xoptional_assembly_base< D >::stepper_end (const S & shape,
    layout_type l ) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 907 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ storage() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::storage () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 771 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ storage() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::storage ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 765 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ strides()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::strides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the strides of the optional assembly.

    + +

    Definition at line 364 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::unchecked (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the optional assembly, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 552 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the optional assembly.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the optional assembly. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the optional assembly, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    + +

    Definition at line 578 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ value() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::value () const
    +
    +inlinenoexcept
    +
    + +

    Return a constant expression for the values of the optional assembly.

    + +

    Definition at line 940 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ value() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_base< D >::value ()
    +
    +inlinenoexcept
    +
    + +

    Return an expression for the values of the optional assembly.

    + +

    Definition at line 931 of file xoptional_assembly_base.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xconst_iterable< D >

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    friend class xconst_iterable< D >
    +
    +friend
    +
    + +

    Definition at line 265 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ xiterable< D >

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    friend class xiterable< D >
    +
    +friend
    +
    + +

    Definition at line 265 of file xoptional_assembly_base.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    bool xt::xoptional_assembly_base< D >::contiguous_layout = raw_value_expression::contiguous_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 82 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    layout_type xt::xoptional_assembly_base< D >::static_layout = raw_value_expression::static_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 81 of file xoptional_assembly_base.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__base.js b/classxt_1_1xoptional__assembly__base.js new file mode 100644 index 000000000..45824d7ec --- /dev/null +++ b/classxt_1_1xoptional__assembly__base.js @@ -0,0 +1,40 @@ +var classxt_1_1xoptional__assembly__base = +[ + [ "at", "classxt_1_1xoptional__assembly__base.html#a73dd5d1abc3eeb977466ea06cbd010a6", null ], + [ "at", "classxt_1_1xoptional__assembly__base.html#ab6aeecb3fd2184aa49cf51142487ae31", null ], + [ "back", "classxt_1_1xoptional__assembly__base.html#a30a6a24dfa921de015892bddeef5e731", null ], + [ "back", "classxt_1_1xoptional__assembly__base.html#a8d17eac6565a38c69ce3597b087daa24", null ], + [ "backstrides", "classxt_1_1xoptional__assembly__base.html#a0af0bee6bcff1b475520937f31b84bd5", null ], + [ "broadcast_shape", "classxt_1_1xoptional__assembly__base.html#a98fdda9ecaf31ce8310614ad46aee9cd", null ], + [ "dimension", "classxt_1_1xoptional__assembly__base.html#a89f917b17d7b6ded98b95ba5f9c52de2", null ], + [ "element", "classxt_1_1xoptional__assembly__base.html#a1878f869c91ab899acc2fc560990538c", null ], + [ "element", "classxt_1_1xoptional__assembly__base.html#afe8cc2e4841489d3f1af56dbab957af3", null ], + [ "fill", "classxt_1_1xoptional__assembly__base.html#a6b2d66863b5c7e149d54f75d3911d34d", null ], + [ "flat", "classxt_1_1xoptional__assembly__base.html#abdea1fd8c021f170b2b34fbfae36f2db", null ], + [ "flat", "classxt_1_1xoptional__assembly__base.html#a2ab81721e7b9e8986206742c4baddf71", null ], + [ "front", "classxt_1_1xoptional__assembly__base.html#a0e191af3d00801e0018161ab739fc6d2", null ], + [ "front", "classxt_1_1xoptional__assembly__base.html#aacfa0f794bd3a92bf3ad57833861f73e", null ], + [ "has_linear_assign", "classxt_1_1xoptional__assembly__base.html#a7e2c9d6439909805db95ebe75339fc06", null ], + [ "has_value", "classxt_1_1xoptional__assembly__base.html#a4501b171b337744f6c013a9a46c6414b", null ], + [ "has_value", "classxt_1_1xoptional__assembly__base.html#af274b99476f869609568a3e09fcf3c55", null ], + [ "in_bounds", "classxt_1_1xoptional__assembly__base.html#a109b7cd1df5661aaacc763e2c914795d", null ], + [ "layout", "classxt_1_1xoptional__assembly__base.html#a894c8a27844c4543906eb44fb33f579e", null ], + [ "operator()", "classxt_1_1xoptional__assembly__base.html#aea309f566b610b826a2609bb32b63d25", null ], + [ "operator()", "classxt_1_1xoptional__assembly__base.html#ab5abb6c1e1c8c57c1662421c5f679b5a", null ], + [ "operator[]", "classxt_1_1xoptional__assembly__base.html#ab9a1749164786ed873b216223098fe31", null ], + [ "operator[]", "classxt_1_1xoptional__assembly__base.html#af783d13bcc3bbd5082fdc79f8f2aeee8", null ], + [ "periodic", "classxt_1_1xoptional__assembly__base.html#a1b77e82dc265d815b17f17d337d96636", null ], + [ "periodic", "classxt_1_1xoptional__assembly__base.html#a282a52135c367ae4d80db9575f41d3a5", null ], + [ "reshape", "classxt_1_1xoptional__assembly__base.html#adcf1eb03fa74eac4bfd3c1c53647e841", null ], + [ "resize", "classxt_1_1xoptional__assembly__base.html#ad75f3602dcf419d0d35af7121da5e802", null ], + [ "resize", "classxt_1_1xoptional__assembly__base.html#a6679efb40275d9066e15627f79430759", null ], + [ "resize", "classxt_1_1xoptional__assembly__base.html#a346e0ff791f6279005d0229311e62b75", null ], + [ "shape", "classxt_1_1xoptional__assembly__base.html#a574aec951fe205155709a7871055ec75", null ], + [ "shape", "classxt_1_1xoptional__assembly__base.html#a58bcff261d17d4b7e5b89a9d4ac6a362", null ], + [ "size", "classxt_1_1xoptional__assembly__base.html#a21f778be8956cf3c7c72aa37169a0d2a", null ], + [ "strides", "classxt_1_1xoptional__assembly__base.html#aa1afe87047106cd980f036335b978199", null ], + [ "unchecked", "classxt_1_1xoptional__assembly__base.html#afca63e0308421875f479c8373eea66d3", null ], + [ "unchecked", "classxt_1_1xoptional__assembly__base.html#a53735c2da40556583e93ec94c618b325", null ], + [ "value", "classxt_1_1xoptional__assembly__base.html#ad6761e5fda241e0eed545c4b545d9f1c", null ], + [ "value", "classxt_1_1xoptional__assembly__base.html#a5b5b3c3f0201b416989eb3cc388c9ea2", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xoptional__assembly__base.png b/classxt_1_1xoptional__assembly__base.png new file mode 100644 index 0000000000000000000000000000000000000000..d147d6279be876d37e40ecdd1d0bfa713062ae25 GIT binary patch literal 1613 zcmcJPX;70_6ox-U3Wy+Br+^T(C5%!OlqiB97+C}Y3J4-1JCPu}5E9m~XbUO=HHkz@ zGAiq^CNTm9+0mqum?)q^SVD<30!cA~K|n}TJJy+Y+JC(>_kEvp&fFh&=FEH5)7@Ef z)AmgO0B9my9K8TQiK5^uYRU@Lh-Ge8n1Sbs)5qmoT*UE)RVm2y#Yo2@f_YzIs^bJ!w5&a(8kKSAPF5aERm+>wXxoZzzO zZbK=#X#R-q8wuNcMj97!?pZjGq|*7}K{0V^4!w-SovLjRo=-bU*s(+>RDixx+6Oau zDam^zmjZ)Y%S&R_bJyujgSVZcF(6$i;MGWo*I%CRl7{aNp^UVzT6>^IPb9I^eD?|2 zS0IQL{aHHPMyo{frq$b))oO(BI54-zX*=jGtHs3mxSEw}krS3hC-xvj-Eze=>n6*Z?VVq%>41BbH#221`90)tWiCK>(Q@gQ^ar3v^!zE|qICp}IB?|2+BGNlQL zYJTJ|u^GEtGGdzgfD+lyt|I$}eCtAzR|{IItLl$7`KPZ?J4ohL*QN)jYYOi+Ou*}* znO?kA5F)FlWSTV;dv$BoRenwEvD(4`!X<-_i`KQV$%N}i|Q z-!_zP5lxK+4NjVszpiU=ibBaOxyXqATpX&7?U%{LU@swQgU$PKqv~fPnv++TLr?}g z=SN4_F_Mn_Jn3K)rSbcMjWSha1b+r|U{*NMiWazAM4P+42#8J4#jtpkwu1HER@mIF zLP@xaYhek4Lrz&ac(75LxcG9FHgzapW>R-1{+ym~8PpZV*donAvp6w%I}P)zBY!M` zOl4r>z?ENYZSz>Hz8;Qve-;$$u5UddzEz?U%HnX~e~9U4(FIK^w^b1Fa3E7B7*NV~ z=+(;h?(DSRlI`&anI$U7O+mrEn%TYz|6gxrDTRz)x6PO)FU;rcMdUzRjl?c^-`+xK zs_`cXrxBo$MQnD*QgRnzD6sOagTQ5=n<0Qdb8?-ZS+fK2_aFI5Tn2;z>6vcx42plm z%-ffo58F*!F0tKBy5c=f`r)EvJ|^+=)A^}k3y1v&$+hE040Xdy^tytXfzF;N+GYl~ z3c^o2s>(d2K`Lf0!^c;(K?J|O3S0SkO$Ke+e(kTuT*TPQ#7Tkm#!E(LzeX~N>))L12M|>AMuTj!c3X0N2TpWmq zGB-Zt>u + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_assembly_linear_iterator< VE, FE, is_const > Member List
    +
    +
    + +

    This is the complete list of members for xt::xoptional_assembly_linear_iterator< VE, FE, is_const >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + +
    base_type typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    difference_type typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    flag_iterator typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    operator*() const (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator++() (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator+=(difference_type n) (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator-(const self_type &rhs) const (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator--() (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator-=(difference_type n) (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator->() const (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator<(const self_type &rhs) const (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    operator==(const self_type &rhs) const (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    pointer typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    reference typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    self_type typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    value_iterator typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    value_type typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    xoptional_assembly_linear_iterator(value_iterator value_it, flag_iterator flag_it) (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >inline
    xoptional_assembly_storage_type typedef (defined in xt::xoptional_assembly_linear_iterator< VE, FE, is_const >)xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__linear__iterator.html b/classxt_1_1xoptional__assembly__linear__iterator.html new file mode 100644 index 000000000..f7037d096 --- /dev/null +++ b/classxt_1_1xoptional__assembly__linear__iterator.html @@ -0,0 +1,650 @@ + + + + + + + +xtensor: xt::xoptional_assembly_linear_iterator< VE, FE, is_const > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly_linear_iterator< VE, FE, is_const > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xoptional_assembly_linear_iterator< VE, FE, is_const >:
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xoptional_assembly_linear_iterator<VE, FE, is_const>
     
    using base_type
     
    using xoptional_assembly_storage_type = xoptional_assembly_storage<VE, FE>
     
    using value_iterator
     
    using flag_iterator
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using pointer = typename base_type::pointer
     
    using difference_type = typename base_type::difference_type
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xoptional_assembly_linear_iterator (value_iterator value_it, flag_iterator flag_it)
     
    self_typeoperator++ ()
     
    self_typeoperator-- ()
     
    self_typeoperator+= (difference_type n)
     
    self_typeoperator-= (difference_type n)
     
    difference_type operator- (const self_type &rhs) const
     
    reference operator* () const
     
    pointer operator-> () const
     
    bool operator== (const self_type &rhs) const
     
    bool operator< (const self_type &rhs) const
     
    +

    Detailed Description

    +
    template<class VE, class FE, bool is_const>
    +class xt::xoptional_assembly_linear_iterator< VE, FE, is_const >
    +

    Definition at line 169 of file xoptional_assembly_storage.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::base_type
    +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::difference_type = typename base_type::difference_type
    +
    + +

    Definition at line 191 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ flag_iterator

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::flag_iterator
    +
    +Initial value:
    std::conditional_t<
    +
    is_const,
    +
    typename xoptional_assembly_storage_type::flag_storage::const_iterator,
    +
    typename xoptional_assembly_storage_type::flag_storage::iterator>
    +
    +

    Definition at line 183 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 190 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::reference = typename base_type::reference
    +
    + +

    Definition at line 189 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::self_type = xoptional_assembly_linear_iterator<VE, FE, is_const>
    +
    + +

    Definition at line 174 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value_iterator

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::value_iterator
    +
    +Initial value:
    std::conditional_t<
    +
    is_const,
    +
    typename xoptional_assembly_storage_type::value_storage::const_iterator,
    +
    typename xoptional_assembly_storage_type::value_storage::iterator>
    +
    +

    Definition at line 179 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 188 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_storage_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator< VE, FE, is_const >::xoptional_assembly_storage_type = xoptional_assembly_storage<VE, FE>
    +
    + +

    Definition at line 178 of file xoptional_assembly_storage.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xoptional_assembly_linear_iterator()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly_linear_iterator< VE, FE, C >::xoptional_assembly_linear_iterator (value_iterator value_it,
    flag_iterator flag_it )
    +
    +inline
    +
    + +

    Definition at line 486 of file xoptional_assembly_storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 535 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator++()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator++ ()
    +
    +inline
    +
    + +

    Definition at line 496 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator+=()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator+= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 512 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator-()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator- (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 528 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator--()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator-- ()
    +
    +inline
    +
    + +

    Definition at line 504 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator-=()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator-= (difference_type n)
    +
    +inline
    +
    + +

    Definition at line 520 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator->()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator-> () const
    +
    +inline
    +
    + +

    Definition at line 541 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator<()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    bool xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator< (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 553 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class VE, class FE, bool C>
    + + + + + +
    + + + + + + + +
    bool xt::xoptional_assembly_linear_iterator< VE, FE, C >::operator== (const self_type & rhs) const
    +
    +inline
    +
    + +

    Definition at line 547 of file xoptional_assembly_storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__linear__iterator.png b/classxt_1_1xoptional__assembly__linear__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..58f8cca38626690e2a9e22e0e3e8373449ffa7f5 GIT binary patch literal 1696 zcmcIl`#aNn9AD-1R8K1DIO#@gq}n*SZ4-`6`Zl38WFjTEu}K*U6P0l=*7|P{*)i38CIG-OrpZDwidOh#w`8=Q3>-nU(IyjV4d zE$&4iw>|>rdgS6%oWxX4UfZD z1doWeMe_$tr5t$0=rBFi1;vT9NqZW7<1)1%-6yS}yjG~XNKW#*4)q?iYu9NP|5fs| zS{c}OlVqJ^$3TQTVi^$$D4|XefIDUJs=2{iA|9K4APe{)uh25@C8qw}?jv~O?Vr8) z=HUWa6x!-vUcRhT#{TYGKM9N>@Pghmqt?S&NLknyB|4&#(>nRMHB-NR(Wk83xc1MY z2ca=fE7%H?cgjls6fHbH1G`sUbVw9w7-R2Ow(WGYVZovBTIIPXQoa@XZspN(_V!*`Z;P_H~fv+hX7QX z{j13%jeGm|r7tOb+Qd~$=J4!#N|EfaHd1(_mEo^iue=*D8D^j@UpH`Pp0Fq*HKKKz{pz61_WnB9}@3En@thP6L~=h84r|%htbL6G6=|Y>(@A za!GvozHLBaGGi;n9iyBq-p`rOXF4}bX7%28b~s7nO=U3=-DlzHnG8Ci^ArA4orCm} zQAlN8_}xM2MBT^X)_qNGb)^mHk)_cR8#nf+RONyySX#LFd6rO`9Jxfy#+8hkJX6Uh>LtR>JE~JUuP0elQIzf|^5Zks7e(QW>8O9w>GhM^`Q)*Y*#!!Lpca3H zJ3fX0tUcBWxy>qi<;KN=#d-vLUh^Ff3S3?=HQWb8&CzOBtQ)8K2nHO71~VlLD2!o- zB?64CKrZa3t)~jv$;r?a&qwdRrq;J79mRF4-W1px8GwlX6VbA8PLTD_ zw>^S^y?p$N0!v)4yDA69QM(0cW)M~%gMj&11%-g|0LOUZu%P_l4>|M4i2q&Qw^u_0 zz+kp&{J!d(JcVS)T|D#%CU*{v0q+hXYb@~%S5ux3<6HpQ)+q}DUyz>BSgm@<6|O|q zbeT<#T5EiwKtC*=A|fI!WGeHX{aY4xz&ljQm0||ztnU#lH?K-N0HMpdAjpz`Q}`o3 z<|$OI-!6rzI^Bsg_GfKo#?j}$@-}scke&w{_Smv}18H#~BV~eqSshYBnoeM9dC1pE zk=0hRMpO9`(4&jEX?;-S)^RdhDz%wCzdh}=MCKGF5uY1Sy2}egW)nEtGYqEluAO@T z!ClhwmhoGI{JAQR?*epEmi@3yU12%O?`jhVEg4L3N>H^@4=;>+;gfD6%R zl#e`<-5KkGy^goQx1=zShAWKVEM(*kuiig^@glZd!L)p)$b^&1Js;M;%Hy;n@5J%B@_LSSQ+c)2UGC<|k$h_WW{Sfv)7TWGc{>|M7*0#?;eetOQ|zvb4s;xFxpFJ$eBAOCW%QGp6E*Z{olCKvH@D literal 0 HcmV?d00001 diff --git a/classxt_1_1xoptional__assembly__stepper-members.html b/classxt_1_1xoptional__assembly__stepper-members.html new file mode 100644 index 000000000..f2065df70 --- /dev/null +++ b/classxt_1_1xoptional__assembly__stepper-members.html @@ -0,0 +1,141 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_assembly_stepper< D, is_const > Member List
    +
    +
    + +

    This is the complete list of members for xt::xoptional_assembly_stepper< D, is_const >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + +
    assembly_type typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    difference_type typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    flag_stepper typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    operator*() const (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    pointer typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    raw_flag_expression typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    raw_value_expression typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    reference typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    reset(size_type dim) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    reset_back(size_type dim) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    self_type typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    size_type typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    step(size_type dim) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    step(size_type dim, size_type n) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    step_back(size_type dim) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    step_back(size_type dim, size_type n) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    to_begin() (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    to_end(layout_type l) (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    value_stepper typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    value_type typedef (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >
    xoptional_assembly_stepper(value_stepper vs, flag_stepper fs) noexcept (defined in xt::xoptional_assembly_stepper< D, is_const >)xt::xoptional_assembly_stepper< D, is_const >inline
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__stepper.html b/classxt_1_1xoptional__assembly__stepper.html new file mode 100644 index 000000000..9aaa25d09 --- /dev/null +++ b/classxt_1_1xoptional__assembly__stepper.html @@ -0,0 +1,687 @@ + + + + + + + +xtensor: xt::xoptional_assembly_stepper< D, is_const > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly_stepper< D, is_const > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xoptional_assembly_stepper<D, is_const>
     
    using assembly_type = typename D::assembly_type
     
    using value_type = typename assembly_type::value_type
     
    using reference
     
    using pointer = std::conditional_t<is_const, typename assembly_type::const_pointer, typename assembly_type::pointer>
     
    using size_type = typename assembly_type::size_type
     
    using difference_type = typename assembly_type::difference_type
     
    using raw_value_expression = typename assembly_type::raw_value_expression
     
    using raw_flag_expression = typename assembly_type::raw_flag_expression
     
    using value_stepper
     
    using flag_stepper
     
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    Broadcasting
     xoptional_assembly_stepper (value_stepper vs, flag_stepper fs) noexcept
     
    void step (size_type dim)
     
    void step_back (size_type dim)
     
    void step (size_type dim, size_type n)
     
    void step_back (size_type dim, size_type n)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    reference operator* () const
     
    +

    Detailed Description

    +
    template<class D, bool is_const>
    +class xt::xoptional_assembly_stepper< D, is_const >
    +

    Definition at line 276 of file xoptional_assembly_base.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ assembly_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::assembly_type = typename D::assembly_type
    +
    + +

    Definition at line 281 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::difference_type = typename assembly_type::difference_type
    +
    + +

    Definition at line 287 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ flag_stepper

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::flag_stepper
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename raw_flag_expression::const_stepper, typename raw_flag_expression::stepper>
    +
    +

    Definition at line 292 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::pointer = std::conditional_t<is_const, typename assembly_type::const_pointer, typename assembly_type::pointer>
    +
    + +

    Definition at line 285 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ raw_flag_expression

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::raw_flag_expression = typename assembly_type::raw_flag_expression
    +
    + +

    Definition at line 289 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ raw_value_expression

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::raw_value_expression = typename assembly_type::raw_value_expression
    +
    + +

    Definition at line 288 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::reference
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename assembly_type::const_reference, typename assembly_type::reference>
    +
    +

    Definition at line 283 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::self_type = xoptional_assembly_stepper<D, is_const>
    +
    + +

    Definition at line 280 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::size_type = typename assembly_type::size_type
    +
    + +

    Definition at line 286 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ value_stepper

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::value_stepper
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename raw_value_expression::const_stepper, typename raw_value_expression::stepper>
    +
    +

    Definition at line 290 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class D, bool is_const>
    + + + + +
    using xt::xoptional_assembly_stepper< D, is_const >::value_type = typename assembly_type::value_type
    +
    + +

    Definition at line 282 of file xoptional_assembly_base.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xoptional_assembly_stepper()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly_stepper< D, C >::xoptional_assembly_stepper (value_stepper vs,
    flag_stepper fs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 980 of file xoptional_assembly_base.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_stepper< D, C >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 1043 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1015 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1022 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ step() [1/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::step (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 987 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ step() [2/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::step (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 1001 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ step_back() [1/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::step_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 994 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ step_back() [2/2]

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::step_back (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 1008 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 1029 of file xoptional_assembly_base.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class D, bool C>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_stepper< D, C >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 1036 of file xoptional_assembly_base.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__storage-members.html b/classxt_1_1xoptional__assembly__storage-members.html new file mode 100644 index 000000000..abf84263b --- /dev/null +++ b/classxt_1_1xoptional__assembly__storage-members.html @@ -0,0 +1,172 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_assembly_storage< VE, FE > Member List
    +
    +
    + +

    This is the complete list of members for xt::xoptional_assembly_storage< VE, FE >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    back() const (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    begin() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    begin() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    cbegin() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    cend() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    const_iterator typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    const_pointer typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    const_reference typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    const_reverse_iterator typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    crbegin() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    crend() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    data() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    data() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    difference_type typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    empty() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    end() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    end() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    flag_reference typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    flag_storage typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    front() (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    front() const (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    has_value() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    has_value() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    is_flag_const (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >static
    is_val_const (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >static
    iterator typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    operator=(const xoptional_assembly_storage &) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    operator=(xoptional_assembly_storage &&) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    operator[](size_type i) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    operator[](size_type i) const (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    pointer typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    rbegin() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    rbegin() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    reference typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    rend() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    rend() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    resize(size_type size) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    reverse_iterator typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    self_type typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    size() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    size_type typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    swap(self_type &rhs) noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    val_reference typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    value() noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    value() const noexcept (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    value_storage typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    value_type typedef (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >
    xoptional_assembly_storage(const VE1 &value_stor, const FE1 &flag_stor) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    xoptional_assembly_storage(VE1 &value_stor, FE1 &flag_stor) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    xoptional_assembly_storage(const xoptional_assembly_storage &) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    xoptional_assembly_storage(xoptional_assembly_storage &&) (defined in xt::xoptional_assembly_storage< VE, FE >)xt::xoptional_assembly_storage< VE, FE >inline
    +
    + + + + diff --git a/classxt_1_1xoptional__assembly__storage.html b/classxt_1_1xoptional__assembly__storage.html new file mode 100644 index 000000000..68bcaa104 --- /dev/null +++ b/classxt_1_1xoptional__assembly__storage.html @@ -0,0 +1,1592 @@ + + + + + + + +xtensor: xt::xoptional_assembly_storage< VE, FE > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly_storage< VE, FE > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xoptional_assembly_storage<VE, FE>
     
    using value_storage = std::remove_reference_t<VE>
     
    using flag_storage = std::remove_reference_t<FE>
     
    using value_type = xtl::xoptional<typename value_storage::value_type, typename flag_storage::value_type>
     
    using val_reference
     
    using flag_reference
     
    using reference = xtl::xoptional<val_reference, flag_reference>
     
    using const_reference = xtl::xoptional<typename value_storage::const_reference, typename flag_storage::const_reference>
     
    using pointer = xtl::xclosure_pointer<reference>
     
    using const_pointer = xtl::xclosure_pointer<const_reference>
     
    using size_type = typename value_storage::size_type
     
    using difference_type = typename value_storage::difference_type
     
    using iterator = xoptional_assembly_linear_iterator<VE, FE, false>
     
    using const_iterator = xoptional_assembly_linear_iterator<VE, FE, true>
     
    using reverse_iterator = std::reverse_iterator<iterator>
     
    using const_reverse_iterator = std::reverse_iterator<const_iterator>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class VE1, class FE1>
     xoptional_assembly_storage (const VE1 &value_stor, const FE1 &flag_stor)
     
    template<class VE1, class FE1>
     xoptional_assembly_storage (VE1 &value_stor, FE1 &flag_stor)
     
     xoptional_assembly_storage (const xoptional_assembly_storage &)
     
    xoptional_assembly_storageoperator= (const xoptional_assembly_storage &)
     
     xoptional_assembly_storage (xoptional_assembly_storage &&)
     
    xoptional_assembly_storageoperator= (xoptional_assembly_storage &&)
     
    bool empty () const noexcept
     
    size_type size () const noexcept
     
    void resize (size_type size)
     
    reference operator[] (size_type i)
     
    const_reference operator[] (size_type i) const
     
    reference front ()
     
    const_reference front () const
     
    reference back ()
     
    const_reference back () const
     
    pointer data () noexcept
     
    const_pointer data () const noexcept
     
    iterator begin () noexcept
     
    iterator end () noexcept
     
    const_iterator begin () const noexcept
     
    const_iterator end () const noexcept
     
    const_iterator cbegin () const noexcept
     
    const_iterator cend () const noexcept
     
    reverse_iterator rbegin () noexcept
     
    reverse_iterator rend () noexcept
     
    const_reverse_iterator rbegin () const noexcept
     
    const_reverse_iterator rend () const noexcept
     
    const_reverse_iterator crbegin () const noexcept
     
    const_reverse_iterator crend () const noexcept
     
    void swap (self_type &rhs) noexcept
     
    value_storage & value () noexcept
     
    const value_storage & value () const noexcept
     
    flag_storage & has_value () noexcept
     
    const flag_storage & has_value () const noexcept
     
    + + + + + +

    +Static Public Attributes

    static constexpr bool is_val_const = std::is_const<value_storage>::value
     
    static constexpr bool is_flag_const = std::is_const<flag_storage>::value
     
    +

    Detailed Description

    +
    template<class VE, class FE>
    +class xt::xoptional_assembly_storage< VE, FE >
    +

    Definition at line 27 of file xoptional_assembly_storage.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::const_iterator = xoptional_assembly_linear_iterator<VE, FE, true>
    +
    + +

    Definition at line 54 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::const_pointer = xtl::xclosure_pointer<const_reference>
    +
    + +

    Definition at line 48 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::const_reference = xtl::xoptional<typename value_storage::const_reference, typename flag_storage::const_reference>
    +
    + +

    Definition at line 45 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::const_reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 56 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::difference_type = typename value_storage::difference_type
    +
    + +

    Definition at line 51 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ flag_reference

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::flag_reference
    +
    +Initial value:
    std::
    +
    conditional_t<is_flag_const, typename flag_storage::const_reference, typename flag_storage::reference>
    +
    +

    Definition at line 42 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ flag_storage

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::flag_storage = std::remove_reference_t<FE>
    +
    + +

    Definition at line 34 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::iterator = xoptional_assembly_linear_iterator<VE, FE, false>
    +
    + +

    Definition at line 53 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::pointer = xtl::xclosure_pointer<reference>
    +
    + +

    Definition at line 47 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::reference = xtl::xoptional<val_reference, flag_reference>
    +
    + +

    Definition at line 44 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::reverse_iterator = std::reverse_iterator<iterator>
    +
    + +

    Definition at line 55 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::self_type = xoptional_assembly_storage<VE, FE>
    +
    + +

    Definition at line 31 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::size_type = typename value_storage::size_type
    +
    + +

    Definition at line 50 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ val_reference

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::val_reference
    +
    +Initial value:
    std::
    +
    conditional_t<is_val_const, typename value_storage::const_reference, typename value_storage::reference>
    +
    +

    Definition at line 40 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value_storage

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::value_storage = std::remove_reference_t<VE>
    +
    + +

    Definition at line 33 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xoptional_assembly_storage< VE, FE >::value_type = xtl::xoptional<typename value_storage::value_type, typename flag_storage::value_type>
    +
    + +

    Definition at line 36 of file xoptional_assembly_storage.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xoptional_assembly_storage() [1/4]

    + +
    +
    +
    +template<class VE, class FE>
    +
    +template<class VE1, class FE1>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly_storage< VE, FE >::xoptional_assembly_storage (const VE1 & value_stor,
    const FE1 & flag_stor )
    +
    +inline
    +
    + +

    Definition at line 221 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_storage() [2/4]

    + +
    +
    +
    +template<class VE, class FE>
    +
    +template<class VE1, class FE1>
    + + + + + +
    + + + + + + + + + + + +
    xt::xoptional_assembly_storage< VE, FE >::xoptional_assembly_storage (VE1 & value_stor,
    FE1 & flag_stor )
    +
    +inline
    +
    + +

    Definition at line 229 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_storage() [3/4]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly_storage< VE, FE >::xoptional_assembly_storage (const xoptional_assembly_storage< VE, FE > & rhs)
    +
    +inline
    +
    + +

    Definition at line 236 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_storage() [4/4]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    xt::xoptional_assembly_storage< VE, FE >::xoptional_assembly_storage (xoptional_assembly_storage< VE, FE > && rhs)
    +
    +inline
    +
    + +

    Definition at line 251 of file xoptional_assembly_storage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::back ()
    +
    +inline
    +
    + +

    Definition at line 309 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ back() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::back () const
    +
    +inline
    +
    + +

    Definition at line 315 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ begin() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::begin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 345 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ begin() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::begin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 333 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ cbegin()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::cbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 357 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ cend()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::cend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 363 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ crbegin()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::crbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 393 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ crend()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::crend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 399 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::data () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 327 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::data ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 321 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ empty()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    bool xt::xoptional_assembly_storage< VE, FE >::empty () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 266 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ end() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::end () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 351 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ end() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::end ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 339 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ front() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::front ()
    +
    +inline
    +
    + +

    Definition at line 297 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ front() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::front () const
    +
    +inline
    +
    + +

    Definition at line 303 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ has_value() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::has_value () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 430 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ has_value() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::has_value ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 424 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::operator= (const xoptional_assembly_storage< VE, FE > & rhs)
    +
    +inline
    +
    + +

    Definition at line 243 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::operator= (xoptional_assembly_storage< VE, FE > && rhs)
    +
    +inline
    +
    + +

    Definition at line 258 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator[]() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::operator[] (size_type i)
    +
    +inline
    +
    + +

    Definition at line 285 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator[]() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::operator[] (size_type i) const
    +
    +inline
    +
    + +

    Definition at line 291 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::rbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 381 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::rbegin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 369 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ rend() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::rend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 387 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ rend() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::rend ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 375 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ resize()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_storage< VE, FE >::resize (size_type size)
    +
    +inline
    +
    + +

    Definition at line 278 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 272 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ swap()

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    void xt::xoptional_assembly_storage< VE, FE >::swap (self_type & rhs)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 405 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::value () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 418 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + +
    auto xt::xoptional_assembly_storage< VE, FE >::value ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 412 of file xoptional_assembly_storage.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ is_flag_const

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + +
    bool xt::xoptional_assembly_storage< VE, FE >::is_flag_const = std::is_const<flag_storage>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 39 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ is_val_const

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + +
    bool xt::xoptional_assembly_storage< VE, FE >::is_val_const = std::is_const<value_storage>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 38 of file xoptional_assembly_storage.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xrange-members.html b/classxt_1_1xrange-members.html new file mode 100644 index 000000000..30d2a6690 --- /dev/null +++ b/classxt_1_1xrange-members.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xrange< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::xrange< T >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    contains(size_type i) const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    convert() const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    operator xrange< S >() const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    operator!=(const self_type &rhs) const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    operator()(size_type i) const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    operator==(const self_type &rhs) const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    revert_index(std::size_t i) const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    self_type typedef (defined in xt::xrange< T >)xt::xrange< T >
    size() const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    size_type typedef (defined in xt::xrange< T >)xt::xrange< T >
    step_size() const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    step_size(std::size_t i, std::size_t n=1) const noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    xrange (defined in xt::xrange< T >)xt::xrange< T >friend
    xrange()=default (defined in xt::xrange< T >)xt::xrange< T >
    xrange(size_type start_val, size_type stop_val) noexcept (defined in xt::xrange< T >)xt::xrange< T >inline
    +
    + + + + diff --git a/classxt_1_1xrange.html b/classxt_1_1xrange.html new file mode 100644 index 000000000..a960d211d --- /dev/null +++ b/classxt_1_1xrange.html @@ -0,0 +1,596 @@ + + + + + + + +xtensor: xt::xrange< T > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xrange< T > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xrange< T >:
    +
    +
    + + +xt::xslice< xrange< T > > + +
    + + + + + + + + + +

    +Public Types

    using size_type = T
     
    using self_type = xrange<T>
     
    - Public Types inherited from xt::xslice< xrange< T > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xrange (size_type start_val, size_type stop_val) noexcept
     
    template<std::convertible_to< T > S>
     operator xrange< S > () const noexcept
     
    template<std::convertible_to< T > S>
    xrange< S > convert () const noexcept
     
    size_type operator() (size_type i) const noexcept
     
    size_type size () const noexcept
     
    size_type step_size () const noexcept
     
    size_type step_size (std::size_t i, std::size_t n=1) const noexcept
     
    size_type revert_index (std::size_t i) const noexcept
     
    bool contains (size_type i) const noexcept
     
    bool operator== (const self_type &rhs) const noexcept
     
    bool operator!= (const self_type &rhs) const noexcept
     
    - Public Member Functions inherited from xt::xslice< xrange< T > >
    derived_typederived_cast () noexcept
     
    const derived_typederived_cast () const noexcept
     
    + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xslice< xrange< T > >
    xslice (const xslice &)=default
     
    xslice (xslice &&)=default
     
    +xsliceoperator= (const xslice &)=default
     
    +xsliceoperator= (xslice &&)=default
     
    +

    Detailed Description

    +
    template<class T>
    +class xt::xrange< T >
    +

    Definition at line 102 of file xslice.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ self_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xrange< T >::self_type = xrange<T>
    +
    + +

    Definition at line 107 of file xslice.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xrange< T >::size_type = T
    +
    + +

    Definition at line 106 of file xslice.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xrange()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    xt::xrange< T >::xrange (size_type start_val,
    size_type stop_val )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 990 of file xslice.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ contains()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xrange< T >::contains (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1044 of file xslice.hpp.

    + +
    +
    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xrange< S > xt::xrange< T >::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1008 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator xrange< S >()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xt::xrange< T >::operator xrange< S > () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 998 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xrange< T >::operator!= (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1056 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xrange< T >::operator() (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1014 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xrange< T >::operator== (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1050 of file xslice.hpp.

    + +
    +
    + +

    ◆ revert_index()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xrange< T >::revert_index (std::size_t i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1038 of file xslice.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xrange< T >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1020 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [1/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xrange< T >::step_size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1026 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [2/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xrange< T >::step_size (std::size_t i,
    std::size_t n = 1 ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1032 of file xslice.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xrange

    + +
    +
    +
    +template<class T>
    +
    +template<class S>
    + + + + + +
    + + + + +
    friend class xrange
    +
    +friend
    +
    + +

    Definition at line 138 of file xslice.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xrange.png b/classxt_1_1xrange.png new file mode 100644 index 0000000000000000000000000000000000000000..ca501398b9824ad5e52350f3ec8fc582d5544c9f GIT binary patch literal 633 zcmV-<0*3vGP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~00066 zNklaHWkmSg9aCe*}-y@`dB>9v{Gm<=(mk%vw+r+w$)V+<=nB^ZI_IjV27Niwr zZo86Xy{63=`1)#Y>9t+9Z~ZcUpErs=Y^IA`*WPpc zyIGsfVz#BcPfuf(4#Z%#vt-ETj@x54hkER?*+!;I%snj6Vm7{hK4y8>O-9O*etFJn z1?(t&e$I+Ywt25M^RKxekE%_QJcGCY7@lg@*Az(_I5%dmzCa}Tj34twC&@){Gm^Bi zv{{TXt_T1e#svVDWLdMzWmUCh&8}jLs;z70wFv-L+zbG0xETQ0a5Dg~;bs6}!_5G| zhMNI^4L1V-8*T;wHrxyVY`7T!*l;rdu<={WLI`0=5F}|q+)R>exS1r`FqnO?gwefOLdvs8?o z*;aeO42NcJ?>DmzD^|R1CEWE^$R3P&-gFC=#unB+)R>eENvD-2rKdjLLY+1 TN>?>b00000NkvXXu0mjfIc_Wl literal 0 HcmV?d00001 diff --git a/classxt_1_1xreducer-members.html b/classxt_1_1xreducer-members.html new file mode 100644 index 000000000..430ecf47c --- /dev/null +++ b/classxt_1_1xreducer-members.html @@ -0,0 +1,223 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer< F, CT, X, O > Member List
    +
    +
    + +

    This is the complete list of members for xt::xreducer< F, CT, X, O >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    at(Args... args) -> referencext::xaccessible< xreducer< F, CT, X, O > >inline
    at(Args... args) -> referencext::xaccessible< xreducer< F, CT, X, O > >inline
    axes_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    back() constxt::xaccessible< xreducer< F, CT, X, O > >
    back()xt::xaccessible< xreducer< F, CT, X, O > >inline
    back() constxt::xaccessible< xreducer< F, CT, X, O > >inline
    begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    bool_load_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xreducer< F, CT, X, O >inline
    build_reducer(E &&e) const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    build_reducer(E &&e, Func &&func, Opts &&opts) const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    build_reducer(E &&e) const -> rebind_t< E > (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    build_reducer(E &&e, Func &&func, Opts &&opts) const -> rebind_t< E, Func, Opts > (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    const_pointer typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    const_reference typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    const_stepper typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    contiguous_layout (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >static
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    xt::derived_cast() &noexceptxt::xexpression< xreducer< F, CT, X, O > >inline
    xt::derived_cast() const &noexceptxt::xexpression< xreducer< F, CT, X, O > >inline
    xt::derived_cast() &&noexceptxt::xexpression< xreducer< F, CT, X, O > >inline
    difference_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    dim_mapping_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    dimension() const noexceptxt::xconst_accessible< xreducer< F, CT, X, O > >inline
    element(It first, It last) const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    element(It first, It last) const -> const_referencext::xreducer< F, CT, X, O >inline
    end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    expression() const noexceptxt::xreducer< F, CT, X, O >inline
    expression_tag typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    extension_base typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    front() constxt::xaccessible< xreducer< F, CT, X, O > >
    front()xt::xaccessible< xreducer< F, CT, X, O > >inline
    front() constxt::xaccessible< xreducer< F, CT, X, O > >inline
    functors() const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    has_linear_assign(const S &strides) const noexceptxt::xreducer< F, CT, X, O >inline
    in_bounds(Args... args) constxt::xconst_accessible< xreducer< F, CT, X, O > >inline
    init_functor_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    inner_shape_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    inner_types typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    is_contiguous() const noexcept (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    iterable_base typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    layout() const noexceptxt::xreducer< F, CT, X, O >inline
    merge_functor_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    operator()(Args... args) const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    operator()(Args... args) const -> const_referencext::xreducer< F, CT, X, O >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< xreducer< F, CT, X, O > >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< xreducer< F, CT, X, O > >inline
    options() const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    periodic(Args... args) -> referencext::xaccessible< xreducer< F, CT, X, O > >inline
    periodic(Args... args) -> referencext::xaccessible< xreducer< F, CT, X, O > >inline
    pointer typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rebind_t typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    reduce_functor_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    reference typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xreducer< F, CT, X, O > >inline
    self_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    shape() const noexceptxt::xreducer< F, CT, X, O >inline
    xt::xaccessible< xreducer< F, CT, X, O > >::shape(size_type index) constxt::xconst_accessible< xreducer< F, CT, X, O > >inline
    shape_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< xreducer< F, CT, X, O > >inline
    size_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    static_layout (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >static
    stepper typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    stepper_begin(const S &shape) const noexcept (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    stepper_end(const S &shape, layout_type) const noexcept (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >inline
    substepper_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    unchecked(Args... args) const (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    unchecked(Args... args) const -> const_referencext::xreducer< F, CT, X, O >inline
    value_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    xexpression_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    xreducer(Func &&func, CTA &&e, AX &&axes, OX &&options)xt::xreducer< F, CT, X, O >inline
    xreducer_functors_type typedef (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >
    xreducer_stepper< F, CT, X, O > (defined in xt::xreducer< F, CT, X, O >)xt::xreducer< F, CT, X, O >friend
    +
    + + + + diff --git a/classxt_1_1xreducer.html b/classxt_1_1xreducer.html new file mode 100644 index 000000000..85148c4fa --- /dev/null +++ b/classxt_1_1xreducer.html @@ -0,0 +1,1907 @@ + + + + + + + +xtensor: xt::xreducer< F, CT, X, O > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer< F, CT, X, O > Class Template Reference
    +
    +
    + +

    Reducing function operating over specified axes. + More...

    + +

    #include <xreducer.hpp>

    +
    +Inheritance diagram for xt::xreducer< F, CT, X, O >:
    +
    +
    + + +xt::xsharable_expression< xreducer< F, CT, X, O > > +xt::xconst_iterable< xreducer< F, CT, X, O > > +xt::xaccessible< xreducer< F, CT, X, O > > +xt::xexpression< xreducer< F, CT, X, O > > +xt::xconst_accessible< xreducer< F, CT, X, O > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xreducer<F, CT, X, O>
     
    using inner_types = xcontainer_inner_types<self_type>
     
    using reduce_functor_type = typename inner_types::reduce_functor_type
     
    using init_functor_type = typename inner_types::init_functor_type
     
    using merge_functor_type = typename inner_types::merge_functor_type
     
    using xreducer_functors_type = xreducer_functors<reduce_functor_type, init_functor_type, merge_functor_type>
     
    using xexpression_type = typename inner_types::xexpression_type
     
    using axes_type = X
     
    using extension_base = extension::xreducer_base_t<F, CT, X, O>
     
    using expression_tag = typename extension_base::expression_tag
     
    using substepper_type = typename inner_types::substepper_type
     
    using value_type = typename inner_types::value_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer = value_type*
     
    using const_pointer = const value_type*
     
    using size_type = typename inner_types::size_type
     
    using difference_type = typename xexpression_type::difference_type
     
    using iterable_base = xconst_iterable<self_type>
     
    using inner_shape_type = typename iterable_base::inner_shape_type
     
    using shape_type = inner_shape_type
     
    using dim_mapping_type = typename select_dim_mapping_type<inner_shape_type>::type
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using bool_load_type = typename xexpression_type::bool_load_type
     
    template<class E, class Func = F, class Opts = O>
    using rebind_t = xreducer<Func, E, X, Opts>
     
    - Public Types inherited from xt::xexpression< xreducer< F, CT, X, O > >
    using derived_type
     
    - Public Types inherited from xt::xconst_iterable< xreducer< F, CT, X, O > >
    using derived_type
     
    using iterable_types
     
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xaccessible< xreducer< F, CT, X, O > >
    using base_type
     
    using derived_type
     
    using reference
     
    using size_type
     
    - Public Types inherited from xt::xconst_accessible< xreducer< F, CT, X, O > >
    using derived_type
     
    using inner_types
     
    using reference
     
    using const_reference
     
    using size_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class S>
    const_stepper stepper_begin (const S &shape) const noexcept
     
    +template<class S>
    const_stepper stepper_end (const S &shape, layout_type) const noexcept
     
    +template<class E>
    rebind_t< E > build_reducer (E &&e) const
     
    +template<class E, class Func, class Opts>
    rebind_t< E, Func, Opts > build_reducer (E &&e, Func &&func, Opts &&opts) const
     
    xreducer_functors_type functors () const
     
    const O & options () const
     
    Constructor
    template<class Func, class CTA, class AX, class OX>
     xreducer (Func &&func, CTA &&e, AX &&axes, OX &&options)
     Constructs an xreducer expression applying the specified function to the given expression over the given axes.
     
    Size and shape
    const inner_shape_type & shape () const noexcept
     Returns the shape of the expression.
     
    layout_type layout () const noexcept
     Returns the shape of the expression.
     
    bool is_contiguous () const noexcept
     
    Data
    const xexpression_type & expression () const noexcept
     Returns a constant reference to the underlying expression of the reducer.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the reducer.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the reducer.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the reducer.
     
    Broadcasting
    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the reducer to the specified parameter.
     
    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xreducer can be linearly assigned to an expression with the specified strides.
     
    template<class S>
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    template<class E>
    auto build_reducer (E &&e) const -> rebind_t< E >
     
    template<class E, class Func, class Opts>
    auto build_reducer (E &&e, Func &&func, Opts &&opts) const -> rebind_t< E, Func, Opts >
     
    - Public Member Functions inherited from xt::xexpression< xreducer< F, CT, X, O > >
    derived_typederived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    const derived_typederived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    - Public Member Functions inherited from xt::xconst_iterable< xreducer< F, CT, X, O > >
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_layout_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +const_layout_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    - Public Member Functions inherited from xt::xaccessible< xreducer< F, CT, X, O > >
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +const_reference operator[] (size_type i) const
     
    +const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    +const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +const_reference periodic (Args... args) const
     
    +reference at (Args... args)
     
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    +reference periodic (Args... args)
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    +const_reference periodic (Args... args) const
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    - Public Member Functions inherited from xt::xconst_accessible< xreducer< F, CT, X, O > >
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    size_type size () const noexcept(noexcept(derived_cast().shape()))
     Returns the size of the expression.
     
    size_type dimension () const noexcept
     Returns the number of dimensions of the expression.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    +const_reference at (Args... args) const
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    +const_reference periodic (Args... args) const
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = layout_type::dynamic
     
    static constexpr bool contiguous_layout = false
     
    + + + +

    +Friends

    class xreducer_stepper< F, CT, X, O >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xsharable_expression< xreducer< F, CT, X, O > >
    xsharable_expression (const xsharable_expression &)=default
     
    xsharable_expression (xsharable_expression &&)=default
     
    +xsharable_expressionoperator= (const xsharable_expression &)=default
     
    +xsharable_expressionoperator= (xsharable_expression &&)=default
     
    - Protected Member Functions inherited from xt::xexpression< xreducer< F, CT, X, O > >
    xexpression (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    const inner_shape_type & get_shape () const
     
    - Protected Member Functions inherited from xt::xaccessible< xreducer< F, CT, X, O > >
    xaccessible (const xaccessible &)=default
     
    xaccessible (xaccessible &&)=default
     
    +xaccessibleoperator= (const xaccessible &)=default
     
    +xaccessibleoperator= (xaccessible &&)=default
     
    - Protected Member Functions inherited from xt::xconst_accessible< xreducer< F, CT, X, O > >
    xconst_accessible (const xconst_accessible &)=default
     
    xconst_accessible (xconst_accessible &&)=default
     
    +xconst_accessibleoperator= (const xconst_accessible &)=default
     
    +xconst_accessibleoperator= (xconst_accessible &&)=default
     
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +class xt::xreducer< F, CT, X, O >

    Reducing function operating over specified axes.

    +

    The xreducer class implements an xexpression applying a reducing function to an xexpression over the specified axes.

    +
    Template Parameters
    + + + + +
    Fa tuple of functors (class xreducer_functors or compatible)
    CTthe closure type of the xexpression to reduce
    Xthe list of axes
    +
    +
    +

    The reducer's result_type is deduced from the result type of function F::reduce_functor_type when called with elements of the expression

    Template Parameters
    + + +
    CT.
    +
    +
    +
    See also
    reduce
    + +

    Definition at line 804 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ axes_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::axes_type = X
    +
    + +

    Definition at line 820 of file xreducer.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::bool_load_type = typename xexpression_type::bool_load_type
    +
    + +

    Definition at line 843 of file xreducer.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::const_pointer = const value_type*
    +
    + +

    Definition at line 830 of file xreducer.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 828 of file xreducer.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 842 of file xreducer.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 833 of file xreducer.hpp.

    + +
    +
    + +

    ◆ dim_mapping_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::dim_mapping_type = typename select_dim_mapping_type<inner_shape_type>::type
    +
    + +

    Definition at line 839 of file xreducer.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 823 of file xreducer.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::extension_base = extension::xreducer_base_t<F, CT, X, O>
    +
    + +

    Definition at line 822 of file xreducer.hpp.

    + +
    +
    + +

    ◆ init_functor_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::init_functor_type = typename inner_types::init_functor_type
    +
    + +

    Definition at line 815 of file xreducer.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::inner_shape_type = typename iterable_base::inner_shape_type
    +
    + +

    Definition at line 836 of file xreducer.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::inner_types = xcontainer_inner_types<self_type>
    +
    + +

    Definition at line 812 of file xreducer.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::iterable_base = xconst_iterable<self_type>
    +
    + +

    Definition at line 835 of file xreducer.hpp.

    + +
    +
    + +

    ◆ merge_functor_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::merge_functor_type = typename inner_types::merge_functor_type
    +
    + +

    Definition at line 816 of file xreducer.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::pointer = value_type*
    +
    + +

    Definition at line 829 of file xreducer.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class E, class Func = F, class Opts = O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::rebind_t = xreducer<Func, E, X, Opts>
    +
    + +

    Definition at line 877 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reduce_functor_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::reduce_functor_type = typename inner_types::reduce_functor_type
    +
    + +

    Definition at line 814 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::reference = typename inner_types::reference
    +
    + +

    Definition at line 827 of file xreducer.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::self_type = xreducer<F, CT, X, O>
    +
    + +

    Definition at line 811 of file xreducer.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::shape_type = inner_shape_type
    +
    + +

    Definition at line 837 of file xreducer.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 832 of file xreducer.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 841 of file xreducer.hpp.

    + +
    +
    + +

    ◆ substepper_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::substepper_type = typename inner_types::substepper_type
    +
    + +

    Definition at line 825 of file xreducer.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::value_type = typename inner_types::value_type
    +
    + +

    Definition at line 826 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::xexpression_type = typename inner_types::xexpression_type
    +
    + +

    Definition at line 819 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xreducer_functors_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer< F, CT, X, O >::xreducer_functors_type = xreducer_functors<reduce_functor_type, init_functor_type, merge_functor_type>
    +
    + +

    Definition at line 817 of file xreducer.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xreducer()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class Func, class CTA, class AX, class OX>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    xt::xreducer< F, CT, X, O >::xreducer (Func && func,
    CTA && e,
    AX && axes,
    OX && options )
    +
    +inline
    +
    + +

    Constructs an xreducer expression applying the specified function to the given expression over the given axes.

    +
    Parameters
    + + + + + +
    functhe function to apply
    ethe expression to reduce
    axesthe axes along which the reduction is performed
    optionsreducer options controlling evaluation strategy and related settings
    +
    +
    + +

    Definition at line 1406 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xreducer< F, CT, X, O >::broadcast_shape (S & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the reducer to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 1601 of file xreducer.hpp.

    + +
    +
    + +

    ◆ build_reducer() [1/2]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::build_reducer (E && e) const -> rebind_t<E> +
    +
    +inline
    +
    + +

    Definition at line 1639 of file xreducer.hpp.

    + +
    +
    + +

    ◆ build_reducer() [2/2]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class E, class Func, class Opts>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::build_reducer (E && e,
    Func && func,
    Opts && opts ) const -> rebind_t<E, Func, Opts> +
    +
    +inline
    +
    + +

    Definition at line 1651 of file xreducer.hpp.

    + +
    +
    + +

    ◆ element()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the reducer.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the number of dimensions of the reducer.
    +
    +
    + +

    Definition at line 1552 of file xreducer.hpp.

    + +
    +
    + +

    ◆ expression()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant reference to the underlying expression of the reducer.

    + +

    Definition at line 1582 of file xreducer.hpp.

    + +
    +
    + +

    ◆ functors()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    xreducer_functors_type xt::xreducer< F, CT, X, O >::functors () const
    +
    +inline
    +
    + +

    Definition at line 885 of file xreducer.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xreducer< F, CT, X, O >::has_linear_assign (const S & strides) const
    +
    +inlinenoexcept
    +
    + +

    Checks whether the xreducer can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 1613 of file xreducer.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    bool xt::xreducer< F, CT, X, O >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1489 of file xreducer.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    layout_type xt::xreducer< F, CT, X, O >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the expression.

    + +

    Definition at line 1483 of file xreducer.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the reducer.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the reducer. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the reducer.
    +
    +
    + +

    Definition at line 1508 of file xreducer.hpp.

    + +
    +
    + +

    ◆ options()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    const O & xt::xreducer< F, CT, X, O >::options () const
    +
    +inline
    +
    + +

    Definition at line 892 of file xreducer.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the expression.

    + +

    Definition at line 1474 of file xreducer.hpp.

    + +
    +
    + +

    ◆ stepper_begin()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::stepper_begin (const S & shape) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1622 of file xreducer.hpp.

    + +
    +
    + +

    ◆ stepper_end()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::stepper_end (const S & shape,
    layout_type l ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1630 of file xreducer.hpp.

    + +
    +
    + +

    ◆ unchecked()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer< F, CT, X, O >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the reducer.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the reducer. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the reducer, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 1537 of file xreducer.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xreducer_stepper< F, CT, X, O >

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + +
    friend class xreducer_stepper< F, CT, X, O >
    +
    +friend
    +
    + +

    Definition at line 906 of file xreducer.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + +
    bool xt::xreducer< F, CT, X, O >::contiguous_layout = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 846 of file xreducer.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + +
    layout_type xt::xreducer< F, CT, X, O >::static_layout = layout_type::dynamic
    +
    +staticconstexpr
    +
    + +

    Definition at line 845 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp
    • +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xreducer.js b/classxt_1_1xreducer.js new file mode 100644 index 000000000..485d42643 --- /dev/null +++ b/classxt_1_1xreducer.js @@ -0,0 +1,12 @@ +var classxt_1_1xreducer = +[ + [ "xreducer", "classxt_1_1xreducer.html#ac1a504813c1a2d91e1aa5c871bee7a77", null ], + [ "broadcast_shape", "classxt_1_1xreducer.html#a20c55f56bcedfe9f3e3662253a922073", null ], + [ "element", "classxt_1_1xreducer.html#aa6b950db4c421bef297b1b1d76047b23", null ], + [ "expression", "classxt_1_1xreducer.html#a35efc1a78c0ad4a52cef8dca2a472a83", null ], + [ "has_linear_assign", "classxt_1_1xreducer.html#a6dc809c4eefc124d5bfb4d579afea715", null ], + [ "layout", "classxt_1_1xreducer.html#aeee3a89a9dd452a00cfd55cbbfd2aa17", null ], + [ "operator()", "classxt_1_1xreducer.html#a979a86f103f655328d35e67fcc5bca7b", null ], + [ "shape", "classxt_1_1xreducer.html#aaf23386e8c796f997a2e80c71e57e74c", null ], + [ "unchecked", "classxt_1_1xreducer.html#a55be3ba3c0268968d7c6efef7621e3e4", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xreducer.png b/classxt_1_1xreducer.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8bc8745e4e0a75a61a6949dae6abaf214739ab GIT binary patch literal 3839 zcmdT{c|4SB8@AMmRHRK~FXgn6GTA9h(Sk%Ft|XE9QRoM4GOeA0vskSWRDJutz#)wMKAnh`oqE(-{l}F3H6lE%{Y$8>g#1o7y*^P}`Jo>7 zB+KxQqK%D&$Q9H0{(3dOCB?7OWs)fsTF$I9B>`zRl4 zjQad!O{lPUG$_q83%^UyDW8q?JnXRdL94aN%SUiO%Y$L{nHVP+MqHUdcs^@|AfxS| zCz^tNJi(RxzDJzQA|*9kuZu-qjD9yVV+&0kpNsfTtnEoxh*_@sbN*s1U@clnu-}16 zB}TB{x1@@Tp9M!k+VsLPX*+Nv{^=BO>QYB%12#!L-u&l~Rpom_NLayAT3lG+=yfsS z3?D*NA zVRx5-pcVfaWG!tfHYTSMBgINp36o;!m~T<8FtLzQuDBL$Y8(^_8Xwg6Ux0tr@&5xj zr}$IM%#~-$MrEUor^($~XLg=zCOGyNWw(cv!8=buoHGlDZJ`htmVX)zL8~87@iI4+ zS5@vER>D4m+pN0!VfdHto-jnHiwr^vh!95==LJEcsCU3+8d9h#9p06>yzo?_FggipB!*Yr3qE$m>wBhNhP5ZSOWn*PDZw zjZrJ2!mch?7A{S zvfnR(25!hNrwd(VGQ9P#zyqW&O&>w_(J|tZUfKXn{h^n}q{j0|3VZri7dVLzTS5?0FF~6o@w5blOZx~x0P6#j#ogXRS_Zuo0W(V2S|5kO@ z2eYj{EvMJfvfzQg0#W`hv+;AGyOCabUOkGGf3DkdfQ+j*z)jY+)v1wT?vuNUq3$N5 znR6+b_7F21m&HvEck<}HI}R?Ah8Y zTCY=f+tJE#__?|VvJ`gXcpt@Wo4X408wX|`abC9ht=XgGLHpVg%6K3J3qiZe(&>ZP zV)ARC)YI6n?a%3P7QLLzBA5RAoZcQg9tpSO!$Uq=)UC32OYw33O+??yE)@G{5$Jw9 zrcrxOnr(4z6#oHXB%7)2@F@Ox-@MAD+=I_D)U>Fd>nVZHZa7fKZN$Ec(=M_YkA^*?m|{A!p{DmHdzyAvtuSD<9D(A3sv%wt>1MeJCZ7;#HJa zHF;BFCNl8=n$3J?hBwNZ>xKpNZ^R~!5WKfJtBja^pgBjX4qzII9g7_gnz5J~`z-F9 zgo9!7{PdfEPSlx{0bD1~kRWq2%Q1^bX+uJOCz=gEsD7A&{&TIw+$YW8PQt6B%I2{pm(@Jfa`-)< z_+K1Ba(ug6MDB^SzOB6(ayMPNJgNBeJ*$yj+vpaN6v9=00q()2`}eAYE{!HxdSha8 z?zKU+?MEdi!gf>Y0|>L9dN&uZsdS&)qksf8mjjZyohL?Z&G|q{MxTtrLPP>qE=j2TRhUkXy60@lO-sTKno{Rea;Ar}xEgN$SY+~9gH@GRZm1ugGueLt4X(!xR*&g0 z+}$%J(8m?g#%Ku1ddLLQG3GwA0thF`ZXBp8QYqvaj6Eojl#fA~FJY{aFDM4_eY%pM zhzkb=KiX1C8i4YeD+8Ala!uu4&A%hPL|fNx9vLWocja*8$kMM@za_!nYvcMu>P7YU z)~9|OClQb;fm z{}&0o@${fEnH-)d-MM-vcf2Js7TGr zv6&+R(8ds6Z0#r)IR<{k$*thk*fbKn``r?x-LwS@>>bA%#e_vlq)q}m+euIrDTgFgxe>Wt^J$$uI5|d^yri6-n*k%o!30bRj1VLyDkozEs1j?AWZXH= z_;9=XTNYl9fm`=I-qe*KN0?lo<=ObmXe*Ex_2qQ%hD1b>3r%)K8Hzn8O$RtPmT>G7 z(qtJ!)2WrY#cQGxNB5Zd>c8j1WvO%r`_jZgExFB0h}T@?)@vqBU3ePt?e&4`g^;&J zcgppc1%@wB?3{NR0xq4x0yF7py|0->6pInV-$2eNCpgn|ucp(Tqg|KQTYFwZs|$1e z8stdDXXiew09n#wXpJqH+uw;oX*N|gc + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_stepper< F, CT, X, O > Member List
    +
    +
    + +

    This is the complete list of members for xt::xreducer_stepper< F, CT, X, O >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    operator*() const (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    pointer typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    reference typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    reset(size_type dim) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    reset_back(size_type dim) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    self_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    shape_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    size_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    step(size_type dim) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    step(size_type dim, size_type n) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    step_back(size_type dim) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    step_back(size_type dim, size_type n) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    substepper_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    to_begin() (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    to_end(layout_type l) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    value_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    xexpression_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    xreducer_stepper(const xreducer_type &red, size_type offset, bool end=false, layout_type l=default_assignable_layout(xexpression_type::static_layout)) (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >inline
    xreducer_type typedef (defined in xt::xreducer_stepper< F, CT, X, O >)xt::xreducer_stepper< F, CT, X, O >
    +
    + + + + diff --git a/classxt_1_1xreducer__stepper.html b/classxt_1_1xreducer__stepper.html new file mode 100644 index 000000000..6e322941a --- /dev/null +++ b/classxt_1_1xreducer__stepper.html @@ -0,0 +1,669 @@ + + + + + + + +xtensor: xt::xreducer_stepper< F, CT, X, O > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_stepper< F, CT, X, O > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xreducer_stepper<F, CT, X, O>
     
    using xreducer_type = xreducer<F, CT, X, O>
     
    using value_type = typename xreducer_type::value_type
     
    using reference = typename xreducer_type::value_type
     
    using pointer = typename xreducer_type::const_pointer
     
    using size_type = typename xreducer_type::size_type
     
    using difference_type = typename xreducer_type::difference_type
     
    using xexpression_type = typename xreducer_type::xexpression_type
     
    using substepper_type = typename xexpression_type::const_stepper
     
    using shape_type = typename xreducer_type::shape_type
     
    + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

     xreducer_stepper (const xreducer_type &red, size_type offset, bool end=false, layout_type l=default_assignable_layout(xexpression_type::static_layout))
     
    reference operator* () const
     
    void step (size_type dim)
     
    void step_back (size_type dim)
     
    void step (size_type dim, size_type n)
     
    void step_back (size_type dim, size_type n)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +class xt::xreducer_stepper< F, CT, X, O >
    +

    Definition at line 1086 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::difference_type = typename xreducer_type::difference_type
    +
    + +

    Definition at line 1097 of file xreducer.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::pointer = typename xreducer_type::const_pointer
    +
    + +

    Definition at line 1095 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::reference = typename xreducer_type::value_type
    +
    + +

    Definition at line 1094 of file xreducer.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::self_type = xreducer_stepper<F, CT, X, O>
    +
    + +

    Definition at line 1090 of file xreducer.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::shape_type = typename xreducer_type::shape_type
    +
    + +

    Definition at line 1101 of file xreducer.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::size_type = typename xreducer_type::size_type
    +
    + +

    Definition at line 1096 of file xreducer.hpp.

    + +
    +
    + +

    ◆ substepper_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::substepper_type = typename xexpression_type::const_stepper
    +
    + +

    Definition at line 1100 of file xreducer.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::value_type = typename xreducer_type::value_type
    +
    + +

    Definition at line 1093 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::xexpression_type = typename xreducer_type::xexpression_type
    +
    + +

    Definition at line 1099 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xreducer_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xreducer_stepper< F, CT, X, O >::xreducer_type = xreducer<F, CT, X, O>
    +
    + +

    Definition at line 1091 of file xreducer.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xreducer_stepper()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    xt::xreducer_stepper< F, CT, X, O >::xreducer_stepper (const xreducer_type & red,
    size_type offset,
    bool end = false,
    layout_type l = default_assignable_layout(xexpression_type::static_layout) )
    +
    +inline
    +
    + +

    Definition at line 1667 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    auto xt::xreducer_stepper< F, CT, X, O >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 1684 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1727 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1744 of file xreducer.hpp.

    + +
    +
    + +

    ◆ step() [1/2]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::step (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1691 of file xreducer.hpp.

    + +
    +
    + +

    ◆ step() [2/2]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::step (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 1709 of file xreducer.hpp.

    + +
    +
    + +

    ◆ step_back() [1/2]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::step_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 1700 of file xreducer.hpp.

    + +
    +
    + +

    ◆ step_back() [2/2]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::step_back (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 1718 of file xreducer.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 1760 of file xreducer.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + +
    + + + + + + + +
    void xt::xreducer_stepper< F, CT, X, O >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 1766 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xrepeat-members.html b/classxt_1_1xrepeat-members.html new file mode 100644 index 000000000..62008e1da --- /dev/null +++ b/classxt_1_1xrepeat-members.html @@ -0,0 +1,209 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xrepeat< CT, R > Member List
    +
    +
    + +

    This is the complete list of members for xt::xrepeat< CT, R >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    access(Arg arg, Args... args) const -> const_reference (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    access_impl(stepper &&s, Arg arg, Args... args) const -> const_reference (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    access_impl(stepper &&s) const -> const_reference (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    accessible_base typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    at(Args... args) const -> const_referencext::xconst_accessible< xrepeat< CT, R > >inline
    at(Args... args) const -> const_referencext::xconst_accessible< xrepeat< CT, R > >inline
    back() constxt::xconst_accessible< xrepeat< CT, R > >inline
    begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    begin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    bool_load_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xrepeat< CT, R >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cbegin() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cend() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    const_pointer typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    const_reference typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    const_stepper typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    container_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    contiguous_layout (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >static
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    xt::derived_cast() &noexceptxt::xexpression< xrepeat< CT, R > >inline
    xt::xsharable_expression< xrepeat< CT, R > >::derived_cast() const &noexceptxt::xexpression< xrepeat< CT, R > >inline
    xt::xsharable_expression< xrepeat< CT, R > >::derived_cast() &&noexceptxt::xexpression< xrepeat< CT, R > >inline
    difference_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    dimension() const noexceptxt::xconst_accessible< xrepeat< CT, R > >inline
    element(It first, It last) const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    element(It first, It last) const -> const_referencext::xrepeat< CT, R >inline
    end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    end() const noexcept -> const_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    expression() const noexceptxt::xrepeat< CT, R >inline
    expression_tag typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    extension_base typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    front() constxt::xconst_accessible< xrepeat< CT, R > >inline
    has_linear_assign(const S &strides) const noexceptxt::xrepeat< CT, R >inline
    in_bounds(Args... args) constxt::xconst_accessible< xrepeat< CT, R > >inline
    is_contiguous() const noexcept (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    iterable_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    layout() const noexceptxt::xrepeat< CT, R >inline
    operator()(Args... args) const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    operator()(Args... args) const -> const_referencext::xrepeat< CT, R >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< xrepeat< CT, R > >inline
    operator[](const S &index) const -> disable_integral_t< S, const_reference >xt::xconst_accessible< xrepeat< CT, R > >inline
    periodic(Args... args) const -> const_referencext::xconst_accessible< xrepeat< CT, R > >inline
    periodic(Args... args) const -> const_referencext::xconst_accessible< xrepeat< CT, R > >inline
    pointer typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    rbegin() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    reference typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    rend() const noexcept -> const_reverse_layout_iterator< L >xt::xconst_iterable< xrepeat< CT, R > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xconst_iterable< xrepeat< CT, R > >inline
    repeats_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    self_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    shape() const noexceptxt::xrepeat< CT, R >inline
    shape(size_type index) constxt::xrepeat< CT, R >
    shape_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    size() const noexcept(noexcept(derived_cast().shape()))xt::xrepeat< CT, R >
    size_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    static_layout (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >static
    stepper typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    stepper_begin() const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    stepper_begin(const shape_type &s) const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    stepper_end(layout_type l) const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    stepper_end(const shape_type &s, layout_type l) const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >inline
    temporary_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    unchecked(Args... args) const (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    unchecked(Args... args) const -> const_referencext::xrepeat< CT, R >inline
    value_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    xexpression_type typedef (defined in xt::xrepeat< CT, R >)xt::xrepeat< CT, R >
    xrepeat(CTA &&e, R &&repeats, size_type axis)xt::xrepeat< CT, R >explicit
    +
    + + + + diff --git a/classxt_1_1xrepeat.html b/classxt_1_1xrepeat.html new file mode 100644 index 000000000..c9a2ec150 --- /dev/null +++ b/classxt_1_1xrepeat.html @@ -0,0 +1,1644 @@ + + + + + + + +xtensor: xt::xrepeat< CT, R > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xrepeat< CT, R > Class Template Reference
    +
    +
    + +

    Expression with repeated values along an axis. + More...

    + +

    #include <xrepeat.hpp>

    +
    +Inheritance diagram for xt::xrepeat< CT, R >:
    +
    +
    + + +xt::xconst_iterable< xrepeat< CT, R > > +xt::xconst_accessible< xrepeat< CT, R > > +xt::xsharable_expression< xrepeat< CT, R > > +xt::xexpression< xrepeat< CT, R > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xrepeat<CT, R>
     
    using xexpression_type = std::decay_t<CT>
     
    using accessible_base = xconst_accessible<self_type>
     
    using extension_base = extension::xrepeat_base_t<CT, R>
     
    using expression_tag = typename extension_base::expression_tag
     
    using value_type = typename xexpression_type::value_type
     
    using shape_type = typename xexpression_type::shape_type
     
    using repeats_type = xtl::const_closure_type_t<R>
     
    using container_type = xcontainer_inner_types<xrepeat<CT, R>>
     
    using reference = typename container_type::reference
     
    using const_reference = typename container_type::const_reference
     
    using size_type = typename container_type::size_type
     
    using temporary_type = typename container_type::temporary_type
     
    using bool_load_type = typename xexpression_type::bool_load_type
     
    using pointer = typename xexpression_type::pointer
     
    using const_pointer = typename xexpression_type::const_pointer
     
    using difference_type = typename xexpression_type::difference_type
     
    using iterable_type = xiterable<xrepeat<CT, R>>
     
    using stepper = typename iterable_type::stepper
     
    using const_stepper = typename iterable_type::const_stepper
     
    - Public Types inherited from xt::xconst_iterable< xrepeat< CT, R > >
    using derived_type
     
    using iterable_types
     
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xconst_accessible< xrepeat< CT, R > >
    using derived_type
     
    using inner_types
     
    using reference
     
    using const_reference
     
    using size_type
     
    - Public Types inherited from xt::xexpression< xrepeat< CT, R > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class CTA>
     xrepeat (CTA &&e, R &&repeats, size_type axis)
     Constructs an xrepeat expression repeating the element of the specified xexpression.
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +size_type size () const noexcept(noexcept(derived_cast().shape()))
     Returns the size of the expression.
     
    +size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    Size and shape
    const shape_type & shape () const noexcept
     Returns the shape of the expression.
     
    layout_type layout () const noexcept
     Returns the layout_type of the expression.
     
    bool is_contiguous () const noexcept
     
    Data
    const xexpression_type & expression () const noexcept
     Returns a constant reference to the underlying expression of the broadcast expression.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the view.
     
    - Public Member Functions inherited from xt::xconst_iterable< xrepeat< CT, R > >
    +const_layout_iterator< L > begin () const noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +const_layout_iterator< L > end () const noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +const_layout_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +const_layout_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > rend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +const_reverse_layout_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> const_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> const_reverse_layout_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto get_cbegin (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cbegin (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_cend (bool end_index) const noexcept -> const_layout_iterator< L >
     
    auto get_cend (const S &shape, bool end_index) const noexcept -> const_broadcast_iterator< S, L >
     
    auto get_stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto get_stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    - Public Member Functions inherited from xt::xconst_accessible< xrepeat< CT, R > >
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    size_type size () const noexcept(noexcept(derived_cast().shape()))
     Returns the size of the expression.
     
    size_type dimension () const noexcept
     Returns the number of dimensions of the expression.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    +const_reference at (Args... args) const
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    +const_reference periodic (Args... args) const
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    - Public Member Functions inherited from xt::xexpression< xrepeat< CT, R > >
    derived_typederived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    const derived_typederived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = xexpression_type::static_layout
     
    static constexpr bool contiguous_layout = false
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the function to the specified parameter.
     
    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xbroadcast can be linearly assigned to an expression with the specified strides.
     
    const_stepper stepper_begin () const
     
    const_stepper stepper_begin (const shape_type &s) const
     
    const_stepper stepper_end (layout_type l) const
     
    const_stepper stepper_end (const shape_type &s, layout_type l) const
     
    template<class Arg, class... Args>
    auto access (Arg arg, Args... args) const -> const_reference
     
    template<std::size_t I, class Arg, class... Args>
    auto access_impl (stepper &&s, Arg arg, Args... args) const -> const_reference
     
    template<std::size_t I>
    auto access_impl (stepper &&s) const -> const_reference
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    const inner_shape_type & get_shape () const
     
    - Protected Member Functions inherited from xt::xconst_accessible< xrepeat< CT, R > >
    xconst_accessible (const xconst_accessible &)=default
     
    xconst_accessible (xconst_accessible &&)=default
     
    +xconst_accessibleoperator= (const xconst_accessible &)=default
     
    +xconst_accessibleoperator= (xconst_accessible &&)=default
     
    - Protected Member Functions inherited from xt::xsharable_expression< xrepeat< CT, R > >
    xsharable_expression (const xsharable_expression &)=default
     
    xsharable_expression (xsharable_expression &&)=default
     
    +xsharable_expressionoperator= (const xsharable_expression &)=default
     
    +xsharable_expressionoperator= (xsharable_expression &&)=default
     
    - Protected Member Functions inherited from xt::xexpression< xrepeat< CT, R > >
    xexpression (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    +

    Detailed Description

    +
    template<class CT, class R>
    +class xt::xrepeat< CT, R >

    Expression with repeated values along an axis.

    +

    The xrepeat class implements the repetition of the elements of an xexpression along a given axis. xrepeat is not meant to be used directly, but only with the repeat helper functions.

    +
    See also
    repeat
    + +

    Definition at line 96 of file xrepeat.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accessible_base

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::accessible_base = xconst_accessible<self_type>
    +
    + +

    Definition at line 105 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::bool_load_type = typename xexpression_type::bool_load_type
    +
    + +

    Definition at line 122 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::const_pointer = typename xexpression_type::const_pointer
    +
    + +

    Definition at line 124 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::const_reference = typename container_type::const_reference
    +
    + +

    Definition at line 115 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::const_stepper = typename iterable_type::const_stepper
    +
    + +

    Definition at line 129 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ container_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::container_type = xcontainer_inner_types<xrepeat<CT, R>>
    +
    + +

    Definition at line 113 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 125 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 107 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::extension_base = extension::xrepeat_base_t<CT, R>
    +
    + +

    Definition at line 106 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ iterable_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::iterable_type = xiterable<xrepeat<CT, R>>
    +
    + +

    Definition at line 127 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::pointer = typename xexpression_type::pointer
    +
    + +

    Definition at line 123 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::reference = typename container_type::reference
    +
    + +

    Definition at line 114 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ repeats_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::repeats_type = xtl::const_closure_type_t<R>
    +
    + +

    Definition at line 111 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::self_type = xrepeat<CT, R>
    +
    + +

    Definition at line 103 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::shape_type = typename xexpression_type::shape_type
    +
    + +

    Definition at line 110 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::size_type = typename container_type::size_type
    +
    + +

    Definition at line 116 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::stepper = typename iterable_type::stepper
    +
    + +

    Definition at line 128 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::temporary_type = typename container_type::temporary_type
    +
    + +

    Definition at line 117 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::value_type = typename xexpression_type::value_type
    +
    + +

    Definition at line 109 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xrepeat< CT, R >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 104 of file xrepeat.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xrepeat()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class CTA>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xrepeat< CT, R >::xrepeat (CTA && e,
    R && repeats,
    size_type axis )
    +
    +explicit
    +
    + +

    Constructs an xrepeat expression repeating the element of the specified xexpression.

    +
    Parameters
    + + + + +
    ethe input expression
    repeatsThe number of repetitions for each elements
    axisThe axis along which to repeat the value
    +
    +
    + +

    Definition at line 259 of file xrepeat.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ access()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xrepeat< CT, R >::access (Arg arg,
    Args... args ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 417 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ access_impl() [1/2]

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<std::size_t I>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::access_impl (stepper && s) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 463 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ access_impl() [2/2]

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<std::size_t I, class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::xrepeat< CT, R >::access_impl (stepper && s,
    Arg arg,
    Args... args ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 455 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xrepeat< CT, R >::broadcast_shape (S & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the function to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 390 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ element()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xrepeat< CT, R >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the the number of dimensions of the view..
    +
    +
    + +

    Definition at line 353 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ expression()

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant reference to the underlying expression of the broadcast expression.

    + +

    Definition at line 371 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xrepeat< CT, R >::has_linear_assign (const S & strides) const
    +
    +inlinenoexcept
    +
    + +

    Checks whether the xbroadcast can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 402 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    bool xt::xrepeat< CT, R >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 294 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Returns the layout_type of the expression.

    + +

    Definition at line 288 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the function. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the expression.
    +
    +
    + +

    Definition at line 313 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the expression.

    + +

    Definition at line 279 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::stepper_begin () const
    +
    +inline
    +
    + +

    Definition at line 428 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::stepper_begin (const shape_type & s) const
    +
    +inline
    +
    + +

    Definition at line 434 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xrepeat< CT, R >::stepper_end (const shape_type & s,
    layout_type l ) const
    +
    +inline
    +
    + +

    Definition at line 446 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::stepper_end (layout_type l) const
    +
    +inline
    +
    + +

    Definition at line 440 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ unchecked()

    + +
    +
    +
    +template<class CT, class R>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat< CT, R >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the expression.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the expression. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the expression, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 339 of file xrepeat.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + +
    bool xt::xrepeat< CT, R >::contiguous_layout = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 120 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class CT, class R>
    + + + + + +
    + + + + +
    layout_type xt::xrepeat< CT, R >::static_layout = xexpression_type::static_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 119 of file xrepeat.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xrepeat.js b/classxt_1_1xrepeat.js new file mode 100644 index 000000000..20bac2f30 --- /dev/null +++ b/classxt_1_1xrepeat.js @@ -0,0 +1,14 @@ +var classxt_1_1xrepeat = +[ + [ "xrepeat", "classxt_1_1xrepeat.html#a8597732ef22eb32ab54d780d1410386f", null ], + [ "broadcast_shape", "classxt_1_1xrepeat.html#a2610f596c5e9b7475d30aa36132a93be", null ], + [ "element", "classxt_1_1xrepeat.html#a38462b0a1711572653036bb3f77e4d2a", null ], + [ "expression", "classxt_1_1xrepeat.html#a54a644b7c615e8f1bca91c0f4ac5a714", null ], + [ "has_linear_assign", "classxt_1_1xrepeat.html#a1cf9569d72c1fb3af6e2e29252b9f03b", null ], + [ "layout", "classxt_1_1xrepeat.html#a44b37d9a8b603737eec64e57ce108ad0", null ], + [ "operator()", "classxt_1_1xrepeat.html#aa896d82b715c106f2424266feabfe7d9", null ], + [ "shape", "classxt_1_1xrepeat.html#abbeb6ae19bc34035323c7577c65f0d84", null ], + [ "shape", "classxt_1_1xrepeat.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb", null ], + [ "size", "classxt_1_1xrepeat.html#acf990ad65941e747a737622343bb43c2", null ], + [ "unchecked", "classxt_1_1xrepeat.html#af545974287e021de5253fcfd602d2f6a", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xrepeat.png b/classxt_1_1xrepeat.png new file mode 100644 index 0000000000000000000000000000000000000000..5df3e7038f81b7054fe9509ff0668e7b9cf09cd2 GIT binary patch literal 3111 zcmc&$c{r478z0d@LPz%HXrV+%nYuGt|K*uLA=t23U z)~(O4tnGd`xcdq#wQbZUgEEdZ(vXna<|9J^!O)>1RcLDHU516jn@nk(xmk+d`;~aiRM4v;=jc5`yc!o7P6U478iHgI5gSS5F_hsB2^%5`9sw zj>6E`EAZfbyIaZeCd(xpi5gC<{EYGUcRqQ3YFWD1*OVnquJLwnEC)ezMRBoBflO(# zr}Jdf@esmYb=K)xCV2gZrSn7Oi^-^(>Bhb{q_kMZGA{PlpB=VJNLA*99AGy5dseA8 zDRdi+bS9DI4i&OiURjiP*@Gw(sP0hvRp0kT@Sf4p> zN@nK+Oj%EH@5~as5kiyVg^(^tx^H+~QYA8rCmi7d?Qo>mbOS}JJ|_v6q$i` zbJK7;j$Wo&Ac1}-Vfyw!Zc0R2l<_&$T-i+$QeWVqS7BmM@ox$$DpjdXa@2%UE%70J zV;z!`dKNMRi~mt@Tg0MtuR@30G;=~=QR2fLk<@O1(``Q10^>W{G6c8a=w+=`fq&Rx z1(BkTAol;0BD`xZ=9d(_tr2wY54t^?nUu2x)7g9qyik=tRWeNlK?>2hgVH`&^eiA>I9(4!(7heBQt}`tLQS&c~};+@ub!} zu3@m&44Yz*rN;c^jd*C?6EXYc+p{C{o6EqKmjye69H`gChMZ8D>#LY(G`;nUUoyr& zuXP=}b{qGT+)C;|WJ^JG{vrsHcpl`Y2rGCo5d_O;)ZWSq+>fmUI#79W^vJ=RzN!Ti z;$+XPX6b}2%Y&h&n)D1p*^ne5xOZhVu9lUIU&GgG%wdOd*d-uy5R24MaEod< zJiJJlp0sOR(9W+!4ENC266PCFb4-Zr&m6gk0sR4bnE91 z`K`Z;Iud~K?1tyNXdA0=`EQN8$Dt($`WBjn|%l8+`2l_=dpf{ zRypB|ipS)uaoGz8vUn$uj8nxtMx%M|8XMo2$_(4F)bq>w)z09$yvH%bUYYA((PYne z)8go16#U&HN3Pl1mK-q%A&lzyQyjf+@e-70$3+LKS2w$Ce7@H+X_gyn*w`i889Pk9 z?YA^-^}d5#Dv!nF4<+x(NmQ)cW{87wTTq^48DV z*S`W}PZjn_B!Qht3$GxOOL+y38ayH%=8^n>PHk?d@e4)+d@X-r$27`ga>^IUx( zF>e^-naOHeH|tJdPE-fR*(0 zv}(O|Q3^ji9Pm74l39y$-+s_4vLaiS)BK+0Di>2qJp5j^9g*--GVS@Ep|p>2u}dpY z_Sz+9-^cD|%TE^iFY7jrxZGU4S#Z8h(s11EkAzZUQ0mv#R}TWb;CVe>M)Kl3S7bii zj3K=iDu|HN25VG8qhDQv`1z#aDIlBSpKOBetT)97&1}p@U$^eE#8}#N`(D zg;@&_%wEM=9VsRTTP0Tz;pwr*$ew4lQha0DCee$hKeRw#GkCYqGZz5RNnF4SsJ(}! zP8mPs#X}&Erpf3DUbRw85VTr5#5WcU3IeF=#0tOM_$Lgqg&O>=*JdEd%DMo84Hkl< zKrjZnJH2y&aLU3F=+{kCOYxmjAUpLJRY928ppy$hpaT`L)tq2V7T_ka4zHyJjVA<~czuOjFF-ZNPK}WqN(o9!j>bDCUJGXw_ z^+xx*;9#7L&Yd>2P;M&gLS?DWCP+QP#t0H=%laht--VBZjRa&1l7Yy+;s3m)wH<+al*x7cHK=n2jv+F}Rf9b?TDcnK>37yE&G_Z@WTN%!}6Frn)8Jn5HLBoYxi + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xrepeat_stepper< S, R > Member List
    +
    +
    + +

    This is the complete list of members for xt::xrepeat_stepper< S, R >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    operator*() const (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    pointer typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    reference typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    repeats_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    reset(size_type dim) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    reset_back(size_type dim) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    shape_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    simd_return_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    simd_value_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    size_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    step(size_type dim, size_type n=1) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    step_back(size_type dim, size_type n=1) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    step_leading() (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    step_simd() (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    storage_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    store_simd(const V &vec) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    subiterator_traits typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    subiterator_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    to_begin() (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    to_end(layout_type l) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >inline
    value_type typedef (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    xrepeat_stepper(S &&s, const shape_type &shape, const repeats_type &repeats, size_type axis) (defined in xt::xrepeat_stepper< S, R >)xt::xrepeat_stepper< S, R >
    +
    + + + + diff --git a/classxt_1_1xrepeat__stepper.html b/classxt_1_1xrepeat__stepper.html new file mode 100644 index 000000000..fab2e6186 --- /dev/null +++ b/classxt_1_1xrepeat__stepper.html @@ -0,0 +1,685 @@ + + + + + + + +xtensor: xt::xrepeat_stepper< S, R > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xrepeat_stepper< S, R > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using repeats_type = R
     
    using storage_type = typename S::storage_type
     
    using subiterator_type = typename S::subiterator_type
     
    using subiterator_traits = typename S::subiterator_traits
     
    using value_type = typename subiterator_traits::value_type
     
    using reference = typename subiterator_traits::reference
     
    using pointer = typename subiterator_traits::pointer
     
    using difference_type = typename subiterator_traits::difference_type
     
    using size_type = typename storage_type::size_type
     
    using shape_type = typename storage_type::shape_type
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    + + + + + + + +

    +Public Member Functions

    +template<class T>
    simd_return_type< T > step_simd ()
     
    +template<class V>
    void store_simd (const V &vec)
     
    + + + + + + + + + + + + + + + + + + + +

    Broadcasting

     xrepeat_stepper (S &&s, const shape_type &shape, const repeats_type &repeats, size_type axis)
     
    reference operator* () const
     
    void step (size_type dim, size_type n=1)
     
    void step_back (size_type dim, size_type n=1)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    void step_leading ()
     
    +

    Detailed Description

    +
    template<class S, class R>
    +class xt::xrepeat_stepper< S, R >
    +

    Definition at line 187 of file xrepeat.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::difference_type = typename subiterator_traits::difference_type
    +
    + +

    Definition at line 198 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::pointer = typename subiterator_traits::pointer
    +
    + +

    Definition at line 197 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::reference = typename subiterator_traits::reference
    +
    + +

    Definition at line 196 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ repeats_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::repeats_type = R
    +
    + +

    Definition at line 191 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::shape_type = typename storage_type::shape_type
    +
    + +

    Definition at line 200 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ simd_return_type

    + +
    +
    +
    +template<class S, class R>
    +
    +template<class requested_type>
    + + + + +
    using xt::xrepeat_stepper< S, R >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
    +
    + +

    Definition at line 204 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 201 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 199 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::storage_type = typename S::storage_type
    +
    + +

    Definition at line 192 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ subiterator_traits

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::subiterator_traits = typename S::subiterator_traits
    +
    + +

    Definition at line 194 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ subiterator_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::subiterator_type = typename S::subiterator_type
    +
    + +

    Definition at line 193 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class S, class R>
    + + + + +
    using xt::xrepeat_stepper< S, R >::value_type = typename subiterator_traits::value_type
    +
    + +

    Definition at line 195 of file xrepeat.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xrepeat_stepper()

    + +
    +
    +
    +template<class S, class R>
    + + + + + + + + + + + + + + + + + + + + + +
    xt::xrepeat_stepper< S, R >::xrepeat_stepper (S && s,
    const shape_type & shape,
    const repeats_type & repeats,
    size_type axis )
    +
    + +

    Definition at line 473 of file xrepeat.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + +
    auto xt::xrepeat_stepper< S, R >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 485 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + +
    void xt::xrepeat_stepper< S, R >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 541 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + +
    void xt::xrepeat_stepper< S, R >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 553 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ step()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xrepeat_stepper< S, R >::step (size_type dim,
    size_type n = 1 )
    +
    +inline
    +
    + +

    Definition at line 491 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ step_back()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xrepeat_stepper< S, R >::step_back (size_type dim,
    size_type n = 1 )
    +
    +inline
    +
    + +

    Definition at line 516 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ step_leading()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + +
    void xt::xrepeat_stepper< S, R >::step_leading ()
    +
    +inline
    +
    + +

    Definition at line 599 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + +
    void xt::xrepeat_stepper< S, R >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 565 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class S, class R>
    + + + + + +
    + + + + + + + +
    void xt::xrepeat_stepper< S, R >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 574 of file xrepeat.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xscalar-members.html b/classxt_1_1xscalar-members.html new file mode 100644 index 000000000..ec824e990 --- /dev/null +++ b/classxt_1_1xscalar-members.html @@ -0,0 +1,276 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xscalar< CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xscalar< CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    accessible_base typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    at(Args... args) (defined in xt::xscalar< CT >)xt::xscalar< CT >
    back()xt::xscalar< CT >
    xt::xaccessible< xscalar< CT > >::back() constxt::xaccessible< xscalar< CT > >private
    begin() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    begin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    begin(const S &shape) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    begin(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    begin() noexcept -> iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    begin() const noexcept -> const_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    bool_load_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    broadcast_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    broadcast_shape(S &shape, bool reuse_cache=false) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    cbegin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    cbegin(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    cbegin() const noexcept -> const_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    cend() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    cend(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    cend() const noexcept -> const_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    const_broadcast_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_dummy_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_layout_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_pointer typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_reference typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_reverse_broadcast_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_reverse_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_reverse_layout_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    const_stepper typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    contiguous_layout (defined in xt::xscalar< CT >)xt::xscalar< CT >static
    crbegin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    crbegin(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    crbegin() const noexcept -> const_reverse_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    crend() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    crend(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    crend() const noexcept -> const_reverse_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    data_element(size_type i) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    data_element(size_type i) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    xt::derived_cast() &noexceptxt::xexpression< xscalar< CT > >inline
    xt::derived_cast() const &noexceptxt::xexpression< xscalar< CT > >inline
    xt::derived_cast() &&noexceptxt::xexpression< xscalar< CT > >inline
    difference_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    dummy_begin() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    dummy_begin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    dummy_end() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    dummy_end() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    dummy_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    element(It, It) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    element(It, It) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    element(It, It) noexcept -> reference (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    element(It, It) const noexcept -> const_reference (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    end() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    end() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    end(const S &shape) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    end(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    end() noexcept -> iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    end() const noexcept -> const_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    expression() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    expression() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    expression_tag typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    extension_base typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    flat(size_type i) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    flat(size_type i) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    front()xt::xscalar< CT >
    xt::xaccessible< xscalar< CT > >::front() constxt::xaccessible< xscalar< CT > >private
    has_linear_assign(const S &strides) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    inner_shape_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    inner_types typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    is_contiguous() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    iterable_base typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    layout() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    layout_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    linear_begin() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_begin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_cbegin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_cend() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_crbegin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_crend() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_end() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_end() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_rbegin() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_rbegin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_rend() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    linear_rend() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    load_simd(size_type i) const (defined in xt::xscalar< CT >)xt::xscalar< CT >
    load_simd(size_type) const -> xt_simd::simd_return_type< value_type, requested_type > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    operator const value_type &() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    operator value_type &() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    operator()(Args...) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    operator()(Args...) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    operator()(Args...) noexcept -> reference (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    operator()(Args...) const noexcept -> const_reference (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    operator[](const S &index) (defined in xt::xscalar< CT >)xt::xscalar< CT >
    operator[](std::initializer_list< I > index) (defined in xt::xscalar< CT >)xt::xscalar< CT >
    operator[](size_type i) (defined in xt::xscalar< CT >)xt::xscalar< CT >
    periodic(Args... args) (defined in xt::xscalar< CT >)xt::xscalar< CT >
    pointer typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rbegin() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rbegin() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rbegin(const S &shape) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rbegin(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rbegin() noexcept -> reverse_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    rbegin() const noexcept -> const_reverse_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    reference typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rend() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rend() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rend(const S &shape) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rend(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    rend() noexcept -> reverse_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    rend() const noexcept -> const_reverse_iterator (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L > (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    reverse_broadcast_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    reverse_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    reverse_layout_iterator typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    self_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    shape() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    shape(size_type i) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    shape_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    simd_value_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    size() const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    size_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    static_layout (defined in xt::xscalar< CT >)xt::xscalar< CT >static
    stepper typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    stepper_begin(const S &shape) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    stepper_begin(const S &shape) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    stepper_begin(const S &) noexcept -> stepper (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    stepper_begin(const S &) const noexcept -> const_stepper (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    stepper_end(const S &shape, layout_type l) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    stepper_end(const S &, layout_type) noexcept -> stepper (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    stepper_end(const S &, layout_type) const noexcept -> const_stepper (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    store_simd(size_type i, const simd &e) (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    unchecked(Args...) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    unchecked(Args...) const noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >
    unchecked(Args...) noexcept -> reference (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    unchecked(Args...) const noexcept -> const_reference (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    value_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    xaccessible< self_type > (defined in xt::xscalar< CT >)xt::xscalar< CT >friend
    xconst_accessible< self_type > (defined in xt::xscalar< CT >)xt::xscalar< CT >friend
    xconst_iterable< self_type > (defined in xt::xscalar< CT >)xt::xscalar< CT >friend
    xexpression_type typedef (defined in xt::xscalar< CT >)xt::xscalar< CT >
    xiterable< self_type > (defined in xt::xscalar< CT >)xt::xscalar< CT >friend
    xscalar() noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    xscalar(CT value) noexcept (defined in xt::xscalar< CT >)xt::xscalar< CT >inline
    +
    + + + + diff --git a/classxt_1_1xscalar.html b/classxt_1_1xscalar.html new file mode 100644 index 000000000..acc354659 --- /dev/null +++ b/classxt_1_1xscalar.html @@ -0,0 +1,3548 @@ + + + + + + + +xtensor: xt::xscalar< CT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xscalar< CT > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xscalar< CT >:
    +
    +
    + + +xt::xsharable_expression< xscalar< CT > > +xt::xiterable< xscalar< CT > > +xt::xaccessible< xscalar< CT > > +xt::xexpression< xscalar< CT > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xscalar<CT>
     
    using xexpression_type = std::decay_t<CT>
     
    using extension_base = extension::xscalar_base_t<CT>
     
    using accessible_base = xaccessible<self_type>
     
    using expression_tag = typename extension_base::expression_tag
     
    using inner_types = xcontainer_inner_types<self_type>
     
    using value_type = typename inner_types::value_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer = value_type*
     
    using const_pointer = const value_type*
     
    using size_type = typename inner_types::size_type
     
    using difference_type = std::ptrdiff_t
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    using bool_load_type = xt::bool_load_type<value_type>
     
    using iterable_base = xiterable<self_type>
     
    using inner_shape_type = typename iterable_base::inner_shape_type
     
    using shape_type = inner_shape_type
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    template<layout_type L>
    using layout_iterator = typename iterable_base::template layout_iterator<L>
     
    template<layout_type L>
    using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
     
    template<layout_type L>
    using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
     
    template<layout_type L>
    using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
     
    template<class S, layout_type L>
    using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
     
    using iterator = value_type*
     
    using const_iterator = const value_type*
     
    using reverse_iterator = std::reverse_iterator<iterator>
     
    using const_reverse_iterator = std::reverse_iterator<const_iterator>
     
    using dummy_iterator = xdummy_iterator<false, CT>
     
    using const_dummy_iterator = xdummy_iterator<true, CT>
     
    - Public Types inherited from xt::xexpression< xscalar< CT > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xscalar (CT value) noexcept
     
     operator value_type & () noexcept
     
     operator const value_type & () const noexcept
     
    size_type size () const noexcept
     
    const shape_type & shape () const noexcept
     
    size_type shape (size_type i) const noexcept
     
    layout_type layout () const noexcept
     
    bool is_contiguous () const noexcept
     
    +template<class... Args>
    reference operator() (Args...) noexcept
     
    +template<class... Args>
    reference unchecked (Args...) noexcept
     
    +template<class... Args>
    const_reference operator() (Args...) const noexcept
     
    +template<class... Args>
    const_reference unchecked (Args...) const noexcept
     
    +template<class It>
    reference element (It, It) noexcept
     
    +template<class It>
    const_reference element (It, It) const noexcept
     
    xexpression_type & expression () noexcept
     
    const xexpression_type & expression () const noexcept
     
    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const noexcept
     
    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    iterator begin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    iterator end () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_iterator begin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_iterator end () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_iterator cbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_iterator cend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    reverse_iterator rbegin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    reverse_iterator rend () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_iterator rbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_iterator rend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_iterator crbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    const_reverse_iterator crend () const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +template<class S, layout_type L = ::xt::layout_type::row_major>
    const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    iterator linear_begin () noexcept
     
    iterator linear_end () noexcept
     
    const_iterator linear_begin () const noexcept
     
    const_iterator linear_end () const noexcept
     
    const_iterator linear_cbegin () const noexcept
     
    const_iterator linear_cend () const noexcept
     
    reverse_iterator linear_rbegin () noexcept
     
    reverse_iterator linear_rend () noexcept
     
    const_reverse_iterator linear_rbegin () const noexcept
     
    const_reverse_iterator linear_rend () const noexcept
     
    const_reverse_iterator linear_crbegin () const noexcept
     
    const_reverse_iterator linear_crend () const noexcept
     
    +template<class S>
    stepper stepper_begin (const S &shape) noexcept
     
    +template<class S>
    stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +template<class S>
    const_stepper stepper_begin (const S &shape) const noexcept
     
    +template<class S>
    const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    dummy_iterator dummy_begin () noexcept
     
    dummy_iterator dummy_end () noexcept
     
    const_dummy_iterator dummy_begin () const noexcept
     
    const_dummy_iterator dummy_end () const noexcept
     
    reference data_element (size_type i) noexcept
     
    const_reference data_element (size_type i) const noexcept
     
    reference flat (size_type i) noexcept
     
    const_reference flat (size_type i) const noexcept
     
    template<class align, class simd = simd_value_type>
    void store_simd (size_type i, const simd &e)
     
    +template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    xt_simd::simd_return_type< value_type, requested_type > load_simd (size_type i) const
     
    template<class... Args>
    auto operator() (Args...) noexcept -> reference
     
    template<class... Args>
    auto unchecked (Args...) noexcept -> reference
     
    template<class... Args>
    auto operator() (Args...) const noexcept -> const_reference
     
    template<class... Args>
    auto unchecked (Args...) const noexcept -> const_reference
     
    template<class It>
    auto element (It, It) noexcept -> reference
     
    template<class It>
    auto element (It, It) const noexcept -> const_reference
     
    template<layout_type L>
    auto begin () noexcept -> iterator
     
    template<layout_type L>
    auto end () noexcept -> iterator
     
    template<layout_type L>
    auto begin () const noexcept -> const_iterator
     
    template<layout_type L>
    auto end () const noexcept -> const_iterator
     
    template<layout_type L>
    auto cbegin () const noexcept -> const_iterator
     
    template<layout_type L>
    auto cend () const noexcept -> const_iterator
     
    template<layout_type L>
    auto rbegin () noexcept -> reverse_iterator
     
    template<layout_type L>
    auto rend () noexcept -> reverse_iterator
     
    template<layout_type L>
    auto rbegin () const noexcept -> const_reverse_iterator
     
    template<layout_type L>
    auto rend () const noexcept -> const_reverse_iterator
     
    template<layout_type L>
    auto crbegin () const noexcept -> const_reverse_iterator
     
    template<layout_type L>
    auto crend () const noexcept -> const_reverse_iterator
     
    template<class S, layout_type L>
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     
    template<class S, layout_type L>
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     
    template<class S>
    auto stepper_begin (const S &) noexcept -> stepper
     
    template<class S>
    auto stepper_end (const S &, layout_type) noexcept -> stepper
     
    template<class S>
    auto stepper_begin (const S &) const noexcept -> const_stepper
     
    template<class S>
    auto stepper_end (const S &, layout_type) const noexcept -> const_stepper
     
    template<class align, class requested_type, std::size_t N>
    auto load_simd (size_type) const -> xt_simd::simd_return_type< value_type, requested_type >
     
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    - Public Member Functions inherited from xt::xexpression< xscalar< CT > >
    derived_typederived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    const derived_typederived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = layout_type::any
     
    static constexpr bool contiguous_layout = true
     
    + + + + + + + + + +

    +Friends

    class xconst_iterable< self_type >
     
    class xiterable< self_type >
     
    class xaccessible< self_type >
     
    class xconst_accessible< self_type >
     
    + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xsharable_expression< xscalar< CT > >
    xsharable_expression (const xsharable_expression &)=default
     
    xsharable_expression (xsharable_expression &&)=default
     
    +xsharable_expressionoperator= (const xsharable_expression &)=default
     
    +xsharable_expressionoperator= (xsharable_expression &&)=default
     
    - Protected Member Functions inherited from xt::xexpression< xscalar< CT > >
    xexpression (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    +

    Detailed Description

    +
    template<class CT>
    +class xt::xscalar< CT >
    +

    Definition at line 85 of file xscalar.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accessible_base

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::accessible_base = xaccessible<self_type>
    +
    + +

    Definition at line 95 of file xscalar.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::bool_load_type = xt::bool_load_type<value_type>
    +
    + +

    Definition at line 107 of file xscalar.hpp.

    + +
    +
    + +

    ◆ broadcast_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xscalar< CT >::broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
    +
    + +

    Definition at line 127 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_broadcast_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xscalar< CT >::const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
    +
    + +

    Definition at line 129 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_dummy_iterator

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::const_dummy_iterator = xdummy_iterator<true, CT>
    +
    + +

    Definition at line 142 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::const_iterator = const value_type*
    +
    + +

    Definition at line 137 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_layout_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + +
    using xt::xscalar< CT >::const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
    +
    + +

    Definition at line 119 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::const_pointer = const value_type*
    +
    + +

    Definition at line 103 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 101 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_reverse_broadcast_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xscalar< CT >::const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 134 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::const_reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 139 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_reverse_layout_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + +
    using xt::xscalar< CT >::const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
    +
    + +

    Definition at line 124 of file xscalar.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 114 of file xscalar.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::difference_type = std::ptrdiff_t
    +
    + +

    Definition at line 105 of file xscalar.hpp.

    + +
    +
    + +

    ◆ dummy_iterator

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::dummy_iterator = xdummy_iterator<false, CT>
    +
    + +

    Definition at line 141 of file xscalar.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 96 of file xscalar.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::extension_base = extension::xscalar_base_t<CT>
    +
    + +

    Definition at line 94 of file xscalar.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::inner_shape_type = typename iterable_base::inner_shape_type
    +
    + +

    Definition at line 110 of file xscalar.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::inner_types = xcontainer_inner_types<self_type>
    +
    + +

    Definition at line 97 of file xscalar.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::iterable_base = xiterable<self_type>
    +
    + +

    Definition at line 109 of file xscalar.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::iterator = value_type*
    +
    + +

    Definition at line 136 of file xscalar.hpp.

    + +
    +
    + +

    ◆ layout_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + +
    using xt::xscalar< CT >::layout_iterator = typename iterable_base::template layout_iterator<L>
    +
    + +

    Definition at line 117 of file xscalar.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::pointer = value_type*
    +
    + +

    Definition at line 102 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::reference = typename inner_types::reference
    +
    + +

    Definition at line 100 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reverse_broadcast_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + +
    using xt::xscalar< CT >::reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
    +
    + +

    Definition at line 132 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::reverse_iterator = std::reverse_iterator<iterator>
    +
    + +

    Definition at line 138 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reverse_layout_iterator

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + +
    using xt::xscalar< CT >::reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
    +
    + +

    Definition at line 122 of file xscalar.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::self_type = xscalar<CT>
    +
    + +

    Definition at line 92 of file xscalar.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::shape_type = inner_shape_type
    +
    + +

    Definition at line 111 of file xscalar.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 106 of file xscalar.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 104 of file xscalar.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 113 of file xscalar.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::value_type = typename inner_types::value_type
    +
    + +

    Definition at line 99 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xscalar< CT >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 93 of file xscalar.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xscalar() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    xt::xscalar< CT >::xscalar ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 498 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xscalar() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    xt::xscalar< CT >::xscalar (CT value)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 504 of file xscalar.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ begin() [1/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::begin () const -> const_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 638 of file xscalar.hpp.

    + +
    +
    + +

    ◆ begin() [2/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::begin () -> iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 624 of file xscalar.hpp.

    + +
    +
    + +

    ◆ begin() [3/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::begin (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 726 of file xscalar.hpp.

    + +
    +
    + +

    ◆ begin() [4/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::begin (const S & shape) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 712 of file xscalar.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class CT>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xscalar< CT >::broadcast_shape (S & shape,
    bool reuse_cache = false ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 610 of file xscalar.hpp.

    + +
    +
    + +

    ◆ cbegin() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::cbegin () const -> const_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 652 of file xscalar.hpp.

    + +
    +
    + +

    ◆ cbegin() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::cbegin (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 740 of file xscalar.hpp.

    + +
    +
    + +

    ◆ cend() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::cend () const -> const_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 659 of file xscalar.hpp.

    + +
    +
    + +

    ◆ cend() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::cend (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 747 of file xscalar.hpp.

    + +
    +
    + +

    ◆ crbegin() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::crbegin () const -> const_reverse_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 694 of file xscalar.hpp.

    + +
    +
    + +

    ◆ crbegin() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::crbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 782 of file xscalar.hpp.

    + +
    +
    + +

    ◆ crend() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::crend () const -> const_reverse_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 701 of file xscalar.hpp.

    + +
    +
    + +

    ◆ crend() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::crend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 789 of file xscalar.hpp.

    + +
    +
    + +

    ◆ data_element() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::data_element (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 925 of file xscalar.hpp.

    + +
    +
    + +

    ◆ data_element() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::data_element (size_type i)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 919 of file xscalar.hpp.

    + +
    +
    + +

    ◆ dummy_begin() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::dummy_begin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 907 of file xscalar.hpp.

    + +
    +
    + +

    ◆ dummy_begin() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::dummy_begin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 895 of file xscalar.hpp.

    + +
    +
    + +

    ◆ dummy_end() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::dummy_end () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 913 of file xscalar.hpp.

    + +
    +
    + +

    ◆ dummy_end() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::dummy_end ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 901 of file xscalar.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xscalar< CT >::element (It ,
    It  ) const -> const_reference +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 591 of file xscalar.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xscalar< CT >::element (It ,
    It  ) -> reference +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 584 of file xscalar.hpp.

    + +
    +
    + +

    ◆ end() [1/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::end () const -> const_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 645 of file xscalar.hpp.

    + +
    +
    + +

    ◆ end() [2/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::end () -> iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 631 of file xscalar.hpp.

    + +
    +
    + +

    ◆ end() [3/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::end (const S & shape) const -> const_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 733 of file xscalar.hpp.

    + +
    +
    + +

    ◆ end() [4/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::end (const S & shape) -> broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 719 of file xscalar.hpp.

    + +
    +
    + +

    ◆ expression() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 603 of file xscalar.hpp.

    + +
    +
    + +

    ◆ expression() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::expression ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 597 of file xscalar.hpp.

    + +
    +
    + +

    ◆ flat() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::flat (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 937 of file xscalar.hpp.

    + +
    +
    + +

    ◆ flat() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::flat (size_type i)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 931 of file xscalar.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class CT>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xscalar< CT >::has_linear_assign (const S & strides) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 617 of file xscalar.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    bool xt::xscalar< CT >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 547 of file xscalar.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    layout_type xt::xscalar< CT >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 541 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_begin() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_begin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 807 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_begin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 795 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_cbegin()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_cbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 819 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_cend()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_cend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 825 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_crbegin()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_crbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 855 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_crend()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_crend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 861 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_end () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 813 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_end ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 801 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_rbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 843 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_rbegin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 831 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_rend() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_rend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 849 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_rend() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::linear_rend ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 837 of file xscalar.hpp.

    + +
    +
    + +

    ◆ load_simd()

    + +
    +
    +
    +template<class CT>
    +
    +template<class align, class requested_type, std::size_t N>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::load_simd (size_type ) const -> xt_simd::simd_return_type<value_type, requested_type> +
    +
    +inline
    +
    + +

    Definition at line 951 of file xscalar.hpp.

    + +
    +
    + +

    ◆ operator const value_type &()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    xt::xscalar< CT >::operator const value_type & () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 516 of file xscalar.hpp.

    + +
    +
    + +

    ◆ operator value_type &()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    xt::xscalar< CT >::operator value_type & ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 510 of file xscalar.hpp.

    + +
    +
    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::operator() (Args... ) const -> const_reference +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 569 of file xscalar.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::operator() (Args... ) -> reference +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 554 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rbegin () const -> const_reverse_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 680 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rbegin () -> reverse_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 666 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rbegin() [3/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rbegin (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 768 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rbegin() [4/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rbegin (const S & shape) -> reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 754 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rend() [1/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rend () const -> const_reverse_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 687 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rend() [2/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rend () -> reverse_iterator +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 673 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rend() [3/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rend (const S & shape) const -> const_reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 775 of file xscalar.hpp.

    + +
    +
    + +

    ◆ rend() [4/4]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S, layout_type L>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::rend (const S & shape) -> reverse_broadcast_iterator<S, L> +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 761 of file xscalar.hpp.

    + +
    +
    + +

    ◆ shape() [1/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 528 of file xscalar.hpp.

    + +
    +
    + +

    ◆ shape() [2/2]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::shape (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 535 of file xscalar.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 522 of file xscalar.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::stepper_begin (const S & ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 882 of file xscalar.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::stepper_begin (const S & ) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 868 of file xscalar.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xscalar< CT >::stepper_end (const S & ,
    layout_type  ) const -> const_stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 889 of file xscalar.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xscalar< CT >::stepper_end (const S & ,
    layout_type  ) -> stepper +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 875 of file xscalar.hpp.

    + +
    +
    + +

    ◆ store_simd()

    + +
    +
    +
    +template<class CT>
    +
    +template<class align, class simd>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xscalar< CT >::store_simd (size_type i,
    const simd & e )
    +
    +inline
    +
    + +

    Definition at line 944 of file xscalar.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::unchecked (Args... ) const -> const_reference +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 577 of file xscalar.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class CT>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar< CT >::unchecked (Args... ) -> reference +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 562 of file xscalar.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xaccessible< self_type >

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    friend class xaccessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 295 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xconst_accessible< self_type >

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    friend class xconst_accessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 295 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xconst_iterable< self_type >

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    friend class xconst_iterable< self_type >
    +
    +friend
    +
    + +

    Definition at line 295 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xiterable< self_type >

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    friend class xiterable< self_type >
    +
    +friend
    +
    + +

    Definition at line 295 of file xscalar.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    bool xt::xscalar< CT >::contiguous_layout = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 145 of file xscalar.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    layout_type xt::xscalar< CT >::static_layout = layout_type::any
    +
    +staticconstexpr
    +
    + +

    Definition at line 144 of file xscalar.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xscalar.js b/classxt_1_1xscalar.js new file mode 100644 index 000000000..88cca0bb7 --- /dev/null +++ b/classxt_1_1xscalar.js @@ -0,0 +1,5 @@ +var classxt_1_1xscalar = +[ + [ "back", "classxt_1_1xscalar.html#a13a096e0045b2375006fec3bcd1c8d1c", null ], + [ "front", "classxt_1_1xscalar.html#a13ab25eb31d4b48cb01b7bc38d27e8e0", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xscalar.png b/classxt_1_1xscalar.png new file mode 100644 index 0000000000000000000000000000000000000000..77a3100030fe1b5e36c46147ea6fa41b9708b2ab GIT binary patch literal 2601 zcmb_eX;c$g77mEr4sB#{5GHT{5oHhsv<-_20f`7AdkRoC0T+nMmLRBXE)y0z(CP>Z z1O<_V3X32i?5I&tSv5okV!#*yql6fiRtZVED%x}UoH_Gn&eV^pS6{umynA!MFF8J5 z`;h7=bp!%|ba%u0ArNXPXq~-k1$0jrq}V_YeV+rky$Xc_TE3rIOv-;mwX-&l*DLIM z|K`mb2uJq^R6yVULiF?UM?mk&%T~2`7{VIevCg;@6%mhn_EB?#>kEE4rca8Icv*K} z-Nqj>?GIaa_cYoVaXr+ZdAf}^d+|I%< zsR}W8Vm>6F4LVR#Ww-Jx^(Wfqe|sv7?s#m)qNE=i-O8&x&#cixJ7ps3-Zr7|G*PtI z)K9v$ulkQuw&d!8W6gTf-Jd}AUDTnE)kqw`aQ^1m1=;(uYo~**$Oo|SV!XyFT&wE# zi7n*B)15rx7>>0zF&ky<(E%a=+G8<5P95i2f58z>J^Mn@mZ}renK$P|DdJCQsUXxFO0TfmJcJh zX}IutD5)))5#SO$OO5TwHPlghB)+aA`O5|t?fM+;!ix7x8k=oTEGL{hVh@5F3;3;_ zJ=+HN(H*Iq%zB_&dHhi;5Y%6$&sBpDJ_qiU9u-~zutlY;_5dAK%Is7#wbH)Snc zy7hS2BD0hi%ak657KpfqhN`eJ+`W?id-?hhs0r^Zvvql`Y%k<=Rgg&})Z;yHe6=0Q z9w?ixTBP)*+^^z^MQR#5DS^yQ-vdK{)7o#@!2xdPz$va$0z+8X+a)CsZ36#<{ulQT zxbr=eAiC6nH^!!BZOiYCaP{U z^;}Fa=xO^Z=J)`MY8cs+WW1pYZ0)w-#4mnMFVi%<5eaZk$$gMw%9U^*I3<_%{m7pA zqd(^fQZV;Xl_jM~yQp7M91paKx$H^zfnLf6N|o99!5XV2%8xTU2a#6c$qMPmiQQ}3 zWh%0(sHXdivgQ82irv_^4%CAmY&15${VP`(av0c0O(r;o&Gy+A7T%v7U!6!f!0-jcuo_p@)Lb87~*xDbJqX*gus5~FWW9hMX&ghcOE##K*tb~(- z=acgEU1QHQJtxDPZWc3C?UF}vto=q%;khN8d(q2p8(Us9jiyGW-QTCJmA^S8YUcb86i^K4!* zE(@lIuhGgZ-=_UMcL~+G?jyUXqjq9I&jL+MYibRpMevBC zqEWq?)Uo~zkaxQwW9 z0vL}+$n&lKKoTW`N^%UIH|r{z)reWTraYiIIwW-~)wFs#QPMqOw?PBs(}$;?Na=lD z8u^UmWA@ROMp2fdRRL6K507|a=Z8RfljnqZ|7gZ^#g%SoBzS$0Xe@0ETMz{R9i`L5 z&?sSCwIvm(?gRsc*_j$t=SD_{Iu7XAP?c?34i=?g&?O)qntF9+Ff`7NPftM8m*foF z&6;Y((MixqDl#!XE&zvnHP_7q1alx2gGm7ZAR16|0uHFjMky)57hsq`vP z{U$kXF-PP>|Hela1SEgw3e&6E|8$+ow}iZ_6}iP=S8Ey{&hfS)(;~tw*PCjYllzQR z)q)`Iej0fbdz-AJO9;eV-dOEs;)lA4f#mkTeq}FzmdYGwK1Yudwo!RXXS)3mIpB70xy8N^HHi-HEUcR;i30`iVF@ zgY@ilre5TSotWNA)IhQZWD3ARZj%djU)Ns>)JfYcV>nG+?qO9f*m6Eue3$%;a+3V* zr^V#NN0Rq{&mBZO>2T&-_vekM?AwQrq%$3%R(->D(|c-L)aU zF2PIGSPClL`J3`fJn(kH! zsqcCTOXY2|Zvv=PQiuO2nKd0MEuU~6A%37x3DMQrWZdvuD)grg;l9@kTf67*h2H_J C-n;q$ literal 0 HcmV?d00001 diff --git a/classxt_1_1xscalar__stepper-members.html b/classxt_1_1xscalar__stepper-members.html new file mode 100644 index 000000000..b5f065f1f --- /dev/null +++ b/classxt_1_1xscalar__stepper-members.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xscalar_stepper< is_const, CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::xscalar_stepper< is_const, CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    operator*() const noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    pointer typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    reference typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    reset(size_type dim) noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    reset_back(size_type dim) noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    self_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    shape_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    simd_return_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    size_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    step(size_type dim, size_type n=1) noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    step_back(size_type dim, size_type n=1) noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    step_leading() (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    step_simd() (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    step_simd() -> simd_return_type< T > (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    storage_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    to_begin() noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    to_end(layout_type l) noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    value_type typedef (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >
    xscalar_stepper(storage_type *c) noexcept (defined in xt::xscalar_stepper< is_const, CT >)xt::xscalar_stepper< is_const, CT >inline
    +
    + + + + diff --git a/classxt_1_1xscalar__stepper.html b/classxt_1_1xscalar__stepper.html new file mode 100644 index 000000000..18b6016e3 --- /dev/null +++ b/classxt_1_1xscalar__stepper.html @@ -0,0 +1,650 @@ + + + + + + + +xtensor: xt::xscalar_stepper< is_const, CT > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xscalar_stepper< is_const, CT > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xscalar_stepper<is_const, CT>
     
    using storage_type = std::conditional_t<is_const, const xscalar<CT>, xscalar<CT>>
     
    using value_type = typename storage_type::value_type
     
    using reference
     
    using pointer = std::conditional_t<is_const, typename storage_type::const_pointer, typename storage_type::pointer>
     
    using size_type = typename storage_type::size_type
     
    using difference_type = typename storage_type::difference_type
     
    using shape_type = typename storage_type::shape_type
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xscalar_stepper (storage_type *c) noexcept
     
    reference operator* () const noexcept
     
    void step (size_type dim, size_type n=1) noexcept
     
    void step_back (size_type dim, size_type n=1) noexcept
     
    void reset (size_type dim) noexcept
     
    void reset_back (size_type dim) noexcept
     
    void to_begin () noexcept
     
    void to_end (layout_type l) noexcept
     
    +template<class T>
    simd_return_type< T > step_simd ()
     
    void step_leading ()
     
    template<class T>
    auto step_simd () -> simd_return_type< T >
     
    +

    Detailed Description

    +
    template<bool is_const, class CT>
    +class xt::xscalar_stepper< is_const, CT >
    +

    Definition at line 353 of file xscalar.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::difference_type = typename storage_type::difference_type
    +
    + +

    Definition at line 365 of file xscalar.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::pointer = std::conditional_t<is_const, typename storage_type::const_pointer, typename storage_type::pointer>
    +
    + +

    Definition at line 363 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::reference
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename storage_type::const_reference, typename storage_type::reference>
    +
    +

    Definition at line 361 of file xscalar.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::self_type = xscalar_stepper<is_const, CT>
    +
    + +

    Definition at line 357 of file xscalar.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::shape_type = typename storage_type::shape_type
    +
    + +

    Definition at line 366 of file xscalar.hpp.

    + +
    +
    + +

    ◆ simd_return_type

    + +
    +
    +
    +template<bool is_const, class CT>
    +
    +template<class requested_type>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
    +
    + +

    Definition at line 369 of file xscalar.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 364 of file xscalar.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::storage_type = std::conditional_t<is_const, const xscalar<CT>, xscalar<CT>>
    +
    + +

    Definition at line 358 of file xscalar.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + +
    using xt::xscalar_stepper< is_const, CT >::value_type = typename storage_type::value_type
    +
    + +

    Definition at line 360 of file xscalar.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xscalar_stepper()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    xt::xscalar_stepper< is_const, CT >::xscalar_stepper (storage_type * c)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 974 of file xscalar.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar_stepper< is_const, CT >::operator* () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 980 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::reset (size_type dim)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 996 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::reset_back (size_type dim)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1001 of file xscalar.hpp.

    + +
    +
    + +

    ◆ step()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::step (size_type dim,
    size_type n = 1 )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 986 of file xscalar.hpp.

    + +
    +
    + +

    ◆ step_back()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::step_back (size_type dim,
    size_type n = 1 )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 991 of file xscalar.hpp.

    + +
    +
    + +

    ◆ step_leading()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::step_leading ()
    +
    +inline
    +
    + +

    Definition at line 1023 of file xscalar.hpp.

    + +
    +
    + +

    ◆ step_simd()

    + +
    +
    +
    +template<bool is_const, class CT>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xscalar_stepper< is_const, CT >::step_simd () -> simd_return_type<T> +
    +
    +inline
    +
    + +

    Definition at line 1017 of file xscalar.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::to_begin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1006 of file xscalar.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + +
    void xt::xscalar_stepper< is_const, CT >::to_end (layout_type l)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1011 of file xscalar.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xsemantic__base-members.html b/classxt_1_1xsemantic__base-members.html new file mode 100644 index 000000000..322c8e125 --- /dev/null +++ b/classxt_1_1xsemantic__base-members.html @@ -0,0 +1,181 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xsemantic_base< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xsemantic_base< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    base_type typedef (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    derived_type typedef (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(const xexpression< E > &e) -> derived_type & (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >inline
    operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    temporary_type typedef (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    ~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    +
    + + + + diff --git a/classxt_1_1xsemantic__base.html b/classxt_1_1xsemantic__base.html new file mode 100644 index 000000000..e46bf8782 --- /dev/null +++ b/classxt_1_1xsemantic__base.html @@ -0,0 +1,1561 @@ + + + + + + + +xtensor: xt::xsemantic_base< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xsemantic_base< D > Class Template Reference
    +
    +
    + +

    Base interface for assignable xexpressions. + More...

    + +

    #include <xsemantic.hpp>

    +
    +Inheritance diagram for xt::xsemantic_base< D >:
    +
    +
    + + +xt::xchunked_semantic< self_type > +xt::xcontainer_semantic< self_type > +xt::xview_semantic< self_type > +xt::xview_semantic< xmasked_view< CTD, CTM > > +xt::xchunked_semantic< D > +xt::xcontainer_semantic< D > +xt::xview_semantic< D > +xt::xmasked_view< CTD, CTM > +xt::xarray_adaptor< value_container &, L, SC > +xt::xarray_adaptor< flag_container &, L, SC > +xt::xarray_adaptor< const value_container &, L, SC > +xt::xarray_adaptor< const flag_container &, L, SC > +xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag > +xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag > +xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > +xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag > +xt::xarray_container< EC, L, SC, xoptional_expression_tag > +xt::xfixed_container< typename storage_type::value_type, S, L, SH, Tag > +xt::xfixed_container< T, FSH, L, Sharable > +xt::xoptional_assembly< raw_value_expression, raw_flag_expression > +xt::xtensor_adaptor< value_container &, N, L > +xt::xtensor_adaptor< flag_container &, N, L > +xt::xtensor_adaptor< const value_container &, N, L > +xt::xtensor_adaptor< const flag_container &, N, L > +xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag > +xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag > +xt::xtensor_container< uvector< T, A >, N, L > +xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag > +xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major > +xt::xtensor_container< EC, N, L, xoptional_expression_tag > +xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xdynamic_view< CT, S, L, FST > +xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > > +xt::xfunctor_view< F, uvt > +xt::xfunctor_view< F, ucvt > +xt::xfunctor_view< F, E > +xt::xindex_view< uvt, I > +xt::xindex_view< uft, I > +xt::xindex_view< ucvt, I > +xt::xindex_view< ucft, I > +xt::xindex_view< E, I > +xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xstrided_view< CT, shape_type > +xt::xstrided_view< CT, S, L, FST > +xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > > +xt::xtensor_view< EC, N, L, xoptional_expression_tag > +xt::xview< uvt, S... > +xt::xview< uft, S... > +xt::xview< ucvt, S... > +xt::xview< ucft, S... > +xt::xview< UnderlyingContainer, Slices... > +xt::xview< E, S... > +xt::xdynamic_view< CT, S, L, FST > +xt::xstrided_view< CT, S, L, FST > + +
    + + + + + + + + +

    +Public Types

    using base_type = select_expression_base_t<D>
     
    using derived_type = typename base_type::derived_type
     
    using temporary_type = typename xcontainer_inner_types<D>::temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +template<class E>
    derived_type & operator+= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator-= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator*= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator/= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator%= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator&= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator|= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator^= (const xexpression< E > &)
     
    +template<class E>
    derived_type & assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & plus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & minus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & multiplies_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & divides_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & modulus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_and_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_or_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_xor_assign (const xexpression< E > &)
     
    Computed assignement
    template<class E>
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    template<class E>
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    template<class E>
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    template<class E>
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    template<class E>
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    template<class E>
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    template<class E>
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    Assign functions
    template<class E>
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    template<class E>
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    template<class E>
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    template<class E>
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    template<class E>
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + + + + + + + + +

    +Protected Member Functions

    xsemantic_base (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +template<class E>
    derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xsemantic_base< D >

    Base interface for assignable xexpressions.

    +

    The xsemantic_base class defines the interface for assignable xexpressions.

    +
    Template Parameters
    + + +
    DThe derived type, i.e. the inheriting class for which xsemantic_base provides the interface.
    +
    +
    + +

    Definition at line 57 of file xsemantic.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xsemantic_base< D >::base_type = select_expression_base_t<D>
    +
    + +

    Definition at line 61 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ derived_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xsemantic_base< D >::derived_type = typename base_type::derived_type
    +
    + +

    Definition at line 62 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xsemantic_base< D >::temporary_type = typename xcontainer_inner_types<D>::temporary_type
    +
    + +

    Definition at line 64 of file xsemantic.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Assigns the xexpression e to *this.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression to assign.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 511 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ bit_and_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::bit_and_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the bitwise and of e to *this.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression to add.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 589 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ bit_or_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::bit_or_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the bitwise or of e to *this.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression to add.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 602 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ bit_xor_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::bit_xor_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the bitwise xor of e to *this.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression to add.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 615 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ divides_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::divides_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Divides *this by the xexpression e.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 563 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ minus_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::minus_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Subtracts the xexpression e to *this.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression to subtract.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 537 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ modulus_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::modulus_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the remainder of *this after division by the xexpression e.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 576 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ multiplies_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::multiplies_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Multiplies *this with the xexpression e.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 550 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator%=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator%= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Computes the remainder of *this after division by the scalar e.

    +
    Parameters
    + + +
    ethe scalar involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 360 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator%=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator%= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the remainder of *this after division by the xexpression e.

    +
    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 456 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator&=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator&= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Computes the bitwise and of *this and the scalar e and assigns it to *this.

    +
    Parameters
    + + +
    ethe scalar involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 372 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator&=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator&= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the bitwise and of *this and the xexpression e and assigns it to *this.

    +
    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 468 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator*=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator*= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Multiplies *this with the scalar e.

    +
    Parameters
    + + +
    ethe scalar involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 336 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator*=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator*= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Multiplies *this with the xexpression e.

    +
    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 432 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator+=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator+= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Adds the scalar e to *this.

    +
    Parameters
    + + +
    ethe scalar to add.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 312 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator+=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator+= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Adds the xexpression e to *this.

    +
    Parameters
    + + +
    ethe xexpression to add.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 408 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator-=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator-= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Subtracts the scalar e from *this.

    +
    Parameters
    + + +
    ethe scalar to subtract.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 324 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator-=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator-= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Subtracts the xexpression e from *this.

    +
    Parameters
    + + +
    ethe xexpression to subtract.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 420 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator/=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator/= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Divides *this by the scalar e.

    +
    Parameters
    + + +
    ethe scalar involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 348 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator/=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator/= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Divides *this by the xexpression e.

    +
    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 444 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator=()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Definition at line 622 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator^=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator^= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Computes the bitwise xor of *this and the scalar e and assigns it to *this.

    +
    Parameters
    + + +
    ethe scalar involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 396 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator^=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator^= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the bitwise xor of *this and the xexpression e and assigns it to *this.

    +
    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 492 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator|=() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator|= (const E & e) -> disable_xexpression<E, derived_type&> +
    +
    +inline
    +
    + +

    Computes the bitwise or of *this and the scalar e and assigns it to *this.

    +
    Parameters
    + + +
    ethe scalar involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 384 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator|=() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::operator|= (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Computes the bitwise or of *this and the xexpression e and assigns it to *this.

    +
    Parameters
    + + +
    ethe xexpression involved in the operation.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 480 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ plus_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xsemantic_base< D >::plus_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Adds the xexpression e to *this.

    +

    Ensures no temporary will be used to perform the assignment.

    Parameters
    + + +
    ethe xexpression to add.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 524 of file xsemantic.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xsemantic.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xsemantic__base.js b/classxt_1_1xsemantic__base.js new file mode 100644 index 000000000..e6b90270a --- /dev/null +++ b/classxt_1_1xsemantic__base.js @@ -0,0 +1,28 @@ +var classxt_1_1xsemantic__base = +[ + [ "assign", "classxt_1_1xsemantic__base.html#aa4abcce752e16fea81c590cfdb48d099", null ], + [ "bit_and_assign", "classxt_1_1xsemantic__base.html#a491f436cebf5ae09254782e8e39e07e4", null ], + [ "bit_or_assign", "classxt_1_1xsemantic__base.html#a8f36e2f2e9869cb21ccb197f234838ec", null ], + [ "bit_xor_assign", "classxt_1_1xsemantic__base.html#a2ecc711c54c031f9fae4f959ba54c756", null ], + [ "divides_assign", "classxt_1_1xsemantic__base.html#a8390681df5ceb96cc3fe307bcb6f5878", null ], + [ "minus_assign", "classxt_1_1xsemantic__base.html#a9ae9f40db494b08455a84b3ba24e87e2", null ], + [ "modulus_assign", "classxt_1_1xsemantic__base.html#a30eeb2e83b810139f5111c161055e041", null ], + [ "multiplies_assign", "classxt_1_1xsemantic__base.html#aafe434601607910fc1d8e95dde649bff", null ], + [ "operator%=", "classxt_1_1xsemantic__base.html#a097cecfc7ed32171204a465c057b21aa", null ], + [ "operator%=", "classxt_1_1xsemantic__base.html#afc0cf14e98f80e1a266aed5ab59d3a26", null ], + [ "operator&=", "classxt_1_1xsemantic__base.html#a9e53cf500ff97971980632a01242e40f", null ], + [ "operator&=", "classxt_1_1xsemantic__base.html#aa64e63246393baa97cda0409dfe880f9", null ], + [ "operator*=", "classxt_1_1xsemantic__base.html#abc6dededcc7548c86d0e680723332507", null ], + [ "operator*=", "classxt_1_1xsemantic__base.html#aaec30e9ec0a24602c707935671e72798", null ], + [ "operator+=", "classxt_1_1xsemantic__base.html#a8d5c560eb7c807fb0806864fb0b46c50", null ], + [ "operator+=", "classxt_1_1xsemantic__base.html#a9e31dbd09cdb7b7676d33243732f3ac7", null ], + [ "operator-=", "classxt_1_1xsemantic__base.html#afa46b608eb0ee224aa7592404ba01b20", null ], + [ "operator-=", "classxt_1_1xsemantic__base.html#aa9edf1d0dba25f33a6f1955dfe333d66", null ], + [ "operator/=", "classxt_1_1xsemantic__base.html#af008542eab3a41140cfe12dca74232ee", null ], + [ "operator/=", "classxt_1_1xsemantic__base.html#a2ff7796563ea73e3aff6ce17ff2c1f42", null ], + [ "operator^=", "classxt_1_1xsemantic__base.html#a7c74b14f291bccf501760aa166cd7bd6", null ], + [ "operator^=", "classxt_1_1xsemantic__base.html#a61d5bbbb065e48c74db69c4276673a34", null ], + [ "operator|=", "classxt_1_1xsemantic__base.html#a5fe0e38a7065e67565d46179727fe399", null ], + [ "operator|=", "classxt_1_1xsemantic__base.html#ab09ec4698094a4a1efbaa1ccbb609d42", null ], + [ "plus_assign", "classxt_1_1xsemantic__base.html#aabefbeb56a74c2098c0fe976227ebdc8", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xsemantic__base.png b/classxt_1_1xsemantic__base.png new file mode 100644 index 0000000000000000000000000000000000000000..2c04d1e3a7a0bf4a3409b791fc7b082a1a0070ee GIT binary patch literal 96543 zcmeEv4OmlG*6viD+SV%l>R8*Vr2X1T)oQ+KH7Y-8Yg@-r$S5MULNb;r^(RC{NXXwA zTPsy7nQArF2x)7TB9*9U0_0CcOfh1rh!GD-fB+FfNJ7Yea?af+5Kvo~&fI&SduIlp zK828d&e><}wfA1{TJKtW_n#9MkA33#Cw}+4-;G`J$9Goz?squw`{-vM8wvjMp z2yXrE5yr_S@4U5=@rXrdSp}~;_Sucmv`f3qQ-Cuf#eq z(A0}vz;pjD+~C1JU7%T;unvUo8fpq&rd6$C{q@0i;ZKbcw+-t+s42bIY2`+vO?E~_jD+m;blWg# z(q-2i%p;OaS)~1>ifTVmPW&t+hu0#0gVJ?B9;x8SBMfm+N{LlLAZPi>=rR9!^Da{x ztgfA$yoh`%&|o}id!y&X3F5BMeJB5>`%XhVT!>vopeOSMdvN(Bsr2%8ySOsGRn64K z>JQtC8ibcHsj?6K7G3u;Aa*%VC6E@XGnGU(9^IPLzBRhXS5^^I14Jrf#<*G2;v{j& z5YVBe*pzBbi|rry2jwt`8YJ4gb&!a$+2^vVbk4t;9O^en++|zO-;q?8bD4CTa*tM(rNVQZ+c00Yz!CleOp$b2K|z5!jx5QH^pMF6IvmF}F* zEV0--_r7^T4-r!=Ji6ewbn-uB*|FLFmJ9xYl{vIDH_aJDJDz&%sOtBFtd8Ik4`bpW zOEb8pu`+emP+uP#`s+_q6`VoF7kefz%j^2}WjORIad-deZW~jFdMtgYhw6tP`ggTr zSiGTSiuZp-k!pc?#rUbRvT{)*_y=}Go9($lv>96@gFfdb1vluMOHp!zM?~2F8AGj- z4>YaOViyc)oQ3ZiYT9N77Z8Us&anFpG<7(^1w$HVSO-FP4K?-pzy(7ZXIKY9P0yccVu>Zk`k}-tofpsYK6sQ)pomUcC@Cgq28nhOZn-6Up!i?|Wm3aeO1B4?8C^MI^A5>p+P%npC_FAsgL4R5bKrIIazzwqD_a@E zCYGovIE7-eA^3G?c4Kj*;RE4q+4HWH;6UFm4q>wm2x2L)gj(?wf0A9LbJ&k{$vX-! z;uB*fv2`4w=Qu2wi@kG5Z+xQPCbQ~Fi73#z2_*-Xdo2#R#qJ^7ja?PKjU`crXtJhz zz9mTle@m#rq}i*B@B9{B^jST|F;Gm&UM(T?<`TYn2Psv=Y`E6#Y&vevgy9qYZ^b=3 zl;zR?++;SYz(wK-RVt&oQY$dZJ4_d$2078Tm`6LMElwHh!&D8MJ!WO=Zy$A01T@(o zB6c9JLQ*f+tGCHp*Lcrp()fiH#r5Pz6-Qdv-}uLMv40XfjYHXZ{XO0t1I()M*fG(e zY^bmr{--Sup*bEJ-XXEuun{!~&IY#Mzx^(+v~DX;0sqYc|M9_pOK0)bukh8a`_--6 zs#~{}xBPE?-LN2JS2rHrLwIad9K||$)Ci%7K5oPgjW&ApjteGp{-(T91abd0KrhixwgGXy`NEbDt0oO9yxwbosL|iI0uh5QT^<&AuQL3z0^gE3S+%ug zexC82S*op*7vve|^YrD$`FXV+`O)CR;eX=8bJzeK0`~xSKKjQ6bns&~(BQcGGt_$V z<~3rAF|}%qwL!cNK1&sTPtO29>cwE9NU*PAFjwGED==NCYs52Qm$w9)AtQvvM|;0G zfK7Ck3?n(g?46Z@mYoWrFo14Vc^qXMBAPs5|lv;d@InA0GV%_8jh#jdhWJGG< zlDyitIgSY4xcB z&!e^)-v%q4d>T`r6WERU!Gpw}2=;SKaAR%?wgQieOI`pvuh2Ypw2(+=L^@=-?p-u6 zEne!?JaltQe>rC-HTq<*s!~)e~V*bu;fCUq6Nsk7bYkZ3rcwD~+3J(`{ zV1uK^Q_2XUtC>}`u)D#YHv1eHZiJJJ?P5DLNthh(1#hwP#D%B*H&&jb!l9MDch2y7 zPRm(rrHoSXL@BOLWb!RXpZyDMs`P4Qag*dzTC*iRx+4ECV20xwr|U5pSH^6%MiN;` zCFIg#Wk6p+_0uo~(YV2V8X8hROA*zJg9L2wC{FCwh`_Gz%}iBd+| z&bch(l^yok2J^&o{45v=siq)OOy^0894Wp!fs?0iyGex+Dp&_xqMSSWSgz}2ihO-C zJ^>Tw?K-e4zuB015PVBxf^Rdr3Mx;142#jf4(M42i!FQSr!4y`RpifV%@u_5?FY!B z^qeBa^%DA{hFz`j(nrdu!sg!BG6qgf>}ty@^Qo1bXiQByv6rRTN(nZnAlnhwa|DPj z9-BeyQ1D8!D}v=DogSic6-5M5tJ_ydX~SJrnibZpiqxu=H^kJ!RbX$o(O%VyEsKJ$DKeVd zecf_<6KpE)%C=?JCgz$;wBKe6*3d>%T6J|F7~D2_@&j)qpV;NY-UxDN4QnLS!rPc0 zed5+%AYPR~Z8SqJxwLQel%1%hCTDKPhO4S^+VOJPDl4tSRmaTorv)i)Pn<(T4!zcS zY%V3s-FoCzg^aA_Q{=1BMk?3zdoy@9P3ZOoO82Ey`O@SsovzsSQ?R(S46|S!W0!0L zDw$+GuE({)?@RNFz@$qk0oF*P;mfZZkJ1*!|{3r&Im)B zpqjZBXu!{y(2n#zaq8#TfUUfLz-pyM?p*kN|0?c}GwzBlJ(y*PjIDyjoNuhv_NSL6 zSHY8+_=Dsl`gfWtvpKR!8;L7AH@0i#B?NC;q9}JF7k1f8nooiL#$BbboAjJ1B}g~T zkOyW~v=o!~cB^s+o}d-Ik4>!H(8TINZEdpGytS)KPL>!BQ8srRH#lCB#mNu1)fpA; zPh4j+U?H{vKsWqW3p~*lB{EtBPEw|=BQ#RbyS+O>^BA{Y+OzO1_EKNn|57*nMec2x zQ#OHxJ4oo?to?72?9SMW+{Yo^Fk#o2&Lb9nE z(H)WDM`-`2c>En~6P$qEiT2=QO{X!POsu$1C*LJ5krxa2?_;B<{I*{sY3&Q%l>pmi zckkG66S4kU?*XA2R$v1`#D3i@UBH|uv19`E={0n~n$c^%46MDOFP8MHg-(#G(ug@f zm~%uLY~Ok#*^bQ{cOjRS4(#=c zz}rU)F)b-9#(>HN({yk#cLEiN6$1sm3kRX+rPs$?2V&~onu3S0u{L00SAL7le&`1H zb=YeA*D@%Z=I6cCYwQ2Cb+Rh`9%kr+-xdRNAHdLt-ru%OR@ni11b+j+eF=5a4=k^FBA5V3PuApN5PMA0}bkY0uCRjvOs0)fENg)LPHEqx15*u zs2QWNN!Yk=%&6=4?qFUEu;tswJ$7`(g3*NlI1Oyxy%Qr)o)&U;Y=%|Qq4kKC^1_z) zRA4{GTp&F9n~h&xT`>O?uywJ|q!qoZ6ZQnnl>7Pxy1_7x*fD2es1pFB%0`YTTzUQC z27qTmUXT5~%MCXFp|1P-g)I`3CO&rbM!zR!%2Od3J>XjDT~|DrSij;_mB3OWZFZTZgHdO+cG5sU(bAFF%h|5{enk3q%)29E-VsBMH6CS5li>sJaR)v( zR<@BNl@jA51k7Za)F&UOptT{Icnk8u!P0SPT8Hewv!Zn0=&jw<4(kCTIdU(_5oGI? zf7nAjlEDhp&DV(yt9ut(Y>tJ-z>*oW85ZW$w&V9P=QPS|Nvs$#QigS+baH6%Bg}eg z{xMAEP#t)Wk+dsl>*MI{tI#P2PM#61h;+#VmL7H~5Vq3z*9+4QW^VaFx%#@?5goJ! zwo^piQ(xEDfG+zBb}4?`I=5b9;%x9%-L=jO9{=+99}RRy*$9LTk7jweK4WHT0I>qL zQ1=~Ausg+>_A_s*wuX2$Ikq5Ox%ys`1&$M{D3$ak6 zbuN!?=%P$7h#8CAFtd23S%z5#t0*exd`lLZJb^Y9qTg0=Qk`WVw5h%lMRwwfLSBEpn@D=C^2K=j}0 zvQL*S>u}#h7gw6^(wVYr^f`5y=G=M&+n)Lr)n&r)`C?KbZUV`vStRsPvT~sPCbhX7 zVRzHhlXi zQL++vl*P9+iOpFb2R>X%tZ#JuL6fNKOp9PG$WSRJ?h%=CCVfMo6PBXY4hqpnn{cRi ziw$k~4cH8baNBH_o)aDhTa;7b*Y^aG#dUQ*2;S1r4Pzwo5*oCOB|l7vjWn^&D}j7D zrytUEJm5xVSIp!pb51HwmRWq_?&I5&(D~JMPl)`=C(HG!cvG=jvnw@1t}~jOqe;Pz zdJGdR4G$A%TbKL`rr=3YZPP1LGmbT8v12Ca-?>HYkO`lr&2EW`_In?tjBvrG_4|se z4fS^X+xB@I40~H88~hUsP~Q#c*y-1LjT~$OnlK&Wl;!5q3b9BiuQ{#C(ax$#G}gUF znt-n{@KmpB@-t{SHFVSHzeeDcjKOB(QxC3SFa=N$EZf%vjDZ!LBs(L;8C>qYSFt@6 zeWTrRntmdnZ{K>OFhRo?tcDhL=G;qbS}%lMcZ<`@xgiz2+qY_Rg-2QVWBRd21lt*t z-q%#y_D>?IYVfG~3&|Mefhf@=L$$)4*sa<+fhl^sTij;JGelIGpWiDMPrlqYCqkUVJe}(;x<~5a;>B&<>QyFu- zmR7kG{?;%i8I~0|Ek67yNgB3MWrp=Iv|KoY6a7<9Wh`o)iX)>Q!(`g#Le^~m zMn!bm7)+1R!woKX+g92efNS-PEylB0go`(b3??7hEpK-IjsLFDZ&vZoi*C5O7G3v}JOAXKnWLMu#8JxAiUHe7F^}^!+Vf-n#@DF9d-B3HSe-dqW zV|G{J%d&(ogzMBxn-)KW&Fdqbk5_t;wIw4)P3@Cy5dwc zv{WWNtgFDY2zCXu_@Py!GIld83T(&)Ze^KX9c!V&*Sq@mp4JAXyBJyjC1t(ZeW}n| zJRkUA`l4t9d!7Oi0>l=fM>QVX=)eMr?R5QyMBLp3jH)O4D!CD3M|$BCWON0(ewfQ?0RWm4M7T~)O9bdkZb67nxGxJvN*B zHmg0LUJEUgT3Q)WfV+CpsWgmE{TMpE1NkN)rQ;yG3e8H8=k3$h20mTpo#%8{HQ#7-3LNHyhMwKHp!K@y*#pH3MIl% z=8^-#IJ-D_<^IPjwZg!7WMQHH@)hYLrBujJ`!j!T$yC2rhMx)Tm%!OZ&3lODZ+bEM z&A_hRH^1m@eGUSb7O+f%_VQU=QI5=?jjph_Y_Rdj238E+o9*R7vDL+I;e*2Wlm*?o z@<@7SopEC~u2jK1N53jEV{nBqxz|TvCR{BSPQ6u&M+AQ^%gDL9n}1Q;?npQht7V&Q z>utc2OR91|Laf)Yq|$;QbzZ72)nss-pmck(^vJW^*n2f%@(E?mWg#&j4(9!0nQS=R z=R|=iSWG#FxiI(x<0KU6yM>-q`wzrW$QozbPkyS%R8b@?2&~`H3l%5ThoK^6VINeq ze$@*V-|B^mA7W7POUkHQnq$pb+X5dFiS@b=RNVYwFI41z0idGbyAV|DXc7ti^u6jK zx6u0|5gN@bf?Q)2Cy z<=GHMM#TUbeXE~(+58n__g?sqj43aXJ|jHhOjyotibGjaws+28#4k*KPlYZ$B^t86AujsGTWxg$IQPtYX zZ|X{X2|vg(*ikNh#7{UC?=jY#x}_b8YkpU?eyXvKt(j?krQ7^da7F~AGtu|_nh@_t zV#<3>?Tl3RwnPS_-J9YqRa;)h8}$~b&PC?CyGllcNvk=Xa}r9$@VYP>jBp=k zZ$Tl|A0Jrqc52nN_&)*0^c$XeM8!eqR`9iN^erm<$hI0Tw_F+mVuDf(h(#E78U(G- z^W~7sru{E3t7_eV|E6!Zj?Tng51{m)FfU(nus5u9c2-CJsdRw%pao#Qc zs9Q1HamhN~EeFwc*TizGb2Ba)VD~;~I^BfGDQ?1y!0f*$ zCdP3R*WDEd``D8McYADL=_q7)xXi$2cnz^gFQ#+MsLec0ViB=ot8T)3m}lZ*GvofUBjSq&s-HK+`Ymi)3v(^_?e*DNF);zliHpEN zc^Jh|{UDC`TTz%LDpG90G3FqUz!qE%Z7ShkS59`>PC6|k1NL$`M#draMfJ?|>T)`l zhxSDI(x)JNgG=zb$kF87iM|k{h!1kQRq8bR28B@L=l{2DaV?dne6|1$REsT_hcM1b zAmT=}tq-8{n*7I*+bO>iN(-53Sj@({KhqkRj20_@*6x*8=h6>+1S5*VZ}FQ_;$4m$ z$_LytE@?cpp#{~@6;%4MewSF^a(N-Yye~2)ciDnHDpQ3=-e&KDgG;Lp6ka4UIac5c zhFkqX=gWjmabsESC})4+E`C-)viy{%>Yd~<#EjrcRb2vinYV+*C=66^fvIB+2b7>V z6ZgofiOE60zQ zvhyzycTpmkrKkAqv`iPCJr;KP`;smOd>aFxkA@Lmc?Ai?=>;9a+&HJQqZ@fy!`Ei& zde9|&Vk)ZpjMh;?-&QK<1vFB9FQCcshH;lt*o$Wt*g~N%Ccrb}c2hp9Q@7%ys`1&b z104P3M!2(~lAH&hvA)}A&e30Kt zUQHAey5syARsnO}v^U4;1diWSTsV9%7KE|RF(>^FSh%l@&4BEb!pn(G^U^X_v|8Q~ z&2EbSF!0f*M1yJRlU#oTh@yI&_IeAcs0FVT4BjS#)$C~B1- z2lPp#BXXiVO1|9Mkol=-0QuBw*n0TzH*m&WnjwF zXNR0!3?H|ACWwiFkXTV5JBD160iw_Eu{Sa1cDlNcZ7KcIEH0jgZU-1yvPe0xq@aa) zTVht8)92NTQ=qWRLZ~Sho~U!<+5`>E{28>H#@52%yhi=bx_Dc|<%^mb% zbfHA!E}<9If?^_H`6ZqW(v_d3V7xTs>NMnt#SHqeN)p?J=z`n2|xl zB29^571o#U_edmm{^?|mXST!mBYqlN?pGxwr-@#2ZPY?do9>7Wq#^KSAy~tck#m(|9Zw6# z*1IH@yzp$NYsw*q%3t$=a@l_CXCwo;={#Uv58;o9h-DLFK}6`3a3u}n$@*ZIR$kCT zxf2uzlfyd!K~t`D8H2C4+t&y12U^b9+MBu`8N>dII0J^Tji8%*{}5&< zKK$@g!w>(3D{WZpn3nW&Nrx4#cS`;rm}=MWJ;X%p4GH&Cu|ovxUleWuhrj+D8Iu9_Kd%n0Xj!`!BR78kjYI8eCi~L#3NNm7QC|k%#{VG(k7d-QBpj9k!c0eO&kC zXOw$RYO8JOTf6sCgC89rJnoq{&wZM2%rd%pOn01Tlge-MU#t+Bsbij>%dm-h=Y)KU6K)6^&Rk7_fYl3l)BYoB_O zyh}d|N!W=6aYh?R*FX^G0uuyro>X4*yB;yLHHLyX@AjDg8k}Ufn58xR_pkMJ0Ga@h z^GiA%e=D&o!>{}UccDYH3vKCQUZ|^;6_~~BU{*{W25>@<;bvdah3gw&#EiULTrvW5 zl{}X9JbTi3!&PDj5Nd_m@*1tXMLs{L^b{qdI|OhZ#Q+XTNmvd5j_}b=N?=?`rkyb4 zsF#H3b-zlHD_$$%<36KH0f=a|5$IYo`f7>=J=yNEi!w5@6~J7TgwaiOO9QF2!ynNT zzfqoWuy{TrxCWX;qkY%0@Gf_DCEnPg66=?qpwG+kZy{`Ic+@I51CmAM1~c9yS4bZ5 z^A(?(Qv%f4L*X#0oV6ah@PLcoR0Ib_-c3ovWF zpNW|ZLOQEbO}FB=#UKsD;5`HK9f;}d-cA3m@9TZ5kiA~b(%x7^mwnsE{2NcI(>7`Wp=;3MwR{d6{wBHn8=C-p{jqB?V6 z?u>rN8FH8B8U6iFf{V&84yY~_MqL~Inr+7;QYyOq7badmqrox~c(X*o&t}0c37B_R ze#9a=kA*iBOJ-NX_-2(jjzj-_%aC!WzsLLU^AhyOss5$g|FcF6w#NpZ|*YU*7i_6BgoUl5*^`Jw=vjdE}~F#Xn=oLbzPzwVJm# z!f}J6Ih-)pqBGv8ZC_lK7CQo;gpumr}FU&xQ{X`L+p%5IPjkIOmk|h+F zx}!5EB*Lz52aTo0a3UiW`5Ai+w1ShO=^0YRDfYC~I%2{$`6Y?Qyt^dX=k3zpR+78L zT^kc6q^wxvZkopAfa~?FJ6ekFK8_5is3e>C747MJ^CoAkXrE^y7uF><#b1+6`a-hY zQQ=*Dft)4lTE2`5j~T~XwWF-rj_1$Sfwa1jF8LO!g zt!LG@S&kXFIq)IN0MVUu)cr}f?ws^-wWP=^ug&}){dNu^$`Ely*u!4Kt+ss#hKu|w zs@hkiE%Ppjgv7*55$z>qJQ0D970!UN%kx{-HPq_rmJy3`K0tH@#MRw}f{NA6mT?q% z4oxhmG892l4b@M@{NDG&l(DoAlMsSNwmU*;8?D|{9YG;A)it=u2rOQ>u{mQf;0~d68#WNvx zADjTmp}<$a;m=%Dr`&zbeXNCgQywpbC+C1^_OW+Ux%a^1dy1(3KM!iVMiL`s}0w)ZV>OEck*w>1Di~ zo`sAl_a<;NK>mku2zHm!3J6oJr0C7?43R3p&ZDnE_^+V#7b1ip5}bLTD3mRRKkguG z3OE}YumHgj;Zz8|9}rvv1UF%G@R0IsipS{z_?W@!?=m>0-jM1{$N2H_DSaNsQpBM@#m-a2s;x`e6Nh;Uw_!umnCU8FctAw)bW z6P4N+tj<>vqx%gk$CrxLJ`hF|Z|f4=8$FK3!g@nqSp|A}Yz)z^UP(x!B_n5Sbzjrm zR?!(Cg$#ziN-XbwpDyhd2i;-%12G>I^SVnawZ8HNIao%KG$48+9s1Lkk_}$HH7HC9 zys@5pR%DKsk39@~d`o&1F_)5_?@wBR@^>mpJE^d6Q1clneW193XgaiA+8$Wpo~?7V z)-}>p(wFp7G<_1|dH?zuR*`GA#&VZ-o0FmVz_jsCu?zpY)A1@(#>)FrI}Oy^^pt+@sY(ES=0C+Oy^?q?@KGnr>jlA()vQc+ z?G_HY8}%O+Q$>RsXK3pEu@F&(e!Hw9#-N)Q{JLxXC;Uhv?u@1BAar&|@mr!oCe)gI zAn-jBMKLdgBU#&RzOu|225t*{ajx$a$3HS9NehPJ6d?jIl>SJ>VQ(B zsx%+Anf%NpCH(W;6q?aG@rK{GR=?B6;`yh44Iy{5qyR;8j>tq}0J9l~O!dnF&WcU<&YUq{Dnl!^lMrdIz7_47G#RC~H=;{cP%G`WFaH(>s z#`G5PE_s$!Cx4Q`INWr+z1(m4h;=7}efiOnM^g_PSUrUC1{ZSXuvzHNceN=)Xz)o zZpS^joOPa`tX2wFD%qXp$$nA#U9r5c5Y{hU@IjF7RG^?_U?2=1OPOv+(Mwr}yLjrl zjRcNz3Sp%Cw9fN2n2hb_Q!-_@T3j-f;hjgOde`3-RO#8~WP()^eBY}J_Zlm)g0^Fe z2KNZZ0BxkLu*ENvS06ALEQBw!1hav@5R|C(l`7Wj4hKgUrvU{AuwHWx2nk#LwF*g- zr&Oi5eg@^90An^7Jc2>JmvHF;U1efbCSSEjb;;34oG!!@*;1%8kQSg57iLJ~3Vaz6 zc$M=gVG}VA`C)9#D%o`9=6l(#I1M+pEvH($hU>7z&6D>)C(Funp7W(Z=YMrwS?Deq z(K2m$!M0YH8#(S*<9+Z2|LUg#uTA4VGly8Ob)L{aE+~u&B=wMMeEWCxWyz%dl(kD2 z=W(Rb)(nL_#g_5G_JB~ngUV9*)m%}qDvwME%FO6ZP=4o?0l1brMd+>cukWHvtpXY= z4rVGzKZ61U$9_dCdy@kV#0Ue4C#3qfK=aH*{RQ-YTx(3GN3=#zT+nsbd`PKx$PY>^ z#QQ)!-zW-pA++T^Cs6!>X3dA|;kXMR(n9(K1Y;rw8;&&!4%kx?gVj$6mEa{TO-;Hi zXeGC;fO{5`W*@H%WaXfwBj9Vw=ZB+N%^;VuuUgrFc|1%k8zz zddH#%&J^w$`hhq=3IAovKk=?2Rbe2~xj#ztyXu+^tl*Y9@5TZ`WroXkEKt!_$f3mA zB>v*j{=I8FtNdLrDW=I^^Wfup99lGO5`HhrHWBmP8#`fq6H8aTxL)iJ=f0v=V9*&Z zNp~Q|LZ3y0ke)UzJXW$xG2Q@^^8_DD&2QWRL8ZaW5DQxS0BoOjtKnUW-Um5%pxw{tS)KHyhCFyIw`~z|vsOhyYV|s^^Ri?{EVU^=j~FzT zAtXi+2h1Zy7^5gnp!oVT7)%qsb4zf!yygd$w75ys%mN&=d9__8Hw1G>4`#rCDo$8k zHMrR=DC{WSlblLhNKP%VW(c^;=+PGiWWsn^bSE=HvWDY)%FYpKueT=os=NiMr zB1j_p0i3V(%Zzk?>vam9;n*i{2X(n%VxADm-3%+k)qzkHAbI6y?h!$YrUwWy>pfiq z2cMz|s7(29mZdf&a8ZecJ}6x#sQf!9scsan;63?kw%NX#(}MUIYS)R5ik_2JO{B+4 zZECZZMB2;SIwqC*Mj*#?x!g-8w4zuQtiDb`g&;GgMC{W;2G)2T5+%#u1|#o=c`~Rb zq@aA7mRO7D6Lx1hYmup11&$Vy?ex3c{lCX}HBbJEaPQ-Q5o7NQ^^6XF%qo}B-Lo5; z*6o5N4fz*#`EOD00{{zutJu?W!gkYfyt@X}R^zuLWhtjz3`l-maD%ohR@?AZL6n@zu5&v_5>Gh@ z5?gmFyO?QRdZ#iY&n)r)U07caS3wGgkh_iq%TjH1xGTJJy-s6B|3>xqdo57R0U)ud z-&FbzBO97!!8$bQF%YQKzXt~c2o1LOoyXJ1r~p60VR1jy^Q$$}cvns82tyYx8hsYk z@$x{36?XvnxGcX*6=NOC>OeEv!AT5D3fykj4%|c^yoPbu?q4ZV?iA1(JH~iAa~0h0 zRYhbxQkzd9Wvx+okrMP#h1J!uJL7h}nAMM`dzSr}CY7eQJ0K^+rO-KVMaW-Tj6=d(wHG8M|;XY8MtR!cwxQQSR*(^ROsFBE?L5LWKg zKPKV1$3W5YmHp+{!tsT^Z2Nprt`e(=h7g0yk)kz3u9P=A)Oy!O?^EwGdP0~8%Seu};)Q2PpU^%(k{Mir!iM0Vtc_6!Ia zEHN7(8$XKzp|DHoH=rBEmMN%XbKj;{0bm9ocJ0wBKO?GZh-yF8f0+K=M&SSc{xKcc ztJeIA`GysS>+Em$DKA)t4){=(95ux2V&iq18S9DD}pDYOd%Bhd3_gn#%J?DeeT zK>`FEf2hcrm+V^}AUhat3v#@GSQ##V-&u~IK*70*E^t_bx$kxUXn?U;Mk5= z*dmtmRoHbEMUoxouJT$%=sn@14M>#!TJ~IUo*Lc7=nFBZu(RvnLdHQ>a+SNeF>1;7 z{M6({26d};f|hulw>P*@jMZ8jlz`;c3<{ApM-YknYn~Hb?cH7Ek|>DYZa$+O->|Bo z#J=$p_xk!uJrTLx#`TqnFvxTY-CP9qWW_l3ktKP;z!I5MYu;@@-!=phsJqa89lAse z7U#70Y`l?c@s)LX+P)N_V<-#5slSV{qV|@=&>>#I-*XSXL*wp)MpZd9NY?xekUjr= zj`iItjDy&BCdPfsTrbgu6~Gc)g0BW%?Jb+lsB@k$*0p-O#O`0+8K;6^WDjv~LK zrc6j{4jva>(Z_YE6A+KgLXWN%U}IyfG3Xius$hMkfjyVFx?_yv60uq0Ae_4*wc&J#633>Kl*3@OT^)LCc~1cSNOT3(e!a#w!ny zdz91U`>@K-oO6S~0G9`2%lVdjmWS(P$IvV^ucTSXmsl`^y`!Gjpt6>nez|NLo{so`S4VnvFrV zGlN^f*Dh7wYWRvf&rmmxmMcHf>ePB=Dy5{HPxH0T@YEAHb8BipK`Zwtk%bwN4?s9J z>Q@FAdFr7{U?s?OMg>)^b#BLLd8|IJ*5dYGe+Ik|b|!@L>kwr5gJ_#oM`@u7e1qj$V2kCnT<0aU#Bz+cx5 zYQTZY1S;njL{JpnwQ;E?QBL+9M+G-CYa|+nPAo8HiEyo2UXN!KM9;*}K|D`zT{g{L z*)^LH_MH|P#cIb(u?bG5UDy?1o`kz=+;o4Ch_=gfeuB}RkS*CE_ij*wJ>Z ztw5yKLBmK$3E(PY=V_f(p1nkDP{TVQ>Pf9U4pB3X+8xRku%V(zEICM!^*_zvgpgvd zAOg+K1C)bh{g8KBXw$-b46_52yen7&*0RBog2QXsoIEGS&GJ7By9D=@C_?wsD|;5KC!3n$nX;X#Ol|Q_=D`%=*h|=^ zZXT4U17O&K$k=@D%9uK0g#2XShUJ7~sZPCJ!{--~Psj?GAkOs0b~vM9miII`gW7G= zcTpC~nYTkQiy`;aO_pdt@JD)I&J(Ct4h}9p@~&vVJ$_cOX`?6lhL`){p*O*i#)C2u zyH%#9Cb(Vf3APpaPBtfL1$oJQlN3IIt4$R-Et#>c#YNB=jl@YX%TojES;>nIx5?y+e zo1miGnL@^xUnR@`MO~izBV=iioWPPN<5Wwm;*cQvKxX}+1;O=Ckj--JGVm6 z21_cEGJ8xpv`C9C3M5)w`(>Y!3go-S3e|U8VIGJ?d#I%7RK>x`-GvUfw zdj%G_0g;=WpLt@wnnlNtj3lowD>8uKPf5<*pQN$0iOdp4B8cj#yFfV9Jj+^>UFwN; z(%j`#?nJu8P^cf!bnpWlKn{~u}(0O&P#j-W{swOkV$>sj2l^Vo` zy8EQT56oUB`tP>*H}!40#4GYAzIPvU=q|s8bzCkLC!dM zc0=$UIMK>;%(rfjAd)mz^HRY=Syzs{2^Z1LiNF_=txc+tWDC;n#f?_Pn2oQIOp?;r zczbt}?wXwHb@hP&tmGHE-(A@=?LB=#pvLbvMYwERtQ61%|3Gfg z!^i&hZLHqf~Cpg$KhY!4Oe~2e^*z9lj><)(s2567{bf^Dpo)gAS4j+{JfQw|f zP~N|8#kS#c0R!~1U!D%u=e_CYbxeubERBnd)UT9lslal&8Hk#KuHaGqpDACzXjl!7 z%0MrT58A!0pW~)PnnfQd>y*z+smcRk64X4fAG?ipB!p_$=GY`Rn=2f&DRW>KdU6o2 zBh`;RaUppEdJYlI1&4d*^+^dwEk!Ul%HnM;Ksb3P}L?OE<2bAROi=)K`6>V{i+hYGo*3B(TaLUIK6 zM~=iOxT!u-@~Gi8*D-C)ESePk=oCMl`&@ULT)9A1o9r&$Q`l{Eik*vfEJ}|!XbSfR z)KG@AiTZdQyg6sdH-*nCmJ|zaM@h!S5cH$!tcP9$Uk+;7qhe4v06SK+pi7~Pi;!mc zmzel_3eRW~Wdx7zro_1J2uKqs@Yh_@=%CmA#h0WLpxLTALQW#Hj#1a-W7oR#@jfTW zIH7Fs3qKfM0L&gPh@#*`){_5j&$7koW78YW+c^h65+%0NmmC73`xOU07H``OLk*Rc zl3KW#p8Q#|jywxb#UGSpX%;CpbX|KPUywsSg)lg=Zq0h{fp_&3yY>23r%sOS(Q~z- z5TSFu-irc0-np<+VCiFSV^oo!dpRZj!qVCrU2%rBt-E-oFLpmj^;$fb9pu7=&QBG4 zbVg9FZmEu!f#>tZg?d63Zvs!ERg>uz9iFp2>X_u(hE6-P7(Y_K9c}+WQzIE4z-Kma zXVSVT@s1N}tw#Q%+@_mzXA?wBSquCEojH`2zhi zZ$-0d6M_fP14EdDig_n$xsrDPEp_0~;)h^QYlj2yeZ^4M)*}%|I@et_JuV{nl_k#f zOxa<3R+WYySfZ|ZX){b~?6XtBf~-3aJu6eL`DQabWl+!!0#uDnZ6J8l2r^r|aUY%{ z)muRl;(^6rnw{*MX1{Va_k+Y_?D#bhbNm;s*!d6j|Dj_ne`}GT(1;F~J03{X3khVn z(DN{(>^`amW;OncL&e4~9zMo0V+%2S*5ZE>y*3To zKlkQRwW`WW!AW-oRT@V=f_`t5{9XZ(lLKWr1x?HXLZ-f_0c72t3$(At_*JF>e-(^= zn*8FnHG!;4fvP~x!Sds`#X;o|)Me~h$>11v;cfJM8+aCn8$4OLM~ZpVXAH6D8@fYhzQo&`7B{iHXMAVc7HbNx()h#= z3Vg9ifgf1yj9AaQQ-tHNIZG(q2hqMYQ#n>oU?=8PH1wyGf)liBrH|)K+Jb-F@rT2B ztembSt~|97PT_H%r(yl)B()R9n{*0S8-RQ9|=DNUlOEP=T@yn~~#6jW^77SF|hbnmBEL40Ju|l3g zzFWXF+=^WlqX!HX?sDJj0kKPrQZ@X8IH_*4cjH6?2|JTs*)(7+1*P2me-q6j*)u1t zmYgD~iW3O0yT}a_k_U-d@YSz?10A;|U<1L5EXdPVnWQ)>zsAk=N7fIl?7Y#eF#cvC~D$n2q=;PlKb(^W7 z9^i-a607_2I*xT0*@BD?*B$$rZdbQnS4!i<)5z48b)$(_wb*F8*yn#vtaBukWN(pw zhH3G@VTAzV_SEi_)l><73aoxlF4zh3g2sQ2Ngf_r)5GW6v*REUa?Ay}h0}3< zR?q%50JKi}8k6?KA=Ew-P)sRIol&#+;X*3t*=B&# z41;Dw)Qd?@%*2kco94*7>{~a1ieeU8fAL=lmEI-X`H>xj{m{WB@-JN;_aF6-|D)}P z{ptPQa4g|z_ym+;FfswpthpQy1rUISXCV5T99>!7Nc`N2H$RpO{)gye&Gh)Bn_8ARwFP3 zo83pO1W+QYOUWhNQ&&mA9M1TYKrVrk7h)9^E1~2 z*$--pDEDD0+mb4xEG6R!k{tS~g4(b4Zi2qbHwfwNZ<_OKbtwupL&O@JPLfoq`?e% zm z5JE^o-bill|J(qAK&1Wc|2$he_VjsH(wm!e&pqdS-#*{Zr)=pSo`3&R@tGdwzjO&<@%m?1Uk zhRl+3_Jn4QH2a_OGn@?h_OJxF+YHi~k|7E4TkBuQKvUCNX|zsWzL!}~oWiJArzFBjcf=CjSV}oi@$C;a5PIqy&>~n2|T+pZ6m#dY>1@{mCVGH?ioU6A+-CNk z8)V#))d1lo40!-;1{{SGqsh0~DLe5uGCd8mkPB^4dTM{TkLI&|FNWG1sE-f+`_B-* z{Y76tC~egfq}@$q^$G?K0(|&VdOjFMDfa@3`u^`1j#3WBFQcT#gI4?hbT`7eiGy`Q z7Xpc;<>o=b{@pxxPY8@MXamSQXb?i_BsdxUxgYfJ*x|sizmn?%lAa8-2rk3z2-sg{ zZz|&kWzajOCK3X%VP#}*U?52JG^zQH@Ij-sN{O+>zX#lGc_^m@IJTOoAmT-AQOPED zao2m-RKsU$*j*Bfr&E@h=*CCg5gC1^0XffV)}e`*XJ676%qj+EoD|ZG1Fn)F$8Gt{ z=o?Y~lwd=KCfIQoI|ND~~X{*Ww%MIWvU>=KHsUdKfP8 zz|?ZJbP=8RXROzG)VaV+d7rfYTJdlE>5`>Co(8#PcF2eXq-$@l^)=XFJ3ygxD)RDk z@bd#7U3GqH+J>zpzT!S=(Gsby^h9@Z5>||FmgM==aIp?G)n)yKY?lxq)A2-o;<`HC zr{$Nvu|~1-KeZ;uF9IQp;65|UMSFi`Gb?0~69ifKc#>K-PBPJ!-DX-YhN)a>oAbIC z@Z*L_!@E1C3ujX!637&=wB>!M88oRG#a=W+E`28#w;?k=Gxt;R=kDe29f*Tm)ZzTz zCl($>Ya{GSXlk2xyHc!5s?1Q~a59W9F+(~lQG((~ObMMrLmkO{+hI(Hjt(fd>Z z^m&ozXftHAxt3^`RndH^Ik>6elnaUTwfoES{IdD1#qHg%5@THT4oRE(eQ_0!{w?uR*AbfP1P7tKVNyPXzf_b8UVF?iV+dk~)`%?F%pd^e zDY;ggK>WQ*M%u04U#!DVvYlv3KW1(acFXhq%J+1Q+Q(sH>CNWaEKNMljmt(mH2X!? zK!V#oA=N%jo?l{#zmce@Grz?=@U_r!Jk$&f{B^M8neylfNau;p_EScMF>5>KO^hP? zVEByE!^Y(E>L0;tm|mLa_u4CKzsINh&&UYXOkw6m+51*WGqfI^!-1U%V*iUXs1Mi| zeM(%SOY_bu(7mXN`AxLK6q6O4rjX7)Xs48es6Q`L%4OWtit+|x={d8}9Za~-4t@*e zSzwrFs6nO2pK2%j%(~_FKh{zpYe)Y&(VhzX>nU^}@lcTvhYKhQU^HaLs#^Gia1EXkd9@6d3-?1%{)}?tM@_qok)l3oD3{4xl*h z9~>0AA6B7`RKl<}Kdb7P==evq)rF zem}pm6;PVkib~1s4&~RREA|tu)K~19#mF_Y$WZCNP17P>|9}p1RRdbr5L>n1v!uzM zVNV0rfgcit4*Z~az*Np=>Yl=w!vm$!H{gHJ+nq;!@#-Y4^XuZ(l(!>kj8^2eZs(WQ z8fW&MSdk;?hFRfz^^R*B>cPnG2?jE9?F;r1U$87OtFM~RF)n|nS$)>h{StV-`{dxr zzUpuhe~KPhZKtgTYNdPP46zR3$F zDY6`^Rz6HwpDoSHaf{Ov=}^Bklfr{yR`TtdTtJ3r`cPPt=m_G{%ZDp zJVqe{1)%^)zKg!u)8TC{a3{%uNX0R8H)bAS%@iW>koqJ5Xq%u{D#m5MT%Ks6DR~N1 zc$_p4luN@ey9`ywy`N0qC}c%H98z~czov_e0=akNH&!HuQ`vR0 zRS9CGJ$2sgrge={Sa?%s2KWr;$A$64C@n@%OgStRp8-Aw9u0)=!GuhJXU)`qa-F6s zd_)2;A@1qp!ICG$RMp+Lp%)@KgZb&1EUC1t{Hc6~{3-bqf{eZ3_L|D#wS=SW8|e`m zUIEv_#3qnCTIpZ}9n^00xnc(fY7L~nUgkdHzt)}A87`V6oR zqOuF&frS+${vNjHy-ZiV-H;mf1Lqq~5@s1^e1a0p!g2p~WJ8zwOBENB-`ssl#l42h zWdnaXdxPY-*M<68NOQkW3Rknf_!9RA@8oxcZ(7TkPp_uVwaq+CsoVs19#V0ipbcpQ z0+j{Gx+@}?)v_5-hl=0}1F&Q4_g0)GyF)UO0z|VY2lRQ%oVjgehDIC+ljj5SScy27 zdGX93LB#+}{p`I}WGFEtl`Y`uYh6PP}U_4G5y2geJ)0XnrYE(e|T zKI@c=&s;BWq|yIA@5-KvOKJAgQLLncXy}4d8%Vcb&?RH6&8h?1!EFX_anXD z{1=KS6%dN-CcV401TMZrvfNR8snJ)}K8e%UptNP@dwqRY;SmN-1Qe2>SZ~sM2}>?; zuE$hF;_!-UK;k!@LHWWIv!Fb8i}mfRpuN*j4*2B6gl#}+fHRYnZ=AlA&mdyiB`3J8 z)Ji8o1?bsBLJELKus_GLz6W~}*`1yh9;ox=zOI>?Kc-?FBjfW7Nx8t|_>AIq>U1Ou z`wA_>UF;*s#II=j!XEg&MedXE?b64$XVwfO+((O4GR31oR zaD5iUTr7^Q;tmX}FacgN-<-PhRigqKahzMTFVS3e(x73GcuZZ(5G2M~G` zRTRl4Zk>1ASEtGoOlOu{bbcr_Wu4XXW4i(;&EHs~6*MC`rx*sYL?Wiwq3@QZcFZ_M zJYQsi*M!J7bqx7*__mAE@p;5(0 zhbR6i!wcc{mz9ezaxPfKsyH2`oiJY8eh0(=t$eO$oswtW2s|cXA5|y-tGGWj$Gjus zufus$YyEKM_*K}l&Sn$BU29wLTfOQsMiDR2zU%aSBz6E=Okzi(=}ufVqsia4$6u^s zYc1}}Rm1qD{eo%@q6}0Ydf52D(oTKGo5G&oooh9kz<9h_~|hd2V!Wte5U-+}td&Y`l!m zYf)+~SFJmXXV5{;yRA7;UKQZSIb(Q!s2NBK4nrF^+H9yk+z)3o&hu|o|dp(ehtZBo zxXo#{F#YdU;cHk4f*GDyyHeVdT2rUtg|{ApqL!I`|%>dho)&O1Z<#8P@Z>Z`g6LmMO>CD4xdv=`!;fC)iQ7LQR{cw zW#}B^HkC&<(Y}x7WdFXAyPEVZkbUGVCnO2w-xVh!ZCdL0B`!epbS<1I1i|Nh>Z8#$l|V5-*S*v!%KnlhkdxV3XlY<440>9X z1M(Mf$e$MJ#xcQNSuZoQ@|ouzz&!ge(B?hD_&{u)Hy|w_wNHHn9~Jg!BiSduPZD4- z6d(ON_g8v-%4C%CyElSS{bpO-EYqzs{hxsLFA&r8!9jX`(hkM%g8#O#Y{;R39>b+; zCIr7RDh@mtML?jiR}o z{~69)G!=YyAY7(!HSz7JNWW|%aWRrwkEsRCec^jF2N0+Ngdu$mWcqm~9h}E1@~6lw z4*A=4=9jWO21oIR!0X$Yyl&qe4p(uzIOnE_5LoGfFJ;(sKWF1|0Gj=NIsBWIqGCgQ z3KVGMy^hqrtU6keh};;*KHK;gbaR)w@PX6v{omqa z_Ok!^yvF8E{s!n-U$^f$i`;pX!M>xfX(IbVQzD)w<88gYq^CNXIOZfR=b(a!myqJ4 zZX||DQ0#%_q-IYf*_hJB`yDIVpIl3bt9Tz#e6P`;D^>VL;{SJ2tKJ3$sA1&I+S#eqPgPJ%k#W~AK+y}pEtlp83(~?%9 zeYq!&3AdTTKpb;oh^6Y$ctA6o^THt2ek&KyLuLXUg-HK#+l(E8C6QswiLQig#uRo?}cyPmTk@wcUemF5PA_W zrhP3|VX1fjXmv(Xci5Xdl3PhperFnT@Y2xOuvbtC4M;=PBP54Al`m-a$X4IdR8l9f zq=p=K20K`i(13Nw=o6BaC)U6(o}tWZ(^iuu<&PIzce=A=OZV~Y=1)Bhx2bb23#MUa z1Po~<7u0vGo81$dGI&R=Mtg+*5LwlYO>~HT^(mJ02m^aY_feg1smnhVDe(Gi(+hNu zXY-z^_RE=BaCXW+WS9O0jmsRLAmm{X*=NUbO^)TC zmhb+x?)3hDAX)2Z0izPaXQZN$frYpomGow%)M&HQM;2zG_W(nE4k zJdM^Vmiy90u{T})%_nFVd8~W-^F%`9m+}eGQE|UNasMa*@KJ*HTQO^;jEodhK=^JSSdJJe;g3J%nmHwUOv$&xn1D@yQk}K-j9D5{ik?vf`1>nf&%kE@nuI;B=f@e zs8v}%pbV7g{ro+C`1{9hi{Q{&)*xg7b8PGX+OL`^a}ap<+)T8~>nCU${esiVqvfM} z(MQ3*MthVW7%iL)Q#c##)cslIb+chW6$IdmI$_6FcluSDn$&Owlg+weVP_o-%O^uD zTwj_zFSSF9F&19NXrO5J41nxS6qh+E`?LSLB{IhtEW+485r%t^^gEkSo+tlG2Dzl6 zVdTIOuLtTnvnUXsF|TDpNhB^?Ue@916oD?(^Q6@POmm8p2goss`<$K#W1|#*S-$s7 zn0F$3{7U&dC)g)%*Iwn$7fkng%dxMpaZ`}%7hgCv#NH-K{tW1k$knx`CLdr{?3FZ}!jI~u>l=ZzdeCzyb<)4nN7|Xq z(nZ9=8@12qF4PuZua1KwU)DeNo#_<5fJy(Z_-fXrdY+Lga?XX7Qv(NtYa!OWkSXPS ze5g1kTc%Uher2Af)7n%n_e%FxdWojkqU&O!g30?edq~O@UjlT{dbctY-cy-bp5tbh zl3*9^Du36Wc@`8|PuiXS+{YreMRo zxeYqTMROE+4U5_L_IY<2W3QVnVLl=2DydKr*CZoSmsyvbGe>$F7U(`vlea|Y7?sZv za^)p994{Nbimz7jnGtO7rqaN}EZ(0(R*>xW-U3pH3Jpz0rk5tJg_J2WF7Ft{ELh+; ztFV=zg zt#_Jym%IkgAC^)JvY6)}I*B98YBL=y_6p`%V^+!cOXcqQ3GP75uru4=y8xB~AOyP2 zIZWj$APf!rw8ny$f}WSmiSDf#^J|r#Xq-Y{;}vE}T`Vqb-Zdys)?wFe#_f^EA+Dt& z3l1e|?}v4{_-;y;Y-};~VrK3K!Jy|-aq-T4MdQN?{&zRjCvj4GUXnG&dHMqRH}aaZ zIGb-{g;^=rxZ}eEPGQsHhuHU<<1Tv0Zi#hy#lIs_TVj;b2$rml7llt0xVv8qs5`<% zVuf>Rq$ zVVp^Akd3{COVWRKlJ}G}uu*4bOghANg5|K1ee^!d0UhcHu@7ejpfk;iB=QetclcJa z+Tc~*Gj+9g4TIHqMM>miY^|RQ_-3O&T~s)eh_{1u2c@t1U3{_3U2C3|O}uV4j)9$F z?zC|U)2{I_E@)!@N<)!>H(45Ug1d?iM58O)HbD6IB)TiL&tb!|rkqwK@#oss-QYf7 zp@V6x3a>zr4o|4qMfSxE!58&2Zp8w@5Oyu}s&JDo&&gih#(&J;30^+Fr60+bEy0cL ztgh<@g`BG|9k_oXC-B)_@R{$B_)Vgw9N$V>-3It@l~EOW1_(wvzlL0E1`rhC-PON= zMDjaI52@frQd8}lh6kVVd_@H`503l9Z-sy{iLF4&>+pI*Wu@G61WKPX0DdX(f4V0& zcHf5^puj63k4g|5fuL%%BO0al8|{d`w@Ncwiui9WMW8jK(URk!u=n3DwvKj0|D29) z*wlwlvt~{Vn8w4E$3&JB^3rV?laLF$0ylJ+2vQgwK89zBEE#?6wEC&0z|B|$1*zet z26R{_2H%c*kciaD^DUS==hF5^5-Dj$lOu5Ksy|oQtdX+dDS#Wha7et;>puHbjNSlA zZ_C()^bBEPt5h548A64-BHW(tDP&HB(jVxH(V|j2sBoA58Ki;g5MQIReC($mMm{JT zj8>z{8=YqB2M`M%%6vj>O^^`@SEZ2T-~}8S{{3(U+`@{dseQ>F^*HKUe1ZvA=4ejKsvOBky z>ACyL-$fP&g7aq$J%3@KV3W=S&8Zs2QEH*732%nCx;yGkGbsIPV|ySpe6T)u!=zHazR!97Y%)1!iVh zLbeZ}n|O5jMMx9tnoida)=TnBRj~l(R2@Qk0!1)yZ!-Ue($1Il`aE)H(X{FWmB z#`9+hxe3_rB2B!*e4LsQC~{YG(|jJQvUkc``|mB^k@284=5}M?Yx!82M#({lV<6S~ zOz$yd^|St$*XSOV5H6)nI!m2rHPIOiclQbkmyIt7bZ2bI`v(GV9ZIY!?jd3hNCC5w z9*e7@X5hHoAJeSd+YFh$F_Dv9`o7Kioc<OX0Yxez#GCBG0jX1&#I_D{KfV#p~5+8fZUi_e-hTs&nyh{@lD zeATsK7cL1ihWHq3u}(m;r3SLbJ$pKak=cUbJ_#KT}aE;`L6Cg-5b8GfFBoG+@WROK)3;Dnr5?aqSYl| zHA@Ir?bj`k3B2B0NZ}Z*h^-w^5ZX#*U1Lvtn0*k`XjJg>nI&XI9y;WaE(#CFL$0R4 z<{MTE^3j7xWj!^IKPG`AkETL^_LZpdf7Gr7rzmCsFA1yl!MRrDEz+(Zz?KkYe;oGr zTMt$o1|l=}!LhNcD@AZ4|1~N!BQrBILyI}UKUK*8zLbpoWnhHG{7|$RuoM@61v={q zLl1!~y-Wn7G1g$<{~*xQDC^W{q%jy-2`uPnm@}w?gHFi5ALaz3{QuN~8;!AkPK*UG zVEg-EbW^aENW)ur3=F^)u2lbrClm$d$C1vl0GmEQN;JA&`c3C5uc3R!AxB}E{n<5E zqlUEX*!E3;#wfIf0^O~5!>F(vKLL$l;GSYl+{cc1 zo4CD2_6>WjWTd-e>BIN+2(t9!Rlf5SEGswMzhPKh(4;DCo zP=#o{jNhS~;)|>*9!nPOyoxfT(N1QPfk(uT;GKDWFS&kXQ!pBz~izfl(xZJeMBoJLma~) z>nC^{E^5Y?N3`K41lsdXnrw9dF{ ze!^F^Sl;;dQV|&wGUfx!27d_)(=Vs)4%0_-9@9tZ8@pJN?B}-9=+Cht^ahL5uF8KK zel~5MfwvaN%WQNT{Nk|Gl8feb>>ERe!I92AN7CKMNR>8GPLvl5o^IM-b0dor*TU?60c3qJHx5sBgxdB`=eP`?j3DZGauEvTM{`+ReAix*}W222L5^ z4C^2{b?7=B&|kr^7e7`0&exdLv^7~#mp~6bZfx2l8g7UFLW|{L!Gms}mz;*ar2DPW zX?=pprrVf`r}Lvk{?dflEn2`-)rrZCR(2-0bH?VsmmQ&XEYLm9XhSHiA{EV?*4qhF zF@QR4g)a67#Z_PU8`zndQ`X_Lbjwr6ueP4Q5!X@v&i8~3zGw4s$9+Y5pAszwJb#~K zLfm(Goc;Q(bmd+(R_7Wsg-KQ5NT8(zO1n_XygVZ&M9#>9A#tv|) zANQ9$?>Cn6E|_To6*`*9p+_^=t+vPkXRXe5G_XGS9FP3;ZwBx5Yo(3-Kcd$Eqh7-3 zkM9Uh!M*<9C#EQRZQHf^%KHZxn2fxqG71Eqnvg20bdIBCCZUxmi& z%KFyyTRiUr)O{@&k}d45c|;t)8xpYD9?VqMqLvB!*r)6Dhh0taO80eftwRZl3Y`T` zA@jG0Zz>tmcb+N%+&?9~ETok`@*{x2 z%KQNcg36cfKXP(q#Z+lz&TfJAEHvyuZbnb*uPsjP0-3JfZ-qj7@Zp=OwH=Eb#2kz2TWj7+OtHTvVaEP1z^e{9GVeXywAu=dPoX8(CPD7M z=vH^C_fy`M=d~$I`PAF+F(Kwow^xvESD46hXsKXNUSAfYb4!OwqsFDS) zDu>Ef?6T%lDOq@J^kWi9M2d>7YMZ^tnKun!ZvQVIUwYMj{4G0LpT+p zYD#s6c%kALd#)7;{8gm~ZCH~ukKy!9>dgd5>QynVe-v3>?DZdM*FndD)Jc3q?!Csw zAEK66C0<{OV-m8UlzniQkf+~QxK|(j z2C3_1P)wSjF9hznO=!m7-f z&h&cD1)M<#e}Obl1^RgV*v^;3Ajr_Yjc)=GWJylFD7UY6I5YV6g>QJ&92l%i&1&bY zKT_CcQfhl%i|;SnWjcs_?g;K3a0rA%MXh&q_6Wpf&j~cGX=+HS=2SZ$(!7F?d<=QD zwHA~%K_lI|M^*EpiQ#6FwN>$?xI}jIx?`1)%W6dmx)K}~2UBcm_Bc}TmyuhaSK#p3 zOJk8oabaF2D*~#0D%KHwqKrJFFLe>u3}lZ_xZm_Fnl5{clH+JLeHH8b~N z_RJs9aPN4?AYEUDhAPo&(&{EmhtYCQzCg|AFxdHs_wzvW_#l!C@Jf)O!d@MV8&tqw zn63(}cF88XHBW8^hxq;I1+$L;ogS)}k7?zzCxnF|JFSj>yxAzPSg@_5$Ku`X%J1pH z|EZ#^qm3bhoWO%y!E(MEOqnSHYyclqLQZG3dg{= zR|9lgUs@g|O9Gg!nOz3Ar?oJ!C?I&jI`aXRD+!@I4{xZ7tu@B9PG3qXkZAA3zaf9l zmvouCr1bI)!isdYd)-vR59w1rwniC6aP$3q5?6`AX9U`1;n@*UVaRH0p)^Ag9cw!& zn`|A&p5G9gO#fb%{XMs+m|{&ws%^X_zrhGU3>`tlzn{U(tkqfq_uWP@! z2eUOPU?0zp&&s7+{q>|V5D1r?R-ZW>AH&rgXBJ& z;tWM`OyUWrA&YlSi0j_-H4A%L2U79*`0RG`jDYe!2pn=xC>G81MJ`~vnQ67YR@a8B zYU2ivg~<_HPaqp7sdD}QkXX8s51ON*YPw4sEpzc^e+`QiRpWe|vLHov#d4LukGcLE z{^m3&P~F#)!!R~t0nDjF#@{Y(0yzQL6MvyR&L>f*t{bQA5KfR@%7@0$;~nWotz(?D zgR*z@;-dojUQ)D+W~Lq(4qDc)@Bu^*@9l0GfX+%#b{6T=wDDeJYRL}XYDzM*!5-&z zZU?b5?=#`S%(G5@S81NRtjVUA>dlr1No<}l185|p;^_lHT6ri)OVSvq2!ga?@h$@X z7L|1wGtaDfwTmJtpCAyPHZ4db#jxhpstn$kw<=Z#(x+;o*xmJ-&s@A?Yldt`fGbBM zA+Q|>_q$k~th9_MSJTESu0eespXXA(jALZYi4vwjo+4{87`ErsG3YO>u2QW^$+hKL zTW652EE8&=MiFwRk1J#OA~*K|E6fjw8@eVh?_JBqhDFy{e|XbcP#ycNXK@5Es)o@} zl9M<^e(|Vgg^Qxs{NM{D=^yI09vp7Qd%%2DAZFLqsj$J_3I0m)k0pwO7%o`DYgn1j z1(L28PSov%U;TkoTN|Fgz?SYZCCc)Q#}VlRZ@$oHI+A+ zu+%=QAzzb8KWT1chWnDX6|W|pcA~6h!g(FdQ0a499re(`A)%7HrMJul;!wyHCtRa9 z!{&+k3_o2A)OOg5SVM{^c=Gbjex4BOziKP$)XQeM;$@rQR z;7zi3nG0nAmnDST84@uS=;+V}6nca{{akAdLb`BOzYN@*4|vQFNPLPc&l@u4etr@u zsuA9O&7g{)K(TOT699Vk9lb!Or{l8XJ5bwv-wQxwL!bQaT~I2X?DGEVSn%&JLjUS7 z`uhEbi+6d=Y!jc~@{V!xksEhE`5fS~0MpsMrG|5GY0n3ve)6x&PachjN8@314fJkz zlp+FvkN=O!l^&I|pChjHbH$kc`>qFF(05T%bN#9rS)Kr0!icCw=>Tr@&;c-t(0+W@ z)B%=mePBZieCcBVgJFe*iip+_qr*U#H=&B`iwM+onkw{E!IJ3m6F^wPwkI0tJPwF> zF%ggm9y0(7#rM`-j;yhWq}Ry)P~jVwfKoUwq`RQUj{vO_3dFC3;hfa& z1S_Bg+c;Ijqldeb0P`9p0awnP04iZ*YjcF8K`k=&r-Nk%{!Sg|?~;j~@JkJ#Eqyql zxqb~3eRSxs05omH$t}jr$(f0WM8*3ZB^~K7It8RCwRw(JnO@?Fa8mgnL9Ez&!+-|S zB;-$Btn=5MA1m1CirY10#Xa-@(s+vOHGslFH>+%bfC+Fhn>(`FE0wzm%jCM7yu%sp z0C^iqGKZwf%!M{kk2xue5@4F>KparTactxOZD>@XZo(r+Rsd~is=xLsV{9>@3>2(} zdEtM4zEcGV7V*&|!=<)i;~Kj%%cCD-_qC*F(wU!Xq{yj5yhMCddu^pQGPvGj<06&5 zGtB_>SB(-OqkSd7!PI#a-?%47Y4)KLkRM_K8bm(OPL2az-xgcRWwLJ`;y4!uW;Cz{ zET-#VKdeHFhUimCTkwp#_kwMqu)FB5cF9+Zy(r$H6n`vJtQ7|sODdwtT#Mk@FNce%I-PedtWtb zPiD*<%wyj77EP=JTs-=tK?i4a zdV{NLbRh+|2D)X2`ntpJKjxR<h!>}h( z^yS`8H4CBujc@ZbaZEY#@gfxC`}*SpLWTjy&fRH(KsPSR7)7)BjA44L{xIuH3=cFu z<3LV2QVCAs4#jW#LXH972Ls`x2J?UbyCaU;Yz@a{;4kYfO+N3j<~I9Wb4;tsj1Hh| zd3Y*jw0NZ8Yx0rx*J_v=}{Ju%wE!sW_t=A9QLsvz!>{L-$C6u$t!^sffc?^ zizCx5a~(4nzFs1ZOPCK@3vp?v9V4aO`v84^-8u>ghn4}FAmb4fQ9xy6E*9)zXGY@Z zGiM|JVsv!Z8IL()s$;6+Ykg`ItF&sw_ds%?UKD+1MPsBEuYps_+Wf#<%8F8ocm{eq zYSQC>(meoyvWJyj#3=I~ZIyH+cd9?8?&OBE_ev(Zl3RY-ZR*0oL#6Xad<}=9&^cN@ zWq>Uj@ZLQy0TX}i6#1@)FzmAWHC%Q7>{{=d0c*c+^$Zei0n-<)>*;+Peu^@CGzEr! z4Xp87hF)I%VQFwK}p3#MbTEh{y%+QX-;rHdQDao-G;-fWHRxX|? zXKw0V!P;Cg(YHj8UmVF{=c6HF#+{FcJp* z6xw^-hf5>cEo29ZbQM?OBg28VmaRT;)SL#XJzT&5cYv=(^>pJ#v}wo~H0uNIaT&i6 z1F~J#3QfgU=H#yWE%O6KWQZs|ghINJ{UK+uAI91sV(TkwQxg4^2Ji8vHQpuKG>v%< z_5i*^I9qU7Cqz5VOpAZQ#42jt)yr(g=GH)22d6sTM0FEl#A$$KGk;7_2bVVNwEh`5 zGrekT0a{;1rBK4<;SUSUl!uXLop8r7FXxZAB;8&R-9vKoNUtZap%V21>qhbdBTnU@ zE3G)>9QFEYef79uZP{Iq?iYO3pqgFZd412RgKnXFJ{b7dXo8?;X^*Btf_r2%6%vek z|6{3;q4>mK?a_sXzsN1ng_|i)hgcoSS9;xtoRJRo;J2dBJKxn?@su`T2jKA|#<%*e zpu&#C1KV?~TxtydGDnF^;!FK6MX98ksreem;kn}@gMacbpiPp zTL;6kOrdz4^B8`&cwVCOrbt66xCtz6VQ6n^U@JWkai5|A&P+c4xrzhqx~Pn7wQ=2* zm>k~j;sSRuno-#>qDv%i1xP2@zLHr+m#_ssL#o;f!8EsNxwwQ3{D(qN7JvZdTmOs< zFhv9WG9KXJ3S&>!3u9?m9Q(CIjdmPsa_7-%&Z~M8y<-T?t!B?eB29=Cnfe)`IHA7eJYMQ6cJlNdX^^8F)3S*vIsj@oo9iiq_Qm%37Fqw}kQ5 zh<**pIi!SP2`s6N=Rn6r+Q}*d>WW}TPGl7IsYAzUtCg4-4It6MjEMw2zS1`55~uPi zuJWhdXhzUCV2tP+)BqA0kacPu$-C)=7Yu6v`hB2Z@Ku9=fx|ixXcaJ|6Y(DlxCVHm z_r9Ld#7NJ4j3!3@2NNSTKN-=~lUDx)A6=*k69QjgpL-LPNA;CIXIsf!Uxb1n(hc0H zfTRV#3u#hip=of;$QGy=^yy10!X#6?8}msqzM2+!$>)VlNNo*jc*G$MYG1uu4loUa z@e!nbuntkYhMgL|o<6a=0IFWafiY_^1mB93`L{QcG<)PXo7KS=&@z%8g0sUQsY0pc z*fSU&7Hdw_d;W#Q3q-YU0g=YYH;SBje^AXMlKrQ;vaZBe0r)_=A9b-#kLXa~Gl4^q zwFcB7PUXlZb1ZmCV41 zfy9QqKX7v8t*)Au!W$VK0u8&wqnh53o)$@E0#||!G_US8L%o0X<6od*5+$3Nu7v^T zr-ik}l-Q%}E~E*9#k(;+dPxp9ru=1=*4UaV+kpep)te!G+OYQ@knrfZRw>eE6#~7u z-RwVY1%pD4hMdN}2C*DK)sN9%7MevCp;x~I-7M_%5r0Speh5%zuMvYp3}eL0M^h}r zFO89_(!;-q(Zs{u7;!Z5@c$$65Mp`$3KN9?V<{F)R4~O-@fsT`7oh2t>=Co;2nV=S z)~tCgj4I?cG%pgZ9MQ5NokMFh;w1KJ6bOj0N6aB0Rh6!elr;BIzZOu>@!tW>>!t#- zMxkm$eJ}5b_8Nd-@5Of1IidBC+9vV$RA)AiJOTw;;UU{NcFs+d3r%W0i=84IqrD;~ zTT3TOz+Jl85mza;b0j7Kb_Zpat}c3kj3fiMiOm@P zNbj#lfV3FOOibL3#l^Z+Gq(b}Cgbd3qLz@TuPLMK{c@r?)`sc8$QQQAjxUw_$A#!ndiXc}eUvK+-C{AaNU zqp7iN|7H^Ke=CiGk`zjv%hjNSuzpH_c?-i=INUsf6VGphd5C9jiD3|hmEkql4vCpi|_U`wU>R(7W+5M=Mt;*h#-nL@lY zpCOaUTJ0>yGH+fPk%LN5AS2qb>`!|=jYeXHm=Xq5ncvk+ah>EEQf_dGRI2b9WP_tp ztcp>X!^KIc^MW7I)M9RoPwsBvpoCxn={sMco;-8CQ{*?~9^IrgSe?lfhid#u5wATjED7 z!GJezXl>#ce9k4>ByX8F$9h)pgBMm1WO)>_E}I?ka9owx?i@#5Trm$- z=m?w|DXZb~0v|S4w%S0elArnvL{9hc(kLJUaPjpLev-2|13<__= z-)cZRXIzs;%rK&FPch!4(pksAC5W%qYgoT3Gv^w%^}y>XelxX z{~CFE=PkaA8%v$60E|&XU}NYU_cw6-Hy%m@hy_L%J;uBiA~K5nDKd*A`Mfl)ajVDR z$PBO?ML^FuD$LXH5Ly=a(}+oeB#=zmB%DRvW8Ggb;(McS8M~IlvB|7i$mSkK{Si&Y z>p^Dygb8vrQwXOc7QK77qMGwtP846kw0a}&R2A>kHCD`&#o1O>B%-oM{H77@)|aS6 zRXFjT*!iks+=+rQkq6|AR`+$J+f`8QQ(}!7%~?_Ds3p5HV&>paXnTwGX?{nbv%|RI ze40_Ib^k~fip7LYfiqr!S}icpIM69{w$_iBl*yq7kt!9d0-amEF8YSd=j6YI-M-Dn5#|$x6jTZI2!a@}79`Ui^2j3QW2@euD7%K+LiDGq?=iNExJx+nDZA%PE zMyIzZaQyZfZ`Llr*Let)*}{ZyP5yjKoPoC5c7+2Rjc~SZD>{l$=-?+j7C??d_91Q{ z8z(}3;H3y>2Q;7kgju*>ZliYyeF{v&zMlu=vXORT@8D3bj%ZzoMR<;C1 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xsharable_expression< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xsharable_expression< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + +
    derived_cast() &noexceptxt::xexpression< D >inline
    derived_cast() const &noexceptxt::xexpression< D >inline
    derived_cast() &&noexceptxt::xexpression< D >inline
    derived_type typedef (defined in xt::xexpression< D >)xt::xexpression< D >
    operator=(const xsharable_expression &)=default (defined in xt::xsharable_expression< D >)xt::xsharable_expression< D >protected
    operator=(xsharable_expression &&)=default (defined in xt::xsharable_expression< D >)xt::xsharable_expression< D >protected
    operator=(const xexpression &)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
    operator=(xexpression &&)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
    xexpression()=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
    xexpression(const xexpression &)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
    xexpression(xexpression &&)=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
    xsharable_expression() (defined in xt::xsharable_expression< D >)xt::xsharable_expression< D >inlineprotected
    xsharable_expression(const xsharable_expression &)=default (defined in xt::xsharable_expression< D >)xt::xsharable_expression< D >protected
    xsharable_expression(xsharable_expression &&)=default (defined in xt::xsharable_expression< D >)xt::xsharable_expression< D >protected
    ~xexpression()=default (defined in xt::xexpression< D >)xt::xexpression< D >protected
    ~xsharable_expression()=default (defined in xt::xsharable_expression< D >)xt::xsharable_expression< D >protected
    +
    + + + + diff --git a/classxt_1_1xsharable__expression.html b/classxt_1_1xsharable__expression.html new file mode 100644 index 000000000..7bdd23448 --- /dev/null +++ b/classxt_1_1xsharable__expression.html @@ -0,0 +1,226 @@ + + + + + + + +xtensor: xt::xsharable_expression< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xsharable_expression< D > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xsharable_expression< D >:
    +
    +
    + + +xt::xexpression< D > +xt::xbroadcast< E, X > +xt::xgenerator< OF, OR, S > +xt::xgenerator< value_functor, value_closure, S > +xt::xgenerator< flag_functor, flag_closure, S > +xt::xreducer< Func, E, X, Opts > +xt::xscalar< xtl::closure_type_t< E > > +xt::xscalar< xtl::const_closure_type_t< E > > +xt::xscalar< T > +xt::xscalar< bool > +xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > > +xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > > +xt::xscalar< const_value_closure > +xt::xscalar< const_flag_closure > + +
    + + + + + + + + + + + + + + + + + + + + +

    +Protected Member Functions

    xsharable_expression (const xsharable_expression &)=default
     
    +xsharable_expressionoperator= (const xsharable_expression &)=default
     
    xsharable_expression (xsharable_expression &&)=default
     
    +xsharable_expressionoperator= (xsharable_expression &&)=default
     
    Downcast functions
    - Protected Member Functions inherited from xt::xexpression< D >
    xexpression (const xexpression &)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xexpression< D >
    using derived_type = D
     
    - Public Member Functions inherited from xt::xexpression< D >
    derived_type & derived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    const derived_type & derived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xsharable_expression< D >
    +

    Definition at line 83 of file xexpression.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ xsharable_expression()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    xt::xsharable_expression< D >::xsharable_expression ()
    +
    +inlineprotected
    +
    + +

    Definition at line 145 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xsharable__expression.png b/classxt_1_1xsharable__expression.png new file mode 100644 index 0000000000000000000000000000000000000000..0af8d58a9fa3a3555a7205d717744baf31d8adf2 GIT binary patch literal 10196 zcmeHNYgkiP*0$p)tyKAX8L-M_{ESd<;FT!1OtmehDzrt7h#_@^ppXzHCIOO=sugOr z-~<&hlGL$^ib5rl0D+)VjS*t12q7Gjh+G0BCtP9@ASC(riS111*6DnIX6BjM&y(lu zvrh=;ti9f~-u13?^uw6wnKS0hm@;L`OzehtKb|sWstA1Eet9ZbY2I+W7#!w)xM|CK zE|&{T`;8V_!JX1I%NFjNUDVwF^yyQuzFM*EYjEwA10To4O#$cbf&K;W$&@KU1nj%- zY{`5H)(m7kyZ?*N9<5(=r_089md1PU^`{s0)^)#<_pjQp=+r0c1cr*__|rR1Cl|l+ z=B89E_XBR$s)RG~!p&UyPaM^k)&AU`hVjwIjrPUZ_uELjh_PqLT-M-j?IQ_Uv`pAl z8A+$bzpgB1`>uiO9E|Y;5hG6exUF%ZMe!iJGoTJ4daj&Hsft7~#EOUGw-iSWUHT^~ zmQAhQQi3X|P~U03*F?v!sGut^_MO-XwN)R>svmTwh9^}kyosS3MMD)5b$aa1m?14a zIWgt?HNW6$%0H*h~%op46IPaP;n=PHA-&H(V= z+en2;D}Hng-7Uh7J~_Lz`5O3I(oY;o@ux4IPL3!3V%oI%%!7vx9g0?w&VTjEFGE6L z?-?_uf9F1-w2Bhmemj$;K$afu0oPwfrn&B`|J3RGj5WTqXyCK*;32GEB7s0KSS%Kr zzuOexj1bfU{6Jwv7GK!suPj>ctF?}F0jH~_*k$lxXN`0@EE8b#yX__g!`Uoro__!W zKjk(4roX*<30c20%IYN(+gfCe0YRZDQO0d|3+kKtd4}LOOuos{zY&AGu%7Yi z>ati`;L(96?Y-vgK32wccw$sTtEk9xi2O3kCjuefRph1u)(ejmNA?RD@e}EEbdYFw z`QkbSU3kt!PV3w(Or&wD*zNmxOPfhwkt%AL%o3R|hEf?>5zHb_T^-7dldVwt`LCXitVWjJy#TJyTZK&5Ay@y&(>rlQ$&#jzn<|&AJeV?aP92C{AdmP7 zZ2o{BUfgggrna#RAzRv zT|=V-4&&bMM&L6#%Wboa=y@RxM1)(jZ%;Uq0pt$1FWAu4B!j4%!CTg;M6pRDh zr2mmk4{=&U#UtZSF1b)@wTs=K>gjd0jLeNFFF4S)b-0enGfmK|`V-e-EE3)# zc`aP&x1@vUNu9e4D#(Z(mp1s7g*mActT|NQ1JvQbZ^d!4ckKDmWmW1sakJlsP~(lc zGgr%rZm$U^R4KeK{dw5?d*`A*n*XGF-8;84&n|uQ%~#JO)BpJwpLQ)2;!h`E0g18r zmN4@nsqkxV(u*+nr;-29O<)~H(xQr;rS5`hIhdSU4zRq&cLP`U1njEv41A+Wa@blb z(o<%k5C`J3*6f|n$mm}tteoPZNaVth%hJQNFZ0|)l$F8cV#!{Abf^A-wHJ&5lzjJ&ZV7&!N-ElIZ5r{~ z2B9SI;FHZp9A`bZ=QUath$f~~=3o-9XFo&IY%01JQmM(MFB~rHJwSE{NdaMqhcPEf z1y>R)*P0sY;jl>hfgLzqH0x&l+OtU-ZH!S#!aahwNS2qb#Ew1%cr@+@RKuRbi6k_y z`QWO;n}2tY+T?u;HSQN!CQ{#dlAA#G%A2?G18&150Gr&VQ0yXXlnPiw5sD3T=bOKA z1jw&i(zN1@Oz+rY;CRPN{~a9f1v>aEpdUC{#4&v{^2mLUe#Rqn=0oebleGZ^>%gtX zpp=|YGx|c#0M1XFh#h4h4$`d7;ZwOR1Da@GZXKc_p@y>x>Tb!7-}BIG2y)tG-6LY9 zewVBzU@F~pEmSzM&8{?Qi&O-&@tiQ~|8vv0rbm*u;z+et4CMhA@60 z+q^g)uHN|r_Sl($z* zm|P|Ai!p?>$4rV`vfX6Su&;BE2%DiJuyPA~=5mbC?wkd<#b>xP1N1$B?1p8Az4ZP+m_!*49S(m|>$+vtU*$LJzJ zl9w6@Gi)`L>?|NE&jo+u31WwP;;1)ZpWWL9ZJI{cae@F;QJFV35hX zAih{KogdVxeSV+`?o^pIONJSNP>#IiB5zzpkvQ@xcFyuPqNlPeB$)tE+@WW-FA=CAH{>7)I&Ga9N zN9D7%AZ7l{I(;gUxq+)>Q?pkNcb`HLYTlwv)-{++Cs0|NK*1DB1$%!T`e-P+{A&H2 zc2d_ns{r%M%ct%17Ezbv6>##Sbxy~cjEtzvIoUy?)s5m7=uyK7c!HfzWi<~w!uTlH z`-opYNo8(G7w=wZP;0bN&$?02PO&qTUty%!?+l zmw8*qGc=dZ+h}%Yl|7-{U=LbI!9fOMz=}>p99RJDPOu5_=1vQ>z9WZA<{H^II?}cN zYktI6E>!Qh-xgEu-3EMPREj6Nc8ly7KS46nu3v!lUylQDo_}3bT169d1#4Ok)k-xR znG8qm48oVrBcu>rPlj0&@M-ihKr}l2m%E8E-@L}RdksH9N7r*nVp?m|=FAuhdV*}r zOd{B&nwAsYMd7XXeK$fAGG`T>By%TMqgyoudLc>V5d*lhFtd&1iUV}nf0KKYVpk<( zE&)_!5%wM;lKhvn{Dld;xbQrz)C!*vzogoovkX?gpI8#bs^j*|b3@t@3q+M}ger4N z;OHra$Fxp1CL>HLWv}sTX9yqO@R!#2RdV>BND}!W&J7%fSwRBU-wdqZ0H0vpfOT!J z$1Z2Dmet2XuRIhmHd+Qk?$x*8(4CWq6xyv??5G#Qj4(<%emaFNUc1v8TuMoemytY% z9{O^3O3&8{edRg*wtWReyJxvoUgvlUwMgb_zaHP- z6@?RpfDs#nbzZD0a#UsurKYlukR02kng>?mA@)w$e27$d4YH*2l7xU#bG`;u+hnrr z7pfzcO3C|HtSD`seIQI0k4m8RZW1aPGEd`sQ z3L)}PUcW~YQo1NWX{}x4$Ium=%demW#CTY-*QnR>DuN@2@G+$6%S`r8&A!Lp?T_bUU_*QLDM^#CFTzi>&{YK*F!N>A>$N- zJGmEe#UdddSIyJFg*j@;Iq56Acs)78CL@i=@c5D2x*8E3%lKNQCLkipA$vRcptd|& zM`TjV46{`)84lvJ?6<|G4BcR$f;0P%Dnrjud|Z1-8QNfoI^(FNQ_hB~O|nk8wJ+FS zogXby2gZvHt)X(FA=Q(!9tV=fh5Tvdo`z%wtS=;~@;Hn~^@)s?MoF!-Wv@hF3WOX! z9rSE$Mo}N;OT>?zn?7N`3A$^^uI5L2VH}e9mI`LV5Z(5i zZgZSMxe^f;tO3I75`DuG?26;S>^uzAy<*I>mmJdWv=j7z50nA(*LDQTQ)2ehtB!cI zy6bij4gNy0{qws0KTxU&jTYsh#yj-uXUTBfO^D;3g}o|bxgR0X@TofIxv2bg)~P>Sx_Ydz zm43)ApFSYjJiI6s<`vAS{jGhi+WsGf$LaJ}M<1(u&5DWaU~$>fO-LL(-n;#2?Kg>Z z)dv_kU8T3AmY}905)`%)$f6yQcNyDt`K9>+dYS=F<)IEEmu@4ms}lMd(%uge-=81< zAj>PCEku;dk$)Kx^Y03&|8JGk2vp9|s*v2yNXy}cg+1qAg#Jp+*`=?34R(2U)U&X< zdXZ!(I!2}vdzDVbZI;5i00C+~V)Bo0(E8E4B2I!KGBG>Y>}aeXv44bJaRy;+tD)W7 z(suAPn<;6zMJ+sE3R9C5p5boVY!%rL=ZRHW#gT&ci({Kb-MRLiYH3|vT|^1$t?!n9 zvvFII5(Jz%Nr1M+fSB@D-`-~?{x_5#9}W4Be4chBoM zM^H5*o&=PfZr}X|fV>u?up0IYK;puH3N|(N94yB>QciSP3N_K6Gm?w&Y9HiMCY(%ngZ?SDu-ad8siewOtf)G z&rmgpx>4F{eZk@MgRdK4UjaUc^Q}T{hSGOQYaU5IhZ2lM*8^tSjVhBfzcZ3;;Sf2u z1I}j79qyxoM=q(vyDsaD>4M`;+TQ1VyJ}w5g`5&ZRILTFDn1i>oNgn|lQ54#`=ow! z^RJ?=8w&T9JGzbzlLo%#S_R}WIB~wlf0!WDEL~;8L9wSV zJ2VyBdIdAX+i2!A2F4tNN4rw2K9e_&N;;xOQkhHk;kSoK1Sdu8oM5k}dGTVrh>@}u z1;G;1kfvXf&`Gp6?!u*1xZc!!NijEK78-4_EHt9OLMhA-ER&!52|jC_pzm1zup87d z-G#KebhDA1Qd50=dub=wg+c2;9iD}0xI5>bS1#W5<#rBiO)*~TaMZOl6kUB73mST06S=&T2c!aocW(|SQxwy~%aMYZEyJ27)C0aqQCqlG;y5n}R7 zqz_T_f*GxN(QU&1fk>HixedCtSI;yk8Vc+k%|R) zUg=A^SWD=$$_4T-En}^p2e1?b-`cn6Ygmj&A)QWfY!OO;h)N#vAMp0PNiF3}d|Be? z8{qcD0ejO+VA%yK03QQ$`it%n3*0zxOR;EdzkH;2^UL-oB~wPTI{L$Uv+1^Kf>b3s z0-sl=@2B;8<@z-^>BgJ|QYT>_K%T3bD$}9yTvj>QDLtTfOZUjnR$i9Jrn;iG^GNsxkxRT>9K$%^8Gm20|7uhr(ptTVuq>5F&FW z9u(%d!pvJwhgy$_L5rSI0GEoZH}^xk#DuO14{iNeM?kTO=O(KuNR6dU)E{~nWc5<^ z_Pcm+cA5FEWG;Ry%jK|V3ZaniLYCXDk0B8 zv!BpJMc7|*t%fwusGKTC&$v$KNZsmu^o>N<)ABIg$=O-@JfYN(3IQft>*u-Cr>)5p zbdfB$(lqtJhBk5$tcjlm0$wo0L{FH!#p;}JqsdmcmSIlO3)^zK59rG8K99TBjEjpjO>nl6`3!Cm-rODW;h86^$8mG2Nm8rC1wA3_i*7Z$?4#R{r1%& z9KSTo!5lEKp4noGP&%Z_H2{vg1H&0E?77FOoirbFDk+610V1=%Q^`(9(-N>5N^~jb zN}-+VhpQK8^d7d!ik1a(8zQS;0Uew1iX3Vp=l4Kni#-oA`A@x%@BbDC5qRCh9XWV!;7) ztCd*fFqhbTKt~VRro4EvmzyHb9Nf|_y>CV;IhzMQp!%&U`^|c@^^j}^(g5}kglMZJ zY7Oef^vt#O3yGXmGd<|OM(~AQowGtwCG!*`UkZmDw;LftU3*EaF|~#VTfU_P#Ku)L zjqJbF{k0%T5+n3)PaNLxBUbHy`|Ni)@%8Zp@d8Iul}2%c$Xp3U)j}kSiA8${moR2W zDkMzCi~M3QHzi3H_7Ojs1?o8_S!o)rv!j2DwgzgVU&swhp}4F1%KWvyZQ_=Xv;2#a zB;@Jok83A|30ScZA6U;%rB03x5lc9iw*&n)FBI`$t(!yZCXUCC4Bw&)BoDy_D$Lh`e18!aj-c zEe2-Wz3)Rl?GxNoC9~)aJr!C@FYMGltK>*^VOzNoXOZ2w_5+i;8FL->dHlUwl7kzl z#~?e|$Kdg*+bcmQ0uQ{hJh!O6X`pP-bfiX*i5?!jq>`zQRYdM_^Z4I<&*RnMf_54e z4e^eK$=!&`Q&2k+la!M+#sZuz=T4*egP C3la_h literal 0 HcmV?d00001 diff --git a/classxt_1_1xshared__expression-members.html b/classxt_1_1xshared__expression-members.html new file mode 100644 index 000000000..91b39cab4 --- /dev/null +++ b/classxt_1_1xshared__expression-members.html @@ -0,0 +1,207 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xshared_expression< E > Member List
    +
    +
    + +

    This is the complete list of members for xt::xshared_expression< E >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    backstrides() const (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    backstrides_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    base_class typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    begin(const S &shape) noexcept -> decltype(std::declval< E >().template begin< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    begin() noexcept -> decltype(std::declval< E >().template begin< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    begin() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template begin< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    begin(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template begin< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    bool_load_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    broadcast_shape(S &shape, bool reuse_cache=false) const (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    cbegin() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cbegin< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    cbegin(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cbegin< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    cend() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cend< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    cend(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cend< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    const_linear_iterator typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    const_pointer typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    const_reference typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    const_stepper typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    contiguous_layout (defined in xt::xshared_expression< E >)xt::xshared_expression< E >static
    crbegin() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crbegin< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    crbegin(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crbegin< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    crend() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crend< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    crend(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crend< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    data() noexcept (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    data() const noexcept (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    data_offset() const noexcept (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    derived_cast() &noexceptxt::xexpression< xshared_expression< E > >
    derived_cast() const &noexceptxt::xexpression< xshared_expression< E > >
    derived_cast() &&noexceptxt::xexpression< xshared_expression< E > >
    derived_cast() &noexceptxt::xexpression< xshared_expression< E > >inline
    derived_cast() const &noexceptxt::xexpression< xshared_expression< E > >inline
    derived_cast() &&noexceptxt::xexpression< xshared_expression< E > >inline
    difference_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    dimension() const -> decltype(std::declval< xtl::constify_t< E > >().dimension()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    element(It first, It last) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    element(It first, It last) const (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    end(const S &shape) noexcept -> decltype(std::declval< E >().template end< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    end() noexcept -> decltype(std::declval< E >().template end< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    end() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template end< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    end(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template end< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    has_linear_assign(const S &strides) const noexcept (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    inner_backstrides_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    inner_shape_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    inner_strides_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    is_contiguous() const -> decltype(std::declval< xtl::constify_t< E > >().is_contiguous()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    layout() const -> decltype(std::declval< xtl::constify_t< E > >().layout()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_begin() -> decltype(std::declval< E >().linear_begin()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_begin() const -> decltype(std::declval< xtl::constify_t< E > >().linear_begin()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_cbegin() const -> decltype(std::declval< xtl::constify_t< E > >().linear_cbegin()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_cend() const -> decltype(std::declval< xtl::constify_t< E > >().linear_cend()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_crbegin() const -> decltype(std::declval< xtl::constify_t< E > >().linear_crbegin()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_crend() const -> decltype(std::declval< xtl::constify_t< E > >().linear_crend()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_end() -> decltype(std::declval< E >().linear_end()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_end() const -> decltype(std::declval< xtl::constify_t< E > >().linear_end()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_iterator typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    linear_rbegin() -> decltype(std::declval< E >().linear_rbegin()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_rbegin() const -> decltype(std::declval< xtl::constify_t< E > >().linear_rbegin()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_rend() -> decltype(std::declval< E >().linear_rend()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    linear_rend() const -> decltype(std::declval< xtl::constify_t< E > >().linear_rend()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    operator()(Args... args) -> decltype(std::declval< E >()(args...)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    pointer typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    rbegin(const S &shape) noexcept -> decltype(std::declval< E >().template rbegin< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    rbegin() noexcept -> decltype(std::declval< E >().template rbegin< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    rbegin() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rbegin< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    rbegin(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rbegin< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    reference typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    rend(const S &shape) noexcept -> decltype(std::declval< E >().template rend< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    rend() noexcept -> decltype(std::declval< E >().template rend< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    rend() const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rend< L >()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    rend(const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rend< L >(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    shape() const -> decltype(std::declval< xtl::constify_t< E > >().shape()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    shape_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    size() const -> decltype(std::declval< xtl::constify_t< E > >().size()) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    size_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    static_layout (defined in xt::xshared_expression< E >)xt::xshared_expression< E >static
    stepper typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    stepper_begin(const S &shape) noexcept -> decltype(std::declval< E >().stepper_begin(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    stepper_begin(const S &shape) const noexcept -> decltype(std::declval< const E >().stepper_begin(shape)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    stepper_end(const S &shape, layout_type l) noexcept -> decltype(std::declval< E >().stepper_end(shape, l)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    stepper_end(const S &shape, layout_type l) const noexcept -> decltype(std::declval< const E >().stepper_end(shape, l)) (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    storage() noexcept (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    storage() const noexcept (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    storage_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    strides() const (defined in xt::xshared_expression< E >)xt::xshared_expression< E >inline
    strides_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    use_count() const noexceptxt::xshared_expression< E >inline
    value_type typedef (defined in xt::xshared_expression< E >)xt::xshared_expression< E >
    xshared_expression(const std::shared_ptr< E > &ptr)xt::xshared_expression< E >inlineexplicit
    +
    + + + + diff --git a/classxt_1_1xshared__expression.html b/classxt_1_1xshared__expression.html new file mode 100644 index 000000000..bbc741981 --- /dev/null +++ b/classxt_1_1xshared__expression.html @@ -0,0 +1,2683 @@ + + + + + + + +xtensor: xt::xshared_expression< E > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xshared_expression< E > Class Template Reference
    +
    +
    + +

    Shared xexpressions. + More...

    + +

    #include <xexpression.hpp>

    +
    +Inheritance diagram for xt::xshared_expression< E >:
    +
    +
    + + +xt::xexpression< xshared_expression< E > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using base_class = xexpression<xshared_expression<E>>
     
    using value_type = typename E::value_type
     
    using reference = typename E::reference
     
    using const_reference = typename E::const_reference
     
    using pointer = typename E::pointer
     
    using const_pointer = typename E::const_pointer
     
    using size_type = typename E::size_type
     
    using difference_type = typename E::difference_type
     
    using inner_shape_type = typename E::inner_shape_type
     
    using shape_type = typename E::shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using storage_type = xtl::mpl::eval_if_t<has_storage_type<E>, detail::expr_storage_type<E>, make_invalid_type<>>
     
    using stepper = typename E::stepper
     
    using const_stepper = typename E::const_stepper
     
    using linear_iterator = typename E::linear_iterator
     
    using const_linear_iterator = typename E::const_linear_iterator
     
    using bool_load_type = typename E::bool_load_type
     
    - Public Types inherited from xt::xexpression< xshared_expression< E > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class... Args>
    auto operator() (Args... args) -> decltype(std::declval< E >()(args...))
     
    auto shape () const -> decltype(std::declval< xtl::constify_t< E > >().shape())
     
    auto dimension () const -> decltype(std::declval< xtl::constify_t< E > >().dimension())
     
    auto size () const -> decltype(std::declval< xtl::constify_t< E > >().size())
     
    auto layout () const -> decltype(std::declval< xtl::constify_t< E > >().layout())
     
    auto is_contiguous () const -> decltype(std::declval< xtl::constify_t< E > >().is_contiguous())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto begin (const S &shape) noexcept -> decltype(std::declval< E >().template begin< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto begin () noexcept -> decltype(std::declval< E >().template begin< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto end (const S &shape) noexcept -> decltype(std::declval< E >().template end< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto end () noexcept -> decltype(std::declval< E >().template end< L >())
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto begin () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template begin< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto begin (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template begin< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto end () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template end< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto end (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template end< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto cbegin () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cbegin< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto cbegin (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cbegin< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto cend () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cend< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto cend (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template cend< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto rbegin (const S &shape) noexcept -> decltype(std::declval< E >().template rbegin< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rbegin () noexcept -> decltype(std::declval< E >().template rbegin< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto rend (const S &shape) noexcept -> decltype(std::declval< E >().template rend< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rend () noexcept -> decltype(std::declval< E >().template rend< L >())
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rbegin () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rbegin< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto rbegin (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rbegin< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto rend () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rend< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto rend (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template rend< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto crbegin () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crbegin< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto crbegin (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crbegin< L >(shape))
     
    template<layout_type L = ::xt::layout_type::row_major>
    auto crend () const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crend< L >())
     
    template<layout_type L = ::xt::layout_type::row_major, class S>
    auto crend (const S &shape) const noexcept -> decltype(std::declval< xtl::constify_t< E > >().template crend< L >(shape))
     
    auto linear_begin () -> decltype(std::declval< E >().linear_begin())
     
    auto linear_end () -> decltype(std::declval< E >().linear_end())
     
    auto linear_begin () const -> decltype(std::declval< xtl::constify_t< E > >().linear_begin())
     
    auto linear_end () const -> decltype(std::declval< xtl::constify_t< E > >().linear_end())
     
    auto linear_cbegin () const -> decltype(std::declval< xtl::constify_t< E > >().linear_cbegin())
     
    auto linear_cend () const -> decltype(std::declval< xtl::constify_t< E > >().linear_cend())
     
    auto linear_rbegin () -> decltype(std::declval< E >().linear_rbegin())
     
    auto linear_rend () -> decltype(std::declval< E >().linear_rend())
     
    auto linear_rbegin () const -> decltype(std::declval< xtl::constify_t< E > >().linear_rbegin())
     
    auto linear_rend () const -> decltype(std::declval< xtl::constify_t< E > >().linear_rend())
     
    auto linear_crbegin () const -> decltype(std::declval< xtl::constify_t< E > >().linear_crbegin())
     
    auto linear_crend () const -> decltype(std::declval< xtl::constify_t< E > >().linear_crend())
     
    template<class T = E>
    std::enable_if_t< has_strides< T >::value, const inner_strides_type & > strides () const
     
    template<class T = E>
    std::enable_if_t< has_strides< T >::value, const inner_strides_type & > backstrides () const
     
    template<class T = E>
    std::enable_if_t< has_data_interface< T >::value, pointer > data () noexcept
     
    template<class T = E>
    std::enable_if_t< has_data_interface< T >::value, pointer > data () const noexcept
     
    template<class T = E>
    std::enable_if_t< has_data_interface< T >::value, size_type > data_offset () const noexcept
     
    template<class T = E>
    std::enable_if_t< has_data_interface< T >::value, typename T::storage_type & > storage () noexcept
     
    template<class T = E>
    std::enable_if_t< has_data_interface< T >::value, const typename T::storage_type & > storage () const noexcept
     
    template<class It>
    reference element (It first, It last)
     
    template<class It>
    const_reference element (It first, It last) const
     
    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     
    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     
    template<class S>
    auto stepper_begin (const S &shape) noexcept -> decltype(std::declval< E >().stepper_begin(shape))
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) noexcept -> decltype(std::declval< E >().stepper_end(shape, l))
     
    template<class S>
    auto stepper_begin (const S &shape) const noexcept -> decltype(std::declval< const E >().stepper_begin(shape))
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) const noexcept -> decltype(std::declval< const E >().stepper_end(shape, l))
     
    Downcast functions
     xshared_expression (const std::shared_ptr< E > &ptr)
     Constructor for xshared expression (note: usually the free function make_xshared is recommended).
     
    long use_count () const noexcept
     Return the number of times this expression is referenced.
     
    - Public Member Functions inherited from xt::xexpression< xshared_expression< E > >
    +derived_typederived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    +const derived_typederived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    +derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_typederived_cast () &noexcept
     Returns a reference to the actual derived type of the xexpression.
     
    const derived_typederived_cast () const &noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    derived_type derived_cast () &&noexcept
     Returns a constant reference to the actual derived type of the xexpression.
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = E::static_layout
     
    static constexpr bool contiguous_layout = static_layout != layout_type::dynamic
     
    + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xexpression< xshared_expression< E > >
    xexpression (const xexpression &)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    xexpression (const xexpression &)=default
     
    xexpression (xexpression &&)=default
     
    +xexpressionoperator= (const xexpression &)=default
     
    +xexpressionoperator= (xexpression &&)=default
     
    +

    Detailed Description

    +
    template<class E>
    +class xt::xshared_expression< E >

    Shared xexpressions.

    +

    Due to C++ lifetime constraints it's sometimes necessary to create shared expressions (akin to a shared pointer).

    +

    For example, when a temporary expression needs to be used twice in another expression, shared expressions can come to the rescue:

    +
    template <class E>
    +
    auto cos_plus_sin(xexpression<E>&& expr)
    +
    {
    +
    // THIS IS WRONG: forwarding rvalue twice not permitted!
    +
    // return xt::sin(std::forward<E>(expr)) + xt::cos(std::forward<E>(expr));
    +
    // THIS IS WRONG TOO: because second `expr` is taken as reference (which will be invalid)
    +
    // return xt::sin(std::forward<E>(expr)) + xt::cos(expr)
    +
    auto shared_expr = xt::make_xshared(std::forward<E>(expr));
    +
    auto result = xt::sin(shared_expr) + xt::cos(shared_expr);
    +
    std::cout << shared_expr.use_count() << std::endl; // Will print 3 because used twice in expression
    +
    return result; // all valid because expr lifetime managed by xshared_expression / shared_ptr.
    +
    }
    +
    auto cos(E &&e) noexcept -> detail::xfunction_type_t< math::cos_fun, E >
    Cosine function.
    Definition xmath.hpp:1307
    +
    auto sin(E &&e) noexcept -> detail::xfunction_type_t< math::sin_fun, E >
    Sine function.
    Definition xmath.hpp:1292
    +
    xshared_expression< E > make_xshared(xexpression< E > &&expr)
    Helper function to create shared expression from any xexpression.
    +
    +

    Definition at line 509 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::backstrides_type
    +
    +Initial value:
    xtl::mpl::
    +
    eval_if_t<has_strides<E>, detail::expr_backstrides_type<E>, get_strides_type<shape_type>>
    + +
    +

    Definition at line 528 of file xexpression.hpp.

    + +
    +
    + +

    ◆ base_class

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::base_class = xexpression<xshared_expression<E>>
    +
    + +

    Definition at line 513 of file xexpression.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::bool_load_type = typename E::bool_load_type
    +
    + +

    Definition at line 542 of file xexpression.hpp.

    + +
    +
    + +

    ◆ const_linear_iterator

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::const_linear_iterator = typename E::const_linear_iterator
    +
    + +

    Definition at line 540 of file xexpression.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::const_pointer = typename E::const_pointer
    +
    + +

    Definition at line 519 of file xexpression.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::const_reference = typename E::const_reference
    +
    + +

    Definition at line 517 of file xexpression.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::const_stepper = typename E::const_stepper
    +
    + +

    Definition at line 537 of file xexpression.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::difference_type = typename E::difference_type
    +
    + +

    Definition at line 521 of file xexpression.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::inner_backstrides_type
    +
    +Initial value:
    xtl::mpl::
    +
    eval_if_t<has_strides<E>, detail::expr_inner_backstrides_type<E>, get_strides_type<shape_type>>
    +
    +

    Definition at line 532 of file xexpression.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::inner_shape_type = typename E::inner_shape_type
    +
    + +

    Definition at line 523 of file xexpression.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::inner_strides_type
    +
    +Initial value:
    xtl::mpl::
    +
    eval_if_t<has_strides<E>, detail::expr_inner_strides_type<E>, get_strides_type<shape_type>>
    +
    +

    Definition at line 530 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_iterator

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::linear_iterator = typename E::linear_iterator
    +
    + +

    Definition at line 539 of file xexpression.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::pointer = typename E::pointer
    +
    + +

    Definition at line 518 of file xexpression.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::reference = typename E::reference
    +
    + +

    Definition at line 516 of file xexpression.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::shape_type = typename E::shape_type
    +
    + +

    Definition at line 524 of file xexpression.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::size_type = typename E::size_type
    +
    + +

    Definition at line 520 of file xexpression.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::stepper = typename E::stepper
    +
    + +

    Definition at line 536 of file xexpression.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::storage_type = xtl::mpl::eval_if_t<has_storage_type<E>, detail::expr_storage_type<E>, make_invalid_type<>>
    +
    + +

    Definition at line 534 of file xexpression.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::strides_type
    +
    +Initial value:
    xtl::mpl::
    +
    eval_if_t<has_strides<E>, detail::expr_strides_type<E>, get_strides_type<shape_type>>
    +
    +

    Definition at line 526 of file xexpression.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xshared_expression< E >::value_type = typename E::value_type
    +
    + +

    Definition at line 515 of file xexpression.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xshared_expression()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    xt::xshared_expression< E >::xshared_expression (const std::shared_ptr< E > & ptr)
    +
    +inlineexplicit
    +
    + +

    Constructor for xshared expression (note: usually the free function make_xshared is recommended).

    +
    Parameters
    + + +
    ptrshared ptr that contains the expression
    +
    +
    +
    See also
    make_xshared
    + +

    Definition at line 696 of file xexpression.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ backstrides()

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_strides< T >::value, const inner_strides_type & > xt::xshared_expression< E >::backstrides () const
    +
    +inline
    +
    + +

    Definition at line 597 of file xexpression.hpp.

    + +
    +
    + +

    ◆ begin() [1/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::begin () const -> decltype(std::declval<xtl::constify_t<E>>().template begin<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 564 of file xexpression.hpp.

    + +
    +
    + +

    ◆ begin() [2/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::begin () -> decltype(std::declval<E>().template begin<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 562 of file xexpression.hpp.

    + +
    +
    + +

    ◆ begin() [3/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::begin (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template begin<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 564 of file xexpression.hpp.

    + +
    +
    + +

    ◆ begin() [4/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::begin (const S & shape) -> decltype(std::declval<E>().template begin<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 562 of file xexpression.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class E>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xshared_expression< E >::broadcast_shape (S & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Definition at line 645 of file xexpression.hpp.

    + +
    +
    + +

    ◆ cbegin() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::cbegin () const -> decltype(std::declval<xtl::constify_t<E>>().template cbegin<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 566 of file xexpression.hpp.

    + +
    +
    + +

    ◆ cbegin() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::cbegin (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template cbegin<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 566 of file xexpression.hpp.

    + +
    +
    + +

    ◆ cend() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::cend () const -> decltype(std::declval<xtl::constify_t<E>>().template cend<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 567 of file xexpression.hpp.

    + +
    +
    + +

    ◆ cend() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::cend (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template cend<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 567 of file xexpression.hpp.

    + +
    +
    + +

    ◆ crbegin() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::crbegin () const -> decltype(std::declval<xtl::constify_t<E>>().template crbegin<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 573 of file xexpression.hpp.

    + +
    +
    + +

    ◆ crbegin() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::crbegin (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template crbegin<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 573 of file xexpression.hpp.

    + +
    +
    + +

    ◆ crend() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::crend () const -> decltype(std::declval<xtl::constify_t<E>>().template crend<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 574 of file xexpression.hpp.

    + +
    +
    + +

    ◆ crend() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::crend (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template crend<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 574 of file xexpression.hpp.

    + +
    +
    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_data_interface< T >::value, pointer > xt::xshared_expression< E >::data () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 609 of file xexpression.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_data_interface< T >::value, pointer > xt::xshared_expression< E >::data ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 603 of file xexpression.hpp.

    + +
    +
    + +

    ◆ data_offset()

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_data_interface< T >::value, size_type > xt::xshared_expression< E >::data_offset () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 615 of file xexpression.hpp.

    + +
    +
    + +

    ◆ dimension()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::dimension () const -> decltype(std::declval<xtl::constify_t<E>>().dimension())
    +
    +inline
    +
    + +

    Definition at line 557 of file xexpression.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    reference xt::xshared_expression< E >::element (It first,
    It last )
    +
    +inline
    +
    + +

    Definition at line 633 of file xexpression.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    const_reference xt::xshared_expression< E >::element (It first,
    It last ) const
    +
    +inline
    +
    + +

    Definition at line 639 of file xexpression.hpp.

    + +
    +
    + +

    ◆ end() [1/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::end () const -> decltype(std::declval<xtl::constify_t<E>>().template end<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 565 of file xexpression.hpp.

    + +
    +
    + +

    ◆ end() [2/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::end () -> decltype(std::declval<E>().template end<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 563 of file xexpression.hpp.

    + +
    +
    + +

    ◆ end() [3/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::end (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template end<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 565 of file xexpression.hpp.

    + +
    +
    + +

    ◆ end() [4/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::end (const S & shape) -> decltype(std::declval<E>().template end<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 563 of file xexpression.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class E>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    bool xt::xshared_expression< E >::has_linear_assign (const S & strides) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 651 of file xexpression.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::is_contiguous () const -> decltype(std::declval<xtl::constify_t<E>>().is_contiguous())
    +
    +inline
    +
    + +

    Definition at line 560 of file xexpression.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::layout () const -> decltype(std::declval<xtl::constify_t<E>>().layout())
    +
    +inline
    +
    + +

    Definition at line 559 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_begin() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_begin () -> decltype(std::declval<E>().linear_begin())
    +
    +inline
    +
    + +

    Definition at line 576 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_begin () const -> decltype(std::declval<xtl::constify_t<E>>().linear_begin())
    +
    +inline
    +
    + +

    Definition at line 578 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_cbegin()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_cbegin () const -> decltype(std::declval<xtl::constify_t<E>>().linear_cbegin())
    +
    +inline
    +
    + +

    Definition at line 580 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_cend()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_cend () const -> decltype(std::declval<xtl::constify_t<E>>().linear_cend())
    +
    +inline
    +
    + +

    Definition at line 581 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_crbegin()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_crbegin () const -> decltype(std::declval<xtl::constify_t<E>>().linear_crbegin())
    +
    +inline
    +
    + +

    Definition at line 587 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_crend()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_crend () const -> decltype(std::declval<xtl::constify_t<E>>().linear_crend())
    +
    +inline
    +
    + +

    Definition at line 588 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_end () -> decltype(std::declval<E>().linear_end())
    +
    +inline
    +
    + +

    Definition at line 577 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_end () const -> decltype(std::declval<xtl::constify_t<E>>().linear_end())
    +
    +inline
    +
    + +

    Definition at line 579 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_rbegin () -> decltype(std::declval<E>().linear_rbegin())
    +
    +inline
    +
    + +

    Definition at line 583 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_rbegin () const -> decltype(std::declval<xtl::constify_t<E>>().linear_rbegin())
    +
    +inline
    +
    + +

    Definition at line 585 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_rend() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_rend () -> decltype(std::declval<E>().linear_rend())
    +
    +inline
    +
    + +

    Definition at line 584 of file xexpression.hpp.

    + +
    +
    + +

    ◆ linear_rend() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::linear_rend () const -> decltype(std::declval<xtl::constify_t<E>>().linear_rend())
    +
    +inline
    +
    + +

    Definition at line 586 of file xexpression.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class E>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::operator() (Args... args) -> decltype(std::declval<E>()(args...)) +
    +
    +inline
    +
    + +

    Definition at line 551 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rbegin() [1/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rbegin () const -> decltype(std::declval<xtl::constify_t<E>>().template rbegin<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 571 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rbegin() [2/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rbegin () -> decltype(std::declval<E>().template rbegin<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 569 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rbegin() [3/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rbegin (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template rbegin<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 571 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rbegin() [4/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rbegin (const S & shape) -> decltype(std::declval<E>().template rbegin<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 569 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rend() [1/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rend () const -> decltype(std::declval<xtl::constify_t<E>>().template rend<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 572 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rend() [2/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rend () -> decltype(std::declval<E>().template rend<L>())
    +
    +inlinenoexcept
    +
    + +

    Definition at line 570 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rend() [3/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rend (const S & shape) const -> decltype(std::declval<xtl::constify_t<E>>().template rend<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 572 of file xexpression.hpp.

    + +
    +
    + +

    ◆ rend() [4/4]

    + +
    +
    +
    +template<class E>
    +
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::rend (const S & shape) -> decltype(std::declval<E>().template rend<L>(shape))
    +
    +inlinenoexcept
    +
    + +

    Definition at line 570 of file xexpression.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::shape () const -> decltype(std::declval<xtl::constify_t<E>>().shape())
    +
    +inline
    +
    + +

    Definition at line 556 of file xexpression.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::size () const -> decltype(std::declval<xtl::constify_t<E>>().size())
    +
    +inline
    +
    + +

    Definition at line 558 of file xexpression.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::stepper_begin (const S & shape) const -> decltype(std::declval<const E>().stepper_begin(shape)) +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 670 of file xexpression.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    auto xt::xshared_expression< E >::stepper_begin (const S & shape) -> decltype(std::declval<E>().stepper_begin(shape)) +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 657 of file xexpression.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xshared_expression< E >::stepper_end (const S & shape,
    layout_type l ) const -> decltype(std::declval<const E>().stepper_end(shape, l)) +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 677 of file xexpression.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xshared_expression< E >::stepper_end (const S & shape,
    layout_type l ) -> decltype(std::declval<E>().stepper_end(shape, l)) +
    +
    +inlinenoexcept
    +
    + +

    Definition at line 663 of file xexpression.hpp.

    + +
    +
    + +

    ◆ storage() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_data_interface< T >::value, const typename T::storage_type & > xt::xshared_expression< E >::storage () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 627 of file xexpression.hpp.

    + +
    +
    + +

    ◆ storage() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_data_interface< T >::value, typename T::storage_type & > xt::xshared_expression< E >::storage ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 621 of file xexpression.hpp.

    + +
    +
    + +

    ◆ strides()

    + +
    +
    +
    +template<class E>
    +
    +template<class T = E>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< has_strides< T >::value, const inner_strides_type & > xt::xshared_expression< E >::strides () const
    +
    +inline
    +
    + +

    Definition at line 591 of file xexpression.hpp.

    + +
    +
    + +

    ◆ use_count()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    long xt::xshared_expression< E >::use_count () const
    +
    +inlinenoexcept
    +
    + +

    Return the number of times this expression is referenced.

    +

    Internally calls the use_count() function of the std::shared_ptr.

    + +

    Definition at line 706 of file xexpression.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + +
    bool xt::xshared_expression< E >::contiguous_layout = static_layout != layout_type::dynamic
    +
    +staticconstexpr
    +
    + +

    Definition at line 545 of file xexpression.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + +
    layout_type xt::xshared_expression< E >::static_layout = E::static_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 544 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xshared__expression.js b/classxt_1_1xshared__expression.js new file mode 100644 index 000000000..b92fe9afb --- /dev/null +++ b/classxt_1_1xshared__expression.js @@ -0,0 +1,5 @@ +var classxt_1_1xshared__expression = +[ + [ "xshared_expression", "classxt_1_1xshared__expression.html#a0eee9f39b506cc2e83b9b4c6dda150cf", null ], + [ "use_count", "classxt_1_1xshared__expression.html#ade23a460bdd1eb6102372076493f719e", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xshared__expression.png b/classxt_1_1xshared__expression.png new file mode 100644 index 0000000000000000000000000000000000000000..7b65ffa0c6ff4cb533e7004edff69c3dc6f5f701 GIT binary patch literal 822 zcmeAS@N?(olHy`uVBq!ia0y~yU}Oif12~w0q;jW29*~j_@CkAK|NlRb`Qpvj(*8rs zEetdZB&MHv@!-J&pt$MTuq8k_&XOR%U zOTYT0-~Zp~|C(FDG3I#TtS=?e`8hm7pV)=!b7w8{oR!1WV6R^&z+TAEpiwAMRKQ@d z{P42h%;#M>LlA7$+Oc-3T^c&xkJzSel>q6Kk@1!dvQ`-(n^z5B59nd`$@ zvu?jBP{^LU;pde7~M zCgXz{^K5@g7e!3dU$4nv6L^ciyqKZkf7l}hzDEoUfsX<#d@h@KrlqaF);@El3ZHfx zf1^OVShGV%^Q$E@BPUpNG+WG=>Dt*0WXz15LJIdvbU{J+^gDA@{_i>BD08GyW$}@R zg?!GZYs;Uj-QF5?%GT3vQT)M1mHbyy)0bPEQ7aXl_U!uXpZoU2Rol=0TA63^I>M(r zP-gGnb6ofCH#5)OzW&pew)lDGL8gClrnpbO7xVVOvCxkHB~5eAbZ_#B-TYER=hXDA zYP=d&Geh^X@~yqP!ETO9pFQCat%6)d*PS+=)z^2@HBU-`Z+bhB@tcCI_>{^`bo zKYKV9yFWjgz})i7VUl{uCc6nwTB~Y#?9U}e?%T6W-d+d_h<}V5 XV(v?atVq2DOyLZku6{1-oD!M + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xslice< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xslice< D >, including all inherited members.

    + + + + + + + + + + +
    derived_cast() noexcept (defined in xt::xslice< D >)xt::xslice< D >inline
    derived_cast() const noexcept (defined in xt::xslice< D >)xt::xslice< D >inline
    derived_type typedef (defined in xt::xslice< D >)xt::xslice< D >
    operator=(const xslice &)=default (defined in xt::xslice< D >)xt::xslice< D >protected
    operator=(xslice &&)=default (defined in xt::xslice< D >)xt::xslice< D >protected
    xslice()=default (defined in xt::xslice< D >)xt::xslice< D >protected
    xslice(const xslice &)=default (defined in xt::xslice< D >)xt::xslice< D >protected
    xslice(xslice &&)=default (defined in xt::xslice< D >)xt::xslice< D >protected
    ~xslice()=default (defined in xt::xslice< D >)xt::xslice< D >protected
    +
    + + + + diff --git a/classxt_1_1xslice.html b/classxt_1_1xslice.html new file mode 100644 index 000000000..b8d28ba52 --- /dev/null +++ b/classxt_1_1xslice.html @@ -0,0 +1,246 @@ + + + + + + + +xtensor: xt::xslice< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xslice< D > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xslice< D >:
    +
    +
    + + +xt::xall< typename E::size_type > +xt::xnewaxis< typename E::size_type > + +
    + + + + +

    +Public Types

    using derived_type = D
     
    + + + + + +

    +Public Member Functions

    derived_type & derived_cast () noexcept
     
    const derived_type & derived_cast () const noexcept
     
    + + + + + + + + + +

    +Protected Member Functions

    xslice (const xslice &)=default
     
    +xsliceoperator= (const xslice &)=default
     
    xslice (xslice &&)=default
     
    +xsliceoperator= (xslice &&)=default
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xslice< D >
    +

    Definition at line 42 of file xslice.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xslice< D >::derived_type = D
    +
    + +

    Definition at line 46 of file xslice.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ derived_cast() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xslice< D >::derived_cast () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 980 of file xslice.hpp.

    + +
    +
    + +

    ◆ derived_cast() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xslice< D >::derived_cast ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 974 of file xslice.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xslice.png b/classxt_1_1xslice.png new file mode 100644 index 0000000000000000000000000000000000000000..a578bf0f5399e7fea4b54fd184e7cb31c8216993 GIT binary patch literal 1049 zcmeAS@N?(olHy`uVBq!ia0y~yV7vrm2XHV0$ypm&l7W zo&9*#%FqAf_na&+PB_$N5E-^uWNyps)Qi*paDC8!v1?s7-vQ~1H_LK@R_3-VO}$m7 zfz0^d@T@^zd_T{X+J85`X?rZ)_LuqFlw05Q&i`ItG|MaZH_zT_D{r}ZpZ~njt9|zE zt~cl7pO{R&^-a_2_lFh#Z0?#(jl0tvyfSxwvd)ROFV~dpxN`kX-qbiPQ=l5lD6iMY zthH*(p0{qzeY`gyOKa=fV4Xdo|MjKvckfS|$`o^?_2`BFQ91qRFYmwW{ru>JYRv%y%vWOPG&zi)oZH}`s3?U%hbw#7RDwFWE+y3OZ`n{o8E=G$HCxcMBIJ}AjCa5{(t zX*#IL^_Or7bcApTbn-8LDWbr)Qba*QQ$#@oNE5&hOl{=)k4rNO%>Ax49cVxoIkYMxUoZHRds-!*7w7;MF$L6K_^8Jp+AkSL`>)(8zVt0SOctHKHJ(q%hRaWl0xZl`r zr`2rtdoy2(BvdSoI%G?P+Fnys zd+mJopSaSXxgql1j{J*so-28JZv(36T`X4;w#(y}{fWB$AN#n|{`#557{|Q!&%X3I z<<;F3uk=85_Q1X+W>WduyU*SzHlKBAt=?VJ-}zc^ABS(<|JA0v@7F1yx!+e`Gd4e7 z8gyI3J!t>R64RSIxx@1E=lm^voZEAK%_Y~(QET44JrrNd?|C(F{r;=d_6k4!9a=Tv z?w0NELf)?3d_UNVXJ>@Z>fF?;y~l6QKEHW#NcG%p`(m|M&VReq{pQNaVQ0?YvHh*Q z)LH29qMvKNWWF@p{pH5Q_B7M&^NxOB@x9-5@$B+78*hhB{IXjzH?Ur Qn28xYUHx3vIVCg!0H$mD%>V!Z literal 0 HcmV?d00001 diff --git a/classxt_1_1xstepped__range-members.html b/classxt_1_1xstepped__range-members.html new file mode 100644 index 000000000..18a2198ba --- /dev/null +++ b/classxt_1_1xstepped__range-members.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xstepped_range< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::xstepped_range< T >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    contains(size_type i) const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    convert() const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    operator xstepped_range< S >() const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    operator!=(const self_type &rhs) const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    operator()(size_type i) const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    operator==(const self_type &rhs) const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    revert_index(std::size_t i) const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    self_type typedef (defined in xt::xstepped_range< T >)xt::xstepped_range< T >
    size() const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    size_type typedef (defined in xt::xstepped_range< T >)xt::xstepped_range< T >
    step_size() const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    step_size(std::size_t i, std::size_t n=1) const noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    xstepped_range (defined in xt::xstepped_range< T >)xt::xstepped_range< T >friend
    xstepped_range()=default (defined in xt::xstepped_range< T >)xt::xstepped_range< T >
    xstepped_range(size_type start_val, size_type stop_val, size_type step) noexcept (defined in xt::xstepped_range< T >)xt::xstepped_range< T >inline
    +
    + + + + diff --git a/classxt_1_1xstepped__range.html b/classxt_1_1xstepped__range.html new file mode 100644 index 000000000..61c21a180 --- /dev/null +++ b/classxt_1_1xstepped__range.html @@ -0,0 +1,601 @@ + + + + + + + +xtensor: xt::xstepped_range< T > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xstepped_range< T > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xstepped_range< T >:
    +
    +
    + + +xt::xslice< xstepped_range< T > > + +
    + + + + + + + + + +

    +Public Types

    using size_type = T
     
    using self_type = xstepped_range<T>
     
    - Public Types inherited from xt::xslice< xstepped_range< T > >
    using derived_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xstepped_range (size_type start_val, size_type stop_val, size_type step) noexcept
     
    template<std::convertible_to< T > S>
     operator xstepped_range< S > () const noexcept
     
    template<std::convertible_to< T > S>
    xstepped_range< S > convert () const noexcept
     
    size_type operator() (size_type i) const noexcept
     
    size_type size () const noexcept
     
    size_type step_size () const noexcept
     
    size_type step_size (std::size_t i, std::size_t n=1) const noexcept
     
    size_type revert_index (std::size_t i) const noexcept
     
    bool contains (size_type i) const noexcept
     
    bool operator== (const self_type &rhs) const noexcept
     
    bool operator!= (const self_type &rhs) const noexcept
     
    - Public Member Functions inherited from xt::xslice< xstepped_range< T > >
    derived_typederived_cast () noexcept
     
    const derived_typederived_cast () const noexcept
     
    + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xslice< xstepped_range< T > >
    xslice (const xslice &)=default
     
    xslice (xslice &&)=default
     
    +xsliceoperator= (const xslice &)=default
     
    +xsliceoperator= (xslice &&)=default
     
    +

    Detailed Description

    +
    template<class T>
    +class xt::xstepped_range< T >
    +

    Definition at line 146 of file xslice.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ self_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xstepped_range< T >::self_type = xstepped_range<T>
    +
    + +

    Definition at line 151 of file xslice.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xstepped_range< T >::size_type = T
    +
    + +

    Definition at line 150 of file xslice.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xstepped_range()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xstepped_range< T >::xstepped_range (size_type start_val,
    size_type stop_val,
    size_type step )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1066 of file xslice.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ contains()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xstepped_range< T >::contains (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1124 of file xslice.hpp.

    + +
    +
    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xstepped_range< S > xt::xstepped_range< T >::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1088 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator xstepped_range< S >()

    + +
    +
    +
    +template<class T>
    +
    +template<std::convertible_to< T > S>
    + + + + + +
    + + + + + + + +
    xt::xstepped_range< T >::operator xstepped_range< S > () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1077 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xstepped_range< T >::operator!= (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1136 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xstepped_range< T >::operator() (size_type i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1094 of file xslice.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    bool xt::xstepped_range< T >::operator== (const self_type & rhs) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1130 of file xslice.hpp.

    + +
    +
    + +

    ◆ revert_index()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xstepped_range< T >::revert_index (std::size_t i) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1118 of file xslice.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xstepped_range< T >::size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1100 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [1/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xstepped_range< T >::step_size () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1106 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [2/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xstepped_range< T >::step_size (std::size_t i,
    std::size_t n = 1 ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1112 of file xslice.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xstepped_range

    + +
    +
    +
    +template<class T>
    +
    +template<class S>
    + + + + + +
    + + + + +
    friend class xstepped_range
    +
    +friend
    +
    + +

    Definition at line 183 of file xslice.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xstepped__range.png b/classxt_1_1xstepped__range.png new file mode 100644 index 0000000000000000000000000000000000000000..b267143b45585cfc43f4c7992e43aa664fed460c GIT binary patch literal 750 zcmeAS@N?(olHy`uVBq!ia0vp^XMi|>gBeIBMP&T|QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B+_o-U3d6^w7^zFhZOfv2Ut zGvw@V`;WfDLEnTY-9G9hQ_6SLaIO8GFZ$C`Bi#hWCdoJpx2fo69h$JjHPxU`rFiYJ zRdZE}OD)Rk#ZG=G`YrEic9qk4QtU4YpYsQq(~5as{Qj27IrAfb_v_Bu?d`kUt@+fC zU;BUYWA5Y~@_buWN)BK6_(xRt_w{Xk`)(W(`ja%{lC9yf`$C7G%nzJ$b7D)8^r4T- z{=V9DzPtAPG@Cuk;wR02Qp@{1f5wh8d^6UHT~<0#^F8bABJZBeR`7z$-0|D^@otM#zc0>PZX5jZ?Yo&$Xa0XbBRG-&)jJbz z<+a7LeyZ2C?9HAv@k#X5sj8l3ufFkL^iTNr!}R>DE|uS@dd9pSlWeX&Pw@D3dX|Ao zW*|5eS|g{WO1dz7V6|mP5b0(4T*2dFEOh3S5#QMWgW_3?4Zgk-3>#K(GBb#oCNdmY zq{hP#aixWkp?j7ALqec18-q^PA%+H53`H@Mi_i5cS$Il03%gAMs_~fQ8r!has%*}_ z^5{A{&!FvR4&AZ5!MwS$CHvNP|I=w-|A%?+sd!v0Tzhbv=NiyFckAjr zjNl30rSA4V=s?M|==hmGcdyBrykoYvT-;^-POHlMqR(}eHhvqN=d{QIs4)&})|W~KY8dVc@<`HYEz>dQ^{*p)r)ueD560eXB=N}zU6 d@j2c__1cHlXlH+0tPD(<44$rjF6*2UngCHHS9$;d literal 0 HcmV?d00001 diff --git a/classxt_1_1xstepper-members.html b/classxt_1_1xstepper-members.html new file mode 100644 index 000000000..959997b14 --- /dev/null +++ b/classxt_1_1xstepper-members.html @@ -0,0 +1,144 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xstepper< C > Member List
    +
    +
    + +

    This is the complete list of members for xt::xstepper< C >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    operator*() const (defined in xt::xstepper< C >)xt::xstepper< C >inline
    pointer typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    reference typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    reset(size_type dim) (defined in xt::xstepper< C >)xt::xstepper< C >inline
    reset_back(size_type dim) (defined in xt::xstepper< C >)xt::xstepper< C >inline
    shape_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    simd_return_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    simd_value_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    size_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    step(size_type dim, size_type n=1) (defined in xt::xstepper< C >)xt::xstepper< C >inline
    step_back(size_type dim, size_type n=1) (defined in xt::xstepper< C >)xt::xstepper< C >inline
    step_leading() (defined in xt::xstepper< C >)xt::xstepper< C >
    step_simd() (defined in xt::xstepper< C >)xt::xstepper< C >
    step_simd() -> simd_return_type< T > (defined in xt::xstepper< C >)xt::xstepper< C >inline
    storage_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    store_simd(const R &vec) (defined in xt::xstepper< C >)xt::xstepper< C >inline
    subiterator_traits typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    subiterator_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    to_begin() (defined in xt::xstepper< C >)xt::xstepper< C >inline
    to_end(layout_type l) (defined in xt::xstepper< C >)xt::xstepper< C >inline
    value_type typedef (defined in xt::xstepper< C >)xt::xstepper< C >
    xstepper()=default (defined in xt::xstepper< C >)xt::xstepper< C >
    xstepper(storage_type *c, subiterator_type it, size_type offset) noexcept (defined in xt::xstepper< C >)xt::xstepper< C >inline
    +
    + + + + diff --git a/classxt_1_1xstepper.html b/classxt_1_1xstepper.html new file mode 100644 index 000000000..67c11a545 --- /dev/null +++ b/classxt_1_1xstepper.html @@ -0,0 +1,723 @@ + + + + + + + +xtensor: xt::xstepper< C > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xstepper< C > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = C
     
    using subiterator_type = get_stepper_iterator<C>
     
    using subiterator_traits = std::iterator_traits<subiterator_type>
     
    using value_type = typename subiterator_traits::value_type
     
    using reference = typename subiterator_traits::reference
     
    using pointer = typename subiterator_traits::pointer
     
    using difference_type = typename subiterator_traits::difference_type
     
    using size_type = typename storage_type::size_type
     
    using shape_type = typename storage_type::shape_type
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     xstepper (storage_type *c, subiterator_type it, size_type offset) noexcept
     
    reference operator* () const
     
    void step (size_type dim, size_type n=1)
     
    void step_back (size_type dim, size_type n=1)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    +template<class T>
    simd_return_type< T > step_simd ()
     
    void step_leading ()
     
    template<class R>
    void store_simd (const R &vec)
     
    template<class T>
    auto step_simd () -> simd_return_type< T >
     
    +

    Detailed Description

    +
    template<class C>
    +class xt::xstepper< C >
    +

    Definition at line 105 of file xiterator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::difference_type = typename subiterator_traits::difference_type
    +
    + +

    Definition at line 115 of file xiterator.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::pointer = typename subiterator_traits::pointer
    +
    + +

    Definition at line 114 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::reference = typename subiterator_traits::reference
    +
    + +

    Definition at line 113 of file xiterator.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::shape_type = typename storage_type::shape_type
    +
    + +

    Definition at line 117 of file xiterator.hpp.

    + +
    +
    + +

    ◆ simd_return_type

    + +
    +
    +
    +template<class C>
    +
    +template<class requested_type>
    + + + + +
    using xt::xstepper< C >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
    +
    + +

    Definition at line 121 of file xiterator.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 118 of file xiterator.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 116 of file xiterator.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::storage_type = C
    +
    + +

    Definition at line 109 of file xiterator.hpp.

    + +
    +
    + +

    ◆ subiterator_traits

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::subiterator_traits = std::iterator_traits<subiterator_type>
    +
    + +

    Definition at line 111 of file xiterator.hpp.

    + +
    +
    + +

    ◆ subiterator_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::subiterator_type = get_stepper_iterator<C>
    +
    + +

    Definition at line 110 of file xiterator.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xstepper< C >::value_type = typename subiterator_traits::value_type
    +
    + +

    Definition at line 112 of file xiterator.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xstepper()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xstepper< C >::xstepper (storage_type * c,
    subiterator_type it,
    size_type offset )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 476 of file xiterator.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    auto xt::xstepper< C >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 484 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    void xt::xstepper< C >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 510 of file xiterator.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    void xt::xstepper< C >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 519 of file xiterator.hpp.

    + +
    +
    + +

    ◆ step()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xstepper< C >::step (size_type dim,
    size_type n = 1 )
    +
    +inline
    +
    + +

    Definition at line 490 of file xiterator.hpp.

    + +
    +
    + +

    ◆ step_back()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xstepper< C >::step_back (size_type dim,
    size_type n = 1 )
    +
    +inline
    +
    + +

    Definition at line 500 of file xiterator.hpp.

    + +
    +
    + +

    ◆ step_leading()

    + +
    +
    +
    +template<class C>
    + + + + + + + +
    void xt::xstepper< C >::step_leading ()
    +
    + +

    Definition at line 584 of file xiterator.hpp.

    + +
    +
    + +

    ◆ step_simd()

    + +
    +
    +
    +template<class C>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xstepper< C >::step_simd () -> simd_return_type<T> +
    +
    +inline
    +
    + +

    Definition at line 566 of file xiterator.hpp.

    + +
    +
    + +

    ◆ store_simd()

    + +
    +
    +
    +template<class C>
    +
    +template<class R>
    + + + + + +
    + + + + + + + +
    void xt::xstepper< C >::store_simd (const R & vec)
    +
    +inline
    +
    + +

    Definition at line 576 of file xiterator.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    void xt::xstepper< C >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 528 of file xiterator.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    void xt::xstepper< C >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 534 of file xiterator.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xstrided__container-members.html b/classxt_1_1xstrided__container-members.html new file mode 100644 index 000000000..74e1d8dcd --- /dev/null +++ b/classxt_1_1xstrided__container-members.html @@ -0,0 +1,321 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xstrided_container< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xstrided_container< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    accessible_base typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    allocator_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    at(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    back()xt::xcontainer< D >inline
    backstrides() const noexceptxt::xcontainer< D >
    backstrides_impl() noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    backstrides_impl() const noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    backstrides_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    base_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    begin() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    begin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    begin(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    begin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< D >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    bool_load_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< D >inline
    cbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    cbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    cend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    cend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    const_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    const_container_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    const_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    const_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    const_linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    const_pointer typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    const_reference typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    const_reverse_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    const_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    const_reverse_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    const_reverse_linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    const_stepper typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    container_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    contiguous_layout (defined in xt::xcontainer< D >)xt::xcontainer< D >static
    crbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    crbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    crend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    crend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    data() noexceptxt::xcontainer< D >inline
    data() const noexceptxt::xcontainer< D >inline
    data_alignment typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    data_element(size_type i) (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    data_element(size_type i) const (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    data_offset() const noexceptxt::xcontainer< D >inline
    data_xbegin() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    data_xbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    data_xend(layout_type l, size_type offset) noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    data_xend(layout_type l, size_type offset) const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    derived_cast() &noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    derived_cast() const &noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    derived_cast() &&noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inlineprotected
    derived_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    difference_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    dimension() const noexceptxt::xcontainer< D >
    element(It first, It last) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    element(It first, It last) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
    element(It first, It last) -> referencext::xcontainer< D >inline
    element(It first, It last) const -> const_referencext::xcontainer< D >inline
    end() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    end() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    end(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    end(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< D >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< D >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    fill(const T &value)xt::xcontainer< D >inline
    flat(size_type i)xt::xcontainer< D >inline
    flat(size_type i) constxt::xcontainer< D >inline
    front()xt::xcontainer< D >inline
    has_linear_assign(const S &strides) const noexceptxt::xcontainer< D >inline
    inner_backstrides_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    inner_shape_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    inner_strides_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    inner_types typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    is_contiguous() const noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inline
    iterable_base typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    layout() const noexceptxt::xstrided_container< D >inline
    layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    linear_begin() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_begin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_cbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_cend() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_crbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_crend() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_end() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_end() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    linear_rbegin() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_rbegin() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_rend() noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_rend() const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    linear_traits typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    load_simd(size_type i) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
    load_simd(size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type > (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    mutable_layout() noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    operator()(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    operator()(Args... args) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
    operator()(Args... args) -> referencext::xcontainer< D >inline
    operator()(Args... args) const -> const_referencext::xcontainer< D >inline
    operator=(const xstrided_container &)=default (defined in xt::xstrided_container< D >)xt::xstrided_container< D >protected
    operator=(xstrided_container &&)=default (defined in xt::xstrided_container< D >)xt::xstrided_container< D >protected
    operator=(const xcontainer &)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
    operator=(xcontainer &&)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
    operator=(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    operator=(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    operator[](const S &index) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    operator[](std::initializer_list< I > index) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    operator[](size_type i) (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    periodic(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    pointer typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    rbegin() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rbegin() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rbegin(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rbegin(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    reference typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    rend() noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rend() const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rend(const S &shape) noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rend(const S &shape) const noexcept (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< D >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< D >inline
    reshape(S &&shape, layout_type layout=base_type::static_layout) &xt::xstrided_container< D >inline
    reshape(std::initializer_list< T > shape, layout_type layout=base_type::static_layout) & (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inline
    reshape_impl(S &&shape, std::true_type, layout_type layout=base_type::static_layout) (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    reshape_impl(S &&shape, std::false_type, layout_type layout=base_type::static_layout) (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    resize(S &&shape, bool force=false)xt::xstrided_container< D >inline
    resize(S &&shape, layout_type l)xt::xstrided_container< D >inline
    resize(S &&shape, const strides_type &strides)xt::xstrided_container< D >inline
    reverse_broadcast_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    reverse_layout_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    reverse_linear_iterator typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    select_const_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    select_const_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    select_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    select_iterator_impl typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    select_reverse_iterator typedef (defined in xt::xcontiguous_iterable< D >)xt::xcontiguous_iterable< D >
    shape() const noexceptxt::xcontainer< D >
    shape_impl() noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    shape_impl() const noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    shape_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    simd_return_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    simd_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    simd_value_type typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    size() const noexceptxt::xcontainer< D >inline
    size_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    static_layout (defined in xt::xcontainer< D >)xt::xcontainer< D >static
    stepper typedef (defined in xt::xcontainer< D >)xt::xcontainer< D >
    stepper_begin(const S &shape) noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
    stepper_begin(const S &shape) const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
    stepper_begin(const S &shape) noexcept -> stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    stepper_begin(const S &shape) const noexcept -> const_stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    stepper_end(const S &shape, layout_type l) noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
    stepper_end(const S &shape, layout_type l) const noexcept (defined in xt::xcontainer< D >)xt::xcontainer< D >
    stepper_end(const S &shape, layout_type l) noexcept -> stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    stepper_end(const S &shape, layout_type l) const noexcept -> const_stepper (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    storage() noexceptxt::xcontainer< D >inline
    storage() const noexceptxt::xcontainer< D >inline
    storage_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    store_simd(size_type i, const simd &e) (defined in xt::xcontainer< D >)xt::xcontainer< D >inline
    strides() const noexceptxt::xcontainer< D >
    strides_impl() noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    strides_impl() const noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    strides_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    unchecked(Args... args) (defined in xt::xcontainer< D >)xt::xcontainer< D >
    unchecked(Args... args) const (defined in xt::xcontainer< D >)xt::xcontainer< D >
    unchecked(Args... args) -> referencext::xcontainer< D >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< D >inline
    value_type typedef (defined in xt::xstrided_container< D >)xt::xstrided_container< D >
    xcontainer()=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
    xcontainer(const xcontainer &)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
    xcontainer(xcontainer &&)=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
    xstrided_container() noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineprotected
    xstrided_container(const xstrided_container &)=default (defined in xt::xstrided_container< D >)xt::xstrided_container< D >protected
    xstrided_container(xstrided_container &&)=default (defined in xt::xstrided_container< D >)xt::xstrided_container< D >protected
    xstrided_container(inner_shape_type &&, inner_strides_type &&) noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineexplicitprotected
    xstrided_container(inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept (defined in xt::xstrided_container< D >)xt::xstrided_container< D >inlineexplicitprotected
    ~xcontainer()=default (defined in xt::xcontainer< D >)xt::xcontainer< D >protected
    ~xstrided_container()=default (defined in xt::xstrided_container< D >)xt::xstrided_container< D >protected
    +
    + + + + diff --git a/classxt_1_1xstrided__container.html b/classxt_1_1xstrided__container.html new file mode 100644 index 000000000..1e44c6db8 --- /dev/null +++ b/classxt_1_1xstrided__container.html @@ -0,0 +1,1726 @@ + + + + + + + +xtensor: xt::xstrided_container< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xstrided_container< D > Class Template Reference
    +
    +
    + +

    Partial implementation of xcontainer that embeds the strides and the shape. + More...

    + +

    #include <xcontainer.hpp>

    +
    +Inheritance diagram for xt::xstrided_container< D >:
    +
    +
    + + +xt::xcontainer< D > +xt::xcontiguous_iterable< D > +xt::xaccessible< D > +xt::xiterable< D > +xt::xarray_adaptor< value_container &, L, SC > +xt::xarray_adaptor< flag_container &, L, SC > +xt::xarray_adaptor< const value_container &, L, SC > +xt::xarray_adaptor< const flag_container &, L, SC > +xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag > +xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag > +xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > +xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag > +xt::xarray_container< EC, L, SC, xoptional_expression_tag > +xt::xtensor_adaptor< value_container &, N, L > +xt::xtensor_adaptor< flag_container &, N, L > +xt::xtensor_adaptor< const value_container &, N, L > +xt::xtensor_adaptor< const flag_container &, N, L > +xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag > +xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag > +xt::xtensor_container< uvector< T, A >, N, L > +xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag > +xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major > +xt::xtensor_container< EC, N, L, xoptional_expression_tag > +xt::xtensor_view< EC, N, L, xoptional_expression_tag > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using base_type = xcontainer<D>
     
    using storage_type = typename base_type::storage_type
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using const_reference = typename base_type::const_reference
     
    using pointer = typename base_type::pointer
     
    using const_pointer = typename base_type::const_pointer
     
    using size_type = typename base_type::size_type
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename base_type::strides_type
     
    using inner_shape_type = typename base_type::inner_shape_type
     
    using inner_strides_type = typename base_type::inner_strides_type
     
    using inner_backstrides_type = typename base_type::inner_backstrides_type
     
    - Public Types inherited from xt::xcontainer< D >
    using derived_type = D
     
    using inner_types = xcontainer_inner_types<D>
     
    using storage_type = typename inner_types::storage_type
     
    using allocator_type = allocator_type_t<std::decay_t<storage_type>>
     
    using value_type = typename storage_type::value_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer = typename storage_type::pointer
     
    using const_pointer = typename storage_type::const_pointer
     
    using size_type = typename inner_types::size_type
     
    using difference_type = typename storage_type::difference_type
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    using bool_load_type = xt::bool_load_type<value_type>
     
    using shape_type = typename inner_types::shape_type
     
    using strides_type = typename inner_types::strides_type
     
    using backstrides_type = typename inner_types::backstrides_type
     
    using inner_shape_type = typename inner_types::inner_shape_type
     
    using inner_strides_type = typename inner_types::inner_strides_type
     
    using inner_backstrides_type = typename inner_types::inner_backstrides_type
     
    using iterable_base = xcontiguous_iterable<D>
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using accessible_base = xaccessible<D>
     
    using data_alignment = xt_simd::container_alignment_t<storage_type>
     
    using simd_type = xt_simd::simd_type<value_type>
     
    using linear_iterator = typename iterable_base::linear_iterator
     
    using const_linear_iterator = typename iterable_base::const_linear_iterator
     
    using reverse_linear_iterator = typename iterable_base::reverse_linear_iterator
     
    using const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    using container_iterator = linear_iterator
     
    using const_container_iterator = const_linear_iterator
     
    - Public Types inherited from xt::xcontiguous_iterable< D >
    using derived_type = D
     
    using inner_types = xcontainer_inner_types<D>
     
    using iterable_base = xiterable<D>
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    template<layout_type L>
    using layout_iterator = typename iterable_base::template layout_iterator<L>
     
    template<layout_type L>
    using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>
     
    template<layout_type L>
    using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>
     
    template<layout_type L>
    using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>
     
    template<class S, layout_type L>
    using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>
     
    template<class S, layout_type L>
    using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>
     
    using linear_traits = detail::linear_iterator_traits<D>
     
    using linear_iterator = typename linear_traits::linear_iterator
     
    using const_linear_iterator = typename linear_traits::const_linear_iterator
     
    using reverse_linear_iterator = typename linear_traits::reverse_linear_iterator
     
    using const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator
     
    template<layout_type L, class It1, class It2>
    using select_iterator_impl = std::conditional_t<L == static_layout, It1, It2>
     
    template<layout_type L>
    using select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>>
     
    template<layout_type L>
    using select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>>
     
    template<layout_type L>
    using select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>>
     
    template<layout_type L>
    using select_const_reverse_iterator
     
    using iterator = select_iterator< ::xt::layout_type::row_major >
     
    using const_iterator = select_const_iterator< ::xt::layout_type::row_major >
     
    using reverse_iterator = select_reverse_iterator< ::xt::layout_type::row_major >
     
    using const_reverse_iterator = select_const_reverse_iterator< ::xt::layout_type::row_major >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Protected Member Functions

    xstrided_container (const xstrided_container &)=default
     
    +xstrided_containeroperator= (const xstrided_container &)=default
     
    xstrided_container (xstrided_container &&)=default
     
    +xstrided_containeroperator= (xstrided_container &&)=default
     
    - Protected Member Functions inherited from xt::xcontainer< D >
    xcontainer (const xcontainer &)=default
     
    +xcontaineroperator= (const xcontainer &)=default
     
    xcontainer (xcontainer &&)=default
     
    +xcontaineroperator= (xcontainer &&)=default
     
    container_iterator data_xbegin () noexcept
     
    const_container_iterator data_xbegin () const noexcept
     
    container_iterator data_xend (layout_type l, size_type offset) noexcept
     
    const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
     
    derived_type & derived_cast () &noexcept
     
    const derived_type & derived_cast () const &noexcept
     
    derived_type derived_cast () &&noexcept
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

    template<class S = shape_type>
    void resize (S &&shape, bool force=false)
     Resizes the container.
     
    template<class S = shape_type>
    void resize (S &&shape, layout_type l)
     Resizes the container.
     
    template<class S = shape_type>
    void resize (S &&shape, const strides_type &strides)
     Resizes the container.
     
    template<class S = shape_type>
    auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
     Reshapes the container and keeps old elements.
     
    template<class T>
    auto & reshape (std::initializer_list< T > shape, layout_type layout=base_type::static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&) noexcept
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept
     
    inner_shape_type & shape_impl () noexcept
     
    const inner_shape_type & shape_impl () const noexcept
     
    inner_strides_type & strides_impl () noexcept
     
    const inner_strides_type & strides_impl () const noexcept
     
    inner_backstrides_type & backstrides_impl () noexcept
     
    const inner_backstrides_type & backstrides_impl () const noexcept
     
    template<class S = shape_type>
    void reshape_impl (S &&shape, std::true_type, layout_type layout=base_type::static_layout)
     
    template<class S = shape_type>
    void reshape_impl (S &&shape, std::false_type, layout_type layout=base_type::static_layout)
     
    layout_typemutable_layout () noexcept
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Member Functions inherited from xt::xcontainer< D >
    +template<class... Args>
    reference operator() (Args... args)
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    reference unchecked (Args... args)
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    reference element (It first, It last)
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class S>
    stepper stepper_begin (const S &shape) noexcept
     
    +template<class S>
    stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +template<class S>
    const_stepper stepper_begin (const S &shape) const noexcept
     
    +template<class S>
    const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
     
    +template<class... Args>
    reference at (Args... args)
     
    +template<class S>
    disable_integral_t< S, reference > operator[] (const S &index)
     
    +template<class I>
    reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    +template<class... Args>
    reference periodic (Args... args)
     
    size_type size () const noexcept
     Returns the number of element in the container.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the container.
     
    constexpr const inner_shape_type & shape () const noexcept
     Returns the shape of the container.
     
    constexpr const inner_strides_type & strides () const noexcept
     Returns the strides of the container.
     
    constexpr const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the container.
     
    template<class T>
    void fill (const T &value)
     Fills the container with the given value.
     
    storage_type & storage () noexcept
     Returns a reference to the buffer containing the elements of the container.
     
    const storage_type & storage () const noexcept
     Returns a constant reference to the buffer containing the elements of the container.
     
    pointer data () noexcept
     Returns a pointer to the underlying array serving as element storage.
     
    const_pointer data () const noexcept
     Returns a constant pointer to the underlying array serving as element storage.
     
    const size_type data_offset () const noexcept
     Returns the offset to the first element in the container.
     
    template<class... Args>
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    template<class... Args>
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    template<class It>
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    template<class S>
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the container to the specified parameter.
     
    template<class S>
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
     
    reference data_element (size_type i)
     
    const_reference data_element (size_type i) const
     
    reference flat (size_type i)
     Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    const_reference flat (size_type i) const
     Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    template<class align, class simd>
    void store_simd (size_type i, const simd &e)
     
    linear_iterator linear_begin () noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    template<class S>
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    template<class S>
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    template<class S>
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    template<class alignment, class requested_type, std::size_t N>
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    - Public Member Functions inherited from xt::xcontiguous_iterable< D >
    +template<layout_type L = ::xt::layout_type::row_major>
    select_iterator< L > begin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_iterator< L > end () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_iterator< L > begin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_iterator< L > end () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_iterator< L > cbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_iterator< L > cend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_reverse_iterator< L > rbegin () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_reverse_iterator< L > rend () noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_reverse_iterator< L > rbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_reverse_iterator< L > rend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_reverse_iterator< L > crbegin () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major>
    select_const_reverse_iterator< L > crend () const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +template<layout_type L = ::xt::layout_type::row_major, class S>
    const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    template<layout_type L>
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    template<layout_type L>
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    template<layout_type L>
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L>
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L>
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L>
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L>
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    template<layout_type L>
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    template<layout_type L>
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L>
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L>
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L>
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L, class S>
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    template<layout_type L, class S>
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    template<layout_type L, class S>
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L, class S>
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L, class S>
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    template<layout_type L, class S>
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    template<layout_type L, class S>
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    template<layout_type L, class S>
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    template<layout_type L, class S>
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L, class S>
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    template<layout_type L, class S>
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    template<layout_type L, class S>
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    - Static Public Attributes inherited from xt::xcontainer< D >
    static constexpr layout_type static_layout = inner_types::layout
     
    static constexpr bool contiguous_layout = static_layout != layout_type::dynamic
     
    - Static Public Attributes inherited from xt::xcontiguous_iterable< D >
    static constexpr layout_type static_layout = inner_types::layout
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xstrided_container< D >

    Partial implementation of xcontainer that embeds the strides and the shape.

    +

    The xstrided_container class is a partial implementation of the xcontainer interface that embed the strides and the shape of the multidimensional container. It does not embed the data container, this responsibility is delegated to the inheriting classes.

    +
    Template Parameters
    + + +
    DThe derived type, i.e. the inheriting class for which xstrided_container provides the partial imlpementation of xcontainer.
    +
    +
    + +

    Definition at line 258 of file xcontainer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::base_type = xcontainer<D>
    +
    + +

    Definition at line 262 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::const_pointer = typename base_type::const_pointer
    +
    + +

    Definition at line 268 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::const_reference = typename base_type::const_reference
    +
    + +

    Definition at line 266 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::inner_backstrides_type = typename base_type::inner_backstrides_type
    +
    + +

    Definition at line 274 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::inner_shape_type = typename base_type::inner_shape_type
    +
    + +

    Definition at line 272 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::inner_strides_type = typename base_type::inner_strides_type
    +
    + +

    Definition at line 273 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 267 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::reference = typename base_type::reference
    +
    + +

    Definition at line 265 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 270 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::size_type = typename base_type::size_type
    +
    + +

    Definition at line 269 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 263 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 271 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_container< D >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 264 of file xcontainer.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xstrided_container() [1/3]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    xt::xstrided_container< D >::xstrided_container ()
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 849 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ xstrided_container() [2/3]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    xt::xstrided_container< D >::xstrided_container (inner_shape_type && shape,
    inner_strides_type && strides )
    +
    +inlineexplicitprotectednoexcept
    +
    + +

    Definition at line 858 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ xstrided_container() [3/3]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    xt::xstrided_container< D >::xstrided_container (inner_shape_type && shape,
    inner_strides_type && strides,
    inner_backstrides_type && backstrides,
    layout_type && layout )
    +
    +inlineexplicitprotectednoexcept
    +
    + +

    Definition at line 868 of file xcontainer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ backstrides_impl() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::backstrides_impl () const
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 913 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ backstrides_impl() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::backstrides_impl ()
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 907 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    bool xt::xstrided_container< D >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 929 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    layout_type xt::xstrided_container< D >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Return the layout_type of the container.

    +
    Returns
    layout_type of the container
    + +

    Definition at line 923 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ mutable_layout()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::mutable_layout ()
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 1184 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ reshape() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    auto & xt::xstrided_container< D >::reshape (S && shape,
    layout_type layout = base_type::static_layout ) &
    +
    +inline
    +
    + +

    Reshapes the container and keeps old elements.

    +

    The shape argument can have one of its value equal to -1, in this case the value is inferred from the number of elements in the container and the remaining values in the shape.

    xt::xarray<int> a = { 1, 2, 3, 4, 5, 6, 7, 8 };
    +
    a.reshape({-1, 4});
    +
    //a.shape() is {2, 4}
    +
    auto & reshape(S &&shape, layout_type layout=base_type::static_layout) &
    Reshapes the container and keeps old elements.
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    Parameters
    + + + +
    shapethe new shape (has to have same number of elements as the original container)
    layoutthe layout to compute the strides (defaults to static layout of the container, or for a container with dynamic layout to XTENSOR_DEFAULT_LAYOUT)
    +
    +
    + +

    Definition at line 1092 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ reshape() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    auto & xt::xstrided_container< D >::reshape (std::initializer_list< T > shape,
    layout_type layout = base_type::static_layout ) &
    +
    +inline
    +
    + +

    Definition at line 1104 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ reshape_impl() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::xstrided_container< D >::reshape_impl (S && shape,
    std::false_type ,
    layout_type layout = base_type::static_layout )
    +
    +inlineprotected
    +
    + +

    Definition at line 1116 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ reshape_impl() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::xstrided_container< D >::reshape_impl (S && shape,
    std::true_type ,
    layout_type layout = base_type::static_layout )
    +
    +inlineprotected
    +
    + +

    Definition at line 1143 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ resize() [1/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xstrided_container< D >::resize (S && shape,
    bool force = false )
    +
    +inline
    +
    + +

    Resizes the container.

    +
    Warning
    Contrary to STL containers like std::vector, resize does NOT preserve the container elements.
    +
    Parameters
    + + + +
    shapethe new shape
    forceforce reshaping, even if the shape stays the same (default: false)
    +
    +
    + +

    Definition at line 998 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ resize() [2/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xstrided_container< D >::resize (S && shape,
    const strides_type & strides )
    +
    +inline
    +
    + +

    Resizes the container.

    +
    Warning
    Contrary to STL containers like std::vector, resize does NOT preserve the container elements.
    +
    Parameters
    + + + +
    shapethe new shape
    stridesthe new strides
    +
    +
    + +

    Definition at line 1056 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ resize() [3/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xstrided_container< D >::resize (S && shape,
    layout_type l )
    +
    +inline
    +
    + +

    Resizes the container.

    +
    Warning
    Contrary to STL containers like std::vector, resize does NOT preserve the container elements.
    +
    Parameters
    + + + +
    shapethe new shape
    lthe new layout_type
    +
    +
    + +

    Definition at line 1030 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ shape_impl() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::shape_impl () const
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 889 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ shape_impl() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::shape_impl ()
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 883 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ strides_impl() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::strides_impl () const
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 901 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ strides_impl() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_container< D >::strides_impl ()
    +
    +inlineprotectednoexcept
    +
    + +

    Definition at line 895 of file xcontainer.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xcontainer.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xstrided__container.js b/classxt_1_1xstrided__container.js new file mode 100644 index 000000000..d04c8971a --- /dev/null +++ b/classxt_1_1xstrided__container.js @@ -0,0 +1,8 @@ +var classxt_1_1xstrided__container = +[ + [ "layout", "classxt_1_1xstrided__container.html#a475028ed0b0719aebc55afe8fc00728e", null ], + [ "reshape", "classxt_1_1xstrided__container.html#ade4f89e605eb5ade6b47507eb411702b", null ], + [ "resize", "classxt_1_1xstrided__container.html#af38c6e8082f27cfbaa445767c14c0110", null ], + [ "resize", "classxt_1_1xstrided__container.html#a9853404ceb5a3d42430c43508abb671b", null ], + [ "resize", "classxt_1_1xstrided__container.html#ac157fa05a058950206b21ed403d969fe", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xstrided__container.png b/classxt_1_1xstrided__container.png new file mode 100644 index 0000000000000000000000000000000000000000..45636002e212876274c0885b659eadb64df447bd GIT binary patch literal 31499 zcmeIb2|!cVx;EV5+Ma3)zpX-@$f*XY3Z!aLnUb%yR3j=!kugB(fK*VBA?&;s}p0Aq(W5`}> z?X}l>*0bLCdEcD=%kFLO&0jkIwbx#I54rt|y|2CYrypK>ZQh^%^d|7mdR*2J@XxZp z?A+&NG#Y`IgChz|)&t6xPu3j&ko08m<;$1A`z}rX*MYyildyNU?`y#SO~>XpuC%@O zT51mRi_i8YzdqV6$$7EmgLzMzS{$8vjHj6i@fF`RAG<9-@0z*!u4peZ?(Jdf`bW2B zAJ5-d1Rlj_parI%l)BgFfycU4$hD@Qu$ce#8F1Wh+)mtK`r$463wYe#K)i1H5h>pK zFN!c!Z6!9SOHz0hncBWy)_LefsByE|32LDgvRwAOVo={)FU|rA6j^`xs(caGH654k zp3{_thj@y|vZmAq;eFQ;x5If7-6fzXe9vD`fX79!T>R6I)XgbzH3)&TUB1S-pp;A) z1FlKE)x5fFtBkCyjDewAO?tvHXNdDDXE?P0tTt%L zoBek@K>fDqHkkb~tTmcOJ~;Ykj{E5TxhtA$T+wgSxba7iKD;*jIJiLHe0KeprpKeH zA775Xnyw95hnVrmy}(cT`GzE``8{9Yp}_dNPCT@V0Ab_Az$?>h>GDOjrw!XzBkhs) z>@RH)M13>x%Jf>``f>6H`tv(Y)BCI=4yw)bo_WoP|I7Gl%_?xNU4$+R(ruq|C(XQ0 z7ytNj*W|Vh$f@Joi4c{IeB*w^y9gz2Vq6G9Mczy~h~dpfqkwT-A8F4v(&t)u$QmL4 zRv|$|qILhvFuorT&pxzmy1k+-joxSgKb{siSH~udrc#qwjIV88LE-dvDH4pGn%Z1V z%tBJf2D!Mx`zETxx4L1FMeZ=9uV&+>FON;0*oc0V!BNQNs7|UsvG&_n)uS>*L-g9^ z#CG+EWjhndDxJI9qq|=$+YqgnsKR5<9Um`5ogH=OsQ$LIQb35#+HJ%{AawvpZ%lNH)T$ zQoV3wTqa4|UHf{kyZ|ms2SLsC(_M^VMcRvW9X;(Ct*RKmFW@w6p>k*p|7S?~ByA&d z)7{xif-%oXq$0g?1o<`CAmh=Ayl+ozZh^3&oo(W**4`=i#HdpI`_}BykkBzVvhHyY z-7Cz^7C{ux0}D#5m?`KCTDxK3Tt)@D1e&sdFgwWDH=PkUG7~QrJmjLQTD!&lvQ^23 zv$Zw3Z^H68Psq${@n5~Gxp-c&H6lxps>!|ttqGnUT=+*xj5A6ByTMi}OIg|q-nMV% zZkx#HgYO}VVCB=bgW$BOT-E&9{VRi6hlo17Ypy-pH=`9?4Pw5USk);F0YGyf@#vws zt5YN5w=4&N6IS-CWz2m1*G>f&$j-;pcXZ~p``hzkt|ExD)9+t26%U@-Gy5nzi4)I( zKpF^;dG7!actvA^tKo#501Q2Eo5nLTEB6Bczcx*B5!1+pT^_$1{QJ{c>{X2Z0C^jL z#-jt|EYq^{y*d`axci3<>MbS|g=d1Ln~t;}z}gC?QFb@$Z?gdEXh)mrZy=|$lNvr7HT?fXINav6W55QnTPn%^rzv8pZL|Bd%87|2IR+{=gq{$aIt3x5&JhjVHm#NRW0970QX2u;2 zXX<-}!XxtZn%Z=Ce=H@lb#%i}U;O#azz3%`o3#-VTb1i`8A6Jebl~wxXP@+5?&mY7 zNz@^=J9HW$ms zC**GBHh+W65!1$6zXdsAtJx{wT>e+n-oJZOEy>%=(he-}k8EZ}f8MTHhVi_9Zt|^o z;yO36(oB=v^r7c`-Sqqg&iyJ%E}WraCr*t1S|O$xJbm7)lK-E0b93UBQ)sd>Hgy$c3Bv+CpBqi zw*K8pst6RR_E`#}^dN5Bw%XG$L6(ij&eS6;wVKAwXKrBO+7t~#>c(q==uYDLtyN39 zm@1(8V`HzGuzQ`8FVN>5J*$RMC-suYDVth3;SWd4t>``7?`hMgT)7+WcfX&>5|#naSl^j` zJaPoAHgq|>M=^@UZ;Hu_AaPi+X~*qiYaCZ1vU9)XUGt%F7CW{&+QiOuYM1LYX6;ze z3fAA-bp@Ws85kWn8cWCYoN{!FAw?w7UeD0}2O-g@F}3MU(<)JX=TqQ@39aDh$=-w@ z7aws0D@Ec;vpML`?Wl*?g|4o-xy2{-h$03LROCKe3Bgp!OSu;$Gb2VUR`8W2SdFSS zf6RyE`_NUED}0vn9z09`F3O%RLfB=|ftp5Y7ENIcc9#oUJ%`!oN5|+&aDtO-fw-ZU90yN;& z3UV~!^ZV{gO(b+LQkDv?nRhq-^m4^nU}1Z;xOH9n%XlVeWdMI_O@@=vogXJ}voQ4B zPh7pI_8Q2a5t4IIP7edM@uG8QAqRO|xI*PQ^D`ne)?#duU6#2Zi4 zok3q#i%&4UO5T)aVDBQ}rJI3v$<~3(?OZcuTPe?Uqk*K6cvkN|5p@Oc04@{04f|!t zR=6`+$$=*MIt!(4c0@!|YA|o*f%Q$U{oSj{ccfa-t|ETdyc0w$D|V|~B#RxZniLFc zTyYC!9&AM%S;AtI4~Ht8C_%d_A72zDhUHukCH7>27A&e|0S@UMLI*GXi@L$U40vKs zFu~wUYlwhY|r*D)v*F~HwT?5b} z+=#zOdYN~Cd9--Gfi5rNxUnPoeJ!aXH+6+8WBFbFgV1u!0P5jZBNj9UdANYfz556A zds@H^H^hxM=!ZeL!2HjmL?v>eM}WF(v_!b!z#awZ2;_YaC>ovLU6O&@WWxzLjLkJp zC3vm|DrIc?St+D}7%z3jBlKED@3YwVTrtH_I{RVWpj>lFvacWEHkQF(UH6FkesMM$ z7C|cJH8`E>euPVOwAGdfFZaJFV<3UHpg*xFl%(Ci#E37HE2Gr-U=*>o#$xc)zKA%2 z$jyYNOvVt5N!bo;ZjFzOcpbTyau5KjS0fTO^}&t0b_CL}%wjZwrjLKspa-oSRFIrb zck71-+h!j}K|%n`D&TM6@s(*?W8w%?pZxLWKi?q$O8t!dz8cZsY&BV%!A-C9YhXiT zGFVA0Cg48}gF50?qHck;kVzUpuBuc=-xsWyaymxrQdixKVQIjrfolhu+Z;&Z*vyhv z;Pctz!WLMQGXB2cYR5OqdUzL)Z5++a79oyW3|EAB-*x5+NgsA>OKzjSQW)I9Z4uw% zei!wa)i1|g5=B3CGHlSm`&&aO?T#yL*xVrL-KpzX0T~#B%&#nq8Ui+EKF$zvrnj-= z0ac!1eX9<)R>m#(~=AZPaL0JVlD&V~8I=2XA$1S!@=i$H z5^oTt5GDO^-dY3U9HiNp(B~(JvoC6QjI*cbk^CI!dCF_V>(ML==(fY!bU7^6{*2@m z=?I+2LQErOJnI8b$lc}DJ&&+*Hi4ez2|!nl*s_G~c7bod=QPbj^&(jL?mjss;l@x` zgh22H_Zo?_#p9A)i*})u|W>>v+jZtVa!>%{=lT0I@J)tQN=xvBPFprF2yXg)+<*a z_lhlnLfJeo*{|BCiQp%+Ns;KbaP4)8X_BflRXLMgw-x>TK&M0MqvvHAr|rf%wj!1h z@*FGR&G@uxyKHEshXsJeNkfvDethm5xHa_|-YgeUTbc7q(k=Nlt|X$=_Z{P4@?JSr zPq{~su#ScDE)=;k$b%auFnYp%S{Zo-N1raKI!yodQAEQ9UK135Cx9uNa>!8QHj8>? zFl@(Y{m^#eHurr~(q=LgA%(N8ihPJn%jMUQN50kNG>Vi#EP3y5#}Z}@?|>Wb;DQ+_ zpEi!qGg-%hw}3lpGGxCpng8+T|51lXzdo}*a`tf-v_H&kDu1>v{U`g>e-<1?X;w%X z%;Su)?r*$38THigs(JXN=d?S>XtA&y;B8kxGcm&g-O{;Crw3V!;Q$(jx3LtY4Z4tV z+AYjW{cY|PMuyk!C5jN1v(qPU?KtgV=q2uo3|}W^Vo21Kt7f@kN$h*-s`MUMcJV;% zyEP5?)pU<7S-2lwN_q)HyBCCg;W&VZsO!>aPhs%@V@f|_!3DW1h!ioqUl=SSd1*W7 z@22F7Qt8~v?~N-Dtyk65^NQ$K@Rg^$N})7)c?a+d2XE4XKw+bY7+bGjWWe;p24 z7Z7%g{A3rSdLnf~+2lYKj@cZc!KLGjJ%d~nsFqnrRz z7^NvME0oNVLU9d7S27VkAbro+7w!60*%fVwWJ-n!(Ma8i*K;iKJ>QMg=eN*o?`tbJ z?S1=#`7!k!qQahh;51+ z4HSU=rL@?ki0pBJC7aiZsk_q1$F6xfu<;ER%S%{q#R#<7T`tWiJmR(PFuz^OEqMo3-diaorpjG_R6BfZ0gmvW^noEh+(cVNjlVfvB?x zXqK4nNJccTkgUW@LQZ-3#MSZN_wb+0$mcwT1_d?UzAXDm8kZ6%KhRn9cx$-_=^GB) z*0n?HP1GcsPaFRR{2mPTLF6F@ghoB%w|$Sl&u1 zIjb}O*p#8&9vNaLk$s2$2$sr7HGS3l|>A4TsJMS z?HHS4=u$Aiz(b*#wa|h?rs4*2D+Y4qp7zL+VMFDQrG?spw9p5(H07ReO%p>_6szx?$Del#u+B6|DzNS5{f<$ z7=x{2LJMNd;Wjd~4?$2=9>7PD-9do#N?~Ba?66@z{f2#VpGpnmE4+l^K_^ssRAp8H z!^oMG5@v{8Liw)$s(%z?O!MjZ-Fo>0F3^k4YsP5#(2IvKpyX@Lur1>0Z@+8YoyUO4 zF_{z}Ttp*&^LRg!D57q(SjEs&K_{&#tB`j3FM-d>FyD)PfWb$JGBi}e2UJzYv+n^g zd(W&ZK#PvgqF%&bDEPESJhP*|*Lq|#vd832|NmqE^(%AR1e$Z#I0He94Yp z>Y*3cUo#$hM%mB2{UbV9iye>93Wcc^6W&OoG0hC@)Tq3*LV!rF2Z$sWfX~XD{A=7j z;s^+dtBo2jh{+p^R$<2NwZiWj^c+tAmkXQJ+fkJRtY z=O%J0^0oVWB*F#{0y}4gcqm)c93e;@ptxp>q@eI*mSZw`5%*Dx_+AB!#ca%)Fj5z4 zVO>bhNu1w^bpA;76y9|uySJGcbnn1ZY@v9gz+QdTNZ?h43?_wXv!6pmJBdt=*~B%3 zB`uci(_2kjAN`fK_LE3#*jxCJ=pp|G#njg+&g*3Q0|xyY(Fb`LL-jq@B`J~L!T3H5 z5hhJ=X?5F5EY8*VZ$va*g5pWjls>-sa(uJ$0u*0@`UV>o!#f+(ultE#x=v#Y_>Qd` zur8x+L00U>bvCy@yi+L8LgBa9X2M|uYN56b*dg@S^(bLvCtJB=1W^}iwl2zO)kRZ; zfy$3dIg{99__&lrT5%cgjWmchw)CxmbH%lXU+3lZ!1~osXyH!p^Lrk369bL}WP8>s z8k*!0;!EU#pI^E^Dbg5pkn3lxSe|c!Tg*cJU~QOl<)m9`P(K$Gwb*ZR+%EK!TqvGwv90?1)D!ea{$k3RsnP#a zBiOH4*?^S>Jj_HjzrDHd-`RZndwHnwJ=2IQ=+~tJdJZT(PjE@1zD5q>!yI-I@%`af z44NTojBb;(`}x_h&n-RPhFV_x4*}tt=zMKPhV?q?ZAHrXK4)Bu z55Sj+vlK6XdGe3G4eG?=qNj9W#iBeo+}*i!@yG_?}Lu0FrXWUT#0h4(Y z++*&&Ce7y`Q-z$u$G!up^P#DpR`043-lS5EwP(6SXsV7=ODM~N^;Sru*8wuz2($Tv zfA&#IYQA@qT3C7+zOGDs+i$!?nlqM~vi&$-9r=9g*)S&w!wp^_%@9rKZrFQtO|^Eg z=wUB&uE3!jIRWvawbJa@{UzYZ#5PQ6iJJAn;PHX#SmjOg%C&>V`ySpjt10vim|D z6`f>h&{YMbcYQc<h!bg84O8u zzId=DWbs{$OQ`M5hz3<}wBJeFio7wB+~W-HLsOT{BfHpkRqbm-qaIwXMRX0Vy}z;v zekE*IO}9r=zA#i6bX)IUVd0ShkyB-aT5*@>4En{>v0Tnt4BMP;o+o^97Y;P-W zl2C3ps>wReMVN0%SCNvYLyXg3G-UeAp=@KeS*5k-jg)6{eI*}()i+8dDa4~=_Hs{@ zn#-gbDaJREGGDU=Lk8cycogtsktg-@bm@7!h=SP0DtVM@bSMXZCt{sZtyHj#<476D z{G3fa6|3#pk~~4fG6qo@nnKjwG^-z60{#(E${&ls|DB7~@3RP$=_Wj&Y;XPs{n6%_ zSiyVxW;tZ%ghB{76XM*ZS7TncK99)li@0mZ`+=u-A@ZB?3OAx77nX0(Jc^O`FpW?( zmT6=H{#w=O(N}Ey7(mP;G`rtXlNRep&+Nw54fG3Bv!Tj-r7;z|JI)=gqu6~bT&%w@oQp&&eCRd_2? zHK<42j;k^B{I18SwgXGJ6vOEq>7m}l^r5k#Zixq}7ahXKu(G=9qPkbtrdd<*D>(h3 z#_fbP45kbwcQ&4|o>@QQ#7ZMCa)sf_#R0qwVax>0YV|nGeqfQ)=4+VGYVbbELJ!3$}X@^zU84w~% zPO?$l#*4R#6F-Dad*IOg~bFBT1yKFl<2zWj}<@EG8n-+ZyF)nye z9hHmw%05P{`%@OC*Iz=uP$q80Qy%i|8Ge1*i`|P`VCyCd6yxchtb<6%Xlre5Gu zVu=~^SK}yGYthDS zs^P40tue~Rc!L=_*24u1N)Y889MdNUl&Vh?gh2f*yukyFzs9WOuHc>XWrg~=^6qgt z<<9AE!SG_+23gsUA)oVF(UA>mb!tx6B4uSl<@G4QA_j?)ZoR1AG#(OKy4j~tVn4ih zNP0J6&0m1KgL))ir;3#GkTw|Elnq+u*6|U~DQ|DLkD(1%kT}*F z;S>y@oI1U-O106$wAP{nAIP5y3}`vw3jWDNtP#qd8?&pBxE2N`PF$D^#LqUT;p+p& zDFKGA4~*Ky5G!t+xi#~*REGYFb>$Byz`xc7@w+(zII-J_q^fXDED(tuOV^I2mcFh$ zkBpO|?ggx8(pq?jy@|#%W~8l6vTlTWsQMAE$8lRv1pO_KF93&u)C1rBC7KMl3*5|R zK|%aazp(!6Muf5y{CjXkNvmgpBuk-Zh&hiHCt{*hN1Ze|?t!I->eBvGus2HqL$S@0 z(%7u7?L=dhS^fLsRDB+{LOF|mF!Tj4Z*G4?zmZxzXzfY*30YpAFFWVRWx05u^iG4( z)Qm$Z&To>kVR6Mu64Zz>Z=m;*(6$#*DRl`jx3SNq>vUIT)FSoT?zqydgO_B^ilh$p zbLM4ftgKyTvmiJV?dBDRfK+&ju(J2FMNA8;N8q@Ri(-7V3Mk3{B6d%Xbe(d8N*L!& zTiZ#}vNjm*+@?n01C5dIB`pYc9(Eh6y|tBivHx3%u;wVC1T8PUJC*P@U@V-rbhBpa-l`SZ?@7KC5^igu2^lI^KycVs?#VA6FbL z0vI}?bR*J0FeBo7N#EnwTn8*vZKZ^%t0J7An%wQQPFZ;r9Um$V0$c%dz!mT^>j_7$ z4yS84sv18#A}gMLF)Gt*5`$6#vJ7LP**$2x`U&2j=iQB%_LX|=fhUE*Nb|8P>WUTO zd%!jnrF3do+b4VJ*7yE#2t8yxWfeK9s;N4pKIL0NJ9-MgG`UN%hSM)!-(}x0>Q@ry zfW$60zb{a={W4pDb`tHQoMgvP$LzaasJfwSt);Y%sw%Dn!#-h&WVysOAECbF;u)%k zMGvfJvGg`EP-M>wGb9E40QZe)L;6vLUVC%2$^x!yQ}%;7Y5T9Z z)_$hI|3g&r+iPcjKT(Nz1<|p&<}gwBy#7aWv&_4-8;qP7Pw?h63tk)|wu#Ms06U0e z<(=;x*s$aeCtHJXN2aYH~9*B_qM=%cJHBG z#SOVBoZfaSFa9!QAn1_*;{nBAR>VKIUEod$X->X$pi%+KSi&u5)RGKQkz5|PJx9zg zxru&IdfximoK>Z7#?+79bVsBuRouQCE~tMHO%sPm_({s77Er5Zsq@oa;9gD-cpA`P zjH7Szx5qBN8||b)kev#RTXm_`UTsdvl^4YIIa|rjah-HP)awjNd85n>Pe6Q0f5l4J zTFs3P{Bi=3S*$OT;cV}I4Jb&~8GA2?mNN4dOB3pf%W*)qkIA;c68RBsJ;4;_Fs;`x zlhJLAo`>u9Q1Tn~bZJLfx}iPX0N$lO{Ii)r9jwY}_o>_vy z1NsT-T5Ux99+?jbbuj3eE!VaMeKv5PQNEKiLQrW%*4`;qC~N&u$DEW)F`bpw=mt=E zp|l`fB8S{z#kT#1VkvE4GbavT$fq!Bh`6PxOVc9r-ggAG%+iv2~az3bl}v9NG$^U6$e4kTF^YC`Gc6VZ=>HgTx%@ zkuu7iDF?P7+M?V4DGSO!hIPN9<2MCJ%%A^9hy<|Z`B%h@^t8;zqX2;^vmq(}%|Nez zXhg7KZlHjx392s3_)Nfw+oF2`rM;9|X>&HQM?G9fdCba6XhD}Hx}hiUIJ8MBrz$jlfhkRC4>B{@)Tp;DL$c|filn;`#H&ig?@zV?DoJT_Bz0GR%q z(Y%b}&ADK-gt^rmK$g*S=@?v?6t4-Rs>K6VLyRm zpIrB_>#46WHeZ{cF$(IQxznu14BJ|xZH8Hn&DD?lNf z=Bhg~U-KOz9T5)nCJPEfUV$n`Us;eqjU5EDorsRzqLZBi@4%ZD==b-T*gqZ%`LikV zD{~N>-@x%lSlGWPB<}YM3rin5cPO^UC0oR@drR-11N&0Hw-g0vM_1&JrFN>*+<{H# zRg0;fK6K>tZX$a8lR;&p#w<$0n%opFkdFTOXZtUtY;Yf8mc^BtSlsv6ITlx((d|;Ne**6jz)}c?60ZXS(fS!@~}58s9Z|lE2vvM5~W~%0e?3*v&yRWy)-v= z_Bm}P#37g}>3k7m#^pGcq>`I%!>@^~D;yzlu2uoID?&LQ@wLl=JuhO)d>n#yCz2)6 zbhJY%{HW{X5IiSO^4A6p5Qgi>wdey6c~G=%zh>`aM5dP~+Gfgcl(7JHCr6(Yu207= z2=R%-sZ!E*(ZilA-!Jix+kEuA!L1=F&927}fGqwmK<{BmD)oxwduE}QlZsuVMThvW zvI)oL>Gu;Y<02^LtggXw?b#-l)voO#H$~hq@B=#}4RWu^fK{b8^dF^J(eoq?j%263 zhEH1RyHf{&Sg~wQI;XT^ zGFCsM^DQ8oi={*@OnlspC~C37=xgLaC~Vr!@_J3SD8^FymUrhiplxfmfYskHaOe-= z+HbDU`@Mu~JBU*ESImxiv47Jr5DojTCAXuELDgJKQlRv7>OjgC02mqe4fBkq%CPs8 zIlKFnGi-PJsk@e1?yHL8nfz}mY>iu+s zHUQkhmYeI-b`W9MoSvHMy21$n_nrW_N4t%QYB8#h?h#D`-_$4fl^IkAT*ySPdYA;_ zULlx%z%p+FV=^e&_M~?2GXVF((K#x=#ms5kn`bcLUU_oj=KD#fs3&+eRquJajFDu| z<>RNoh=)tl_&F;>y9hELQz_dieKO(@UqtbqR!`g2V{r0;V>m0d2YT6Xu zP9h}j!^u3y46ZOvx#jCl#YTeKM(+1KX0*SdlPF>yHn*P~O6h6u60Buff6K`3pALLT z9zg=>FE14kMd-9+ccE&OxuwSc%Y)DoV;(Lb^4A!rd_Ss%#(fy;b*6x^W(vQc_m91-2#!d;x^s*{Zq zKI1IpeWT>{r#c_Z@%0Fu2$0k$LY=LnLLHM9rvO&I4aZ&8D_N;%tn0s=n zRGm!UWYYqK_m?HWwmCK`d*#WG?<}PaBFnc>*D=VEK)k{erxwaqqC@l*-O8?tUCz7< zPz>CBv*pvMt4>jEVfa3YnULJ}it5A%RKt{6{klbZ$Enx`rEiJWhCp{x42AhyN5_1X zcdV?oJtv@O2T?N%%y#ySaj?~31% z+D<-|Cjf2oELO(_l`1wEqA`GgE+o45^1-@(1%r4Uo@K^u+pw36j?X29`k-Uf-9F8v z@DuW@*8M$sbt*{zofuf2XVgGTtmhTukdl z?4E>Cb`ZBA=zpbHz{H zk>@bSK~e`!btcRzWjTY**-qSSzQi+m1;IFXyUP?t{f!^P@^i07FP?l>`CZt1=tIdL zrVZ6u!JS@q0`U#5QYQKyhDY01R3^E^{Q&kTosS@|LXLSlrt4SQcuJN44q0=19=>d= ztUYBdhrK^Gzerwq0k;rKPjj2Pe85Guk3c??oM@EV9ABcneL-B&Eh`q|eo$(X*K=Ky zJ(ID_!62^c(*UCGnAxn9ZPq%b5)PyV48@SV?&Cf#q%BSvu*W0Vf~@wIah|i*8kb;~VFP;b5wFwAB&qn&m%=AW$ml4v7ZpNHN}W&dN+tHE3w@p%iBhc(-G$Jd0OA^B_}#I zlEa$S>voB_6*q;8@XE>>OJmsS zGB#a?)|kb@fFXt^H?s0tF_~*@vW#-@gwv(!10#`-plXi!T0=YpLwwA_-wcLW`G`G} zqRVc=fCeyI%&rpLo6n?TpOs#NHbskMQ~z{Yk3V+j|Hiv>bnN!>Ez-+C3ccuhW9U`t zHZV%OOPxpGot5*tF)jls6PVLOAoW^o0L2*IiSuhWPDeNV4FZQak(rUF0kU9@&%mZS zuJHM^zXe4{DD%hwm!5! zPJjzaAbI)N-Lm$_+W+v$D6uIE>55y%$)FYcd`Z0q?!?{AFd1l4Hk=?U`2>AABTMKn zrS6doaz?|S_Dw@+=x#h_3C6CXQT55u%I{jMebl^VLA&A*qb9?EY{m4|m?h$CE>NL4 zvdWY(*Nc-~*1vOammefBO%=aFH?#^ zOV2VTcgNJWV}?YfIyM?7Z>e(QO~v0UFNEdihMpp4hi&jUTFl8RD- zc_JIC6r0lUqhDpS0|CbPx2=Gzcw$H?1iLW9qP67(U=|j{kaj_Gx`t&7#A%&0Bf`I_ zME_SD%zvQTzb&e5#=OEb{H7LKmGl%&thTb4bu`hB?0-A}V^3I3B#*bPsdjl3>XLrGcmGJ_18?PxMnQz`Xm`nwN5cV;Q)Jm0u`i;a zQ@M~=31yR-qqJ^PY0OZqf#XQPhHOsJr$4#-`1o0^!5=W^n_CEbnm8tLte4+Dw*J0dCtO9>OC;Bs5R9y0w z>68We(JPTX56uWg4>#gu@P#sJqxR}?SmX=!RM2E-Sx9E6e?$M@lGdf}{VS<}QQBus zNQNuoRsrc*{AHubXKIRuX${!(N_5N-7u?WPl6qy=)}9((E>vo69hQ?anC*ZB&hrFhefuVT$Eb1x!Kq|Z8J{&PaTHKDSjO=8 zG|?x+BHK#Td26eSYtV~3B9b^|q{6EF@n|nd9iRclQNKsC;AlYGE;;Myt!qsuEbj4} zY^~3T^+C&E(L-&qOYk((R#~$1=Jckr?+lTzF2Iy%R~8-ZBCR;?=X(q{f%!G9bN&&al*Ls(`;XTIq23wRS zJv{|UVm^q><^gFgNQ+3dBp{Odtl2mRP#QCJ>snU4j$e$hQ+~>gi5aq&9>}u23|(es zkq7e0fT;y<;trp}({otgAV|Y3VZK;B>ZI?pg2bouV~h^o#9cot*l@z_@*#|2D#xI& z*|OYlN@|6HJ-1mXW~);BY(758Q0xl`065) zkq4yK;)U-ZZZ=QlX3VK^Q^Pm|RNy;dREB#}cpW}jwOhr??r((@E2mUw2I*%KBjb16 zy=kgMk57HDf?+LPsuM8=(bYCBMZJV~tq*eFDP0wv)qF6Z)Ak6Y0?aK4IJ!6#+NBP8 z*xiKF`l>WWQ9~{z+&Rw4&PmXgG)06O=a~^(HFXOVok!VlWx0)*ezi18BOl~+x0cZk zFg?icGQFp~a^hRi$0QwjLp*m#r(+guR--JYe2pCLN^OtAH<7s(FaMiG5ri+**mr6PES} zNTx!?_9YIk+lqM=sY}qc6j<03r(xVBq%6Q}%g)9>jBwKVMp1YGDN#Tkx=`_VkhfQ}NrwJ$sCt0~ z`~M@O*K~l<|I9RBzgsX*mzmuFpF2375;A62;aGz^93(ivn6Ir1t=ohGd?w~YjZs`~ zEFUy9jz^7%o8m;hWe&g>3%Rd1#svUg7mz}ur=#tsvw>jNP%~m!Tjgy@szgtP$#~$W zo--cQ6ic%(hDG!dCc#yl_Jg(pL(|mkqu7TX4k{k0&Xb4_-t{^a#TUwewAtnf2{3C$ z*u9-8Yui9;tzH8KZJ8hCXt1NUNTr`d8;`I}2mX337*a2hofUA-i`B zUF~r$RAF~9zi|FuYU0O!=*-Xy(t2@OBfU_^F=YH8c@ZG@*j*jm5w|J>>chXQ^}3r; zn*{p=xz@}^i!32%r=435AdPbDJm$M-v3s{Og;`TdUhc2AUeEFCc1~Il5 z<>{&kj6gZYC^G#47uR&F<|LhBO?7c+(KE)a=Mp#OQpTTZLi4-3-*VicEJOf8+V?{I zbU@I|{uAxP-EUn1G#kJX-zd6rS_#0xHq!+Yai*b83(kOMP0-jZuBaJGRw<*2T z22-l1vfcqyu<5vSC0kY!=6O8lbXUd(OxtwOffw6((qIUdlPHp5*!DaWZ#it+)j=uN z(}suf(bQpggsWHRf~hqF3F_q-N!nfkM50^MUT$kDwQ> zgNeJWtYxD3p`y2G?@=q9a%iawi~NAR{j-tOuPn3v(Jm%E{P4upE!6pw z8~|r59=In zXGF219oewWp7*YCRiJmT_UU^Wr>gjYsMDIes4JSV+9% zRcaRH!U0A&T=s@#OwQt znxX3R0y~uqij-{ziSJCkqQzD~HZB}Xcu$)zF2EmtK=IZ#Tr?#<932I6K$`N)&U`a+ z%*Z(?Q%HNeXTx#>HWRAu0tfKN9|tZ0Z27Nr@-tsT{3;X6%-M5(D!{i3eyiXs6~V6+ hVG-YGe3Q5AqxYMStlt5AZS`wNuiamie*V>o{|y_2DzpFq literal 0 HcmV?d00001 diff --git a/classxt_1_1xstrided__view-members.html b/classxt_1_1xstrided__view-members.html new file mode 100644 index 000000000..ff99edb8b --- /dev/null +++ b/classxt_1_1xstrided__view-members.html @@ -0,0 +1,307 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xstrided_view< CT, S, L, FST > Member List
    +
    +
    + +

    This is the complete list of members for xt::xstrided_view< CT, S, L, FST >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< D >inline
    assign_xexpression(const xexpression< E > &e) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    assign_xexpression(const xexpression< E > &e) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    backstrides() const noexceptxt::xstrided_view< CT, S, L, FST >
    backstrides_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    base_index_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    base_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bool_load_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    broadcast_shape(O &shape, bool reuse_cache=false) constxt::xstrided_view< CT, S, L, FST >
    build_view(E &&e) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    build_view(E &&e) const -> rebind_t< E > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    computed_assign(const xexpression< E > &e) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    computed_assign(const xexpression< E > &e) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    const_container_iterator typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    const_linear_iterator typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    const_pointer typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    const_reference typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    const_reverse_linear_iterator typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    const_stepper typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    container_iterator typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    contiguous_layout (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >static
    data() noexceptxt::xstrided_view< CT, S, L, FST >
    data() const noexceptxt::xstrided_view< CT, S, L, FST >
    data_alignment typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    data_element(size_type i) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    data_element(size_type i) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    data_offset() const noexceptxt::xstrided_view< CT, S, L, FST >
    derived_type typedef (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    derived_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >private
    difference_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    element(It first, It last) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    element(It first, It last) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    expression() noexceptxt::xstrided_view< CT, S, L, FST >
    expression() const noexceptxt::xstrided_view< CT, S, L, FST >
    expression_tag typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    extension_base typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    fill(const T &value)xt::xstrided_view< CT, S, L, FST >inline
    flat(size_type i) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    flat(size_type i) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    has_linear_assign(const O &strides) const noexceptxt::xstrided_view< CT, S, L, FST >
    inner_backstrides_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    inner_shape_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    inner_storage_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    inner_strides_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    is_const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >static
    is_contiguous() const noexcept (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    iterable_base typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    layout() const noexceptxt::xstrided_view< CT, S, L, FST >
    linear_begin() (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_begin() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_cbegin() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_cend() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_crbegin() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_crend() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_end() (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_end() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_iterator typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    linear_rbegin() (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_rbegin() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_rend() (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    linear_rend() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    load_simd(size_type i) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    load_simd(size_type i) const -> simd_return_type< requested_type > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator()() (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    operator()() const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    operator()(Args... args) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    operator()(Args... args) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator=(const self_type &) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    operator=(const xexpression< E > &e) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    operator=(const E &e) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    operator=(const xexpression< E > &e) -> self_type &xt::xstrided_view< CT, S, L, FST >inline
    operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    operator=(const xview_semantic &)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    operator=(xview_semantic &&)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >private
    operator=(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >private
    operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >private
    operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >private
    operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    pointer typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    provides_simd_interface (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >static
    rebind_t typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    reference typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    reverse_linear_iterator typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    scalar_computed_assign(const E &e, F &&f) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    scalar_computed_assign(const E &e, F &&f) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    self_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    semantic_base typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    shape() const noexceptxt::xstrided_view< CT, S, L, FST >
    xt::xaccessible::shape(size_type index) constxt::xconst_accessible< D >inlineprivate
    shape_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    simd_return_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    simd_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    simd_value_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    size_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    static_layout (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >static
    stepper typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_begin(const ST &shape) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_begin(const ST &shape) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_begin(const ST &shape) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_begin(const ST &shape) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_begin(const ST &shape) -> disable_indexed_stepper_t< STEP > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    stepper_begin(const ST &shape) const -> disable_indexed_stepper_t< STEP > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    stepper_end(const ST &shape, layout_type l) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_end(const ST &shape, layout_type l) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_end(const ST &shape, layout_type l) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_end(const ST &shape, layout_type l) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    stepper_end(const ST &shape, layout_type l) -> disable_indexed_stepper_t< STEP > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    stepper_end(const ST &shape, layout_type l) const -> disable_indexed_stepper_t< STEP > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    storage() noexceptxt::xstrided_view< CT, S, L, FST >
    storage() const noexceptxt::xstrided_view< CT, S, L, FST >
    storage_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    store_simd(size_type i, const simd &e) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >inline
    strides() const noexceptxt::xstrided_view< CT, S, L, FST >
    strides_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    temporary_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    unchecked(Args... args) (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    unchecked(Args... args) const (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    value_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    xaccessible< self_type > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >friend
    xaxis_iterator (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >friend
    xaxis_slice_iterator (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >friend
    xconst_accessible< self_type > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >friend
    xexpression_type typedef (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xstepper (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >friend
    xstrided_view(CTA &&e, SA &&shape, strides_type &&strides, std::size_t offset, layout_type layout) noexceptxt::xstrided_view< CT, S, L, FST >inline
    xstrided_view(const xstrided_view &rhs)=default (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >
    xview_semantic()=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    xview_semantic(const xview_semantic &)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    xview_semantic(xview_semantic &&)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    xview_semantic< self_type > (defined in xt::xstrided_view< CT, S, L, FST >)xt::xstrided_view< CT, S, L, FST >friend
    ~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    ~xview_semantic()=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    +
    + + + + diff --git a/classxt_1_1xstrided__view.html b/classxt_1_1xstrided__view.html new file mode 100644 index 000000000..648253d66 --- /dev/null +++ b/classxt_1_1xstrided__view.html @@ -0,0 +1,2747 @@ + + + + + + + +xtensor: xt::xstrided_view< CT, S, L, FST > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xstrided_view< CT, S, L, FST > Class Template Reference
    +
    +
    + +

    View of an xexpression using strides. + More...

    + +

    #include <xstrided_view.hpp>

    +
    +Inheritance diagram for xt::xstrided_view< CT, S, L, FST >:
    +
    +
    + + +xt::xview_semantic< D > +xt::xstrided_view_base< D > +xt::xsemantic_base< D > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xstrided_view<CT, S, L, FST>
     
    using base_type = xstrided_view_base<self_type>
     
    using semantic_base = xview_semantic<self_type>
     
    using extension_base = extension::xstrided_view_base_t<CT, S, L, FST>
     
    using expression_tag = typename extension_base::expression_tag
     
    using xexpression_type = typename base_type::xexpression_type
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using const_reference = typename base_type::const_reference
     
    using pointer = typename base_type::pointer
     
    using const_pointer = typename base_type::const_pointer
     
    using size_type = typename base_type::size_type
     
    using difference_type = typename base_type::difference_type
     
    using inner_storage_type = typename base_type::inner_storage_type
     
    using storage_type = typename base_type::storage_type
     
    using linear_iterator = typename storage_type::iterator
     
    using const_linear_iterator = typename storage_type::const_iterator
     
    using reverse_linear_iterator = std::reverse_iterator<linear_iterator>
     
    using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>
     
    using iterable_base = select_iterable_base_t<L, xexpression_type::static_layout, self_type>
     
    using inner_shape_type = typename base_type::inner_shape_type
     
    using inner_strides_type = typename base_type::inner_strides_type
     
    using inner_backstrides_type = typename base_type::inner_backstrides_type
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename base_type::strides_type
     
    using backstrides_type = typename base_type::backstrides_type
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
     
    using base_index_type = xindex_type_t<shape_type>
     
    using data_alignment = xt_simd::container_alignment_t<storage_type>
     
    using simd_type = xt_simd::simd_type<value_type>
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    using bool_load_type = typename base_type::bool_load_type
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    using container_iterator
     
    using const_container_iterator = typename storage_type::const_iterator
     
    template<class E>
    using rebind_t = xstrided_view<E, S, L, typename FST::template rebind_t<E>>
     
    - Public Types inherited from xt::xview_semantic< D >
    using base_type = xsemantic_base<D>
     
    using derived_type = D
     
    using temporary_type = typename base_type::temporary_type
     
    - Public Types inherited from xt::xsemantic_base< D >
    using base_type = select_expression_base_t<D>
     
    using derived_type = typename base_type::derived_type
     
    using temporary_type = typename xcontainer_inner_types<D>::temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    xstrided_view (const xstrided_view &rhs)=default
     
    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    +template<class ST, class STEP = stepper>
    disable_indexed_stepper_t< STEP > stepper_begin (const ST &shape)
     
    +template<class ST, class STEP = stepper>
    disable_indexed_stepper_t< STEP > stepper_end (const ST &shape, layout_type l)
     
    +template<class ST, class STEP = stepper>
    enable_indexed_stepper_t< STEP > stepper_begin (const ST &shape)
     
    +template<class ST, class STEP = stepper>
    enable_indexed_stepper_t< STEP > stepper_end (const ST &shape, layout_type l)
     
    +template<class ST, class STEP = const_stepper>
    disable_indexed_stepper_t< STEP > stepper_begin (const ST &shape) const
     
    +template<class ST, class STEP = const_stepper>
    disable_indexed_stepper_t< STEP > stepper_end (const ST &shape, layout_type l) const
     
    +template<class ST, class STEP = const_stepper>
    enable_indexed_stepper_t< STEP > stepper_begin (const ST &shape) const
     
    +template<class ST, class STEP = const_stepper>
    enable_indexed_stepper_t< STEP > stepper_end (const ST &shape, layout_type l) const
     
    +template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    +requires provides_simd_interface
    simd_return_type< requested_type > load_simd (size_type i) const
     
    +template<class E>
    rebind_t< E > build_view (E &&e) const
     
    +const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the xtrided_view_base.
     
    +bool is_contiguous () const noexcept
     
    +layout_type layout () const noexcept
     Returns the layout of the xtrided_view_base.
     
    +const inner_shape_type & shape () const noexcept
     Returns the shape of the xtrided_view_base.
     
    +const inner_strides_type & strides () const noexcept
     Returns the strides of the xtrided_view_base.
     
    +reference operator() ()
     
    +const_reference operator() () const
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    pointer data () noexcept
     Returns a pointer to the underlying array serving as element storage.
     
    const_pointer data () const noexcept
     Returns a constant pointer to the underlying array serving as element storage.
     
    +size_type data_offset () const noexcept
     Returns the offset to the first element in the view.
     
    +reference element (It first, It last)
     
    +const_reference element (It first, It last) const
     
    +xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    +const xexpression_type & expression () const noexcept
     Returns a constant reference to the underlying expression of the view.
     
    +storage_type & storage () noexcept
     Returns a reference to the buffer containing the elements of the view.
     
    +const storage_type & storage () const noexcept
     Returns a constant reference to the buffer containing the elements of the view.
     
    bool broadcast_shape (O &shape, bool reuse_cache=false) const
     Broadcast the shape of the view to the specified parameter.
     
    bool has_linear_assign (const O &strides) const noexcept
     Checks whether the xstrided_view_base can be linearly assigned to an expression with the specified strides.
     
    Constructor
    template<class CTA, class SA>
     xstrided_view (CTA &&e, SA &&shape, strides_type &&strides, std::size_t offset, layout_type layout) noexcept
     Constructs an xstrided_view.
     
    self_typeoperator= (const self_type &)
     
    - Public Member Functions inherited from xt::xview_semantic< D >
    +template<class E>
    derived_type & assign_xexpression (const xexpression< E > &e)
     
    +template<class E>
    derived_type & computed_assign (const xexpression< E > &e)
     
    +template<class E, class F>
    derived_type & scalar_computed_assign (const E &e, F &&f)
     
    derived_type & assign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    template<class E>
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    template<class E>
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    template<class E, class F>
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    template<class E>
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< D >
    +template<class E>
    disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +template<class E>
    derived_type & operator+= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator-= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator*= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator/= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator%= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator&= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator|= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator^= (const xexpression< E > &)
     
    +template<class E>
    derived_type & assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & plus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & minus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & multiplies_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & divides_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & modulus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_and_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_or_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_xor_assign (const xexpression< E > &)
     
    template<class E>
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    template<class E>
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    template<class E>
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    template<class E>
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    template<class E>
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    template<class E>
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    template<class E>
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    template<class E>
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    template<class E>
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    template<class E>
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    template<class E>
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + + + + + +

    +Static Public Attributes

    static constexpr bool provides_simd_interface
     
    static constexpr bool is_const
     
    static constexpr bool contiguous_layout
     
    static constexpr layout_type static_layout
     
    + + + + + + + + + + + + + + + + +

    +Friends

    template<class C>
    class xstepper
     
    class xview_semantic< self_type >
     
    class xaccessible< self_type >
     
    class xconst_accessible< self_type >
     
    template<class D>
    class xaxis_iterator
     
    template<class D>
    class xaxis_slice_iterator
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data

    template<class T>
    void fill (const T &value)
     Fills the view with the given value.
     
    linear_iterator linear_begin ()
     
    linear_iterator linear_end ()
     
    const_linear_iterator linear_begin () const
     
    const_linear_iterator linear_end () const
     
    const_linear_iterator linear_cbegin () const
     
    const_linear_iterator linear_cend () const
     
    reverse_linear_iterator linear_rbegin ()
     
    reverse_linear_iterator linear_rend ()
     
    const_reverse_linear_iterator linear_rbegin () const
     
    const_reverse_linear_iterator linear_rend () const
     
    const_reverse_linear_iterator linear_crbegin () const
     
    const_reverse_linear_iterator linear_crend () const
     
    template<class align, class simd>
    +requires provides_simd_interface
    void store_simd (size_type i, const simd &e)
     
    reference data_element (size_type i)
     
    const_reference data_element (size_type i) const
     
    reference flat (size_type i)
     
    const_reference flat (size_type i) const
     
    template<class ST, class STEP>
    auto stepper_begin (const ST &shape) -> disable_indexed_stepper_t< STEP >
     
    template<class ST, class STEP>
    auto stepper_end (const ST &shape, layout_type l) -> disable_indexed_stepper_t< STEP >
     
    template<class ST, class STEP>
    auto stepper_begin (const ST &shape) const -> disable_indexed_stepper_t< STEP >
     
    template<class ST, class STEP>
    auto stepper_end (const ST &shape, layout_type l) const -> disable_indexed_stepper_t< STEP >
     
    template<class alignment, class requested_type, std::size_t N>
    +requires provides_simd_interface
    auto load_simd (size_type i) const -> simd_return_type< requested_type >
     
    template<class E>
    auto build_view (E &&e) const -> rebind_t< E >
     
    + + + + + + + + +

    Extended copy semantic

    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    template<class E>
    auto operator= (const E &e) -> disable_xexpression< E, self_type > &
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xview_semantic< D >
    xview_semantic (const xview_semantic &)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +template<class E>
    derived_type & operator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< D >
    xsemantic_base (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +template<class E>
    derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +class xt::xstrided_view< CT, S, L, FST >

    View of an xexpression using strides.

    +

    The xstrided_view class implements a view utilizing an initial offset and strides.

    +
    Template Parameters
    + + + + + +
    CTthe closure type of the xexpression type underlying this view
    Lthe layout of the strided view
    Sthe strides type of the strided view
    FSTthe flat storage type used for the strided view
    +
    +
    +
    See also
    strided_view, transpose
    + +

    Definition at line 128 of file xstrided_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::backstrides_type = typename base_type::backstrides_type
    +
    + +

    Definition at line 166 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ base_index_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::base_index_type = xindex_type_t<shape_type>
    +
    + +

    Definition at line 175 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::base_type = xstrided_view_base<self_type>
    +
    + +

    Definition at line 137 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::bool_load_type = typename base_type::bool_load_type
    +
    + +

    Definition at line 180 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ const_container_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::const_container_iterator = typename storage_type::const_iterator
    +
    + +

    Definition at line 275 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ const_linear_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::const_linear_iterator = typename storage_type::const_iterator
    +
    + +

    Definition at line 156 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::const_pointer = typename base_type::const_pointer
    +
    + +

    Definition at line 149 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::const_reference = typename base_type::const_reference
    +
    + +

    Definition at line 147 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ const_reverse_linear_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>
    +
    + +

    Definition at line 158 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 169 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ container_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::container_iterator
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename storage_type::const_iterator, typename storage_type::iterator>
    +
    +

    Definition at line 273 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ data_alignment

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::data_alignment = xt_simd::container_alignment_t<storage_type>
    +
    + +

    Definition at line 177 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::difference_type = typename base_type::difference_type
    +
    + +

    Definition at line 151 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 140 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::extension_base = extension::xstrided_view_base_t<CT, S, L, FST>
    +
    + +

    Definition at line 139 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::inner_backstrides_type = typename base_type::inner_backstrides_type
    +
    + +

    Definition at line 163 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::inner_shape_type = typename base_type::inner_shape_type
    +
    + +

    Definition at line 161 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_storage_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::inner_storage_type = typename base_type::inner_storage_type
    +
    + +

    Definition at line 153 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::inner_strides_type = typename base_type::inner_strides_type
    +
    + +

    Definition at line 162 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::iterable_base = select_iterable_base_t<L, xexpression_type::static_layout, self_type>
    +
    + +

    Definition at line 160 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::linear_iterator = typename storage_type::iterator
    +
    + +

    Definition at line 155 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 148 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class E>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::rebind_t = xstrided_view<E, S, L, typename FST::template rebind_t<E>>
    +
    + +

    Definition at line 278 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::reference = typename base_type::reference
    +
    + +

    Definition at line 146 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ reverse_linear_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::reverse_linear_iterator = std::reverse_iterator<linear_iterator>
    +
    + +

    Definition at line 157 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::self_type = xstrided_view<CT, S, L, FST>
    +
    + +

    Definition at line 136 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::semantic_base = xview_semantic<self_type>
    +
    + +

    Definition at line 138 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 164 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ simd_return_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class requested_type>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
    +
    + +

    Definition at line 257 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ simd_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::simd_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 178 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 179 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::size_type = typename base_type::size_type
    +
    + +

    Definition at line 150 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 168 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 154 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 165 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
    +
    + +

    Definition at line 174 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 145 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + +
    using xt::xstrided_view< CT, S, L, FST >::xexpression_type = typename base_type::xexpression_type
    +
    + +

    Definition at line 142 of file xstrided_view.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xstrided_view()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +
    +template<class CTA, class SA>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xt::xstrided_view< CT, S, L, FST >::xstrided_view (CTA && e,
    SA && shape,
    strides_type && strides,
    std::size_t offset,
    layout_type layout )
    +
    +inlinenoexcept
    +
    + +

    Constructs an xstrided_view.

    +
    Parameters
    + + + + + + +
    ethe underlying xexpression for this view
    shapethe shape of the view
    stridesthe strides of the view
    offsetthe offset of the first element in the underlying container
    layoutthe layout of the view
    +
    +
    + +

    Definition at line 368 of file xstrided_view.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + + + + + + + +
    bool xt::xstrided_view_base< self_type >::broadcast_shape (O & shape,
    bool reuse_cache = false ) const
    +
    + +

    Broadcast the shape of the view to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +
    +
    + +

    ◆ build_view()

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::build_view (E && e) const -> rebind_t<E> +
    +
    +inline
    +
    + +

    Definition at line 692 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + + + + +
    const_pointer xt::xstrided_view_base< self_type >::data () const
    +
    +noexcept
    +
    + +

    Returns a constant pointer to the underlying array serving as element storage.

    +

    The first element of the view is at data() + data_offset().

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + + + + +
    pointer xt::xstrided_view_base< self_type >::data ()
    +
    +noexcept
    +
    + +

    Returns a pointer to the underlying array serving as element storage.

    +

    The first element of the view is at data() + data_offset().

    + +
    +
    + +

    ◆ data_element() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::data_element (size_type i)
    +
    +inline
    +
    + +

    Definition at line 462 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ data_element() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::data_element (size_type i) const
    +
    +inline
    +
    + +

    Definition at line 468 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ fill()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    void xt::xstrided_view< CT, S, L, FST >::fill (const T & value)
    +
    +inline
    +
    + +

    Fills the view with the given value.

    +
    Parameters
    + + +
    valuethe value to fill the view with.
    +
    +
    + +

    Definition at line 447 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ flat() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::flat (size_type i)
    +
    +inline
    +
    + +

    Definition at line 474 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ flat() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::flat (size_type i) const
    +
    +inline
    +
    + +

    Definition at line 480 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + + + + +
    bool xt::xstrided_view_base< self_type >::has_linear_assign (const O & strides) const
    +
    +noexcept
    +
    + +

    Checks whether the xstrided_view_base can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +
    +
    + +

    ◆ linear_begin() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_begin ()
    +
    +inline
    +
    + +

    Definition at line 486 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_begin () const
    +
    +inline
    +
    + +

    Definition at line 498 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_cbegin()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_cbegin () const
    +
    +inline
    +
    + +

    Definition at line 510 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_cend()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_cend () const
    +
    +inline
    +
    + +

    Definition at line 516 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_crbegin()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_crbegin () const
    +
    +inline
    +
    + +

    Definition at line 546 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_crend()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_crend () const
    +
    +inline
    +
    + +

    Definition at line 552 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_end ()
    +
    +inline
    +
    + +

    Definition at line 492 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_end () const
    +
    +inline
    +
    + +

    Definition at line 504 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_rbegin ()
    +
    +inline
    +
    + +

    Definition at line 522 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_rbegin () const
    +
    +inline
    +
    + +

    Definition at line 534 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_rend() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_rend ()
    +
    +inline
    +
    + +

    Definition at line 528 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ linear_rend() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::linear_rend () const
    +
    +inline
    +
    + +

    Definition at line 540 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ load_simd()

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class alignment, class requested_type, std::size_t N>
    +requires provides_simd_interface
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::load_simd (size_type i) const -> simd_return_type<requested_type> +
    +
    +inline
    +
    + +

    Definition at line 683 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ operator=() [1/3]

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
    +
    +inline
    +
    + +

    Definition at line 406 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ operator=() [2/3]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::operator= (const self_type & rhs)
    +
    +inline
    +
    + +

    Definition at line 382 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ operator=() [3/3]

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 397 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +
    +template<class ST, class STEP>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::stepper_begin (const ST & shape) -> disable_indexed_stepper_t<STEP> +
    +
    +inline
    +
    + +

    Definition at line 563 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +
    +template<class ST, class STEP>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::stepper_begin (const ST & shape) const -> disable_indexed_stepper_t<STEP> +
    +
    +inline
    +
    + +

    Definition at line 597 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +
    +template<class ST, class STEP>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::stepper_end (const ST & shape,
    layout_type l ) -> disable_indexed_stepper_t<STEP> +
    +
    +inline
    +
    + +

    Definition at line 571 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +
    +template<class ST, class STEP>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xstrided_view< CT, S, L, FST >::stepper_end (const ST & shape,
    layout_type l ) const -> disable_indexed_stepper_t<STEP> +
    +
    +inline
    +
    + +

    Definition at line 606 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ store_simd()

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    +requires provides_simd_interface
    +
    +template<class alignment, class simd>
    +requires provides_simd_interface
    + + + + + +
    + + + + + + + + + + + +
    void xt::xstrided_view< CT, S, L, FST >::store_simd (size_type i,
    const simd & e )
    +
    +inline
    +
    + +

    Definition at line 674 of file xstrided_view.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xaccessible< self_type >

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    friend class xaccessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 301 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xaxis_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class D>
    + + + + + +
    + + + + +
    friend class xaxis_iterator
    +
    +friend
    +
    + +

    Definition at line 306 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xaxis_slice_iterator

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class D>
    + + + + + +
    + + + + +
    friend class xaxis_slice_iterator
    +
    +friend
    +
    + +

    Definition at line 308 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xconst_accessible< self_type >

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    friend class xconst_accessible< self_type >
    +
    +friend
    +
    + +

    Definition at line 301 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xstepper

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    +
    +template<class C>
    + + + + + +
    + + + + +
    friend class xstepper
    +
    +friend
    +
    + +

    Definition at line 301 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xview_semantic< self_type >

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    friend class xview_semantic< self_type >
    +
    +friend
    +
    + +

    Definition at line 301 of file xstrided_view.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    bool xt::xstrided_view_base< self_type >::contiguous_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 133 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ is_const

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    bool xt::xstrided_view_base< self_type >::is_const
    +
    +staticconstexpr
    +
    + +

    Definition at line 104 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ provides_simd_interface

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    bool xt::xstrided_view< CT, S, L, FST >::provides_simd_interface
    +
    +staticconstexpr
    +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, ::xt::layout_type::row_major >>
    + + + + + +
    + + + + +
    layout_type xt::xstrided_view_base< self_type >::static_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 132 of file xstrided_view_base.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp
    • +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xstrided_view.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xstrided__view.js b/classxt_1_1xstrided__view.js new file mode 100644 index 000000000..2b57851da --- /dev/null +++ b/classxt_1_1xstrided__view.js @@ -0,0 +1,19 @@ +var classxt_1_1xstrided__view = +[ + [ "xstrided_view", "classxt_1_1xstrided__view.html#aeaca42937cad665d96b797421f114cca", null ], + [ "backstrides", "classxt_1_1xstrided__view.html#a418d8680d4b654413456e4380c2151eb", null ], + [ "broadcast_shape", "classxt_1_1xstrided__view.html#a0f7c1e14391c357570e1d054b19b6165", null ], + [ "data", "classxt_1_1xstrided__view.html#aeed1c4b45db8fc518d5058ea39587e9f", null ], + [ "data", "classxt_1_1xstrided__view.html#a90ad7ad05c7837e0c26fdaa7cbe126c1", null ], + [ "data_offset", "classxt_1_1xstrided__view.html#a52931ad61f35e598829290a885805e26", null ], + [ "expression", "classxt_1_1xstrided__view.html#a929958921ea6477ce8a3c5aba3936146", null ], + [ "expression", "classxt_1_1xstrided__view.html#a0ab07e56a411fedb9e0e213b8ddbc693", null ], + [ "fill", "classxt_1_1xstrided__view.html#a2e8596cc0e323e5d8e884c5f88b00b8b", null ], + [ "has_linear_assign", "classxt_1_1xstrided__view.html#af8980bbe46da6333d9d81411bd9b6610", null ], + [ "layout", "classxt_1_1xstrided__view.html#ae3ff4c9cf2e6873fbc934e946f1b702b", null ], + [ "operator=", "classxt_1_1xstrided__view.html#a48ae99185454667efcd738a48ddc43bf", null ], + [ "shape", "classxt_1_1xstrided__view.html#a63efb4c728be80dc8154df1b578c33cd", null ], + [ "storage", "classxt_1_1xstrided__view.html#a12ee07f7bf30d89f9ea691a03a122e3d", null ], + [ "storage", "classxt_1_1xstrided__view.html#a515e8cbd36c5494ab188f4c3e9d90861", null ], + [ "strides", "classxt_1_1xstrided__view.html#aec137e8210e4a11efc962df4e05b0680", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xstrided__view.png b/classxt_1_1xstrided__view.png new file mode 100644 index 0000000000000000000000000000000000000000..d5adfec512d02b17b935810206acd7424236f307 GIT binary patch literal 9961 zcmeG?2~<_shny8<36)1^*PRB@dNRisitY+n|3Ah_$8Kq9c!vFTyU^2j)*jL5E?zzxO%;B zSGsTJPQwEr$IN@fu57EZ!4o_isKToPq%=)>V)(komM2yu!eZ@k`)mq1)7J=?T)>qv zB3bUEn2X3Vmf`tqcoJBnde0`gfF?Yl>(ixzmcxiJa}m*VDW3pp%YH8#dE`-t_SwTG zOcIS}U9V~NY1v#@uqAre8RC+5XuF}V8|&;}#G#a8vNkdUqoFD*L8XY< zkZs{`nn^qYTj2_kv1m&IcA`}^H&Ei%WaoBo`mUrfFjFl~M?+57)6!v*m^vgFCh5=Y zFdIvWFeLpH2SxyKtGOv$j%ngp478srL!A^h2MOEGWoH4jIy4)2gDI;(r9z=@=sTh^ zK{u*BD>kG=9zu;il-4zbo_3W@DC=01TYs}J^TAdg8%PGVn^a4_M5Lfj zM%M`iLBP_Z&-sv8g~h635E|gR4z$&d+wV`Y+pK7mvsN=8jIGN(L3+(CQ5lJ#3X;Dq zLc^XECmW=V=qB zup_hm?|(VdKSAWD^bFT(PyN5m2RE+RWLJYew_nR=^^COdX8b?!LzeQVS0yQaMfNE+K`PP9!V zo@|$^+WBQ=8xdi2f1D-Kx|Xn{S&$Vvt%6d98IZnoIHmn+i+PAso_vS41cZj@qoDq9 zx^4N1@po7~el!-#(N*(c znUI5USe2%ys=MwSGcNp2H5AOGSt%7U>tes?i-A+wx^(m??;7o3czDgF_HGfb1CCsN1DC@3J97|9cjOxb>IACT8IGZH_f&h zfJl*j$+SsfYT?czFMxR1q%<$$e=xUAN@HeQ*Z;m+OsnCPQqI)IH{TpT7iuTEw(iKb zKfl@%TH<7{sn-6s(~q9NVXuVNepv5V#Z0^N*=O}AA5PMrpm_Wl$}E8Y{c4JEvvK8L zg*YS5pR`moRCok?Og~nqM}#!4SZi1NuC^ppc(g2OsqiSDexyE*^c+4~yz?6TuHV?$O*6TCJeULN#o0NzU zn+X8+kx5-Y-;%I-+W!HLq{Njo$Ct^HXF5TiwC0)CE;S-#=d_aq9Go}Zo;lvjp6Mwy z#(GCgTT)=R%8LM|oJptyR4V?r-O%(HO9E85n2xM}oKBuA3AY&9@*NMkcBs+EcOqi^xQ^01P}2%D`UoC%HCGnU=6x zj7@g{%nQh?bosr`D_`u5CM>RKFEHdd7&I5CRD?n^x>+l{09o0@?87_)Y{EILS53Rl zk$(hOIi!6LRCxOUKp#O_l2~kk!Uy)Db#%(xqsZ@*U*oY1UKaAVQn4v`VK7t(8ncwM zT@%#Q``R%^kmg{|i+Gt{uznC-q6~E<|ICBrA$iv!OCdBYa-Qm)a_UeXuiy@qn%M!c z7P{K0;xcobZD0IGo`)t0(hH0J%jpgaDow3rt)u9kJx!ye<_ z!<1R}r$+aflAP{Q77n^Am68Khy1=KR%9fu6j-#Xd!UgIKEVDt+Z~Lg!Rr5l&jYw`{ zcX7Wq>3buC$X|&v(87)o@mjAMUAeK#qnOe?z>(l1(M>R@=8a`CMT}w%lBS>X%bAxk zxPC#$Wq!Ia_(X7vC|{R{yq)QNhE^H;oODSi562a{4hFO$c9p8Sw3gAos1%GyQR_X; zr>elVYw1tKF;XU| z=s*>XR6cQwapgF#l3e#A?*y^LpEz0)H)?!?=_=0(MOdU#QxuEEoYXrPF|>gV8l$yh z;acYBI(+r6%jp@)qxbxBGG2RbDU%DfYuyBRk3)h@n7v1EvbZHrh?ogf-m|tC7=j{4 zc*4FgW8T*Jv#w!}&eL&!qmb{YorZCHNO)#`R)CgDl_mfzYa;z!sr(TIOOui`s5IQ~ z%^49qk4_8d1N_o=m|vwhU3$y-1|F?LZUr_>-o2}xVsMcE=ygx+Do?U{ReFb%R@Rq@ zHKbN6u;)0GMaS|_8#dH6_Xl?qw5Ywu;}hsVWTW?QMKL$9!9DFH?amwgVJnN6?HzT> z-&U@M>a>>3W#PA3ru%eW8Mzz@S91CQ%nqkWB+Hwbv13a%%g3TYS~3e6QF%(+)&^Z2 zU6l>(jY0@-mq5UCb%v*F#D)&v0%pu}7db8st_97@(0zk&Qk#^6+)nIRtd#IrAp0Gg zq|FzLI}SqZU^$6+3HVJt(qbMR<%G{h5kCP?ue;fOZyn%YB2#2HdmYr>%c*8vj~)xQe} zXH+=(i+1Q~Es*8Ct_!rB-w*z{=QYT;1l0~S+Tsap*%}s`{)Be-z>b?ROxgAX)d0s2 z>`?wqFXDWep5^s-=xy}gF}JhYc?Rfr$}@6h+3xhJaAB-ep`Z?iB)0D*6m`G_(YbZQ zq&@TFN3<~$zeTY1Z)PM&TJKkz6-`x!hcv2-w3p2R{iIr83hhl=ZlHN*fIvvE@rU=W zkke1f@0(eVpBj_&9FBJ#L#yNt%NFAwbhf=8h`T6nU~ee*sv&>A=0ZO43R7*I_*%i$ zK*#XsOyF|;9OQA;0@!k~!5u9%E0=Tq(E<7j_^vgDH)&uUsxnivc=$29;J0K`TZ=fr zg(N(Bjf%+@{S-k##Poh95ev?ej|MPtMJ^Db=H}00w0rH@ zk&%Tkf(K;F>2Rn@*!6r+pRYI8P=`i8;fs7-B)47&wAH7IiPfh~1InPl?6X}G_CdBZ zv9!*Y^t7~@bW3!{7@ANTTuK(d(J1_Qrw*f13eBU3SYL4q&M7`sLD~>U=sPj-$E5}N zsN1BS%ynQ;qW6GY#4wbvudN+}<8%Cp7>m%F>^2I<{Gm{-4AaqM>n4l-(}^JbqkF?=Do=Ed-1=^d2e>ee}%kz zot(tM7y>>=qvuY@yfRITO!qxtP)<0i5~_9{hKCOg>pON1Pn9 zJ{+vss%EO)GJLeWjIXTWl$-8naLY7aQhXGeNTcF&?qsoG z!N@#-85s_e=*P?!IdqkHV~W=qF#PvMVA}gN;Jc<_&dE#ilBfK8mrt|8DoGba3p>*? zYmP*Y4D3b+wi(oDjTS-~Hu0ZW{NDjiL;aMC zcNDoq9Y)xf@dKTg$H;549mHHD_=YHu5nNCmLYIrc1r-Q{^H1#$)O({{-|Ap);TD{+ z_#EOLi^(td*LV`^7WEW0vz1zRI%ES|)G<-k#l2`+X&iRehsCF0`v&qmw<(0EsTI0B z0nUcn{mnoexyR25QK7>qI1vWI#|^pf?$QShyz z(yO~kCQfhA$5C}%)s_lmB4h8fe23_JML+VK(#XM-j|Q7oAeM~jvm}YxzuxlCzkUs! zUl#rW0rUu|&P2Zrc|OdDKdy?IxE4{mJH3zpNRo#$6m|L2srog5wT=@@7mOCo)wxB| zNxec0D<2b1vm`{DKk}A{>Oyjh;-sft?@2_1yfNlCij4i9(Zi57?Dq&KRQ~6N#Ti~Z zng*U-Dj~P0spquEJjF5Kfz8Ux^D}eM-2S%8Y<(6{$*oA%<@3#$c??Mxk$;4!bf(}j z;mE_$c+1qD{~&rtYkwMRL>ku#Wh>pDxi44F?Y(^2Ri&5z%&8sQ?qJw-SH3mju?GLh z1RJBXxZfy3k4q`H!u$;Km0gA(@CnNj_laxNH<&R}{CZs;u(>`3h@D|2HoUjOlk)mR z=y%bePKe9YZtwkbeOR|@9$y-P+xPsStMQS;pF5fSV<$2}E8GU^*6SWah;o`gmov02BoEG57 z6bXN^sT#wR37Z}?osj>NpWseoe(&fVb34d*Ghs0l7cLO z1IY)YS4plk4(;}A<7#erru%OUzs=776y$1H=fWr++g9tEuh)OC-=5AgR7eYMwmU=* z95x)ajC#;%h@f=w1If`0G~w{1&9?Hd=?g+L8|9Apk8aMh>R${6sm*^!eVx1(CA>?_ zFlF5>W-#{X;$PEl&X>zF9Umt*BAP1ejDGXM>GXrFZSpI8zh}~U+#zKs01?>K0En6( z_2?o~7XS}N*dxl*x>Zt#NRhzlU+VFNSnN2Ez9IUPR#|M;QiEKmXS-N<-;evP=1-J2 zSA@{l0onwZmoA(CCtO=|lFAv@`w6&toScGjB#vSA5g;}>2n;%DXq78em|o93_59F2obw|d>!&S%kYypkSiYTIR)8tS}cZ-$C+Nb zkeE-wzg3e`A&alif25Ya+40B!L80(*aNKn&;H&}EB0wHl9ZYNxaNGcV6|&V=adJjR zLWR6uh+K6=0^4rLW%$D^Wz@R#cIf8gNn6M!x#|Y zbOsdo*cMK*SlpBy-SgQ=rP5iBkptN-ruoDmE||_M0?wX{;VqbwA602a%AyG?0N%4j zE*GaK1$>j~Ny(0zZ62+rfxGbT+P4luH9B+UdE}77d(6oJYei?_KS0OQx0XiLgRJ~< zEcphldo;1RmYY|-wuc008gQuEI_U@V8rpAaVZHg^5uNg|4>$zC@sb%EJoZCz{V8#E z)FI2AUUtC9sR_+}NpSX_5qKt>kUozPUT^vp{8Wsqr+Cv@*hJkCv`#Q_5^yff_s}%r zR2V?0Qad>qe0nBikT|IDi4tHfMeSsDoX#~BJO_SM0_2x2%>X<{`4T`nEZ2e@UwTbb zk!+j)UC6Y2yRLFN4@%(Il)BA~g|`5)j+sf+nd7I`TW1ClY^SW3L58bTzc|1vm>G!x zHhueXt9$-3(`pSO^i^DZC7J?EIWrRR%J@Ge+AgzPOLPHAub}At`LPk_ z51fxZ`N!iDAT%pt8tm%oxegBgwz%U+d&NZ{u3N7&zHSX$5)`&bW>D;6YcO8boL~+8 zOVy6nIH$477W!PB<`=uvHhOnzQ~)D^6KI0U!0YO*J8#OqcOeF&(x{+fN=J+P;klvF6>d=B&xrj6&E}YaHCi zE%;3UrR=c%PE%p=aj-32*M0Ss4{b>WUWP5dcd6nh+gc}qT2mr~M{ikkD|z=mv@JAW z_y+KcD|59@I-Y3D_4&A;{(lZCwB*r-|K{KGn|}nS>j`Z(BG@OHiktrZ%1RIXCA(W7 zz>SbsFM?b^@$KuY7c(}=3hnEww?Sg~zV?;4(mpvb(%o2yvac?$UJ3D)ow2LiUcHBc z;;%&UCr&H4cZjD|Jke&bH`n-XBSoQ5$!`iZhDAjiyAluCFd&pzb$_}zB3gapTYY7q zYQr*yCnC(E=kWH|7&~h5CH+J-cG1+R_so<}t_>GsE(|UmuPh6L)7dbbFMdLY=~2iy zw<4QSMeV=J+?R*15wDgMDx$`Hq*@;vd3X}5CQg_6;DJJ~fkJioDipp#km75oNeyJ( zxK1BQF%RuQXo{k6n`u|H2sj_zSx5JuoZ;^D*VfL<8PKah$dMPz!b@C(2*c*=$3F0` z)tus_V6h8b&&FceN#yV3OGI^3bb93m%p_w7C8ICqfsmt`vD8s2W`F}!xi!*0RmpR1T!fByoVGW;Qxhz=BxHYNT*4D?M$iJmoR*3L_QAjkCjMv-7(EZH(r0nnEc4c^>T=nR6$ zQe98*nFu-qG+e0izP@r&YRsOm+pDxo*QBIM2Q`{pU-K}7r)oDB@_@V}&L3~c+BgbJ z72WOEHdXn`Vl61OqF1jP(l?zTsnZvL=b}4{ZITW@X5Hyu7T`XSjd*~ZWj${D5rz8z z{-h9Pc3d%=9Gi(Nk)lEr{&omQzF^`yz+uA8+1Li~ezK}xy&q+hJ3ufet8CM(%bQlm s|65($wDZg#wQ=_(0Y)yF9dDgnrS#b}cmcSSHs`Ayp + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xstrided_view_base< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xstrided_view_base< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    at(Args... args) (defined in xt::xaccessible< D >)xt::xaccessible< D >
    at(Args... args) -> referencext::xaccessible< D >inline
    at(Args... args) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
    back()xt::xaccessible< D >inline
    back() constxt::xaccessible< D >inline
    backstrides() const noexceptxt::xstrided_view_base< D >inline
    backstrides_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    base_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    bool_load_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    broadcast_shape(O &shape, bool reuse_cache=false) constxt::xstrided_view_base< D >inline
    compute_element_index(It first, It last) const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >protected
    compute_element_index(It first, It last) const -> offset_type (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    compute_index(Args... args) const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >protected
    compute_index(Args... args) const -> offset_type (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    compute_unchecked_index(Args... args) const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >protected
    compute_unchecked_index(Args... args) const -> offset_type (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    const_pointer typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    const_reference typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    contiguous_layout (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >static
    data() noexceptxt::xstrided_view_base< D >inline
    data() const noexceptxt::xstrided_view_base< D >inline
    data_offset() const noexceptxt::xstrided_view_base< D >inline
    derived_type typedef (defined in xt::xaccessible< D >)xt::xaccessible< D >
    difference_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    dimension() const noexceptxt::xconst_accessible< D >inline
    element(It first, It last) (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    element(It first, It last) const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    element(It first, It last) -> referencext::xstrided_view_base< D >inline
    element(It first, It last) const -> const_referencext::xstrided_view_base< D >inline
    expression() noexceptxt::xstrided_view_base< D >inline
    expression() const noexceptxt::xstrided_view_base< D >inline
    front()xt::xaccessible< D >inline
    front() constxt::xaccessible< D >inline
    has_linear_assign(const O &strides) const noexceptxt::xstrided_view_base< D >inline
    in_bounds(Args... args) constxt::xconst_accessible< D >inline
    inner_backstrides_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    inner_shape_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    inner_storage_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    inner_strides_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    inner_types typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    is_const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >static
    is_contiguous() const noexcept (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    layout() const noexceptxt::xstrided_view_base< D >inline
    offset_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >protected
    operator()() (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    operator()() const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    operator()(Args... args) (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    operator()(Args... args) const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    operator()(Args... args) -> referencext::xstrided_view_base< D >inline
    operator()(Args... args) const -> const_referencext::xstrided_view_base< D >inline
    operator=(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    operator=(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    operator=(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    operator=(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    operator[](const S &index) (defined in xt::xaccessible< D >)xt::xaccessible< D >
    operator[](std::initializer_list< I > index) (defined in xt::xaccessible< D >)xt::xaccessible< D >
    operator[](size_type i) (defined in xt::xaccessible< D >)xt::xaccessible< D >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< D >inline
    operator[](std::initializer_list< I > index) -> reference (defined in xt::xaccessible< D >)xt::xaccessible< D >inline
    operator[](const S &index) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
    operator[](std::initializer_list< I > index) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
    operator[](size_type i) const (defined in xt::xaccessible< D >)xt::xaccessible< D >inline
    periodic(Args... args) (defined in xt::xaccessible< D >)xt::xaccessible< D >
    periodic(Args... args) -> referencext::xaccessible< D >inline
    periodic(Args... args) const (defined in xt::xaccessible< D >)xt::xaccessible< D >
    pointer typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    provides_data_interface (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >static
    reference typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    set_offset(size_type offset) (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >protected
    shape() const noexceptxt::xstrided_view_base< D >inline
    xt::xaccessible::shape(size_type index) constxt::xconst_accessible< D >inline
    shape_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    simd_value_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< D >inline
    size_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    static_layout (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >static
    storage() noexceptxt::xstrided_view_base< D >inline
    storage() const noexceptxt::xstrided_view_base< D >inline
    storage_getter typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    storage_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    strides() const noexceptxt::xstrided_view_base< D >inline
    strides_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    unchecked(Args... args) (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    unchecked(Args... args) const (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    unchecked(Args... args) -> referencext::xstrided_view_base< D >inline
    unchecked(Args... args) const -> const_referencext::xstrided_view_base< D >inline
    undecay_expression typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    undecay_shape typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    value_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    xaccessible()=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    xaccessible(const xaccessible &)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    xaccessible(xaccessible &&)=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    xconst_accessible()=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    xconst_accessible(const xconst_accessible &)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    xconst_accessible(xconst_accessible &&)=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    xexpression_type typedef (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >
    xstrided_view_base(CTA &&e, SA &&shape, strides_type &&strides, size_type offset, layout_type layout) noexceptxt::xstrided_view_base< D >inline
    xstrided_view_base(xstrided_view_base &&rhs) (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    xstrided_view_base(const xstrided_view_base &rhs) (defined in xt::xstrided_view_base< D >)xt::xstrided_view_base< D >inline
    ~xaccessible()=default (defined in xt::xaccessible< D >)xt::xaccessible< D >protected
    ~xconst_accessible()=default (defined in xt::xconst_accessible< D >)xt::xconst_accessible< D >protected
    +
    + + + + diff --git a/classxt_1_1xstrided__view__base.html b/classxt_1_1xstrided__view__base.html new file mode 100644 index 000000000..89b7fb437 --- /dev/null +++ b/classxt_1_1xstrided__view__base.html @@ -0,0 +1,2101 @@ + + + + + + + +xtensor: xt::xstrided_view_base< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xstrided_view_base< D > Class Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xstrided_view_base< D >:
    +
    +
    + + +xt::xaccessible< D > +xt::xconst_accessible< D > +xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xdynamic_view< CT, S, L, FST > +xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > > +xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xstrided_view< CT, shape_type > +xt::xstrided_view< CT, S, L, FST > +xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > > +xt::xdynamic_view< CT, S, L, FST > +xt::xstrided_view< CT, S, L, FST > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using base_type = xaccessible<D>
     
    using inner_types = xcontainer_inner_types<D>
     
    using xexpression_type = typename inner_types::xexpression_type
     
    using undecay_expression = typename inner_types::undecay_expression
     
    using value_type = typename xexpression_type::value_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer
     
    using const_pointer = typename xexpression_type::const_pointer
     
    using size_type = typename inner_types::size_type
     
    using difference_type = typename xexpression_type::difference_type
     
    using storage_getter = typename inner_types::storage_getter
     
    using inner_storage_type = typename inner_types::inner_storage_type
     
    using storage_type = std::remove_reference_t<inner_storage_type>
     
    using shape_type = typename inner_types::shape_type
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = strides_type
     
    using inner_shape_type = shape_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using undecay_shape = typename inner_types::undecay_shape
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    using bool_load_type = typename xexpression_type::bool_load_type
     
    - Public Types inherited from xt::xaccessible< D >
    using base_type = xconst_accessible<D>
     
    using derived_type = typename base_type::derived_type
     
    using reference = typename base_type::reference
     
    using size_type = typename base_type::size_type
     
    - Public Types inherited from xt::xconst_accessible< D >
    using derived_type = D
     
    using inner_types = xcontainer_inner_types<D>
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using size_type = typename inner_types::size_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class... Args>
    reference operator() (Args... args)
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    reference unchecked (Args... args)
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    reference element (It first, It last)
     
    +template<class It>
    const_reference element (It first, It last) const
     
    Constructor
    template<class CTA, class SA>
     xstrided_view_base (CTA &&e, SA &&shape, strides_type &&strides, size_type offset, layout_type layout) noexcept
     Constructs an xstrided_view_base.
     
     xstrided_view_base (xstrided_view_base &&rhs)
     
     xstrided_view_base (const xstrided_view_base &rhs)
     
    Size and shape
    const inner_shape_type & shape () const noexcept
     Returns the shape of the xtrided_view_base.
     
    const inner_strides_type & strides () const noexcept
     Returns the strides of the xtrided_view_base.
     
    const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the xtrided_view_base.
     
    layout_type layout () const noexcept
     Returns the layout of the xtrided_view_base.
     
    bool is_contiguous () const noexcept
     
    Data
    reference operator() ()
     
    const_reference operator() () const
     
    storage_type & storage () noexcept
     Returns a reference to the buffer containing the elements of the view.
     
    const storage_type & storage () const noexcept
     Returns a constant reference to the buffer containing the elements of the view.
     
    pointer data () noexcept
     Returns a pointer to the underlying array serving as element storage.
     
    const_pointer data () const noexcept
     Returns a constant pointer to the underlying array serving as element storage.
     
    size_type data_offset () const noexcept
     Returns the offset to the first element in the view.
     
    xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    const xexpression_type & expression () const noexcept
     Returns a constant reference to the underlying expression of the view.
     
    template<class... Args>
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the view.
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the view.
     
    template<class... Args>
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the view.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the view.
     
    template<class It>
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the view.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     Returns a constant reference to the element at the specified position in the view.
     
    - Public Member Functions inherited from xt::xaccessible< D >
    +template<class... Args>
    reference at (Args... args)
     
    +template<class S>
    disable_integral_t< S, reference > operator[] (const S &index)
     
    +template<class I>
    reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    +template<class... Args>
    reference periodic (Args... args)
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    template<class... Args>
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    template<class S>
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the expression.
     
    template<class I>
    auto operator[] (std::initializer_list< I > index) -> reference
     
    template<class... Args>
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    +template<class... Args>
    const_reference at (Args... args) const
     
    +template<class S>
    disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +template<class I>
    const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +template<class... Args>
    const_reference periodic (Args... args) const
     
    - Public Member Functions inherited from xt::xconst_accessible< D >
    size_type size () const noexcept(noexcept(derived_cast().shape()))
     Returns the size of the expression.
     
    size_type dimension () const noexcept
     Returns the number of dimensions of the expression.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    +template<class... Args>
    const_reference at (Args... args) const
     
    +template<class S>
    disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +template<class I>
    const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    +template<class... Args>
    const_reference periodic (Args... args) const
     
    template<class... Args>
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    template<class... Args>
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    template<class S>
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    template<class I>
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    template<class... Args>
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    + + + + + + + + + +

    +Static Public Attributes

    static constexpr bool is_const = std::is_const<std::remove_reference_t<undecay_expression>>::value
     
    static constexpr layout_type static_layout = inner_types::layout
     
    static constexpr bool contiguous_layout
     
    static constexpr bool provides_data_interface = detail::provides_data_interface<xexpression_type, storage_type>::value
     
    + + + +

    +Protected Types

    using offset_type = typename strides_type::value_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Protected Member Functions

    +template<class... Args>
    offset_type compute_index (Args... args) const
     
    +template<class... Args>
    offset_type compute_unchecked_index (Args... args) const
     
    +template<class It>
    offset_type compute_element_index (It first, It last) const
     
    - Protected Member Functions inherited from xt::xaccessible< D >
    xaccessible (const xaccessible &)=default
     
    +xaccessibleoperator= (const xaccessible &)=default
     
    xaccessible (xaccessible &&)=default
     
    +xaccessibleoperator= (xaccessible &&)=default
     
    - Protected Member Functions inherited from xt::xconst_accessible< D >
    xconst_accessible (const xconst_accessible &)=default
     
    +xconst_accessibleoperator= (const xconst_accessible &)=default
     
    xconst_accessible (xconst_accessible &&)=default
     
    +xconst_accessibleoperator= (xconst_accessible &&)=default
     
    + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

    template<class O>
    bool broadcast_shape (O &shape, bool reuse_cache=false) const
     Broadcast the shape of the view to the specified parameter.
     
    template<class O>
    bool has_linear_assign (const O &strides) const noexcept
     Checks whether the xstrided_view_base can be linearly assigned to an expression with the specified strides.
     
    template<class... Args>
    auto compute_index (Args... args) const -> offset_type
     
    template<class... Args>
    auto compute_unchecked_index (Args... args) const -> offset_type
     
    template<class It>
    auto compute_element_index (It first, It last) const -> offset_type
     
    void set_offset (size_type offset)
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xstrided_view_base< D >
    +

    Definition at line 96 of file xstrided_view_base.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::backstrides_type = strides_type
    +
    + +

    Definition at line 121 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::base_type = xaccessible<D>
    +
    + +

    Definition at line 100 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::bool_load_type = typename xexpression_type::bool_load_type
    +
    + +

    Definition at line 130 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::const_pointer = typename xexpression_type::const_pointer
    +
    + +

    Definition at line 111 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 108 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 113 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 125 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::inner_shape_type = shape_type
    +
    + +

    Definition at line 123 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ inner_storage_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::inner_storage_type = typename inner_types::inner_storage_type
    +
    + +

    Definition at line 116 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::inner_strides_type = strides_type
    +
    + +

    Definition at line 124 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::inner_types = xcontainer_inner_types<D>
    +
    + +

    Definition at line 101 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ offset_type

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    using xt::xstrided_view_base< D >::offset_type = typename strides_type::value_type
    +
    +protected
    +
    + +

    Definition at line 195 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::pointer
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename xexpression_type::const_pointer, typename xexpression_type::pointer>
    +
    +

    Definition at line 109 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::reference = typename inner_types::reference
    +
    + +

    Definition at line 107 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::shape_type = typename inner_types::shape_type
    +
    + +

    Definition at line 119 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 129 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 112 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ storage_getter

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::storage_getter = typename inner_types::storage_getter
    +
    + +

    Definition at line 115 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::storage_type = std::remove_reference_t<inner_storage_type>
    +
    + +

    Definition at line 117 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 120 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ undecay_expression

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::undecay_expression = typename inner_types::undecay_expression
    +
    + +

    Definition at line 103 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ undecay_shape

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::undecay_shape = typename inner_types::undecay_shape
    +
    + +

    Definition at line 127 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::value_type = typename xexpression_type::value_type
    +
    + +

    Definition at line 106 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xstrided_view_base< D >::xexpression_type = typename inner_types::xexpression_type
    +
    + +

    Definition at line 102 of file xstrided_view_base.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xstrided_view_base() [1/3]

    + +
    +
    +
    +template<class D>
    +
    +template<class CTA, class SA>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xt::xstrided_view_base< D >::xstrided_view_base (CTA && e,
    SA && shape,
    strides_type && strides,
    size_type offset,
    layout_type layout )
    +
    +inlinenoexcept
    +
    + +

    Constructs an xstrided_view_base.

    +
    Parameters
    + + + + + + +
    ethe underlying xexpression for this view
    shapethe shape of the view
    stridesthe strides of the view
    offsetthe offset of the first element in the underlying container
    layoutthe layout of the view
    +
    +
    + +

    Definition at line 317 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ xstrided_view_base() [2/3]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    xt::xstrided_view_base< D >::xstrided_view_base (xstrided_view_base< D > && rhs)
    +
    +inline
    +
    + +

    Definition at line 355 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ xstrided_view_base() [3/3]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    xt::xstrided_view_base< D >::xstrided_view_base (const xstrided_view_base< D > & rhs)
    +
    +inline
    +
    + +

    Definition at line 368 of file xstrided_view_base.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ backstrides()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::backstrides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the backstrides of the xtrided_view_base.

    + +

    Definition at line 408 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class D>
    +
    +template<class O>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xstrided_view_base< D >::broadcast_shape (O & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the view to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 643 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ compute_element_index()

    + +
    +
    +
    +template<class D>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xstrided_view_base< D >::compute_element_index (It first,
    It last ) const -> offset_type +
    +
    +inline
    +
    + +

    Definition at line 681 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ compute_index()

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::compute_index (Args... args) const -> offset_type +
    +
    +inline
    +
    + +

    Definition at line 665 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ compute_unchecked_index()

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::compute_unchecked_index (Args... args) const -> offset_type +
    +
    +inline
    +
    + +

    Definition at line 673 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class D>
    +requires (provides_data_interface)
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::data () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant pointer to the underlying array serving as element storage.

    +

    The first element of the view is at data() + data_offset().

    + +

    Definition at line 596 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class D>
    +requires (provides_data_interface)
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::data ()
    +
    +inlinenoexcept
    +
    + +

    Returns a pointer to the underlying array serving as element storage.

    +

    The first element of the view is at data() + data_offset().

    + +

    Definition at line 585 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ data_offset()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::data_offset () const
    +
    +inlinenoexcept
    +
    + +

    Returns the offset to the first element in the view.

    + +

    Definition at line 606 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xstrided_view_base< D >::element (It first,
    It last ) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the the number of dimensions of the view..
    +
    +
    + +

    Definition at line 541 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xstrided_view_base< D >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the view.

    +
    Parameters
    + + + +
    firstiterator starting the sequence of indices
    lastiterator ending the sequence of indices The number of indices in the sequence should be equal to or greater than the the number of dimensions of the view..
    +
    +
    + +

    Definition at line 556 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ expression() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant reference to the underlying expression of the view.

    + +

    Definition at line 624 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ expression() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::expression ()
    +
    +inlinenoexcept
    +
    + +

    Returns a reference to the underlying expression of the view.

    + +

    Definition at line 615 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class O>
    + + + + + +
    + + + + + + + +
    bool xt::xstrided_view_base< D >::has_linear_assign (const O & str) const
    +
    +inlinenoexcept
    +
    + +

    Checks whether the xstrided_view_base can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 655 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    bool xt::xstrided_view_base< D >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 423 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Returns the layout of the xtrided_view_base.

    + +

    Definition at line 417 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ operator()() [1/4]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::operator() ()
    +
    +inline
    +
    + +

    Definition at line 435 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ operator()() [2/4]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::operator() () const
    +
    +inline
    +
    + +

    Definition at line 441 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ operator()() [3/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::operator() (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the view.
    +
    +
    + +

    Definition at line 454 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ operator()() [4/4]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the view.
    +
    +
    + +

    Definition at line 470 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ set_offset()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    void xt::xstrided_view_base< D >::set_offset (size_type offset)
    +
    +protected
    +
    + +

    Definition at line 687 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the xtrided_view_base.

    + +

    Definition at line 390 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ storage() [1/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::storage () const
    +
    +inlinenoexcept
    +
    + +

    Returns a constant reference to the buffer containing the elements of the view.

    + +

    Definition at line 575 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ storage() [2/2]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::storage ()
    +
    +inlinenoexcept
    +
    + +

    Returns a reference to the buffer containing the elements of the view.

    + +

    Definition at line 566 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ strides()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::strides () const
    +
    +inlinenoexcept
    +
    + +

    Returns the strides of the xtrided_view_base.

    + +

    Definition at line 399 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::unchecked (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the view, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 499 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class D>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xstrided_view_base< D >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the view, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.uncheked(0, 1);
    +
    + +

    Definition at line 526 of file xstrided_view_base.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    bool xt::xstrided_view_base< D >::contiguous_layout
    +
    +staticconstexpr
    +
    +Initial value:
    = static_layout != layout_type::dynamic
    +
    && xexpression_type::contiguous_layout
    + +
    +

    Definition at line 133 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ is_const

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    bool xt::xstrided_view_base< D >::is_const = std::is_const<std::remove_reference_t<undecay_expression>>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 104 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ provides_data_interface

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    bool xt::xstrided_view_base< D >::provides_data_interface = detail::provides_data_interface<xexpression_type, storage_type>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 137 of file xstrided_view_base.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + +
    layout_type xt::xstrided_view_base< D >::static_layout = inner_types::layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 132 of file xstrided_view_base.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/classxt_1_1xstrided__view__base.js b/classxt_1_1xstrided__view__base.js new file mode 100644 index 000000000..7f33a829e --- /dev/null +++ b/classxt_1_1xstrided__view__base.js @@ -0,0 +1,23 @@ +var classxt_1_1xstrided__view__base = +[ + [ "xstrided_view_base", "classxt_1_1xstrided__view__base.html#a395bfaa7afcaf17190eaccebd998e1c4", null ], + [ "backstrides", "classxt_1_1xstrided__view__base.html#a736dcfe2b1e0a157f89a7a4c6445edd9", null ], + [ "broadcast_shape", "classxt_1_1xstrided__view__base.html#a6a79ebace6f36cfb560248f093b7dfa2", null ], + [ "data", "classxt_1_1xstrided__view__base.html#a06823da680ffe172dee428c6245b249e", null ], + [ "data", "classxt_1_1xstrided__view__base.html#a6fe1b51b3991c9c94053d304feef646b", null ], + [ "data_offset", "classxt_1_1xstrided__view__base.html#ab4fb45717672e9ff1681c360d8199ed5", null ], + [ "element", "classxt_1_1xstrided__view__base.html#a76377f2b31c5086bd56c169f39ab8e6b", null ], + [ "element", "classxt_1_1xstrided__view__base.html#a0410b18c9448ceb36193b2b740d0419a", null ], + [ "expression", "classxt_1_1xstrided__view__base.html#a94e4948a88657428eb50b1a92c4c2a43", null ], + [ "expression", "classxt_1_1xstrided__view__base.html#af4ec4a5c434d543b6c664f4572c849d4", null ], + [ "has_linear_assign", "classxt_1_1xstrided__view__base.html#a5264e47f30486f83a313b654d3dd7199", null ], + [ "layout", "classxt_1_1xstrided__view__base.html#a10da93fc02c2c53dde8d9f171ce053a6", null ], + [ "operator()", "classxt_1_1xstrided__view__base.html#a567f05613c6dfb65b68289e994d09183", null ], + [ "operator()", "classxt_1_1xstrided__view__base.html#a986bbe34c4e1ffb0948b9d9a2238c7ce", null ], + [ "shape", "classxt_1_1xstrided__view__base.html#a7f03137aa8b79f042dd1eb5b769f5256", null ], + [ "storage", "classxt_1_1xstrided__view__base.html#a8b2e5b2c411cc06b834960f23dea39e7", null ], + [ "storage", "classxt_1_1xstrided__view__base.html#aeec822654cdb1a74d861e819b1c98730", null ], + [ "strides", "classxt_1_1xstrided__view__base.html#a60cc5bdc36e03dd0b339e89e16d4080c", null ], + [ "unchecked", "classxt_1_1xstrided__view__base.html#a4a944cdaddacef0710cc4e601d95a1c8", null ], + [ "unchecked", "classxt_1_1xstrided__view__base.html#a4ed93202e4e30f980c2967c00e6044c4", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xstrided__view__base.png b/classxt_1_1xstrided__view__base.png new file mode 100644 index 0000000000000000000000000000000000000000..94245aae0d5ab6b86b2e80e858ee84b0030b00fa GIT binary patch literal 14375 zcmeHu2~<<(+ODl_IZkj|2dYdhM6E4@6Z2H77~=qXXi=Hs1c;bK5+O{1DpgbjnxF)Y zkXl=*ML?NC$Ry$r8VD*vgiIhAgg}DCBtRJMw}W&#Jw12b`~T3Uv1QZWX3d(71^*uXWi~joNlbSG|5@$a{&~RE)D(F6 zVnCOWceli2^{QjOk2ZdikZs6#PDyGzvKle6?@HkDTQxZ_LG@Tg?B(m1ug5MkTQom*D`_if z*Lv*g^3BeO(@(e!b<60mrCS}$dXLCRhd#=&K3_`QM!E`JfLTf>!;-nZaA$tqmE&n@ zUPT6C8088+$#BMM5qNupuyI9G##LfwJfVVHq%@XAm$yw-_Kd$A)@qrF!uYZhcRzGS zkQ08QcGLq^hy=|Rh6kTIk55B?msH_$~8P2H|ti>vG$fEGpJ)6|k85e&f zT;PPgSmyb@z&%?O?q_V@A?tvb&qHZ%dma>HDWBKKzv;%Mfji|L4!p~(-?}w&t&5Q> z_SbizC__&933LT*LAZmNgRz+CeShFRR`6!NG|}t-M0+7>bU7D5T?0v z{URL9-hP`}P6S^TB!IrFBu@4(xqPT>d)xZ<^*h=;zS*}W7)0p&w;&|0Sj5^3VEx*; z%bRwBW!mjPhHZ?M?F-KdC(ZvJT#)k~NVw5DYDom&$F^H8;J}t{0g0J1%x#I0oE1@X zieOWw6dH8Eo8K?XE?-JNTBnUSrXHcIXsXEw+lN1a_3Is*bTW{voiPL^Ok3&Ox8$b? zS>oC4Bn-4Hgeh*z@|vdm%QtEH0mDl&c5h%_5Q__}J_K<)ANQ2Y8Xu=+i;{Z>&qT-q zjk|AjZAO3f2ugX49i4vFtu)JthImpgce`CjZLhk~f(zzhsfsn^0$VlHU^Gq_I3BW&% z(C;r0tlts5qiuc8?74H;bU6Yoan*z-qXkNrN>d^TTkpBzK)TRPDPpny7*m$ixW=W5*2ltEQ?1XM8u&r-B&GL=Vul5J;7v^~r!*1R* zFPzP`P9;232SR@r=M+>J#SZQm(V;;B2PIP+py2H`tC@zi`q-$8KcZyp-KN5Zzr0nI z<{0;)PTo;dlPhATOKQs+bkC-1o5tvu-zSR2y@@VmaGm-GD{F0JI=L<(iddv;Dji3a zPdLp6H_l}vWzK6Dr<9A%MxAs1A~Eo86v~P&R7cE<yfYZ~w@Hk)k@ zLEQC^E*0>2ylpHdlX>2h$96kGdR{W6>QVpn^-$tAy?(b)&nqKTn zLxI`{j`xvapzwj?fuH~?p(jti1XUk8{wpr&wg6Z&m9=if#5^bW<%s1?9~FCIhXza> z8uq%hb%D+IYQ-N>!p1RKf-IMn+%bWWO+^%*fF+nh-^<|JUDQRvycwU1_AAYt9^`U zmvPmhar&f66D1e)kKSrKo!lDLcHpLp9elA_=(d|VC@P{JigdF|w@K3!2YeX`*ddrlUPxn6#reA-a6FYtVJ! zKv7;@OIiDcu#zL*Q|6&+iIbS#KzJHrAd;JTVtC?TrX{$&9yx*%5<+Qe1gkIu00kb8eDjDbHpa~i(PsH zF778hb*k)9jeK9Y-8oU^4Stn=`Cez$7LmkQx^efq!?y8+p3FiUI666#rm~iFTUYI% z*lt2k9n-3w*T<}ppjsV>sY9chEcJ~r^+Stdkr$RSa5P58B9D3#DFPQ^B4+g3D#NET zJ?)iZf%^32irW}^gsWYe(Dy-6Vg^l~*eWf^R92r8Md?w|vc8Lx`((MFRrNn;ajefJ ztlV$0S$+7NT>x5$#RRCAUm_cOge#OI&k`O;2$Qro4KgRQAoXgjvasdSC605nAXb%< zURLrjZN#TEQ5)l{|M7rjNrYfGonCfDJ(5`D?Ow-Zh+PXRvf6fp!|R>3T;(pzLq|K^ z*nzI6LfyL-3#(HnVaZ`2%W8n?VD?;{Lxg1HaRGe~~AERz#dfKz=|t9q5{Vv6>CO5<1RTI04lGj@~#PAS3|Sk^k09G7ew9e&c%V z_7)6c(D%@yY7H}j$!`@Zrv z;Ev;Yj}514M-uy3y8MU^GJ}jy^}{BQwxe1aF_(>!#+6MG5U$GQk)+|hamy<5 zaW+4AVrg@H?BXf=dHc%OT|9K#x?03C(s6j>4`pb3mrG1EHEiSKG`j6a=ut-9<@zjgilpD%QkAb_e>?q$J$r({5o>th7%b5o0V1)^! z?p|rP;I@-R(-6&pAiB^1LG*J`m^!z$N-#$*Ts%r)rT&g(lY>}eU5qY?4q zs`oXuN+Q>HcnEWP2B6LmKv(KnhSvaTp5kO1#SqGFLnU$UIlJvMFsO+32=gkeuM1>X~Dy3>V;oacr?LKrIpvcYw8JTLrqu z+w|2pJ5b>)o2oRvDl9fQLLgPI-lWP3BH^JzB?L)lWm~iaF`TMDyS*|zcU=*Ts?bus z5Vq}r4hW9eycSllo$vUQz{)-84)Gf|se{t57axXB#iz>&I)tJ9p<-T7Zge*Z@lI{9cupcX#`CBxJTJip{%)>;lV znGgm|()W)FPzYE#QcdO#K##2165lllw-6aD!gxPk)Pq+4YVj*ZBI)_x)L#I(j*m|kvY0|Gk;kh*$JwU0i8NF5 z5tWa@`bI##ZR8Rn1I4`l(rdZk#AOFOrB?ect+RT*qW|C;L%w4{W&r~qgIDA1YT5^7 z%e9q$cv_71QI>z(n6Upz-o*S;_ebL_5Rv*#==2;+2wvOc@r}{akeFU9mBSv(K5%cv*oVnIY;S@Ye{d`!>k*tsWfL^3)~0V!h9MbZ{4DS5x~7j4uID z&Wcue3;WVEPLqK$g^pL7T4A_G*8|qX>lK6<*4zkK)31d^%BYqn`fm&~FK+h4l4EI? z&XwRtGl||?c|TgYYZYttC_(&PK>3ds`JWTj$|dJS+t#`m8fm#A)M!Bb_&fzl{Le7_hsg~1 z=?E}jtWA^|KlRybW~}YWuR0{)3x@92MIEXY`eWyCqYWAr9&tK0)JMDMYF0Ys~mYxOyB?SuOT1MqIH$$I<4S-vll9&wMCa&LD;EX0W@_Z&>1Hx1@n6za{t2=A0}JhQ z!0o+XuGG0yi!K1Qel1DCZK#TayxKpN>lN9eZKRtvN4Hk)QQHhnp7oz9nkr@=t(Drn zNW9B>gCz6s0HMiQOoxryl$=odn+Y`m>LPHS1Dz*qknz_ULY4^5j^ic-Qr=G$?b`h% z3$(?&>-YBv2qnud(`?N8)VXH%271LQSn?JqhZjS(n@cuV>=xOUlq2@qiIbrpU&*VB z(xPRGjljTryhn)3mvJ6JzaT)y&reu~ClhMsc5JKM>qgvDf_t2zp^2P5fO*k1GEVn- z9`_lve1t}>6Q$p$7fF&=^0{Smc4w78848iPeYmwUT%Ro3G&%1x!&4_iFX*;Dv8Ofh z-416J8PZKuWfqFI{5F+Hu{g?W0R7MMCM5n6ozj{1@sDN>w0TXnR)W5${i zyr52iMhuIglTv4F-VS}RRhh~eVY~kLbHK&7G)w3h-_CrQ3ZfWkxt#PJNml%4Ir(!V z_HRfXENHN>*ZbLpL$^iV-9-zLfm5|%l4aduZv^QeExYLVPKdggo-r`p`sxHw%eCKK z9ovXiNzaSa%d#7QE&&~!5s--mWS8VR;EPYw44QjA*m-Z~Sk*TbVUDJ^u zy%DTHX*R2K7H}Ta<5$8BHOw0(u1LX5Y&UVm#-F)DxHV38YtLj)K`J7b93VqmRm3s_ zA18dH;EJ!mOuL7AN3E1ZV{L0hEN?mv33@CSPTC_=i~F zcr_0EY3VLl-gU3mOXNfJn^p0jeA#}r)HA_{Bk?+bU#T6+GSn0bjUQn^hjo3_33OP^ zKP5mGi1D`FU&O&QQJ$R--J2*p6ywd(u-c_(fqmFnn{Hfri9Fq8<-2R*UN>3GK$BJ5 zq`5d|S(PsjjIv^*C9efkFrBAP=Lbl{PYC7;|R^_^Nk;pWZeF4GIdI_tZ$>k%Ds-9(|!xmCp{|A#h)PD z6uy{nV-Z!}!kE0{0M#+hVtQk{Kes_K&}I;y<}9L%U6*7|6mggDbkU!qfO&x$fzrvhIT*UQt#yPF0b+=DL5DH-lfG|W^l zw?#!pF=*qDFQk5e&2CGi#XtRAcvTTM5Qg5}VkS+@i!TvNQFO7EChtBwXpg^insS4# zxu{LsQ!)5i)r|-3j`c;jE4R!X@aymA+0#&T8t}K8c@smZd|VnZKQw+*jMwIeJCr<5uv&ij#eg)I5?W( zA-E;gEl3{`za;t6)W1V@{7E%rQkBv!6)>cwZa;ud9^fYvw$#UEQ6*<6f z$8_%3j%~e@Sok|&YKrKDk!dbXSVY%uXR^jC7HXf&<*=#9X0kymztb)pTT4VUDi+4s zJ*LJ?c;WWOX)en9zEZtiZpq2538hfwf!iuL;^Jd|hPATs5439pZRC}M(@u!N)(;_p zO0Z3>Xxs1uEMIcv?&w$7xZ)K<)^uU~FSexasXRa*r(DIc&iEOmI1Z1x&&U|a$fwz* z>m+omMyLT?4SFjAt)9#8d050ny=e@T)h<-$aK(%)K!c9aI*~-X&?bk$nwU00J}_kD z<83F2CQ~vGj+WG2+OI?~n_9}ADa0jFu6b%Wn$_ch<%R8)Hja^ag{ZDqA7F(zOInif z7fvw{BOiZQ8s{ioP(rE8JszPTwqBFu z?)6j3zqwE6Azyfyyvc`ijp?8pp;uPRL)#T_Lo4wjd=1a*l! ze8#WSrBh2uGN>i1ISd?*9QhTN=PB(RIFYeK2nGbb1r6Z@M@2g6KK2n-&{jYeRuq+t zuhnJ0b#zS4hXw>R?(oBBlb;!p%E#3Gx_7#K(xLA5A7v_#uv?uqMw-#oj zB!tiqT(t2ssd;4{SY!N)8iOR29uu)V+WRrgvmO;JhWY&5(R}?jgQpngl`Rn$v zYPazKB(>4LcUfQgzE8ilDt!?h#bYg|lMh9zvoJRF)Q9Ek^e@2OPs>>SYfv_``NOY4 znT!LVENuA;85i<4!^2q5{;B0aaU|y8;^DT%OR6%8Yk;36eebuZd}%_ZwBN(a0Q|`0 zZ6L0$z>j2i_)-3lFW;jF&+{EV8AxJG&k8_N0q5o&=?ytawu`(}1Vrqv^I%jr3WxOA zKeQibhIwE{Fl{G5lkq&GW$5&&9mwY=#8Q<)RT(Y7%O0-^K+L@pFIyIcsJhq|$P>{ow> zPm9fHqZO>l2Fl@&vC36RsVZcQ?0fTcf_lo<`4h6hExI=}ZnH9CN=F{st+yBmt^oGhy0*?j5I4TEPR$U1Kt{pHU zi3}Use8mPB4X61=US8r{QG@gj8kLXy0#swf5ELL5YETq0_&cDKiCLLx!&FXZFSwpt{v|JjOUh^As~jSD36O;+TmGDQyM zMnW-*az}K|gw%CPF}KX!8VuUus<6Gtr#q>w5x>G`HtlFvGRHOvI^s?d9Wr^P0#oQTVkIw7T-s4{Xm((eKMi3G>Hu%=` z7hl6hF(ylFJvOV<&iqc_SEE5B`4cYKT-P_x9?!p1mRL@#d-b?N!GRRvl&2B#_GbynUt0z2ul*&qr8twW9;xTaA{5 zTthw#Eh{r;RvAn0nw-S|S^09@tzV?&r?QTkkp~G9W{%4o6BbbRpvl`ljGU^)5u9t2 z4Y7Mqb)#i&g3!qBwUXMrJbcEEnO+V!nu@c`n_I&Sx-r@pGW0`njtKjMJ1BY`dJ$~2)nqd-rfYACw?Ef{s-9(sx2Me+U=W4x z#8}b;=Cr!&7fk!)rQ8-P_r2b&le(q2+bxVB-p30t0qBL_!gx{Chq`x>OX^F|bUXhf zEOIfOPFhl`S{o)1+Gm5UAHa98s1`YIGT6J@JuAozY6s1DQ2eF4lvrQoG4r->CC+h- zr$>K`FFMnEZ+yRuy?R;{u{}&S0&eh!u#@FA34RC6`#v@kh|L;22bqgs41cN8hgCaU zh3xWv{{sa3a|oINPz!RK*TPENM#9{H64M1+;#U7Ekd)Ruau#Iook=?Q-M9a@)Xcwg zE`knzIij}Q%7v;rm>6Sie)}0=j0U!$%+ky+gc(H6iI6F0yK=^qLmtE_CU57<-hgBZ z724o>t?h-!x4g29b-x;`s)5u@hj=Z)AFCWqN_`huqWs<}oiL@Fs_uEROu5i4f8e-m z@Iog%G+t_MC zG@kye7K2|gg_?czI@s>O!0SM>-%Jd9r5|^M_o6XruKo5{xc~hLWUu<5zimBK%dVMP zjLziAn?JW0{YmMpgnKCpO$D3%Y;80J?RiF|7u^q*=pC!DV(k{0Bz*wBab|p!!)>XG z+4}~glU;UV+Kp4uGDyjtD*%gV9~n#ST-y_W7+q#85V{UG&`|l(Pjv2~&P@kmc{Orp zZTvd8;cZ;;hpL*06u0)e%eylcP4^Xp_kXj`fwq*;EDhqO)+KfOw!XdNZMgbVTT?f8`mH)q;}bIUUM<7u0w7Z|XC zS2-h9#cQM)RQhbPyPw=?`POM_U{8sl?P6aJ~XM4`zbeX4b{~3HDQeIDa~= zKt0@0&*(kDC8*;*MA(|_&j5g-hdg^MEl03E@*vIpsWm-pz0v{Q$+V)6evP+(%?2(e zHh7n=JtS@xMYzyytfMcyT4Hpf&Eq>`v)%kMobyI5oBS{7YSX}I1R5Bv!^YhO z1EclK#q=F#K*LV3btg`peB_(Jn;2=xH=cvG4=m`~uVl@L7vZTFkut?>A$DkQ7myT! zh-h`R8}(d&19$MV%E1RH``m@vETZx9^o9WAU2f4qx0vY3`oFZss=P3&8-CM+9#>m( zRY8WO5c9bH=$?SVeIQOBLuJZx6Ex{ZHus5L)iq(HG0PGs`_mtvjs(U zwbt_o7y;_AAU$j}#dJX&9c)seL;FYmXA0{7h?HrOa?*b&fXLY1(^6fG^T>+bg(25O z907GV@Lv3Z$<_`Tz0W!iUfTXuWasr~-Kk5!g^N;V6pNxx0# zymhXt0Vufdp-0Coq4C87XLm!F6N3Fc^t4%|ED&|PuLu~WFBgKxCtfQQ=$W8@`bgKz g1v4}JDYLaHO`6a4efS}Gq;D1?AaGOpXZue6FLg2`7XSbN literal 0 HcmV?d00001 diff --git a/classxt_1_1xtensor__adaptor-members.html b/classxt_1_1xtensor__adaptor-members.html new file mode 100644 index 000000000..130182e8d --- /dev/null +++ b/classxt_1_1xtensor__adaptor-members.html @@ -0,0 +1,282 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xtensor_adaptor< EC, N, L, Tag > Member List
    +
    +
    + +

    This is the complete list of members for xt::xtensor_adaptor< EC, N, L, Tag >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    assign_temporary(temporary_type &&)xt::xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >inline
    back()xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    back()xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    backstrides() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    backstrides_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    base_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    container_closure_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    data() noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    data() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    data_offset() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    dimension() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    element(It first, It last) -> referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    element(It first, It last) const -> const_referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    element(It first, It last) -> referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    element(It first, It last) const -> const_referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    expression_tag typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    extension_base typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    fill(const T &value)xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    flat(size_type i)xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    flat(size_type i) constxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    front()xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    front()xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    has_linear_assign(const S &strides) const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    layout() const noexceptxt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator()(Args... args) -> referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    operator()(Args... args) const -> const_referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    operator()(Args... args) -> referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    operator()(Args... args) const -> const_referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator=(const xtensor_adaptor &) (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >inline
    operator=(xtensor_adaptor &&) (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >inline
    operator=(temporary_type &&) (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >inline
    operator=(const xexpression< E > &e) (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    operator=(const xexpression< E > &e) -> self_type &xt::xtensor_adaptor< EC, N, L, Tag >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >inline
    rank (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >static
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >inline
    reset_buffer(P &&pointer, S &&size) (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >inline
    reshape(S &&shape, layout_type layout=base_type::static_layout) &xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >inline
    resize(S &&shape, bool force=false)xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >inline
    resize(S &&shape, layout_type l)xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >inline
    resize(S &&shape, const strides_type &strides)xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >inline
    self_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    semantic_base typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    shape() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    shape_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    size() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    storage() noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    storage() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    storage_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    strides() const noexceptxt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    strides_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    temporary_type typedef (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    unchecked(Args... args) -> referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    unchecked(Args... args) -> referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< xtensor_adaptor< EC, N, L, Tag > >inline
    xcontainer< xtensor_adaptor< EC, N, L, Tag > > (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >friend
    xtensor_adaptor(storage_type &&storage)xt::xtensor_adaptor< EC, N, L, Tag >inline
    xtensor_adaptor(const storage_type &storage)xt::xtensor_adaptor< EC, N, L, Tag >inline
    xtensor_adaptor(D &&storage, const shape_type &shape, layout_type l=L)xt::xtensor_adaptor< EC, N, L, Tag >inline
    xtensor_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)xt::xtensor_adaptor< EC, N, L, Tag >inline
    xtensor_adaptor(const xtensor_adaptor &)=default (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    xtensor_adaptor(xtensor_adaptor &&)=default (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    ~xtensor_adaptor()=default (defined in xt::xtensor_adaptor< EC, N, L, Tag >)xt::xtensor_adaptor< EC, N, L, Tag >
    +
    + + + + diff --git a/classxt_1_1xtensor__adaptor.html b/classxt_1_1xtensor__adaptor.html new file mode 100644 index 000000000..88db2b595 --- /dev/null +++ b/classxt_1_1xtensor__adaptor.html @@ -0,0 +1,1816 @@ + + + + + + + +xtensor: xt::xtensor_adaptor< EC, N, L, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xtensor_adaptor< EC, N, L, Tag > Class Template Reference
    +
    +
    + +

    Dense multidimensional container adaptor with tensor semantics and fixed dimension. + More...

    + +

    #include <xtensor.hpp>

    +
    +Inheritance diagram for xt::xtensor_adaptor< EC, N, L, Tag >:
    +
    +
    + + +xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > > +xt::xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > > +xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > > +xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > > +xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > > +xt::xaccessible< xtensor_adaptor< EC, N, L, Tag > > +xt::xiterable< xtensor_adaptor< EC, N, L, Tag > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using container_closure_type = EC
     
    using self_type = xtensor_adaptor<EC, N, L, Tag>
     
    using base_type = xstrided_container<self_type>
     
    using semantic_base = xcontainer_semantic<self_type>
     
    using extension_base = extension::xtensor_adaptor_base_t<EC, N, L, Tag>
     
    using storage_type = typename base_type::storage_type
     
    using allocator_type = typename base_type::allocator_type
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename base_type::strides_type
     
    using backstrides_type = typename base_type::backstrides_type
     
    using temporary_type = typename semantic_base::temporary_type
     
    using expression_tag = Tag
     
    - Public Types inherited from xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >
    using base_type
     
    using storage_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using shape_type
     
    using strides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    - Public Types inherited from xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    using derived_type
     
    using inner_types
     
    using storage_type
     
    using allocator_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using simd_value_type
     
    using bool_load_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using accessible_base
     
    using data_alignment
     
    using simd_type
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using simd_return_type
     
    using container_iterator
     
    using const_container_iterator
     
    - Public Types inherited from xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >
    using derived_type
     
    using inner_types
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_traits
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using select_iterator_impl
     
    using select_iterator
     
    using select_const_iterator
     
    using select_reverse_iterator
     
    using select_const_reverse_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    xtensor_adaptor (const xtensor_adaptor &)=default
     
    xtensor_adaptor (xtensor_adaptor &&)=default
     
    +template<class E>
    xtensor_adaptoroperator= (const xexpression< E > &e)
     
    Constructors
     xtensor_adaptor (storage_type &&storage)
     Constructs an xtensor_adaptor of the given stl-like container.
     
     xtensor_adaptor (const storage_type &storage)
     Constructs an xtensor_adaptor of the given stl-like container.
     
    template<class D>
     xtensor_adaptor (D &&storage, const shape_type &shape, layout_type l=L)
     Constructs an xtensor_adaptor of the given stl-like container, with the specified shape and layout_type.
     
    template<class D>
     xtensor_adaptor (D &&storage, const shape_type &shape, const strides_type &strides)
     Constructs an xtensor_adaptor of the given stl-like container, with the specified shape and strides.
     
    xtensor_adaptoroperator= (const xtensor_adaptor &)
     
    xtensor_adaptoroperator= (xtensor_adaptor &&)
     
    xtensor_adaptoroperator= (temporary_type &&)
     
    void resize (S &&shape, bool force=false)
     Resizes the container.
     
    void resize (S &&shape, layout_type l)
     Resizes the container.
     
    void resize (S &&shape, const strides_type &strides)
     Resizes the container.
     
    auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
     Reshapes the container and keeps old elements.
     
    auto & reshape (std::initializer_list< T > shape, layout_type layout=base_type::static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
    - Public Member Functions inherited from xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +reference element (It first, It last)
     
    +const_reference element (It first, It last) const
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
     
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    void fill (const T &value)
     Fills the container with the given value.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    storage_type & storage () noexcept
     Returns a reference to the buffer containing the elements of the container.
     
    const storage_type & storage () const noexcept
     Returns a constant reference to the buffer containing the elements of the container.
     
    pointer data () noexcept
     Returns a pointer to the underlying array serving as element storage.
     
    const_pointer data () const noexcept
     Returns a constant pointer to the underlying array serving as element storage.
     
    const size_type data_offset () const noexcept
     Returns the offset to the first element in the container.
     
    size_type size () const noexcept
     Returns the number of element in the container.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the container.
     
    constexpr const inner_shape_type & shape () const noexcept
     Returns the shape of the container.
     
    constexpr const inner_strides_type & strides () const noexcept
     Returns the strides of the container.
     
    constexpr const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the container.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the container to the specified parameter.
     
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    reference data_element (size_type i)
     
    const_reference data_element (size_type i) const
     
    reference flat (size_type i)
     Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    const_reference flat (size_type i) const
     Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    void store_simd (size_type i, const simd &e)
     
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    - Public Member Functions inherited from xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >
    +select_iterator< L > begin () noexcept
     
    +select_const_iterator< L > begin () const noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +select_iterator< L > end () noexcept
     
    +select_const_iterator< L > end () const noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +select_const_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +select_const_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +select_reverse_iterator< L > rbegin () noexcept
     
    +select_const_reverse_iterator< L > rbegin () const noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +select_reverse_iterator< L > rend () noexcept
     
    +select_const_reverse_iterator< L > rend () const noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +select_const_reverse_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +select_const_reverse_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    - Public Member Functions inherited from xt::xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + + + + + + + +

    +Static Public Attributes

    static constexpr std::size_t rank = N
     
    - Static Public Attributes inherited from xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Static Public Attributes inherited from xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >
    static constexpr layout_type static_layout
     
    + + + +

    +Friends

    class xcontainer< xtensor_adaptor< EC, N, L, Tag > >
     
    + + + + + + + + +

    Extended copy semantic

    template<class P, class S>
    void reset_buffer (P &&pointer, S &&size)
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >
    xstrided_container (const xstrided_container &)=default
     
    xstrided_container (xstrided_container &&)=default
     
    +xstrided_containeroperator= (const xstrided_container &)=default
     
    +xstrided_containeroperator= (xstrided_container &&)=default
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&) noexcept
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept
     
    inner_shape_type & shape_impl () noexcept
     
    const inner_shape_type & shape_impl () const noexcept
     
    inner_strides_type & strides_impl () noexcept
     
    const inner_strides_type & strides_impl () const noexcept
     
    inner_backstrides_type & backstrides_impl () noexcept
     
    const inner_backstrides_type & backstrides_impl () const noexcept
     
    void reshape_impl (S &&shape, std::true_type, layout_type layout=base_type::static_layout)
     
    void reshape_impl (S &&shape, std::false_type, layout_type layout=base_type::static_layout)
     
    layout_typemutable_layout () noexcept
     
    - Protected Member Functions inherited from xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    xcontainer (const xcontainer &)=default
     
    xcontainer (xcontainer &&)=default
     
    +xcontaineroperator= (const xcontainer &)=default
     
    +xcontaineroperator= (xcontainer &&)=default
     
    container_iterator data_xbegin () noexcept
     
    const_container_iterator data_xbegin () const noexcept
     
    container_iterator data_xend (layout_type l, size_type offset) noexcept
     
    const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
     
    derived_typederived_cast () &noexcept
     
    const derived_typederived_cast () const &noexcept
     
    derived_type derived_cast () &&noexcept
     
    - Protected Member Functions inherited from xt::xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >
    xcontainer_semantic (const xcontainer_semantic &)=default
     
    xcontainer_semantic (xcontainer_semantic &&)=default
     
    +xcontainer_semanticoperator= (const xcontainer_semantic &)=default
     
    +xcontainer_semanticoperator= (xcontainer_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +class xt::xtensor_adaptor< EC, N, L, Tag >

    Dense multidimensional container adaptor with tensor semantics and fixed dimension.

    +

    The xtensor_adaptor class implements a dense multidimensional container adaptor with tensor semantics and fixed dimension. It is used to provide a multidimensional container semantic and a tensor semantic to stl-like containers.

    +
    Template Parameters
    + + + + + +
    ECThe closure for the container type to adapt.
    NThe dimension of the adaptor.
    LThe layout_type of the adaptor.
    TagThe expression tag.
    +
    +
    +
    See also
    xstrided_container, xcontainer
    + +

    Definition at line 209 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::allocator_type = typename base_type::allocator_type
    +
    + +

    Definition at line 222 of file xtensor.hpp.

    + +
    +
    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::backstrides_type = typename base_type::backstrides_type
    +
    + +

    Definition at line 225 of file xtensor.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::base_type = xstrided_container<self_type>
    +
    + +

    Definition at line 218 of file xtensor.hpp.

    + +
    +
    + +

    ◆ container_closure_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::container_closure_type = EC
    +
    + +

    Definition at line 215 of file xtensor.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::expression_tag = Tag
    +
    + +

    Definition at line 227 of file xtensor.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::extension_base = extension::xtensor_adaptor_base_t<EC, N, L, Tag>
    +
    + +

    Definition at line 220 of file xtensor.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::self_type = xtensor_adaptor<EC, N, L, Tag>
    +
    + +

    Definition at line 217 of file xtensor.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::semantic_base = xcontainer_semantic<self_type>
    +
    + +

    Definition at line 219 of file xtensor.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 223 of file xtensor.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 221 of file xtensor.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 224 of file xtensor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_adaptor< EC, N, L, Tag >::temporary_type = typename semantic_base::temporary_type
    +
    + +

    Definition at line 226 of file xtensor.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xtensor_adaptor() [1/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    xt::xtensor_adaptor< EC, N, L, Tag >::xtensor_adaptor (storage_type && storage)
    +
    +inline
    +
    + +

    Constructs an xtensor_adaptor of the given stl-like container.

    +
    Parameters
    + + +
    storagethe container to adapt
    +
    +
    + +

    Definition at line 612 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_adaptor() [2/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    xt::xtensor_adaptor< EC, N, L, Tag >::xtensor_adaptor (const storage_type & storage)
    +
    +inline
    +
    + +

    Constructs an xtensor_adaptor of the given stl-like container.

    +
    Parameters
    + + +
    storagethe container to adapt
    +
    +
    + +

    Definition at line 623 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_adaptor() [3/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_adaptor< EC, N, L, Tag >::xtensor_adaptor (D && storage,
    const shape_type & shape,
    layout_type l = L )
    +
    +inline
    +
    + +

    Constructs an xtensor_adaptor of the given stl-like container, with the specified shape and layout_type.

    +
    Parameters
    + + + + +
    storagethe container to adapt
    shapethe shape of the xtensor_adaptor
    lthe layout_type of the xtensor_adaptor
    +
    +
    + +

    Definition at line 638 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_adaptor() [4/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_adaptor< EC, N, L, Tag >::xtensor_adaptor (D && storage,
    const shape_type & shape,
    const strides_type & strides )
    +
    +inline
    +
    + +

    Constructs an xtensor_adaptor of the given stl-like container, with the specified shape and strides.

    +
    Parameters
    + + + + +
    storagethe container to adapt
    shapethe shape of the xtensor_adaptor
    stridesthe strides of the xtensor_adaptor
    +
    +
    + +

    Definition at line 654 of file xtensor.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=() [1/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_adaptor< EC, N, L, Tag >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 702 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [2/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_adaptor< EC, N, L, Tag >::operator= (const xtensor_adaptor< EC, N, L, Tag > & rhs)
    +
    +inline
    +
    + +

    Definition at line 668 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [3/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_adaptor< EC, N, L, Tag >::operator= (temporary_type && rhs)
    +
    +inline
    +
    + +

    Definition at line 684 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [4/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_adaptor< EC, N, L, Tag >::operator= (xtensor_adaptor< EC, N, L, Tag > && rhs)
    +
    +inline
    +
    + +

    Definition at line 676 of file xtensor.hpp.

    + +
    +
    + +

    ◆ reset_buffer()

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class P, class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xtensor_adaptor< EC, N, L, Tag >::reset_buffer (P && pointer,
    S && size )
    +
    +inline
    +
    + +

    Definition at line 723 of file xtensor.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xcontainer< xtensor_adaptor< EC, N, L, Tag > >

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    friend class xcontainer< xtensor_adaptor< EC, N, L, Tag > >
    +
    +friend
    +
    + +

    Definition at line 259 of file xtensor.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ rank

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    std::size_t xt::xtensor_adaptor< EC, N, L, Tag >::rank = N
    +
    +staticconstexpr
    +
    + +

    Definition at line 228 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xtensor__adaptor.js b/classxt_1_1xtensor__adaptor.js new file mode 100644 index 000000000..e74cc87de --- /dev/null +++ b/classxt_1_1xtensor__adaptor.js @@ -0,0 +1,8 @@ +var classxt_1_1xtensor__adaptor = +[ + [ "xtensor_adaptor", "classxt_1_1xtensor__adaptor.html#aecf238db1fe9fda0797db5c10ced651b", null ], + [ "xtensor_adaptor", "classxt_1_1xtensor__adaptor.html#ada04f10997a9bf3cb9d41ad0a57a071b", null ], + [ "xtensor_adaptor", "classxt_1_1xtensor__adaptor.html#a08d8af6b5afb2cf0fdd0fa05ac254066", null ], + [ "xtensor_adaptor", "classxt_1_1xtensor__adaptor.html#adf38d3f009485bbd13e05a33f3e126ed", null ], + [ "operator=", "classxt_1_1xtensor__adaptor.html#af034feb75cd6690b25a4c6b7b4a20bc5", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xtensor__adaptor.png b/classxt_1_1xtensor__adaptor.png new file mode 100644 index 0000000000000000000000000000000000000000..056567cfbc03f3a5e96524b664b1f8bec5371bd1 GIT binary patch literal 6927 zcmc&(2~?9wwoYQy%qRl33m}LMwzdMIBKs0-L7GKSF+`RCih#<#gAfwiZc$k>-86y% z#ug>*55xsoWJ?qzgX~0h!(tQ+d)Pxl^6C%R^JaPHymQ{1H+2rlPpWR!y?@>M?!8~# zJZWzw^Jk?$BM=A~>+da2BM|FQ;CT_V27D^Mli3fxcAT_3V=0kHz~kq!xd_T@n!&++ z!3yaOp9cm8!0)<^P7gufpTbYuJ0igU(x#8fe1||N-Ls5A^2G?m>b2%6BA zM<9_%59VAL#UJ!GvkMNP>`gLlC_CJGOHv>K7{vpH@rQQnyM|4O(nR@3xwxhbML>I);JMY zP)XIE$irmN-Eeb`s|zH{pCl0HP3DH`h3wwe^x;j|%*!Fu(a%rmn-K-wf2PTEz2lXT z>@*s?xet#cTCEru?1xqsa(>sQ^l)1=t+d2fY*i`Qm70598)Aq*IpZhHcH(=4V~c5+ zvvd(x?t8SkxjA!_xEW(m+!H2iR>I+@vz=lTjSXYYp4*9>Vf$!oRNqsdwD~bq+sy6m zze(o3l~`eRqjv4u<+;A(II|^?rfRjGRT+Kg{JZ_bYZ5jY2YhCy5a+xPpD$~0Q1>kB zkjNoc40@9+A3Sm+wRnji(s8Z%L|EI9!!q$5U)yUtN5sY$oG7n)9kXOP$_Ss~UCmVU z%$T!6{zbZ(1pg$mOe@wcs_eDDfcN{1 zexZ*2&qvHcjl46s%C6kBJScwuiWh)AfgtfdSC{F~1~okha{2}~V&JN&IXawWg==rS ze!IdD*(baAkDt%r2y>*Oj}W9yka++>y{lGJb|P^&%D4Y}-#V&x9~u#FM#{;_J-t>n zDf}#~V(0*;!(bLuwy%7TN_*v|HoCk20*{lMLVx+CZ}Toi*o~2-6&D6x3^(!h6;Y`? zCOTLfmRfC71Ma}IFKyseCD`OIjd?BhDttm#+xi6*JojpoomjgvyYzGC`wj5PT5Tq! z|HlOD8BzlrE_UUI;-FMk83h)ly=EGPm! zp1wRR4!4jFPJItf?S4@Q=pknp%u(sk$cCWdxZxMt4p^0Cf4XbOOS8|Z&SeyqfD_uX z*y4Ye+aiN6)kWzoD{%WIym%f2;XEvuAG(UOO7%uYyPcZ5!sSau`&d-L3OwjF^0pOq z^ytHjVs8M&c8IFw560+RI##ca!+q6T)|Rb4aFYbjvjCgnI@5fd`LXfgpf=@2M^8<1 zdOFbT#8Pv}jw;h!;cWQ8VjFR+V_`v+YUZB8O3-Pd*6NVrqV8SFm^0v9oL%~4XI~}4 z+C^U4Jv_-u54+>(T~k_=ubVydhS;8ws{s&UVhFR?ROwvdCYF?1Hw$d>xB{1(WXE)2 zwBVpo@D-BL$*OTbIaQrX_@vqmtR*m%=jrt zOu6#hJyjij&7@|${6WIYq7M4^Xl7IHGA+-AnBq|e)rG~>Mn4eLqz9kPoOoV`Kj0fM z9@CcOB=-M_eS?1(8(_BrRY6JQk;}`1Zd<&r33WD|4q!Hk?B#*gEvqY^sc-pwz&DFM zFx}%)5}o3p+~(t5uB=Ob8%0@Ox?CHcaL)&8en77a&?U3A05)diy!E6b|Ui@d|ph9 zWGgL8@)_Z{cBmbbp}%-)(j&anOJ~%@Pp8^M!}@Thm)ZHq+KLGGKjre*+8IxWW;>%B z%BNXen^>v}V>7Zo?a5E(z#Zpf@0VVU|Ptccz?wtAg=e1#!u z&+_HN{L*8Z3^zsH${(HE8iapsPp`YdgLfhkyPQ`X9*cIX)UO9-H`2t9@*t-I3+5xk zrv64X&$!wv>&=QvwbeZh4D$8OyyCstd3Tetir%-2oRi6d!`Ni<93x5*0DBkbp(Ja* z>q5>>tb6zHWOH5p*no}Xu40pNM0SXV@T??t(K*PDTmMq;Lz_lzKt#`#A+50;$-s%( z#o=M-_mM$R-kTX~>9GK+M2&e1-Hue3q*Hd6;CyIb9qn2wMxinM-UPSb zyF)Oqa=^E2{?ZWtLi)PkirK-?>sx*59js(XA3i2I<|wNgW*@dLdGi*BqxLEzH5Pp0 z6OS(piX>`6qwfZ2*?dGw}MmmT*!r~q2= zM5DOs{LHTgmV?z0;sERzmeJn_!sSQ$_Qmmj?oo9Rv>?(9d_W^&(Ey@eJJc3;^bk06 z=NV1UED&R3&9hVpT0gxV9(h&dunO5Fwg48|NYeD{B(5mW!rZT59K>K_Ti8;Dg*mRB zz8P6iRGbIq&|IcTLn97XZUe6YdY%@-(+X`t(gwtU;h=}vv{W^jGbt1|g>C>(QM$Lt z^wF}Eo%N30s`r<_l+zpK!3hr*FbkgRqoO`D{bvMMAxZEB-$i< z3w8{sQvUV;ne02`Bzzp-)$EGey~Y#Uy;g22{IuvPtknK;1nS;N8&%Xj{1>5-|293c zSpyzme@iuT4uy=Z19Q<*KO~Tc)4r^Kgecn=r9 z9*FT?8Bk4k-{q+-UEbZp!-G3FHy44Gdz$_pg~3Gc?yi)3>U;}>LhZDU)JFT?R{McW zw)%y$0h#&e21s6hzOe8e(`TRBe`x4{;T*Bws()cQ`;|xQ0#TLNzYw(!iOihE;ZETq z@Fb1ZXbw`Dr-aC$)!_U9x?BhnaQ}3U>uLxG!C4ceQ@!2`PH>`rAKDK=dbVhDW@LBe zYV^JZL5=V0aVdYC{{*q-pZ@wb}$9wsJyX*=q>WxTk^A z6I}^97WncN4(I4_63(i-CZb?pHI65h+xOY&4NrfMYp;=TBwvAqj_SH&nqtYE(1i<# z@hTN03yP1ms~1b-@D>S6ICGW#Y_R6iIK@ZBA*9=~{%HDIYzo0Ss;c1=yT{3d@HxFV zqAV2GE^A_qb}P7R-MVr3MBq^HwS-vReTn=8-~7k0(F^04-{~DxZh9KG`WahnlqP2+#Y|=9vka{oBL_+P4dV{;V`e$B$C;@-*YjU_D0u?E4U1& zw7om0>T|8diy4Vahz)+v-U`r{GeK1AE-ac}Nsb z)QIfwp|jIS3MdB^B<&hk>1C)+r}}`KZM9~z^UAvw${*}aO{FAa&c^DW5&xb)oJs7G zVK?fJqB`C8sOL&8>s)e1m^h&Gof;qR&fPbajXC@7uZ10FK5gZfqR zwKMI~iOLO8_OYXGuQ<=_DB4`kOvs1mHQDz0P-|F5gwdPFOZasvd(8+e?>pSC*10q7 zi-O4L(zZH9+WaB7Yvs=?))zn@XouBkP zC*Jnj=2`(=1{rD2F!kF9kP=q)w_K^8=8W}CEdCC;^gJc%O?E6)-$W$cV-PH;eIf`7 z*jcqY2u4GkBsL5br9%>)C7jQay42sTypY855@^H&&RxHF|G()F5xx}8qOIV_f|E<~ z1r{PhnfkOoe3X|?n%@IpX&WUdxKz;}Qfo%#blSHh_jigSRUf%+=owzMo- z<^iq)8fsea@Pr-aWR*``esfcwipN!l9s0)-=mdUoi~Ll!$I$#O;LCG*uYAKqjW$b{ z&~A#eJU2=6ccX=IrVC?9T%YjbQB01i9UA7$s2KA(uYQ%@^85mVNptv@l+53utwV+Rsn?;C5` zaD9`XU9QqrZt9t~+n8wAkM9prg0OeJqbBaKWM`_6rB~_=g^w){gg>TC4(p`&C{h%B z-0V&6g|yam_6P;qg8ismd^gCy7Bg1}nThLPZ@rGp2?#edFbW8n4jwR>Km6vr1ztBk zW&Mfm${y?@n3*XH!HdNqJMNY|WT+zB+n2%|E$#N0WJiwuOvTj#Rjy+UbZhxD+(&)^ z^A(|sOX;-ZjN*4`M-%1Qg1xj8<@1v5NOoS9eZPyJ$6}6raDH(sU12=mn?$X!ON@(o zd;S<@$ZeZwWPjn&nGPL-PgRI-eYh$`BQrEo^tP5j7Zu1YR?AOW3*NiPbNgdL^`E@| zm{%|p*#PR5n{_IuH`c);<+j`iq5bzJ~nMinp2H z4ct)!ML@6ZF&;@BbzrZ9m1;ko@Y;V#U};x8u=t{t#;eWN47;QVN?cYUqcEgXEPirq zm;6+OWrL3bHRjVE>f~RgZ{A?O;kRsA)7dMB8`M3C4Qi+%TCy2&Cof!aw+k06SRScWfwweWLuKJH zuOlmnALRf3T!;3W0c|U0`*imidA1x6kYjmi{M~6U4x#J|_+0M-ohMezbT7L8>_W;F z@htC#;6r_%$#@Gl`mUaUyTWeuBBwwAeG$_1NpR|ioPZFc!SPRSA5*WGswn%`CM>Y` zq-xGLeB7Mtm^J_E?R{g7XO^%Cl_{p*SsdI6QT!A2i{p`|?c;j&Yf?-9h zIGd$ul~tuIqrAs`you$pEDAK~-KPQ1t~qldE)5*gM1~?rkw~w#v;<2TZ+xCWE@=Re zmJ-FSHa*f@KBvE`>62(iz4Hl7s?Hr_o#}gi4kU4l;jd&mpT+c7soH~lewj4ka)NT! zTH=Gwimw9|jEkv=cO&Q?zZxBl&4OoioKUb-)p`hxly8PfwhyWW4@o+J-x-HU^G1xX z4i*&YrLI8X4w&bGQ_1y7fJ_nE!s9{G`S(b-GG^pB99N}D=1Mtn21eWD6^SC}Ra!_I zW&fB}TD6R5TbQo`_x8Vq${frpa0`DRn^t^h&fK<7tqT{3M8E&`(Hb~0_r$+kD;J#E z+4*i0+W%Lz9|)henKP458%b07$TU|3vLq%i3+@Eb^PfBQZ3oTar2b#bne!_U0!6^T z5VGO@dxbhdizX6@$zL9b<}kY$yq<@Jzo)jW@{|8x-vNZqh}H-~6v$M779O0zV1pX) z_a3BPfUE?(zJcPKdLqmY@qzN%K$L08nA?b9`#($*p4i` zqp$Vi?}+~Rfa)$FUYf9SO)wy9xysYQk~IV&NxI}be?!4!S8)H%L<-A`^KvhhVR%p1 ztxnLw?}~1@c)RXK$X6bIlPtxm6f*BEP-n_j`o^AK>%SNQv>zAn+f+7jhaa~(l<|4> zFspT7jU)kF0hnZqfxcp^)oXw!;iZ%+!x7#wzwF8+rKQ1O1yienc(aR#&u1wEydNh< zifquDcyZAeGJiq|d5j`H7&w%=&eS+y_L34Zbs{dF(brcVWXTNw)W7lSs$KeOo)_EM z6q@?6glxUpORTD;!-|JSnk2{2cAZOa5G!{B2jYKYWS8+CenX0L8y%t^XT~m=lF9&^ z^Be1Doq*|?r;En{3nR8ctgz$T845^RF*YtvXQH1qam7S0pqus^>lw>|^{3;7nmvoX zgD^#(@`QWekZRNrV&waL8tkIz_Nq!HuJFc+REyn)VU`}e?{g~~EWS_r7FEXOf;V$p z&uw@}3K%eljs2{8iwy792)#2#_Xdy{l>EGM2V`P{hIh>4moHaBaOW2u-hv5x&mXr! o|FidWMi9aYog78<*bugHch#O3zG2|z3W2b;w6~yt=lR2b0o^ARg#Z8m literal 0 HcmV?d00001 diff --git a/classxt_1_1xtensor__container-members.html b/classxt_1_1xtensor__container-members.html new file mode 100644 index 000000000..a721bf135 --- /dev/null +++ b/classxt_1_1xtensor__container-members.html @@ -0,0 +1,296 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xtensor_container< EC, N, L, Tag > Member List
    +
    +
    + +

    This is the complete list of members for xt::xtensor_container< EC, N, L, Tag >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    assign_temporary(temporary_type &&)xt::xcontainer_semantic< xtensor_container< EC, N, L, Tag > >inline
    back()xt::xcontainer< xtensor_container< EC, N, L, Tag > >
    back()xt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    backstrides() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >
    backstrides_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    base_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    const_pointer typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    const_reference typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    data() noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    data() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    data_offset() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    dimension() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    element(It first, It last) -> referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    element(It first, It last) const -> const_referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    element(It first, It last) -> referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    element(It first, It last) const -> const_referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    expression_tag typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    extension_base typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    fill(const T &value)xt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    flat(size_type i)xt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    flat(size_type i) constxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    from_shape(S &&s) (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >static
    from_shape(S &&s) (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >inline
    front()xt::xcontainer< xtensor_container< EC, N, L, Tag > >
    front()xt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    has_linear_assign(const S &strides) const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    inner_backstrides_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    inner_shape_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    inner_strides_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    layout() const noexceptxt::xstrided_container< xtensor_container< EC, N, L, Tag > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator()(Args... args) -> referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    operator()(Args... args) const -> const_referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    operator()(Args... args) -> referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    operator()(Args... args) const -> const_referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator=(const xtensor_container &)=default (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    operator=(xtensor_container &&)=default (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    operator=(xarray_container< EC, L, SC, Tag > &&) (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    operator=(const xexpression< E > &e) (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    operator=(xarray_container< EC, L, SC, Tag > &&rhs) (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >inline
    operator=(const xexpression< E > &e) -> self_type &xt::xtensor_container< EC, N, L, Tag >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >inline
    pointer typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    rank (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >static
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    reference typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >inline
    reshape(S &&shape, layout_type layout=base_type::static_layout) &xt::xstrided_container< xtensor_container< EC, N, L, Tag > >inline
    resize(S &&shape, bool force=false)xt::xstrided_container< xtensor_container< EC, N, L, Tag > >inline
    resize(S &&shape, layout_type l)xt::xstrided_container< xtensor_container< EC, N, L, Tag > >inline
    resize(S &&shape, const strides_type &strides)xt::xstrided_container< xtensor_container< EC, N, L, Tag > >inline
    self_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    semantic_base typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    shape() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >
    shape_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    size() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    storage() noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    storage() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    storage_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    strides() const noexceptxt::xcontainer< xtensor_container< EC, N, L, Tag > >
    strides_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    temporary_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    unchecked(Args... args) -> referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    unchecked(Args... args) -> referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< xtensor_container< EC, N, L, Tag > >inline
    value_type typedef (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    xcontainer< xtensor_container< EC, N, L, Tag > > (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >friend
    xtensor_container()xt::xtensor_container< EC, N, L, Tag >inline
    xtensor_container(nested_initializer_list_t< value_type, N > t)xt::xtensor_container< EC, N, L, Tag >inline
    xtensor_container(const shape_type &shape, layout_type l=L)xt::xtensor_container< EC, N, L, Tag >inlineexplicit
    xtensor_container(const shape_type &shape, const_reference value, layout_type l=L)xt::xtensor_container< EC, N, L, Tag >inlineexplicit
    xtensor_container(const shape_type &shape, const strides_type &strides)xt::xtensor_container< EC, N, L, Tag >inlineexplicit
    xtensor_container(const shape_type &shape, const strides_type &strides, const_reference value)xt::xtensor_container< EC, N, L, Tag >inlineexplicit
    xtensor_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)xt::xtensor_container< EC, N, L, Tag >inlineexplicit
    xtensor_container(const xtensor_container &)=default (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    xtensor_container(xtensor_container &&)=default (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    xtensor_container(xarray_container< EC, L, SC, Tag > &&) (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >inlineexplicit
    xtensor_container(const xexpression< E > &e)xt::xtensor_container< EC, N, L, Tag >inline
    ~xtensor_container()=default (defined in xt::xtensor_container< EC, N, L, Tag >)xt::xtensor_container< EC, N, L, Tag >
    +
    + + + + diff --git a/classxt_1_1xtensor__container.html b/classxt_1_1xtensor__container.html new file mode 100644 index 000000000..639eb3bd8 --- /dev/null +++ b/classxt_1_1xtensor__container.html @@ -0,0 +1,2105 @@ + + + + + + + +xtensor: xt::xtensor_container< EC, N, L, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xtensor_container< EC, N, L, Tag > Class Template Reference
    +
    +
    + +

    Dense multidimensional container with tensor semantic and fixed dimension. + More...

    + +

    #include <xtensor.hpp>

    +
    +Inheritance diagram for xt::xtensor_container< EC, N, L, Tag >:
    +
    +
    + + +xt::xstrided_container< xtensor_container< EC, N, L, Tag > > +xt::xcontainer_semantic< xtensor_container< EC, N, L, Tag > > +xt::xcontainer< xtensor_container< EC, N, L, Tag > > +xt::xsemantic_base< xtensor_container< EC, N, L, Tag > > +xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > > +xt::xaccessible< xtensor_container< EC, N, L, Tag > > +xt::xiterable< xtensor_container< EC, N, L, Tag > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xtensor_container<EC, N, L, Tag>
     
    using base_type = xstrided_container<self_type>
     
    using semantic_base = xcontainer_semantic<self_type>
     
    using extension_base = extension::xtensor_container_base_t<EC, N, L, Tag>
     
    using storage_type = typename base_type::storage_type
     
    using allocator_type = typename base_type::allocator_type
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using const_reference = typename base_type::const_reference
     
    using pointer = typename base_type::pointer
     
    using const_pointer = typename base_type::const_pointer
     
    using shape_type = typename base_type::shape_type
     
    using inner_shape_type = typename base_type::inner_shape_type
     
    using strides_type = typename base_type::strides_type
     
    using backstrides_type = typename base_type::backstrides_type
     
    using inner_backstrides_type = typename base_type::inner_backstrides_type
     
    using inner_strides_type = typename base_type::inner_strides_type
     
    using temporary_type = typename semantic_base::temporary_type
     
    using expression_tag = Tag
     
    - Public Types inherited from xt::xstrided_container< xtensor_container< EC, N, L, Tag > >
    using base_type
     
    using storage_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using shape_type
     
    using strides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    - Public Types inherited from xt::xcontainer< xtensor_container< EC, N, L, Tag > >
    using derived_type
     
    using inner_types
     
    using storage_type
     
    using allocator_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using simd_value_type
     
    using bool_load_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using accessible_base
     
    using data_alignment
     
    using simd_type
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using simd_return_type
     
    using container_iterator
     
    using const_container_iterator
     
    - Public Types inherited from xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >
    using derived_type
     
    using inner_types
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_traits
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using select_iterator_impl
     
    using select_iterator
     
    using select_const_iterator
     
    using select_reverse_iterator
     
    using select_const_reverse_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xcontainer_semantic< xtensor_container< EC, N, L, Tag > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    xtensor_container (const xtensor_container &)=default
     
    +xtensor_containeroperator= (const xtensor_container &)=default
     
    xtensor_container (xtensor_container &&)=default
     
    +xtensor_containeroperator= (xtensor_container &&)=default
     
    +template<class SC>
    xtensor_containeroperator= (xarray_container< EC, L, SC, Tag > &&)
     
    +template<class E>
    xtensor_containeroperator= (const xexpression< E > &e)
     
    Constructors
     xtensor_container ()
     Allocates an uninitialized xtensor_container that holds 0 elements.
     
     xtensor_container (nested_initializer_list_t< value_type, N > t)
     Allocates an xtensor_container with nested initializer lists.
     
     xtensor_container (const shape_type &shape, layout_type l=L)
     Allocates an uninitialized xtensor_container with the specified shape and layout_type.
     
     xtensor_container (const shape_type &shape, const_reference value, layout_type l=L)
     Allocates an xtensor_container with the specified shape and layout_type.
     
     xtensor_container (const shape_type &shape, const strides_type &strides)
     Allocates an uninitialized xtensor_container with the specified shape and strides.
     
     xtensor_container (const shape_type &shape, const strides_type &strides, const_reference value)
     Allocates an uninitialized xtensor_container with the specified shape and strides.
     
     xtensor_container (storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)
     Allocates an xtensor_container by moving specified data, shape and strides.
     
    template<class SC>
     xtensor_container (xarray_container< EC, L, SC, Tag > &&)
     
    template<class SC>
    xtensor_container< EC, N, L, Tag > & operator= (xarray_container< EC, L, SC, Tag > &&rhs)
     
    template<class S>
    xtensor_container< EC, N, L, Tag > from_shape (S &&s)
     
    void resize (S &&shape, bool force=false)
     Resizes the container.
     
    void resize (S &&shape, layout_type l)
     Resizes the container.
     
    void resize (S &&shape, const strides_type &strides)
     Resizes the container.
     
    auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
     Reshapes the container and keeps old elements.
     
    auto & reshape (std::initializer_list< T > shape, layout_type layout=base_type::static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
    - Public Member Functions inherited from xt::xcontainer< xtensor_container< EC, N, L, Tag > >
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +reference element (It first, It last)
     
    +const_reference element (It first, It last) const
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
     
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    void fill (const T &value)
     Fills the container with the given value.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    storage_type & storage () noexcept
     Returns a reference to the buffer containing the elements of the container.
     
    const storage_type & storage () const noexcept
     Returns a constant reference to the buffer containing the elements of the container.
     
    pointer data () noexcept
     Returns a pointer to the underlying array serving as element storage.
     
    const_pointer data () const noexcept
     Returns a constant pointer to the underlying array serving as element storage.
     
    const size_type data_offset () const noexcept
     Returns the offset to the first element in the container.
     
    size_type size () const noexcept
     Returns the number of element in the container.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the container.
     
    constexpr const inner_shape_type & shape () const noexcept
     Returns the shape of the container.
     
    constexpr const inner_strides_type & strides () const noexcept
     Returns the strides of the container.
     
    constexpr const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the container.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the container to the specified parameter.
     
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    reference data_element (size_type i)
     
    const_reference data_element (size_type i) const
     
    reference flat (size_type i)
     Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    const_reference flat (size_type i) const
     Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    void store_simd (size_type i, const simd &e)
     
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    - Public Member Functions inherited from xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >
    +select_iterator< L > begin () noexcept
     
    +select_const_iterator< L > begin () const noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +select_iterator< L > end () noexcept
     
    +select_const_iterator< L > end () const noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +select_const_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +select_const_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +select_reverse_iterator< L > rbegin () noexcept
     
    +select_const_reverse_iterator< L > rbegin () const noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +select_reverse_iterator< L > rend () noexcept
     
    +select_const_reverse_iterator< L > rend () const noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +select_const_reverse_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +select_const_reverse_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    - Public Member Functions inherited from xt::xcontainer_semantic< xtensor_container< EC, N, L, Tag > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + +

    +Static Public Member Functions

    +template<class S = shape_type>
    static xtensor_container from_shape (S &&s)
     
    + + + + + + + + + + + +

    +Static Public Attributes

    static constexpr std::size_t rank = N
     
    - Static Public Attributes inherited from xt::xcontainer< xtensor_container< EC, N, L, Tag > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Static Public Attributes inherited from xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >
    static constexpr layout_type static_layout
     
    + + + +

    +Friends

    class xcontainer< xtensor_container< EC, N, L, Tag > >
     
    + + + + + + + + + +

    Extended copy semantic

    template<class E>
     xtensor_container (const xexpression< E > &e)
     The extended copy constructor.
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xstrided_container< xtensor_container< EC, N, L, Tag > >
    xstrided_container (const xstrided_container &)=default
     
    xstrided_container (xstrided_container &&)=default
     
    +xstrided_containeroperator= (const xstrided_container &)=default
     
    +xstrided_containeroperator= (xstrided_container &&)=default
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&) noexcept
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept
     
    inner_shape_type & shape_impl () noexcept
     
    const inner_shape_type & shape_impl () const noexcept
     
    inner_strides_type & strides_impl () noexcept
     
    const inner_strides_type & strides_impl () const noexcept
     
    inner_backstrides_type & backstrides_impl () noexcept
     
    const inner_backstrides_type & backstrides_impl () const noexcept
     
    void reshape_impl (S &&shape, std::true_type, layout_type layout=base_type::static_layout)
     
    void reshape_impl (S &&shape, std::false_type, layout_type layout=base_type::static_layout)
     
    layout_typemutable_layout () noexcept
     
    - Protected Member Functions inherited from xt::xcontainer< xtensor_container< EC, N, L, Tag > >
    xcontainer (const xcontainer &)=default
     
    xcontainer (xcontainer &&)=default
     
    +xcontaineroperator= (const xcontainer &)=default
     
    +xcontaineroperator= (xcontainer &&)=default
     
    container_iterator data_xbegin () noexcept
     
    const_container_iterator data_xbegin () const noexcept
     
    container_iterator data_xend (layout_type l, size_type offset) noexcept
     
    const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
     
    derived_typederived_cast () &noexcept
     
    const derived_typederived_cast () const &noexcept
     
    derived_type derived_cast () &&noexcept
     
    - Protected Member Functions inherited from xt::xcontainer_semantic< xtensor_container< EC, N, L, Tag > >
    xcontainer_semantic (const xcontainer_semantic &)=default
     
    xcontainer_semantic (xcontainer_semantic &&)=default
     
    +xcontainer_semanticoperator= (const xcontainer_semantic &)=default
     
    +xcontainer_semanticoperator= (xcontainer_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +class xt::xtensor_container< EC, N, L, Tag >

    Dense multidimensional container with tensor semantic and fixed dimension.

    +

    The xtensor_container class implements a dense multidimensional container with tensor semantics and fixed dimension

    +
    Template Parameters
    + + + + + +
    ECThe type of the container holding the elements.
    NThe dimension of the container.
    LThe layout_type of the tensor.
    TagThe expression tag.
    +
    +
    +
    See also
    xtensor, xstrided_container, xcontainer
    + +

    Definition at line 83 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::allocator_type = typename base_type::allocator_type
    +
    + +

    Definition at line 94 of file xtensor.hpp.

    + +
    +
    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::backstrides_type = typename base_type::backstrides_type
    +
    + +

    Definition at line 103 of file xtensor.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::base_type = xstrided_container<self_type>
    +
    + +

    Definition at line 90 of file xtensor.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::const_pointer = typename base_type::const_pointer
    +
    + +

    Definition at line 99 of file xtensor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::const_reference = typename base_type::const_reference
    +
    + +

    Definition at line 97 of file xtensor.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::expression_tag = Tag
    +
    + +

    Definition at line 107 of file xtensor.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::extension_base = extension::xtensor_container_base_t<EC, N, L, Tag>
    +
    + +

    Definition at line 92 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::inner_backstrides_type = typename base_type::inner_backstrides_type
    +
    + +

    Definition at line 104 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::inner_shape_type = typename base_type::inner_shape_type
    +
    + +

    Definition at line 101 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::inner_strides_type = typename base_type::inner_strides_type
    +
    + +

    Definition at line 105 of file xtensor.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 98 of file xtensor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::reference = typename base_type::reference
    +
    + +

    Definition at line 96 of file xtensor.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::self_type = xtensor_container<EC, N, L, Tag>
    +
    + +

    Definition at line 89 of file xtensor.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::semantic_base = xcontainer_semantic<self_type>
    +
    + +

    Definition at line 91 of file xtensor.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 100 of file xtensor.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 93 of file xtensor.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 102 of file xtensor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::temporary_type = typename semantic_base::temporary_type
    +
    + +

    Definition at line 106 of file xtensor.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_container< EC, N, L, Tag >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 95 of file xtensor.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xtensor_container() [1/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container ()
    +
    +inline
    +
    + +

    Allocates an uninitialized xtensor_container that holds 0 elements.

    + +

    Definition at line 416 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [2/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (nested_initializer_list_t< value_type, N > t)
    +
    +inline
    +
    + +

    Allocates an xtensor_container with nested initializer lists.

    + +

    Definition at line 426 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [3/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (const shape_type & shape,
    layout_type l = L )
    +
    +inlineexplicit
    +
    + +

    Allocates an uninitialized xtensor_container with the specified shape and layout_type.

    +
    Parameters
    + + + +
    shapethe shape of the xtensor_container
    lthe layout_type of the xtensor_container
    +
    +
    + +

    Definition at line 441 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [4/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (const shape_type & shape,
    const_reference value,
    layout_type l = L )
    +
    +inlineexplicit
    +
    + +

    Allocates an xtensor_container with the specified shape and layout_type.

    +

    Elements are initialized to the specified value.

    Parameters
    + + + + +
    shapethe shape of the xtensor_container
    valuethe value of the elements
    lthe layout_type of the xtensor_container
    +
    +
    + +

    Definition at line 455 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [5/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (const shape_type & shape,
    const strides_type & strides )
    +
    +inlineexplicit
    +
    + +

    Allocates an uninitialized xtensor_container with the specified shape and strides.

    +
    Parameters
    + + + +
    shapethe shape of the xtensor_container
    stridesthe strides of the xtensor_container
    +
    +
    + +

    Definition at line 472 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [6/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (const shape_type & shape,
    const strides_type & strides,
    const_reference value )
    +
    +inlineexplicit
    +
    + +

    Allocates an uninitialized xtensor_container with the specified shape and strides.

    +

    Elements are initialized to the specified value.

    Parameters
    + + + + +
    shapethe shape of the xtensor_container
    stridesthe strides of the xtensor_container
    valuethe value of the elements
    +
    +
    + +

    Definition at line 486 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [7/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (storage_type && storage,
    inner_shape_type && shape,
    inner_strides_type && strides )
    +
    +inlineexplicit
    +
    + +

    Allocates an xtensor_container by moving specified data, shape and strides.

    +
    Parameters
    + + + + +
    storagethe data for the xtensor_container
    shapethe shape of the xtensor_container
    stridesthe strides of the xtensor_container
    +
    +
    + +

    Definition at line 505 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [8/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class SC>
    + + + + + +
    + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (xarray_container< EC, L, SC, Tag > && rhs)
    +
    +inlineexplicit
    +
    + +

    Definition at line 517 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_container() [9/9]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    xt::xtensor_container< EC, N, L, Tag >::xtensor_container (const xexpression< E > & e)
    +
    +inline
    +
    + +

    The extended copy constructor.

    + +

    Definition at line 562 of file xtensor.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ from_shape()

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    xtensor_container< EC, N, L, Tag > xt::xtensor_container< EC, N, L, Tag >::from_shape (S && s)
    +
    +inline
    +
    + +

    Definition at line 544 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_container< EC, N, L, Tag >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 580 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class SC>
    + + + + + +
    + + + + + + + +
    xtensor_container< EC, N, L, Tag > & xt::xtensor_container< EC, N, L, Tag >::operator= (xarray_container< EC, L, SC, Tag > && rhs)
    +
    +inline
    +
    + +

    Definition at line 531 of file xtensor.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xcontainer< xtensor_container< EC, N, L, Tag > >

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    friend class xcontainer< xtensor_container< EC, N, L, Tag > >
    +
    +friend
    +
    + +

    Definition at line 145 of file xtensor.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ rank

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    std::size_t xt::xtensor_container< EC, N, L, Tag >::rank = N
    +
    +staticconstexpr
    +
    + +

    Definition at line 108 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xtensor__container.js b/classxt_1_1xtensor__container.js new file mode 100644 index 000000000..49399280c --- /dev/null +++ b/classxt_1_1xtensor__container.js @@ -0,0 +1,12 @@ +var classxt_1_1xtensor__container = +[ + [ "xtensor_container", "classxt_1_1xtensor__container.html#aa3a7016797e330568a8b4e5efb6f1c4b", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#a5d15ba6d111b6a3aa8403f69d4810c21", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#aed68730c6dae5a8155b2c67140a63368", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#a56f009f40f5acb09f157345a1a174508", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#a27c45be9ad2e0da1a8ad0576c756f39e", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#ad411469d4cd09d58528f489dd380de9e", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#ad82e5654ec5c9f23d5801aa5e84d4ddc", null ], + [ "xtensor_container", "classxt_1_1xtensor__container.html#a76f048f11c76d405e2e93007e74e2c41", null ], + [ "operator=", "classxt_1_1xtensor__container.html#a1b82b2aea047cca3d11106062721c34c", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xtensor__container.png b/classxt_1_1xtensor__container.png new file mode 100644 index 0000000000000000000000000000000000000000..ba400ddca73164916f655daabdda1accb4039760 GIT binary patch literal 6866 zcmcgxcUaR|y0#*tsEkUHZi6)_MWsl9FoGZ=WTFWrbQBaq6+#to#ub!04g;vP9fBr= zuJn?i7&1yx$q0 zl-s#!)27{)7tAhi+9U=6&nx0v!RL7wn?2x5{`*VF^L#!ZJdRHGSR1Y%@?+4gPQ zwoTjQ=MyI%?30p|lq`qdPaqO4E+S1#Oqy9o1p|(Y2FyPvj1zrA8rSuqrxj~>ZDp}` zsKvYPt3A80%4PHTQ3&J8JUQ^8BdY3&$ZDr5BB%<%&qE+ki*;=ut~y=%c{q_!%Qr6~ z+8%?bsHnJwkq$~xGgg-#FZ9>M&Rn;_55*cs$M7lMA3QtXTuytD$&aUK?2cZ@VvN6D zc)v5Tj^Ra?-pcIbLLeH;^jrDthtp;nt9|S=s`oLPjo`oUA?xn`83du+~X`EWAp5;J0tK}wTc%qcfmPoh${`pb#U ze_wY95{H`EnIJmzcYARozmHga=C!=LGX#s}HY|LOkXOtwSofEWaB&-aM{=Tc?5ZbANj_pgHn{=z|g-S}q+X zDK)@Gp{gpB)hKHd!buHFVpTxbC9jt8e-bwTa-7kYqm`qFmiKNIgz0Aah#zhXns8Aj zCT=$y8;`1k*ilgt9+jk|)_lf+*MdV9zb9M`h-YDQn%^QcAo}>>Q@F^E(Ae$fz(x?? zUz?l0i_ql8hn9jSxCvjIY>JG){Ff#{-SuS-!FL>EyC9stv=;XNdD`*^8`t)sVG?-C zkySG9!8(UH_ZUfRoBqxfC51xmJ(U7(DY(Et1tBZx=t_F;oud#py{;VLbw!}6_TNvS zqx z01LhM&CX*=KAYul3B6hZ#iCHI;qt+4<(lz%oiWw)u+l3iozs{2k-xGSSYD-*=PjS= z-k{07tVKM6-BRWmzAttKT1G@Ko=2YOTt5LX?O2Vh>i#w?u2*Y4ZYs91GcThk3Ep7~ zH7cf~8xUX;Mhcj8HI8Zl*2C1enp%SCN+;cLgpuC!&qC&M>`>10e8GxJB0|7!dj(yB zv@L(s%pY0Pdkl8-Fa&?qo7D8QD#{?})|4@1WqqCsR}P@gx7?eDGtyx(VJ_bGi?#hX zmR3Js5_9D#OE;X!?1n1(``Wu}hxLck(On!}vX5hCRBc6aG!)_=aWS!`jo*?v8&94m z5>e`ipvfPU1C-6xZ1UiYLAU~Rq>tQ&cYis`cYieB9IUSB>bu$!nCvhW9cw>7`m`+x zy|6L{$End|YP2vjnVL_k=&C740`4b#DqA~jAUJCp>vvR%5~HTn=jI8EB$>yWx4wB$ zHL7u!d=rZ4$yMu83o~fy``FLkKI7*o0xq6A5@|O@y&mA)9mwU(G!lKfPeD@F`CS(* z@;U=dsy_jW{ zB@;tfQ^slxve@{^d#oM#{(C;B6QFsCImJ-i{9wiSOR8;872PWiYrF4yb?dEG-&c(l zF5i^1cVB8)_USJ<_NlNgwPku8drSxwflMCg?PJa-k*SRc&EPhCIt>QI(XC@ab(<@t=S?W*-3R56RwP zaz0TUMh(uRt3!2HszK+qx(Eck^z_7KhSCzY550Eg(nFWo!Ro4&eIy_BP-;RE-20%^ ze8ywoj>-CTLT$)94&DKoWKkS8d1Wj26eKRKWwG_hSeR~8(d%}3oX2OHmV4xjD4fT- zrmGm>q0nnxIW}0mlaoaefd;Ap&(qWg{Jdn(PFga|mxI>f9zKKB0Pj1ht@0czi>!7$ z&RwzXle1l~^afE%TKu;}B4!rjv|(j9+N6UOR_kOY>4dD$6)y zcy{?CZ^jqb3|wz~`)y_^%!pk=khOK*1!!aXHy>m+no=jxaJ58nC{CKs_Ff7tWzk++ zB9m+lG?&>k&n6oS;`<)CtX0m1S6E%KZ=$tTnX8`|%T?WDb;&$iZgQpF`?sTeHDh}? zR^TG{r{X+Dk9R23$M0wJVVxYtPz0)*=!wjZ?CF#0^z*;z(a(JQo;}zIzZ3T$6RX>4POKZZJ(+M|9s%Gl1`(sMhO*3LA54!-w z1ANAlTE^m+Uvew;8yH2zNtyLQR7`&riR;B%B&^_t#|m6bTYiU@R|JIIt%Jt2uov$E z(30ws_OlMzzx9*b2cOj zfOdWr9U%SYhW8shnidb9$op}G@%qxl(y4k2K!nhybIpt@5`kaHpo=f^D->!Jh_J90lZg z`JklaaggoEh=(@9CNp$~q%y$%SNYUOESQUE$?8EgzaA1^3AYoX>Z+8?F7YUMegdjn1v_zUTdyyRJ;5Nv_Y1bt2I%|nU zsi8WzWwt>qy7ZK>j^k(j#m=Y_;^UP&2=<+_S-&?P^qLIL6~_|-^PB;|$@LU3tdl5t zKM8-ckZ3>>B=2MUzyz)iS#u8swB66Bu@|f`I2fs*$LYhMx8wIyYgjmGW8*w{cIWP` z_$OLuY~!mZgp4#+F}y<(^p2vqA)6_ggDXX!+0GgT)xYjf~1)rz!Dg zYrYy4klu>lC^wLWoWftUcfeM>^6jeoiPbdRgf$cr8IwrVSD<9_J-7+bh(@y@?~nv zFsFx|R=#ot!G5iZ4&ic+xENMWh-Lddf;CY^2cC?UbBBKxf(Tme>EVgM<#DvZUa z1T+nE<|C6s^}5*$wlflmW|WCPR=%;xy@AzH0I5SvR|_OIIuTSnZl`N3D8=?_FpW1p zpK0HVjkQrzr__?5(%k)%<+Wh4TsIUsK{yv2q7u)gh(+`RQu>k8!f3@u{!J zKvI;#=R*U=S+$td0Osx(16b+Xwq~N7VhfRW%!X2aYNB%&DNiZmVUj-fA^Q>SCq!6% ze+&EBkkwrx@h(|bD$)8(L;*8CJSHDEv%2tGXVLEc*NeF9lNo~W>sJ6_@z&cRF|ik9 zf9ZtVkERQWj}`dKA|LS5pRrQPh{WXe+N2@48pLg^X8Cu`&v(^&JwT20p`9# z%nsCRCVvKs7gLx?02L4Z1Qpk3ZMzEru$cY1zgfcn8?gL`@ajKg_MgF^#9rJ~y+(cM zl#*DkiKxDr`>P1Y1ceSAod^i@Cs3^b@EcJ33UGj2LG?l;0`0>1D^`lwPl$ob8<7OO zE#yfM3INjJfI7h-0GR?t4d($-gE-cy2A`p67oDcZtW%l;Qj3UacFwNQFS5q-?vyLB zx5{FVK>Rt8B=UDeqHWX3*^hE>NfoT*1obpy=c&$1a!-dM(m&o~goX1e74(g(3>I0% z>kLH2Dx(9e7@ODusV7bbXI4;&xd*0Yq@tP0su0~>_gwoEP&x_?L-ynYV3ncWUV<9U zE*b_=RaSjbZb(C8_J=WF1zS*pc95H%I&#;Usc8dLaw@=B+F#iuQZ`ps`!T3{4D=+j zr77dmtyWHNFlWIfB;jd2C~(L3FcdjF1EJyTH*UaZm|568iF1A zAQ)y8!@cojpbn=L`!G)_a<=L$K6pkApZPc?_mXmnRvwh!u@cYjO%#eRf z;;vfxJ}H6jQh|F7K=nBc-uZO!o+tm0h| zmN2QgJ=b2)%CGKN_r-DRk{9m~YR^o3S_z**XDQm*xbjDjd)R7J$wu=+qFEl}TE4vl zHHirm(bky(B~_Y+0-6~jIGG=-Db9V}7xGp!{sbhta_lC*%*9jJ8z=CZdba^I_DO#H zi}@KAtvq~*uyRc=dO0GQJdNOIcNCY#U0pw9xYoKFfmFyEE;yJsWNVWu&s;n^pK)uo zRyXonIZUvcsf?-g$2ng8zOB#a?eaZV@v+boJSU`t+I7#<$d|hjK?eX+evT=N1nkf^y1_btvdqg3Gb_{ENw_w2u> zBsCT6pOVnFFcAsLuDU+jUgo!H8Zo>^rL6&X0)Tpyw>VH9K1Pu3`S`s&qyAxfNB+xF zsSmxN?7TsKON_4ME~r*F4mU{|HLWCn$L1m`>a${&8oe+Yx^E(p+!x79E{kr7G!5Cz5^y8XY%A!S!`H|MwL19RzR4N_4*0tY);vHqP%&XMsgjr*}(8_ji z!m6HWN}VOPx9QkHn=hUp3Vva!o<*N-TnZqJyLW5e8JWP1O!}|BpMM-@ZKq>g>i-L@ zrXogG3g60MSJQv%!Hu+?#UO$_7gkZN!FF+-kt>yHsayTz#HjlLiMn@Z-5G(KQ3~@r z8y2rxq`dreX87~xMy6Wda>&i>lgfkf*3u5Yy!%7?sa5tH56`X~nOiWU6WRxZCUqF6 z@rP(P3|%ox)<{(JWU3j(LvNiM(eX5QN8a_6+!x++d42Yks(!HTm{M7=l0nle9~oE-p9yDl+dMi2#IR@WIr9|K1IgG! z04F@2KxCZ%CeXixup!Nh7aS~r4wyS9x&5sZzf-_lj{4>+VRD|RZpE0HA7L8f%QOKX zC9judO$`m&uO%hW!g|q|p{2!sM>~Gd<;FZ45y^>>KDrCW3l!2mJ-RUtz!%RGmQ?p2 z0XuO01k4&Onz1TfsPep`nVlb6js__yY^P!R7v%|o1bWl?9_#?lr1@&oIg@6wXLvWY zIW3i8yOZhDN^v-(x~{ zoHkPu+t#lJ{YIE>Lm$L%-n{(A_(wsS{lexCca!GmXK5;eti61Hgsfy>-tUU*hI4T zHXxe`TgHY!`7aIjE&RfS0vk&OP=!75`ru~=$md0Z{GRxhPyZ#=w|oi=|0?2-1nMh% zQR~wPf?;2De69W_ywi|&?eA9fvWTDKV!~|e(rQdT} zTSL`y_B^sb76)dVJt^G6haA@%Nz_p85}F%s*pmZY;^WJUK_|KmqQgw6_o=9K4}@Jm|F$`a#-bhV_BZ}cjtRVmQ2inIm&+( z>DQfQ3*^*NgUR*hW3a~L-u3*bvSgRPwrYiC>i}HW)`9{BJnqFjnE|${3vx`*1~{%b zkMUvU))HREKZ@{wYd8*hTCV2jy1dSDU7+EU_GHFsOZo)9co^fU@WX<#sMc}@G4S}5-dc+VM zKh=?!o)~@>JfVc=yb>IG0BG!3;6M2_5mpFXpZ6RmbZHYOXWT$xPs_%xERkSf3($8# zRqYnGPfFmg3mg72qkIa~H@qzJt{Nf;SOog6@XY@EFpzrXPt~*BRor&)wnDlGfBGn& TE(YE{ZL&OXV^(_3?Z>|ZMd13( literal 0 HcmV?d00001 diff --git a/classxt_1_1xtensor__view-members.html b/classxt_1_1xtensor__view-members.html new file mode 100644 index 000000000..ebd37a01d --- /dev/null +++ b/classxt_1_1xtensor__view-members.html @@ -0,0 +1,282 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xtensor_view< EC, N, L, Tag > Member List
    +
    +
    + +

    This is the complete list of members for xt::xtensor_view< EC, N, L, Tag >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocator_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< xtensor_view< EC, N, L, Tag > >inline
    back()xt::xcontainer< xtensor_view< EC, N, L, Tag > >
    back()xt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    backstrides() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >
    backstrides_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    base_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    broadcast_shape(S &shape, bool reuse_cache=false) constxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cbegin() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cend() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    container_closure_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    data() noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    data() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    data_offset() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    dimension() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    element(It first, It last) -> referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    element(It first, It last) const -> const_referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    element(It first, It last) -> referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    element(It first, It last) const -> const_referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end() noexcept -> select_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end() const noexcept -> select_const_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end(const S &shape) noexcept -> broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    expression_tag typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    extension_base typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    fill(const T &value)xt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    flat(size_type i)xt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    flat(size_type i) constxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    front()xt::xcontainer< xtensor_view< EC, N, L, Tag > >
    front()xt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    has_linear_assign(const S &strides) const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    layout() const noexceptxt::xstrided_container< xtensor_view< EC, N, L, Tag > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator()(Args... args) -> referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    operator()(Args... args) const -> const_referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    operator()(Args... args) -> referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    operator()(Args... args) const -> const_referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator=(const xtensor_view &) (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >inline
    operator=(xtensor_view &&) (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >inline
    operator=(const xexpression< E > &e) (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    operator=(const E &e) (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    operator=(const xexpression< E > &e) -> self_type &xt::xtensor_view< EC, N, L, Tag >inline
    operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >inline
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend() noexcept -> select_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend() const noexcept -> select_const_reverse_iterator< L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >inline
    reshape(S &&shape, layout_type layout=base_type::static_layout) &xt::xstrided_container< xtensor_view< EC, N, L, Tag > >inline
    resize(S &&shape, bool force=false)xt::xstrided_container< xtensor_view< EC, N, L, Tag > >inline
    resize(S &&shape, layout_type l)xt::xstrided_container< xtensor_view< EC, N, L, Tag > >inline
    resize(S &&shape, const strides_type &strides)xt::xstrided_container< xtensor_view< EC, N, L, Tag > >inline
    self_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    semantic_base typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    shape() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >
    shape_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    size() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    storage() noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    storage() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    storage_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    strides() const noexceptxt::xcontainer< xtensor_view< EC, N, L, Tag > >
    strides_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    temporary_type typedef (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    unchecked(Args... args) -> referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    unchecked(Args... args) -> referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    unchecked(Args... args) const -> const_referencext::xcontainer< xtensor_view< EC, N, L, Tag > >inline
    xcontainer< xtensor_view< EC, N, L, Tag > > (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >friend
    xtensor_view(storage_type &&storage)xt::xtensor_view< EC, N, L, Tag >inline
    xtensor_view(const storage_type &storage)xt::xtensor_view< EC, N, L, Tag >inline
    xtensor_view(D &&storage, const shape_type &shape, layout_type l=L)xt::xtensor_view< EC, N, L, Tag >inline
    xtensor_view(D &&storage, const shape_type &shape, const strides_type &strides)xt::xtensor_view< EC, N, L, Tag >inline
    xtensor_view(const xtensor_view &)=default (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    xtensor_view(xtensor_view &&)=default (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    xview_semantic< xtensor_view< EC, N, L, Tag > > (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >friend
    ~xtensor_view()=default (defined in xt::xtensor_view< EC, N, L, Tag >)xt::xtensor_view< EC, N, L, Tag >
    +
    + + + + diff --git a/classxt_1_1xtensor__view.html b/classxt_1_1xtensor__view.html new file mode 100644 index 000000000..8d4c4bb77 --- /dev/null +++ b/classxt_1_1xtensor__view.html @@ -0,0 +1,1781 @@ + + + + + + + +xtensor: xt::xtensor_view< EC, N, L, Tag > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xtensor_view< EC, N, L, Tag > Class Template Reference
    +
    +
    + +

    Dense multidimensional container adaptor with view semantics and fixed dimension. + More...

    + +

    #include <xtensor.hpp>

    +
    +Inheritance diagram for xt::xtensor_view< EC, N, L, Tag >:
    +
    +
    + + +xt::xstrided_container< xtensor_view< EC, N, L, Tag > > +xt::xview_semantic< xtensor_view< EC, N, L, Tag > > +xt::xcontainer< xtensor_view< EC, N, L, Tag > > +xt::xsemantic_base< xtensor_view< EC, N, L, Tag > > +xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > > +xt::xaccessible< xtensor_view< EC, N, L, Tag > > +xt::xiterable< xtensor_view< EC, N, L, Tag > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using container_closure_type = EC
     
    using self_type = xtensor_view<EC, N, L, Tag>
     
    using base_type = xstrided_container<self_type>
     
    using semantic_base = xview_semantic<self_type>
     
    using extension_base = extension::xtensor_adaptor_base_t<EC, N, L, Tag>
     
    using storage_type = typename base_type::storage_type
     
    using allocator_type = typename base_type::allocator_type
     
    using shape_type = typename base_type::shape_type
     
    using strides_type = typename base_type::strides_type
     
    using backstrides_type = typename base_type::backstrides_type
     
    using temporary_type = typename semantic_base::temporary_type
     
    using expression_tag = Tag
     
    - Public Types inherited from xt::xstrided_container< xtensor_view< EC, N, L, Tag > >
    using base_type
     
    using storage_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using shape_type
     
    using strides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    - Public Types inherited from xt::xcontainer< xtensor_view< EC, N, L, Tag > >
    using derived_type
     
    using inner_types
     
    using storage_type
     
    using allocator_type
     
    using value_type
     
    using reference
     
    using const_reference
     
    using pointer
     
    using const_pointer
     
    using size_type
     
    using difference_type
     
    using simd_value_type
     
    using bool_load_type
     
    using shape_type
     
    using strides_type
     
    using backstrides_type
     
    using inner_shape_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using accessible_base
     
    using data_alignment
     
    using simd_type
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using simd_return_type
     
    using container_iterator
     
    using const_container_iterator
     
    - Public Types inherited from xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >
    using derived_type
     
    using inner_types
     
    using iterable_base
     
    using stepper
     
    using const_stepper
     
    using layout_iterator
     
    using const_layout_iterator
     
    using reverse_layout_iterator
     
    using const_reverse_layout_iterator
     
    using broadcast_iterator
     
    using const_broadcast_iterator
     
    using reverse_broadcast_iterator
     
    using const_reverse_broadcast_iterator
     
    using linear_traits
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator
     
    using const_reverse_linear_iterator
     
    using select_iterator_impl
     
    using select_iterator
     
    using select_const_iterator
     
    using select_reverse_iterator
     
    using select_const_reverse_iterator
     
    using iterator
     
    using const_iterator
     
    using reverse_iterator
     
    using const_reverse_iterator
     
    - Public Types inherited from xt::xview_semantic< xtensor_view< EC, N, L, Tag > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    xtensor_view (const xtensor_view &)=default
     
    xtensor_view (xtensor_view &&)=default
     
    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    Constructors
     xtensor_view (storage_type &&storage)
     Constructs an xtensor_view of the given stl-like container.
     
     xtensor_view (const storage_type &storage)
     Constructs an xtensor_view of the given stl-like container.
     
    template<class D>
     xtensor_view (D &&storage, const shape_type &shape, layout_type l=L)
     Constructs an xtensor_view of the given stl-like container, with the specified shape and layout_type.
     
    template<class D>
     xtensor_view (D &&storage, const shape_type &shape, const strides_type &strides)
     Constructs an xtensor_view of the given stl-like container, with the specified shape and strides.
     
    xtensor_viewoperator= (const xtensor_view &)
     
    xtensor_viewoperator= (xtensor_view &&)
     
    void resize (S &&shape, bool force=false)
     Resizes the container.
     
    void resize (S &&shape, layout_type l)
     Resizes the container.
     
    void resize (S &&shape, const strides_type &strides)
     Resizes the container.
     
    auto & reshape (S &&shape, layout_type layout=base_type::static_layout) &
     Reshapes the container and keeps old elements.
     
    auto & reshape (std::initializer_list< T > shape, layout_type layout=base_type::static_layout) &
     
    layout_type layout () const noexcept
     Return the layout_type of the container.
     
    bool is_contiguous () const noexcept
     
    - Public Member Functions inherited from xt::xcontainer< xtensor_view< EC, N, L, Tag > >
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    +reference operator[] (size_type i)
     
    +reference back ()
     Returns a reference to the last element of the expression.
     
    +reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    +reference operator() (Args... args)
     
    +const_reference operator() (Args... args) const
     
    +reference unchecked (Args... args)
     
    +const_reference unchecked (Args... args) const
     
    +reference element (It first, It last)
     
    +const_reference element (It first, It last) const
     
    +stepper stepper_begin (const S &shape) noexcept
     
    +const_stepper stepper_begin (const S &shape) const noexcept
     
    +stepper stepper_end (const S &shape, layout_type l) noexcept
     
    +const_stepper stepper_end (const S &shape, layout_type l) const noexcept
     
    +container_simd_return_type_t< storage_type, value_type, requested_type > load_simd (size_type i) const
     
    +reference at (Args... args)
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    +reference periodic (Args... args)
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    void fill (const T &value)
     Fills the container with the given value.
     
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the container.
     
    auto element (It first, It last) -> reference
     Returns a reference to the element at the specified position in the container.
     
    auto element (It first, It last) const -> const_reference
     Returns a reference to the element at the specified position in the container.
     
    storage_type & storage () noexcept
     Returns a reference to the buffer containing the elements of the container.
     
    const storage_type & storage () const noexcept
     Returns a constant reference to the buffer containing the elements of the container.
     
    pointer data () noexcept
     Returns a pointer to the underlying array serving as element storage.
     
    const_pointer data () const noexcept
     Returns a constant pointer to the underlying array serving as element storage.
     
    const size_type data_offset () const noexcept
     Returns the offset to the first element in the container.
     
    size_type size () const noexcept
     Returns the number of element in the container.
     
    constexpr size_type dimension () const noexcept
     Returns the number of dimensions of the container.
     
    constexpr const inner_shape_type & shape () const noexcept
     Returns the shape of the container.
     
    constexpr const inner_strides_type & strides () const noexcept
     Returns the strides of the container.
     
    constexpr const inner_backstrides_type & backstrides () const noexcept
     Returns the backstrides of the container.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    bool broadcast_shape (S &shape, bool reuse_cache=false) const
     Broadcast the shape of the container to the specified parameter.
     
    bool has_linear_assign (const S &strides) const noexcept
     Checks whether the xcontainer can be linearly assigned to an expression with the specified strides.
     
    auto stepper_begin (const S &shape) noexcept -> stepper
     
    auto stepper_begin (const S &shape) const noexcept -> const_stepper
     
    auto stepper_end (const S &shape, layout_type l) noexcept -> stepper
     
    auto stepper_end (const S &shape, layout_type l) const noexcept -> const_stepper
     
    reference data_element (size_type i)
     
    const_reference data_element (size_type i) const
     
    reference flat (size_type i)
     Returns a reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    const_reference flat (size_type i) const
     Returns a constant reference to the element at the specified position in the container storage (as if it was one dimensional).
     
    void store_simd (size_type i, const simd &e)
     
    auto load_simd (size_type i) const -> container_simd_return_type_t< storage_type, value_type, requested_type >
     
    linear_iterator linear_begin () noexcept
     
    const_linear_iterator linear_begin () const noexcept
     
    linear_iterator linear_end () noexcept
     
    const_linear_iterator linear_end () const noexcept
     
    const_linear_iterator linear_cbegin () const noexcept
     
    const_linear_iterator linear_cend () const noexcept
     
    reverse_linear_iterator linear_rbegin () noexcept
     
    const_reverse_linear_iterator linear_rbegin () const noexcept
     
    reverse_linear_iterator linear_rend () noexcept
     
    const_reverse_linear_iterator linear_rend () const noexcept
     
    const_reverse_linear_iterator linear_crbegin () const noexcept
     
    const_reverse_linear_iterator linear_crend () const noexcept
     
    - Public Member Functions inherited from xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >
    +select_iterator< L > begin () noexcept
     
    +select_const_iterator< L > begin () const noexcept
     
    +broadcast_iterator< S, L > begin (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > begin (const S &shape) const noexcept
     
    +select_iterator< L > end () noexcept
     
    +select_const_iterator< L > end () const noexcept
     
    +broadcast_iterator< S, L > end (const S &shape) noexcept
     
    +const_broadcast_iterator< S, L > end (const S &shape) const noexcept
     
    +select_const_iterator< L > cbegin () const noexcept
     
    +const_broadcast_iterator< S, L > cbegin (const S &shape) const noexcept
     
    +select_const_iterator< L > cend () const noexcept
     
    +const_broadcast_iterator< S, L > cend (const S &shape) const noexcept
     
    +select_reverse_iterator< L > rbegin () noexcept
     
    +select_const_reverse_iterator< L > rbegin () const noexcept
     
    +reverse_broadcast_iterator< S, L > rbegin (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rbegin (const S &shape) const noexcept
     
    +select_reverse_iterator< L > rend () noexcept
     
    +select_const_reverse_iterator< L > rend () const noexcept
     
    +reverse_broadcast_iterator< S, L > rend (const S &shape) noexcept
     
    +const_reverse_broadcast_iterator< S, L > rend (const S &shape) const noexcept
     
    +select_const_reverse_iterator< L > crbegin () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crbegin (const S &shape) const noexcept
     
    +select_const_reverse_iterator< L > crend () const noexcept
     
    +const_reverse_broadcast_iterator< S, L > crend (const S &shape) const noexcept
     
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin () noexcept -> select_iterator< L >
     Returns an iterator to the first element of the expression.
     
    auto begin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto end () noexcept -> select_iterator< L >
     Returns an iterator to the element following the last element of the expression.
     
    auto end () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend () const noexcept -> select_const_iterator< L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend () noexcept -> select_reverse_iterator< L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend () const noexcept -> select_const_reverse_iterator< L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto begin (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the first element of the expression.
     
    auto begin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto end (const S &shape) noexcept -> broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the expression.
     
    auto end (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto cbegin (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the expression.
     
    auto cend (const S &shape) const noexcept -> const_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto rbegin (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the first element of the reversed expression.
     
    auto rbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto rend (const S &shape) noexcept -> reverse_broadcast_iterator< S, L >
     Returns an iterator to the element following the last element of the reversed expression.
     
    auto rend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    auto crbegin (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the first element of the reversed expression.
     
    auto crend (const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >
     Returns a constant iterator to the element following the last element of the reversed expression.
     
    - Public Member Functions inherited from xt::xview_semantic< xtensor_view< EC, N, L, Tag > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + +

    +Friends

    class xcontainer< xtensor_view< EC, N, L, Tag > >
     
    class xview_semantic< xtensor_view< EC, N, L, Tag > >
     
    + + + + + + + + +

    Extended copy semantic

    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    template<class E>
    auto operator= (const E &e) -> disable_xexpression< E, self_type > &
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::xcontainer< xtensor_view< EC, N, L, Tag > >
    static constexpr layout_type static_layout
     
    static constexpr bool contiguous_layout
     
    - Static Public Attributes inherited from xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >
    static constexpr layout_type static_layout
     
    - Protected Member Functions inherited from xt::xstrided_container< xtensor_view< EC, N, L, Tag > >
    xstrided_container (const xstrided_container &)=default
     
    xstrided_container (xstrided_container &&)=default
     
    +xstrided_containeroperator= (const xstrided_container &)=default
     
    +xstrided_containeroperator= (xstrided_container &&)=default
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&) noexcept
     
     xstrided_container (inner_shape_type &&, inner_strides_type &&, inner_backstrides_type &&, layout_type &&) noexcept
     
    inner_shape_type & shape_impl () noexcept
     
    const inner_shape_type & shape_impl () const noexcept
     
    inner_strides_type & strides_impl () noexcept
     
    const inner_strides_type & strides_impl () const noexcept
     
    inner_backstrides_type & backstrides_impl () noexcept
     
    const inner_backstrides_type & backstrides_impl () const noexcept
     
    void reshape_impl (S &&shape, std::true_type, layout_type layout=base_type::static_layout)
     
    void reshape_impl (S &&shape, std::false_type, layout_type layout=base_type::static_layout)
     
    layout_typemutable_layout () noexcept
     
    - Protected Member Functions inherited from xt::xcontainer< xtensor_view< EC, N, L, Tag > >
    xcontainer (const xcontainer &)=default
     
    xcontainer (xcontainer &&)=default
     
    +xcontaineroperator= (const xcontainer &)=default
     
    +xcontaineroperator= (xcontainer &&)=default
     
    container_iterator data_xbegin () noexcept
     
    const_container_iterator data_xbegin () const noexcept
     
    container_iterator data_xend (layout_type l, size_type offset) noexcept
     
    const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
     
    derived_typederived_cast () &noexcept
     
    const derived_typederived_cast () const &noexcept
     
    derived_type derived_cast () &&noexcept
     
    - Protected Member Functions inherited from xt::xview_semantic< xtensor_view< EC, N, L, Tag > >
    xview_semantic (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +class xt::xtensor_view< EC, N, L, Tag >

    Dense multidimensional container adaptor with view semantics and fixed dimension.

    +

    The xtensor_view class implements a dense multidimensional container adaptor with viewsemantics and fixed dimension. It is used to provide a multidimensional container semantic and a view semantic to stl-like containers.

    +
    Template Parameters
    + + + + + +
    ECThe closure for the container type to adapt.
    NThe dimension of the view.
    LThe layout_type of the view.
    TagThe expression tag.
    +
    +
    +
    See also
    xstrided_container, xcontainer
    + +

    Definition at line 326 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::allocator_type = typename base_type::allocator_type
    +
    + +

    Definition at line 339 of file xtensor.hpp.

    + +
    +
    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::backstrides_type = typename base_type::backstrides_type
    +
    + +

    Definition at line 342 of file xtensor.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::base_type = xstrided_container<self_type>
    +
    + +

    Definition at line 335 of file xtensor.hpp.

    + +
    +
    + +

    ◆ container_closure_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::container_closure_type = EC
    +
    + +

    Definition at line 332 of file xtensor.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::expression_tag = Tag
    +
    + +

    Definition at line 344 of file xtensor.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::extension_base = extension::xtensor_adaptor_base_t<EC, N, L, Tag>
    +
    + +

    Definition at line 337 of file xtensor.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::self_type = xtensor_view<EC, N, L, Tag>
    +
    + +

    Definition at line 334 of file xtensor.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::semantic_base = xview_semantic<self_type>
    +
    + +

    Definition at line 336 of file xtensor.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::shape_type = typename base_type::shape_type
    +
    + +

    Definition at line 340 of file xtensor.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::storage_type = typename base_type::storage_type
    +
    + +

    Definition at line 338 of file xtensor.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::strides_type = typename base_type::strides_type
    +
    + +

    Definition at line 341 of file xtensor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xtensor_view< EC, N, L, Tag >::temporary_type = typename semantic_base::temporary_type
    +
    + +

    Definition at line 343 of file xtensor.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xtensor_view() [1/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    xt::xtensor_view< EC, N, L, Tag >::xtensor_view (storage_type && storage)
    +
    +inline
    +
    + +

    Constructs an xtensor_view of the given stl-like container.

    +
    Parameters
    + + +
    storagethe container to adapt
    +
    +
    + +

    Definition at line 741 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_view() [2/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    xt::xtensor_view< EC, N, L, Tag >::xtensor_view (const storage_type & storage)
    +
    +inline
    +
    + +

    Constructs an xtensor_view of the given stl-like container.

    +
    Parameters
    + + +
    storagethe container to adapt
    +
    +
    + +

    Definition at line 752 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_view() [3/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_view< EC, N, L, Tag >::xtensor_view (D && storage,
    const shape_type & shape,
    layout_type l = L )
    +
    +inline
    +
    + +

    Constructs an xtensor_view of the given stl-like container, with the specified shape and layout_type.

    +
    Parameters
    + + + + +
    storagethe container to adapt
    shapethe shape of the xtensor_view
    lthe layout_type of the xtensor_view
    +
    +
    + +

    Definition at line 767 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xtensor_view() [4/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xtensor_view< EC, N, L, Tag >::xtensor_view (D && storage,
    const shape_type & shape,
    const strides_type & strides )
    +
    +inline
    +
    + +

    Constructs an xtensor_view of the given stl-like container, with the specified shape and strides.

    +
    Parameters
    + + + + +
    storagethe container to adapt
    shapethe shape of the xtensor_view
    stridesthe strides of the xtensor_view
    +
    +
    + +

    Definition at line 783 of file xtensor.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=() [1/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_view< EC, N, L, Tag >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
    +
    +inline
    +
    + +

    Definition at line 826 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [2/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_view< EC, N, L, Tag >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 817 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [3/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_view< EC, N, L, Tag >::operator= (const xtensor_view< EC, N, L, Tag > & rhs)
    +
    +inline
    +
    + +

    Definition at line 793 of file xtensor.hpp.

    + +
    +
    + +

    ◆ operator=() [4/4]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + + + + +
    auto xt::xtensor_view< EC, N, L, Tag >::operator= (xtensor_view< EC, N, L, Tag > && rhs)
    +
    +inline
    +
    + +

    Definition at line 801 of file xtensor.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xcontainer< xtensor_view< EC, N, L, Tag > >

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    friend class xcontainer< xtensor_view< EC, N, L, Tag > >
    +
    +friend
    +
    + +

    Definition at line 376 of file xtensor.hpp.

    + +
    +
    + +

    ◆ xview_semantic< xtensor_view< EC, N, L, Tag > >

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    friend class xview_semantic< xtensor_view< EC, N, L, Tag > >
    +
    +friend
    +
    + +

    Definition at line 376 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xtensor__view.js b/classxt_1_1xtensor__view.js new file mode 100644 index 000000000..b8262b032 --- /dev/null +++ b/classxt_1_1xtensor__view.js @@ -0,0 +1,8 @@ +var classxt_1_1xtensor__view = +[ + [ "xtensor_view", "classxt_1_1xtensor__view.html#a3245a15af4f5a46b7315d4f14a1657d8", null ], + [ "xtensor_view", "classxt_1_1xtensor__view.html#ad26a102ac5d777f6d1b3dfad5a0ef1fa", null ], + [ "xtensor_view", "classxt_1_1xtensor__view.html#a70a1388809ad0d8d2869c56f2957fb73", null ], + [ "xtensor_view", "classxt_1_1xtensor__view.html#afd854308ee21d8738686c64a14363481", null ], + [ "operator=", "classxt_1_1xtensor__view.html#a595e97c93a52f5f196d00396435ec76b", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xtensor__view.png b/classxt_1_1xtensor__view.png new file mode 100644 index 0000000000000000000000000000000000000000..80e284659e47b183338c7df14d81eee3cb0b2b96 GIT binary patch literal 6740 zcmd5>cUV)|wpYXv#t|4CK`Anf3Zn>EkRnaRM$HwCC>Ww6WoQCJ4TNHYi3I9vmD5_m4DRd=8#T2in`6UkAR6F9Qku$93y=FfC6WzYw~9vY+F~vXa~Q z_fxekbb&edT*>ggb31NrDymjG%jlPW;yLTk8H5T%b@nStf~)UuS)_X;Qn(e?;@Gh& zvOE)s3`yn3L`O$E?V)CorgXSl)~{b*WQBD=_M=$J5)u+OQux`V(y|%@xc9g_H{unk zl|AXFf9P@1%BO{JByzLzW*N1pQHRF6>?ez~?Hw19%hqweQc_aI?dEY%){`(CaIjS4 zT6z5rq7Ac)3i%xoKju47cQ9#^SONazaBn5=K4V(I9h(;@6FpLoXgS$xpjXuNl@-bn zW|f%k5>gCp@n`My(R@lRZ?W%LGML`?t5aQa!*)I~3(v?4`fE=uel(EaQ}D=S!24S! zF-MKY3+;4bhX+1wyz%VyEb|G8q`fw?5Vl~u^D~>rvE#dsISgcs4!U$KdX#iqVR5o` zigPO=d(z$64y^Dnu4s4FR;HYsoL^QHm~Ed4)yU;Dzu997)nTV0>;9;g*UPEBg`>H2 zw&Knp6V+(7=s0L>UKqa)vAV)kWoGKf4ArEs&eR*aiprVZ`)Z;>{P`+Qy>*S3@we1G1H8zJ4fm{u2ebj3A|C^Eqq zu*19NUw-Krxt&SuQav>ttA2=yjuMvDOqk5aknNx?hg+1d#6w*C?EZ*wj&RC5o}zW>Sl9FKbK~g>4LbC;$L_E9=-+* ztl?!jR^`i^`ArB1X*7B@K-X9HJB4Xhs>4Pht46>MHuYKUD(?UNVC?_%Z-c&LrP=Y| zw+k9nq0;PLh96Bfwpv{#wt9&A{Z#`L5_tjH&oBfh^C@YZP{-|e^lEkV;yvKUMC`F4 z!N(PaEFji|c#$Xfa<>Sq9szR{SXNI&9Ms|1d!D7dkaFNPe0)QY?F4xyxuB3(V=$q0 z%^uzbh(t2oLv`}}j#Dw#5B75tSY_Gk8(p;?omT4KmbC{)hK;rN%ej?Xuy z*-(Y%-un9u(R3QAwS9lUPuj;nO5UC<_GeKr?E)tn_ktO)< zvKm6|^af%l5d&?YtqT`~V2|Ym{mV_&MsAjiD~U}-_#20t*$kw!4$pf> zl~=1tW`s617MJtwD7=DtHZsU89GCILbLJ9#yRROTFF)bci*gJd`K5zyDoS}ozafd|A8s6uVjLdhn9I&rm3L0w52R(aRhf;F* zb7PKJ#Ayn#Zbay1++yHlnZ|v`x2O=IEPw6hr#wh=7ApSoNx-dGLMG75mTD7LM7zXW z>WQTc4;U3H)Q8%vA7)xLQcV)_T{OY@!HX+2mnNskBXO^nG5XR;!6}r96{? zSiBsqNxg>V#X}yQs%o?avnj*3O8_Uso$cKYVT#{eZYZyC-p>!U3057sx{8yQX=C%= zqfM3fAWJhsCOu?c?>g7ibT*Mpax6%I&Yy6W@KN%~Z*oe6xXKPQ!Q8C}dd36&2nXp^ zt-;kuvUAPP%h-3c>v^1!yc+hKja{t6no}u}+Zy=<%|UeOT13d_&pPDuceY$Yw48VL zspB0m%EfN(6Sr=yutGB z8~J9ZntON9U+eAI?hYBznH%QyJRV`X-Se7FGGZ%q>q8u=O;tnQY5|%zO^mo<#WKG1 zU3`9G20F3Ga5*gDjNSQ%l?O&~Ip6R*dZy1}tEp544J5L&ugeXI#1#sq;$282#~>oi z7(`_vaV)^7wSX#m<3lcBx-DW9?lT>|vgDc5S$zr`koJNHUNve3dOU4F7@?`>FLFf? zcUj=;jcg}DG~QTsVaI8lZyj%ZC%IrK*YsIIM|Not#*1u=Jy^kv-3oizuEE27B9YLX zMm15C5+Fpf{^6(ya~Kzg9u|PH^$Md7%QJH*cPx?Z{V+>fn8UHk3Ob$^bm;E^K`)(5 zB9&PKfCCr|02*+sYN|Z=Re)G!lX}j>rVIZLVz&pO6j7Z)ycFYsAXE|Y99B&x)F4E9tGo_#m~ zp4$HT>Dcoe^})-qlltdxuOW272p;zXo=>7{${rf>~ zTe4h^`U{Em>v5@sJJDPAZj+J3#M!NbBqun(9|AtTswW?9?@tUaxGwPfl(+ zbj(t!>sR}m(a|((#EGhy2VYA{nmC8aOXxqp0EoeV$fe1%FWiKm$yv+Rx1yt40+Gmb z$RGsbTM#mE1CW}o2ZT4P$rj{opR-tts+V&vYeDmr&l4ZNMt5|D|h)eexcAM zcigGh1U<5ws(zIb!3Km%YbD6hdBIqp^_-@kJ}m?CXEp%T!eOd7_tG5f;7LRnQE|0` z1q1RFql!B=eU7b0Y1u%`y~cW5bEYh*s93M@r&ia_SxiiBioT;)&fI@Doj{j&*sOiL5+dOUR}lU9lk z?q2kJ$jVrE244BTPg<`#fF=8*&Pn1+f*i}@@3HYW?%hzgi@5ih&=8kt*2Md* zl;k<&Tf=**ukpfPCnmr(VQOm3`Y5EoKVx!6ao_5atAIcjU2ip?FwH@h|-Owy$>D%RA96 ze}an2<46C)`0>90N&i#vlCgHi{5y70P)~ zU#yiXPF~uMUX!5KfKjmkE>Kp1PF#A3t;le$6mR5e-6FQ&taVUdOQB+m(p9$rNddzn z5Drmgk;s72cZ}IU`uM$qA_I-c@PSmyAR7{TmiU?I^^OLtrPQn8S=|Y2lyRk_or)}3r(*HU6jaL_9|Fh)p!3F!yCC9q1ge67 zwlL)i47*)80ta(Rl=B6^QcSZ?PN@Jk65QS_9cqn5INQ7rGir16+A3l-WNJ}yu1f$> z**rGxT{W!|cazQVcvl>%dt2@BX)nYoy3U+QJutv(vxq;Hiqh>gycFE&$ZU2;bDG<6 zPRRM!nmB0wx9$~tH{>C2z1QjIQcV5h`sA6u?j|%QcjU~BDt&#Z$s<|W`xu{QkBJDs z^1;CDM#~nvtuL)SijC=K0 z7VYao0wf7Z{VQoZnk-|!ncP^=p`JlPtr$mQ0u!n$Bu;^&D+sc0%pq3ghW_z z85IOai|+CXfy2epF~5jTV9^=~2Q_py>bY?>d z(am=-9V#DmlNRyGPA1N?ANTxXjaA#=_g9v>9EG@KLhbBqVhbkce|qPMMd*wL`gLE^ z{;l)bVrVIuPjD85Y!KG7!aH0ocyH=>yI&iy!YA8vu3q>!>#SCo>0D#wD?=mZ*1Gn$ z;TgEO5ju8(@2s1~K{t30v9!=Qh^TYli6xlPlV+&XV}>vdKIBEPacuuO9lJx)yvBsF zTgq&~5@hd1_6f`8o3#(>T_%!)%+iCq-%4leu{?3kM?F8@OAW|gm?<~VeSA1FppdiM z`4idHH>-I-C3yLSyBP*cNo^vc8}#O6k!)H!MHpv2T*o&X>7z09=o-?d)+NnH;`vm` zPyFWAJG_tOg)N4+b;pjb>`4>ZH=PeXOpQfVstmL!F^L1k-z}fHoRlTv4-8$x5uaHn z6278gL_-lhF3G1dZFH`c*1lfoRM_(PaJiB1gQB9C&3JGBdokP(9u0E_V?t>+wIb5^ z`KaAg_dWTGFPcchR}@Eo*wO!)@zrW*IbC{uV#f5IxxKf1c6EH~G>tubgqSEJ5w}>&GUV}kX#3}4Rr1V<&?QtwQ@k3R#aFGKZKQp z(OhBI?0t@b226e|Xy~@g?|hK$vVEcN)rvj|{9pk}Ggv!WWF04*;+yr?b~ri}84Ybd ze8UC;IZljL5iI=8Usp34AI~*r12!L7K@l3h?dY)q{r8bb9dJz`rgy7MKO0t9gWzl^ zCUjsLKxGkIz|suppuc-nbP-!P!c_w3uw_lL`4=wdqLQGsET{Dc2UV)&4fz??fWN+N zk`qJQBqXw}Usn+To4$(LCkb=ltB4Y|T+aCXkv$UYGp+vRGx9O}ALORf9(+BqH$+9E zZVV1q{z*uH|=X0|^zHsc-#q>P9K{Yly=(U`fcbkqRSyYu?kb*h-zZh6&n*>bM zbBKNZQkPP{z6q21uJcodl5ec<9)sEXKacs3!%)D*U0PaF`qEf(5^H=Rdu+t=VCR}V zNLf{|qtUuzNqBvwvsk&7h^!C`o07sXvEV4hpBIaba?_kWRIzmUZ#v-L21VGKI0q|_ zU&T@(!Dj)r5@>3$I=+wF&x?rqL*0Y~D_`Wznh+*$85ECT*ujf&5aG zTp95+abqm5ayDz^J@@ZI`5Jt>Fr!#`%!BVW$I8EDh7_j*2Q7f} z!`?zZE^Eu+uEz#c5tv5w^kJ@Gcot7&UmhmlI-X+81diCu7Sp2`FbCDOUc3)v z3nn@oYofXoDKy+TzuS@KYsV5Cg4AF^DYbv<0ee-YZAY=jcS)YXm<$h3cznlX{QUUS zvfqJ$xn;;ouceMs!#jY9%muR*U08ixP~e4?y%}E5O5sO_SHP&do3l6{rl(fabq@&R zeTTou>ESiJJ^t>o#QW+xw98Z_v8FPI_Y243=!XR4F#%OXT$6^4@3ik#(p+5fH%x3) zZySY$a4vrIM|91?o;czL<~`_IXW5;Q)zL#}K%rRhcIee@d_Em5J6JmHV=A0Po0og%)?oKgg5jNi$N z5N$QLgAoDVW?^vUk5mB_Qe(w16Tm)D*0xEW2^{|MG6h&bzrRfZ`^WtKb;=Zon6>vQ m{}3_lUyie)ZW_+Kj62tg7-h`EKk{;%sz4T)_(zM64GM; literal 0 HcmV?d00001 diff --git a/classxt_1_1xvectorizer-members.html b/classxt_1_1xvectorizer-members.html new file mode 100644 index 000000000..ad512b6c8 --- /dev/null +++ b/classxt_1_1xvectorizer-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xvectorizer< F, R > Member List
    +
    +
    + +

    This is the complete list of members for xt::xvectorizer< F, R >, including all inherited members.

    + + + + + +
    operator()(E &&... e) const (defined in xt::xvectorizer< F, R >)xt::xvectorizer< F, R >
    operator()(E &&... e) const -> xfunction_type< E... > (defined in xt::xvectorizer< F, R >)xt::xvectorizer< F, R >inline
    xfunction_type typedef (defined in xt::xvectorizer< F, R >)xt::xvectorizer< F, R >
    xvectorizer(Func &&f) (defined in xt::xvectorizer< F, R >)xt::xvectorizer< F, R >inline
    +
    + + + + diff --git a/classxt_1_1xvectorizer.html b/classxt_1_1xvectorizer.html new file mode 100644 index 000000000..80bbb7f5d --- /dev/null +++ b/classxt_1_1xvectorizer.html @@ -0,0 +1,235 @@ + + + + + + + +xtensor: xt::xvectorizer< F, R > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xvectorizer< F, R > Class Template Reference
    +
    +
    + + + + + +

    +Public Types

    template<class... E>
    using xfunction_type = xfunction<F, xclosure_t<E>...>
     
    + + + + + + + + + + +

    +Public Member Functions

    template<class Func, class = std::enable_if_t<!std::is_same<std::decay_t<Func>, xvectorizer>::value>>
     xvectorizer (Func &&f)
     
    +template<class... E>
    xfunction_type< E... > operator() (E &&... e) const
     
    template<class... E>
    auto operator() (E &&... e) const -> xfunction_type< E... >
     
    +

    Detailed Description

    +
    template<class F, class R>
    +class xt::xvectorizer< F, R >
    +

    Definition at line 27 of file xvectorize.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ xfunction_type

    + +
    +
    +
    +template<class F, class R>
    +
    +template<class... E>
    + + + + +
    using xt::xvectorizer< F, R >::xfunction_type = xfunction<F, xclosure_t<E>...>
    +
    + +

    Definition at line 32 of file xvectorize.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xvectorizer()

    + +
    +
    +
    +template<class F, class R>
    +
    +template<class Func, class>
    + + + + + +
    + + + + + + + +
    xt::xvectorizer< F, R >::xvectorizer (Func && f)
    +
    +inline
    +
    + +

    Definition at line 72 of file xvectorize.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class F, class R>
    +
    +template<class... E>
    + + + + + +
    + + + + + + + +
    auto xt::xvectorizer< F, R >::operator() (E &&... e) const -> xfunction_type<E...> +
    +
    +inline
    +
    + +

    Definition at line 79 of file xvectorize.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xvectorize.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xview-members.html b/classxt_1_1xview-members.html new file mode 100644 index 000000000..ed3e04e19 --- /dev/null +++ b/classxt_1_1xview-members.html @@ -0,0 +1,345 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xview< CT, S > Member List
    +
    +
    + +

    This is the complete list of members for xt::xview< CT, S >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    access(Arg arg, Args... args) -> reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    access(Arg arg, Args... args) const -> const_reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    access_impl(std::index_sequence< I... >, Args... args) -> reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    access_impl(std::index_sequence< I... >, Args... args) const -> const_reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    accessible_base typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< xview< CT, S... > >inline
    assign_to(xexpression< E > &e, bool force_resize) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    at(Args... args) -> referencext::xaccessible< xview< CT, S... > >inline
    at(Args... args) -> referencext::xaccessible< xview< CT, S... > >inline
    back() constxt::xaccessible< xview< CT, S... > >
    back()xt::xaccessible< xview< CT, S... > >inline
    back() constxt::xaccessible< xview< CT, S... > >inline
    backstrides() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    backstrides() const -> const inner_strides_type &requires(has_data_interface_concept< T >and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    backstrides_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    bool_load_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    broadcast_shape(ST &shape, bool reuse_cache=false) constxt::xview< CT, S >inline
    build_view(E &&e) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    build_view(E &&e) const -> rebind_t< E > (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    build_view_impl(E &&e, std::index_sequence< I... >) const -> rebind_t< E > (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    const_container_iterator typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    const_linear_iterator typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    const_pointer typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    const_reference typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    const_reverse_linear_iterator typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    const_stepper typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    container_iterator typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    contiguous_layout (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    data() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    data() (defined in xt::xview< CT, S >)xt::xview< CT, S >
    data() const -> const_pointer requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)xt::xview< CT, S >inline
    data() -> pointer requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_element(size_type i) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    data_element(size_type i) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    data_element(size_type i) -> reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_element(size_type i) const -> const_reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_offset() const noexceptxt::xview< CT, S >inline
    data_xbegin() noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_xbegin() const noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_xbegin_impl(It begin) const noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_xend(layout_type l, size_type offset) noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_xend(layout_type l, size_type offset) const noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    data_xend_impl(It begin, layout_type l, size_type offset) const noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    difference_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    dimension() const noexceptxt::xconst_accessible< xview< CT, S... > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    element(It first, It last) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    element(It first, It last) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    element(It first, It last) -> reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    element(It first, It last) const -> const_reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    expression() noexceptxt::xview< CT, S >inline
    expression() const noexceptxt::xview< CT, S >inline
    expression_tag typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    extension_base typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    fill(const T &value)xt::xview< CT, S >inline
    flat(size_type i) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    flat(size_type i) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    flat(size_type i) -> reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    flat(size_type i) const -> const_reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    front() constxt::xaccessible< xview< CT, S... > >
    front()xt::xaccessible< xview< CT, S... > >inline
    front() constxt::xaccessible< xview< CT, S... > >inline
    has_linear_assign(const ST &strides) constxt::xview< CT, S >inline
    has_trivial_strides (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    in_bounds(Args... args) constxt::xconst_accessible< xview< CT, S... > >inline
    index(Args... args) const -> size_type (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    inner_backstrides_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    inner_shape_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    inner_strides_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    inner_types typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    is_const (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    is_contiguous() const noexcept (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    is_contiguous_view (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    is_strided_view (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    iterable_base typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    layout() const noexceptxt::xview< CT, S >inline
    linear_begin() (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_begin() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_begin() -> linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_begin() const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_cbegin() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_cbegin() const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_cend() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_cend() const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_crbegin() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_crbegin() const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_crend() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_crend() const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_end() (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_end() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_end() -> linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_end() const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_iterator typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rbegin() (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rbegin() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rbegin() -> reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rbegin() const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rend() (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rend() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rend() -> reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    linear_rend() const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    load_simd(size_type i) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    load_simd(size_type i) const -> simd_return_type< requested_type > requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    make_index(It first, It last) const -> base_index_type (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator const_reference() const (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator reference() (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator&() & (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator&() const & (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator&() && (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator()(Args... args) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    operator()(Args... args) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    operator()(Args... args) -> referencext::xview< CT, S >inline
    operator()(Args... args) const -> const_referencext::xview< CT, S >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator=(const xview &rhs) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator=(const xexpression< E > &e) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    operator=(const E &e) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    operator=(const xexpression< E > &e) -> self_type &xt::xview< CT, S >inline
    operator=(const E &e) -> disable_xexpression< E, self_type > & (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< xview< CT, S... > >inline
    operator[](const S &index) -> disable_integral_t< S, reference >xt::xaccessible< xview< CT, S... > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< xview< CT, S... > >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    periodic(Args... args) -> referencext::xaccessible< xview< CT, S... > >inline
    periodic(Args... args) -> referencext::xaccessible< xview< CT, S... > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< xview< CT, S... > >inline
    pointer typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    rank (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    rebind_t typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    reference typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    reverse_linear_iterator typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    self_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    semantic_base typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    shape() const noexceptxt::xview< CT, S >inline
    xt::xaccessible< xview< CT, S... > >::shape(size_type index) constxt::xconst_accessible< xview< CT, S... > >inline
    shape_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    simd_return_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    simd_value_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    size() const noexcept(noexcept(derived_cast().shape()))xt::xconst_accessible< xview< CT, S... > >inline
    size_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    slice_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    sliced_access(const xslice< T > &slice) const -> size_type (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    sliced_access(const xslice< T > &slice, Arg arg, Args... args) const -> size_type (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    sliced_access(const T &squeeze, Args...) const -> size_type requires(!is_xslice< T >::value) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    slices() const noexceptxt::xview< CT, S >inline
    static_layout (defined in xt::xview< CT, S >)xt::xview< CT, S >static
    stepper typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    stepper_begin(const ST &shape) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    stepper_begin(const ST &shape) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    stepper_begin(const ST &shape) -> stepper (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    stepper_begin(const ST &shape) const -> const_stepper (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    stepper_end(const ST &shape, layout_type l) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    stepper_end(const ST &shape, layout_type l) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    stepper_end(const ST &shape, layout_type l) -> stepper (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    stepper_end(const ST &shape, layout_type l) const -> const_stepper (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    storage() (defined in xt::xview< CT, S >)xt::xview< CT, S >
    storage() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    storage() -> storage_type &requires(has_data_interface_concept< T >)xt::xview< CT, S >inline
    storage() const -> const storage_type &requires(has_data_interface_concept< T >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    storage_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    store_simd(size_type i, const simd &e) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    store_simd(size_type i, const simd &e) -> void requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >) (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    strides() const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    strides() const -> const inner_strides_type &requires(has_data_interface_concept< T >and strided_view_concept< CT, S... >)xt::xview< CT, S >inline
    strides_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    temporary_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    unchecked(Args... args) (defined in xt::xview< CT, S >)xt::xview< CT, S >
    unchecked(Args... args) const (defined in xt::xview< CT, S >)xt::xview< CT, S >
    unchecked(Args... args) -> referencext::xview< CT, S >inline
    unchecked(Args... args) const -> const_referencext::xview< CT, S >inline
    unchecked_impl(std::index_sequence< I... >, Args... args) -> reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    unchecked_impl(std::index_sequence< I... >, Args... args) const -> const_reference (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    underlying_size(size_type dim) const (defined in xt::xview< CT, S >)xt::xview< CT, S >inline
    value_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    xexpression_inner_backstrides_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    xexpression_inner_strides_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    xexpression_type typedef (defined in xt::xview< CT, S >)xt::xview< CT, S >
    xview(CTA &&e, FSL &&first_slice, SL &&... slices) noexceptxt::xview< CT, S >explicit
    xview(const xview &)=default (defined in xt::xview< CT, S >)xt::xview< CT, S >
    xview_semantic< xview< CT, S... > > (defined in xt::xview< CT, S >)xt::xview< CT, S >friend
    +
    + + + + diff --git a/classxt_1_1xview.html b/classxt_1_1xview.html new file mode 100644 index 000000000..67ef56b05 --- /dev/null +++ b/classxt_1_1xview.html @@ -0,0 +1,4544 @@ + + + + + + + +xtensor: xt::xview< CT, S > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xview< CT, S > Class Template Reference
    +
    +
    + +

    Multidimensional view with tensor semantic. + More...

    + +

    #include <xview.hpp>

    +
    +Inheritance diagram for xt::xview< CT, S >:
    +
    +
    + + +xt::xview_semantic< xview< CT, S... > > +xt::xaccessible< xview< CT, S... > > +xt::xsemantic_base< xview< CT, S... > > +xt::xconst_accessible< xview< CT, S... > > + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xview<CT, S...>
     
    using inner_types = xcontainer_inner_types<self_type>
     
    using xexpression_type = std::decay_t<CT>
     
    using semantic_base = xview_semantic<self_type>
     
    using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
     
    using accessible_base = xaccessible<self_type>
     
    using extension_base = extension::xview_base_t<CT, S...>
     
    using expression_tag = typename extension_base::expression_tag
     
    using value_type = typename xexpression_type::value_type
     
    using simd_value_type = xt_simd::simd_type<value_type>
     
    using bool_load_type = typename xexpression_type::bool_load_type
     
    using reference = typename inner_types::reference
     
    using const_reference = typename inner_types::const_reference
     
    using pointer
     
    using const_pointer = typename xexpression_type::const_pointer
     
    using size_type = typename inner_types::size_type
     
    using difference_type = typename xexpression_type::difference_type
     
    using iterable_base = xiterable<self_type>
     
    using inner_shape_type = typename iterable_base::inner_shape_type
     
    using shape_type = typename xview_shape_type<typename xexpression_type::shape_type, S...>::type
     
    using xexpression_inner_strides_type
     
    using xexpression_inner_backstrides_type
     
    using storage_type = typename inner_types::storage_type
     
    using inner_strides_type
     
    using inner_backstrides_type
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = strides_type
     
    using slice_type = std::tuple<S...>
     
    using stepper = typename iterable_base::stepper
     
    using const_stepper = typename iterable_base::const_stepper
     
    using linear_iterator
     
    using const_linear_iterator
     
    using reverse_linear_iterator = std::reverse_iterator<linear_iterator>
     
    using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>
     
    using container_iterator = pointer
     
    using const_container_iterator = const_pointer
     
    template<class E>
    using rebind_t = xview<E, S...>
     
    template<class requested_type>
    using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
     
    - Public Types inherited from xt::xview_semantic< xview< CT, S... > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xsemantic_base< xview< CT, S... > >
    using base_type
     
    using derived_type
     
    using temporary_type
     
    - Public Types inherited from xt::xaccessible< xview< CT, S... > >
    using base_type
     
    using derived_type
     
    using reference
     
    using size_type
     
    - Public Types inherited from xt::xconst_accessible< xview< CT, S... > >
    using derived_type
     
    using inner_types
     
    using reference
     
    using const_reference
     
    using size_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    xview (const xview &)=default
     
    +template<class E>
    self_typeoperator= (const xexpression< E > &e)
     
    +template<class E>
    disable_xexpression< E, self_type > & operator= (const E &e)
     
    +template<class... Args>
    reference operator() (Args... args)
     
    +template<class... Args>
    reference unchecked (Args... args)
     
    +template<class It>
    reference element (It first, It last)
     
    +template<class... Args>
    const_reference operator() (Args... args) const
     
    +template<class... Args>
    const_reference unchecked (Args... args) const
     
    +template<class It>
    const_reference element (It first, It last) const
     
    +template<class ST>
    stepper stepper_begin (const ST &shape)
     
    +template<class ST>
    stepper stepper_end (const ST &shape, layout_type l)
     
    +template<class ST>
    const_stepper stepper_begin (const ST &shape) const
     
    +template<class ST>
    const_stepper stepper_end (const ST &shape, layout_type l) const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T>)
    storage_type & storage ()
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T>)
    const storage_type & storage () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    linear_iterator linear_begin ()
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    linear_iterator linear_end ()
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_linear_iterator linear_begin () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_linear_iterator linear_end () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_linear_iterator linear_cbegin () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_linear_iterator linear_cend () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    reverse_linear_iterator linear_rbegin ()
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    reverse_linear_iterator linear_rend ()
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_reverse_linear_iterator linear_rbegin () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_reverse_linear_iterator linear_rend () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_reverse_linear_iterator linear_crbegin () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_reverse_linear_iterator linear_crend () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const inner_strides_type & strides () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const inner_strides_type & backstrides () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    const_pointer data () const
     
    +template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    pointer data ()
     
    template<xscalar_concept ST = self_type>
     operator reference ()
     
    template<xscalar_concept ST = self_type>
     operator const_reference () const
     
    +template<class E>
    rebind_t< E > build_view (E &&e) const
     
    +template<class align, class simd, class T = xexpression_type>
    +requires (has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    void store_simd (size_type i, const simd &e)
     
    +template<class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size, class T = xexpression_type>
    +requires (has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    simd_return_type< requested_type > load_simd (size_type i) const
     
    +template<class T = xexpression_type>
    +requires (has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    reference data_element (size_type i)
     
    +template<class T = xexpression_type>
    +requires (has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    const_reference data_element (size_type i) const
     
    +template<class T = xexpression_type>
    +requires (has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    reference flat (size_type i)
     
    +template<class T = xexpression_type>
    +requires (has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    const_reference flat (size_type i) const
     
    Size and shape
    const inner_shape_type & shape () const noexcept
     Returns the shape of the view.
     
    const slice_type & slices () const noexcept
     Returns the slices of the view.
     
    layout_type layout () const noexcept
     Returns the slices of the view.
     
    bool is_contiguous () const noexcept
     
    Extended copy semantic
    template<class E>
    auto operator= (const xexpression< E > &e) -> self_type &
     The extended assignment operator.
     
    template<class E>
    auto operator= (const E &e) -> disable_xexpression< E, self_type > &
     
    - Public Member Functions inherited from xt::xview_semantic< xview< CT, S... > >
    +derived_typeassign_xexpression (const xexpression< E > &e)
     
    +derived_typecomputed_assign (const xexpression< E > &e)
     
    +derived_typescalar_computed_assign (const E &e, F &&f)
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    derived_typeassign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< xview< CT, S... > >
    +disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +derived_type & operator+= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +derived_type & operator-= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +derived_type & operator*= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +derived_type & operator/= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +derived_type & operator%= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +derived_type & operator&= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +derived_type & operator|= (const xexpression< E > &)
     
    +disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +derived_type & operator^= (const xexpression< E > &)
     
    +derived_type & assign (const xexpression< E > &)
     
    +derived_type & plus_assign (const xexpression< E > &)
     
    +derived_type & minus_assign (const xexpression< E > &)
     
    +derived_type & multiplies_assign (const xexpression< E > &)
     
    +derived_type & divides_assign (const xexpression< E > &)
     
    +derived_type & modulus_assign (const xexpression< E > &)
     
    +derived_type & bit_and_assign (const xexpression< E > &)
     
    +derived_type & bit_or_assign (const xexpression< E > &)
     
    +derived_type & bit_xor_assign (const xexpression< E > &)
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    - Public Member Functions inherited from xt::xaccessible< xview< CT, S... > >
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    +const_reference operator[] (size_type i) const
     
    +const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    +const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    +const_reference periodic (Args... args) const
     
    +reference at (Args... args)
     
    auto at (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    +const_reference at (Args... args) const
     
    +disable_integral_t< S, reference > operator[] (const S &index)
     
    +reference operator[] (std::initializer_list< I > index)
     
    reference operator[] (size_type i)
     
    auto operator[] (const S &index) -> disable_integral_t< S, reference >
     Returns a reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) -> reference
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    +reference periodic (Args... args)
     
    auto periodic (Args... args) -> reference
     Returns a reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    +const_reference periodic (Args... args) const
     
    reference front ()
     Returns a reference to the first element of the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    reference back ()
     Returns a reference to the last element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    - Public Member Functions inherited from xt::xconst_accessible< xview< CT, S... > >
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    size_type size () const noexcept(noexcept(derived_cast().shape()))
     Returns the size of the expression.
     
    size_type dimension () const noexcept
     Returns the number of dimensions of the expression.
     
    size_type shape (size_type index) const
     Returns the i-th dimension of the expression.
     
    +const_reference at (Args... args) const
     
    auto at (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after dimension and bounds checking.
     
    +disable_integral_t< S, const_reference > operator[] (const S &index) const
     
    +const_reference operator[] (std::initializer_list< I > index) const
     
    const_reference operator[] (size_type i) const
     
    auto operator[] (const S &index) const -> disable_integral_t< S, const_reference >
     Returns a constant reference to the element at the specified position in the expression.
     
    auto operator[] (std::initializer_list< I > index) const -> const_reference
     
    +const_reference periodic (Args... args) const
     
    auto periodic (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the expression, after applying periodicity to the indices (negative and 'overflowing' indices are changed).
     
    bool in_bounds (Args... args) const
     Returns true only if the the specified position is a valid entry in the expression.
     
    const_reference front () const
     Returns a constant reference to first the element of the expression.
     
    const_reference back () const
     Returns a constant reference to last the element of the expression.
     
    + + + + + + + + + + + + + + + +

    +Static Public Attributes

    static constexpr bool is_const = std::is_const<std::remove_reference_t<CT>>::value
     
    static constexpr layout_type static_layout = inner_types::layout
     
    static constexpr bool contiguous_layout = static_layout != layout_type::dynamic
     
    static constexpr bool is_strided_view = detail::is_strided_view<xexpression_type, S...>::value
     
    static constexpr bool is_contiguous_view = contiguous_layout
     
    static constexpr bool has_trivial_strides
     
    static constexpr std::size_t rank = SIZE_MAX
     
    + + + +

    +Friends

    class xview_semantic< xview< CT, S... > >
     
    + + + + + + + +

    Constructor

    template<class CTA, class FSL, class... SL>
     xview (CTA &&e, FSL &&first_slice, SL &&... slices) noexcept
     Constructs a view on the specified xexpression.
     
    self_typeoperator= (const xview &rhs)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Data

    template<class T>
    void fill (const T &value)
     Fills the view with the given value.
     
    xexpression_type & expression () noexcept
     Returns a reference to the underlying expression of the view.
     
    const xexpression_type & expression () const noexcept
     Returns a const reference to the underlying expression of the view.
     
    template<class T = xexpression_type>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    std::size_t data_offset () const noexcept
     Return the offset to the first element of the view in the underlying container.
     
    size_type underlying_size (size_type dim) const
     
    xtl::xclosure_pointer< self_type & > operator& () &
     
    xtl::xclosure_pointer< const self_type & > operator& () const &
     
    xtl::xclosure_pointer< self_typeoperator& () &&
     
    template<class... Args>
    auto operator() (Args... args) -> reference
     Returns a reference to the element at the specified position in the view.
     
    template<class... Args>
    auto unchecked (Args... args) -> reference
     Returns a reference to the element at the specified position in the view.
     
    template<class It>
    auto element (It first, It last) -> reference
     
    template<class... Args>
    auto operator() (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the view.
     
    template<class... Args>
    auto unchecked (Args... args) const -> const_reference
     Returns a constant reference to the element at the specified position in the view.
     
    template<class It>
    auto element (It first, It last) const -> const_reference
     
    template<class T>
    auto storage () -> storage_type &requires(has_data_interface_concept< T >)
     Returns the data holder of the underlying container (only if the view is on a realized container).
     
    template<class T>
    auto storage () const -> const storage_type &requires(has_data_interface_concept< T >)
     
    template<class T>
    auto linear_begin () -> linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_end () -> linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_begin () const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_end () const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_cbegin () const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_cend () const -> const_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_rbegin () -> reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_rend () -> reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_rbegin () const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_rend () const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_crbegin () const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto linear_crend () const -> const_reverse_linear_iterator requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto strides () const -> const inner_strides_type &requires(has_data_interface_concept< T >and strided_view_concept< CT, S... >)
     Return the strides for the underlying container of the view.
     
    template<class T>
    auto backstrides () const -> const inner_strides_type &requires(has_data_interface_concept< T >and strided_view_concept< CT, S... >)
     
    template<class T>
    auto data () const -> const_pointer requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     Return the pointer to the underlying buffer.
     
    template<class T>
    auto data () -> pointer requires(has_data_interface_concept< T > and strided_view_concept< CT, S... >)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

    template<class ST>
    bool broadcast_shape (ST &shape, bool reuse_cache=false) const
     Broadcast the shape of the view to the specified parameter.
     
    template<class ST>
    bool has_linear_assign (const ST &strides) const
     Checks whether the xview can be linearly assigned to an expression with the specified strides.
     
    template<class It>
    It data_xbegin_impl (It begin) const noexcept
     
    template<class It>
    It data_xend_impl (It begin, layout_type l, size_type offset) const noexcept
     
    container_iterator data_xbegin () noexcept
     
    const_container_iterator data_xbegin () const noexcept
     
    container_iterator data_xend (layout_type l, size_type offset) noexcept
     
    const_container_iterator data_xend (layout_type l, size_type offset) const noexcept
     
    template<class E, class T = xexpression_type>
    +requires (has_data_interface_concept<T> and contiguous_view_concept<E, S...>)
    void assign_to (xexpression< E > &e, bool force_resize) const
     
    template<class E, std::size_t... I>
    auto build_view_impl (E &&e, std::index_sequence< I... >) const -> rebind_t< E >
     
    template<class E>
    auto build_view (E &&e) const -> rebind_t< E >
     
    template<class align, class simd, class T>
    auto store_simd (size_type i, const simd &e) -> void requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class align, class requested_type, std::size_t N, class T>
    auto load_simd (size_type i) const -> simd_return_type< requested_type > requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto data_element (size_type i) -> reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto data_element (size_type i) const -> const_reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto flat (size_type i) -> reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class T>
    auto flat (size_type i) const -> const_reference requires(has_simd_interface_concept< T > and strided_view_concept< CT, S... >)
     
    template<class Arg, class... Args>
    auto access (Arg arg, Args... args) -> reference
     
    template<class Arg, class... Args>
    auto access (Arg arg, Args... args) const -> const_reference
     
    template<typename std::decay_t< CT >::size_type... I, class... Args>
    auto unchecked_impl (std::index_sequence< I... >, Args... args) -> reference
     
    template<typename std::decay_t< CT >::size_type... I, class... Args>
    auto unchecked_impl (std::index_sequence< I... >, Args... args) const -> const_reference
     
    template<typename std::decay_t< CT >::size_type... I, class... Args>
    auto access_impl (std::index_sequence< I... >, Args... args) -> reference
     
    template<typename std::decay_t< CT >::size_type... I, class... Args>
    auto access_impl (std::index_sequence< I... >, Args... args) const -> const_reference
     
    template<typename std::decay_t< CT >::size_type I, class... Args>
    auto index (Args... args) const -> size_type
     
    template<typename std::decay_t< CT >::size_type I, class T>
    auto sliced_access (const xslice< T > &slice) const -> size_type
     
    template<typename std::decay_t< CT >::size_type I, class T, class Arg, class... Args>
    auto sliced_access (const xslice< T > &slice, Arg arg, Args... args) const -> size_type
     
    template<typename std::decay_t< CT >::size_type I, class T, class... Args>
    auto sliced_access (const T &squeeze, Args...) const -> size_type requires(!is_xslice< T >::value)
     
    template<class It>
    auto make_index (It first, It last) const -> base_index_type
     
    template<class ST>
    auto stepper_begin (const ST &shape) -> stepper
     
    template<class ST>
    auto stepper_end (const ST &shape, layout_type l) -> stepper
     
    template<class ST>
    auto stepper_begin (const ST &shape) const -> const_stepper
     
    template<class ST>
    auto stepper_end (const ST &shape, layout_type l) const -> const_stepper
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from xt::xview_semantic< xview< CT, S... > >
    xview_semantic (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +derived_typeoperator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< xview< CT, S... > >
    xsemantic_base (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +derived_type & operator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xaccessible< xview< CT, S... > >
    xaccessible (const xaccessible &)=default
     
    xaccessible (xaccessible &&)=default
     
    +xaccessibleoperator= (const xaccessible &)=default
     
    +xaccessibleoperator= (xaccessible &&)=default
     
    - Protected Member Functions inherited from xt::xconst_accessible< xview< CT, S... > >
    xconst_accessible (const xconst_accessible &)=default
     
    xconst_accessible (xconst_accessible &&)=default
     
    +xconst_accessibleoperator= (const xconst_accessible &)=default
     
    +xconst_accessibleoperator= (xconst_accessible &&)=default
     
    +

    Detailed Description

    +
    template<class CT, class... S>
    +class xt::xview< CT, S >

    Multidimensional view with tensor semantic.

    +

    The xview class implements a multidimensional view with tensor semantic. It is used to adapt the shape of an xexpression without changing it. xview is not meant to be used directly, but only with the view helper functions.

    +
    Template Parameters
    + + + +
    CTthe closure type of the xexpression to adapt
    Sthe slices type describing the shape adaptation
    +
    +
    +
    See also
    view, range, all, newaxis, keep, drop
    +
    Examples
    /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp.
    +
    + +

    Definition at line 358 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accessible_base

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::accessible_base = xaccessible<self_type>
    +
    + +

    Definition at line 374 of file xview.hpp.

    + +
    +
    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::backstrides_type = strides_type
    +
    + +

    Definition at line 431 of file xview.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::bool_load_type = typename xexpression_type::bool_load_type
    +
    + +

    Definition at line 381 of file xview.hpp.

    + +
    +
    + +

    ◆ const_container_iterator

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::const_container_iterator = const_pointer
    +
    + +

    Definition at line 452 of file xview.hpp.

    + +
    +
    + +

    ◆ const_linear_iterator

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::const_linear_iterator
    +
    +Initial value:
    std::conditional_t<
    + +
    typename xexpression_type::const_linear_iterator,
    +
    typename iterable_base::const_linear_iterator>
    + +
    +

    Definition at line 443 of file xview.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::const_pointer = typename xexpression_type::const_pointer
    +
    + +

    Definition at line 386 of file xview.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::const_reference = typename inner_types::const_reference
    +
    + +

    Definition at line 383 of file xview.hpp.

    + +
    +
    + +

    ◆ const_reverse_linear_iterator

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>
    +
    + +

    Definition at line 449 of file xview.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::const_stepper = typename iterable_base::const_stepper
    +
    + +

    Definition at line 437 of file xview.hpp.

    + +
    +
    + +

    ◆ container_iterator

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::container_iterator = pointer
    +
    + +

    Definition at line 451 of file xview.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::difference_type = typename xexpression_type::difference_type
    +
    + +

    Definition at line 388 of file xview.hpp.

    + +
    +
    + +

    ◆ expression_tag

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::expression_tag = typename extension_base::expression_tag
    +
    + +

    Definition at line 376 of file xview.hpp.

    + +
    +
    + +

    ◆ extension_base

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::extension_base = extension::xview_base_t<CT, S...>
    +
    + +

    Definition at line 375 of file xview.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::inner_backstrides_type
    +
    +Initial value:
    std::conditional_t<
    +
    has_trivial_strides,
    +
    typename detail::unwrap_offset_container<
    +
    xexpression_type::static_layout,
    +
    xexpression_inner_backstrides_type,
    +
    integral_count<S...>()>::type,
    +
    get_strides_t<shape_type>>
    +
    +

    Definition at line 422 of file xview.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::inner_shape_type = typename iterable_base::inner_shape_type
    +
    + +

    Definition at line 397 of file xview.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::inner_strides_type
    +
    +Initial value:
    std::conditional_t<
    +
    has_trivial_strides,
    +
    typename detail::unwrap_offset_container<
    +
    xexpression_type::static_layout,
    +
    xexpression_inner_strides_type,
    +
    integral_count<S...>()>::type,
    +
    get_strides_t<shape_type>>
    +
    +

    Definition at line 414 of file xview.hpp.

    + +
    +
    + +

    ◆ inner_types

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::inner_types = xcontainer_inner_types<self_type>
    +
    + +

    Definition at line 369 of file xview.hpp.

    + +
    +
    + +

    ◆ iterable_base

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::iterable_base = xiterable<self_type>
    +
    + +

    Definition at line 396 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_iterator

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::linear_iterator
    +
    +Initial value:
    std::conditional_t<
    + +
    std::conditional_t<is_const, typename xexpression_type::const_linear_iterator, typename xexpression_type::linear_iterator>,
    +
    typename iterable_base::linear_iterator>
    +
    +

    Definition at line 439 of file xview.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::pointer
    +
    +Initial value:
    std::
    +
    conditional_t<is_const, typename xexpression_type::const_pointer, typename xexpression_type::pointer>
    +
    +

    Definition at line 384 of file xview.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class E>
    + + + + +
    using xt::xview< CT, S >::rebind_t = xview<E, S...>
    +
    + +

    Definition at line 622 of file xview.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::reference = typename inner_types::reference
    +
    + +

    Definition at line 382 of file xview.hpp.

    + +
    +
    + +

    ◆ reverse_linear_iterator

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::reverse_linear_iterator = std::reverse_iterator<linear_iterator>
    +
    + +

    Definition at line 448 of file xview.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::self_type = xview<CT, S...>
    +
    + +

    Definition at line 368 of file xview.hpp.

    + +
    +
    + +

    ◆ semantic_base

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::semantic_base = xview_semantic<self_type>
    +
    + +

    Definition at line 371 of file xview.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::shape_type = typename xview_shape_type<typename xexpression_type::shape_type, S...>::type
    +
    + +

    Definition at line 398 of file xview.hpp.

    + +
    +
    + +

    ◆ simd_return_type

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class requested_type>
    + + + + +
    using xt::xview< CT, S >::simd_return_type = xt_simd::simd_return_type<value_type, requested_type>
    +
    + +

    Definition at line 632 of file xview.hpp.

    + +
    +
    + +

    ◆ simd_value_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::simd_value_type = xt_simd::simd_type<value_type>
    +
    + +

    Definition at line 380 of file xview.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::size_type = typename inner_types::size_type
    +
    + +

    Definition at line 387 of file xview.hpp.

    + +
    +
    + +

    ◆ slice_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::slice_type = std::tuple<S...>
    +
    + +

    Definition at line 434 of file xview.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::stepper = typename iterable_base::stepper
    +
    + +

    Definition at line 436 of file xview.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::storage_type = typename inner_types::storage_type
    +
    + +

    Definition at line 410 of file xview.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 430 of file xview.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::temporary_type = typename xcontainer_inner_types<self_type>::temporary_type
    +
    + +

    Definition at line 372 of file xview.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::value_type = typename xexpression_type::value_type
    +
    + +

    Definition at line 379 of file xview.hpp.

    + +
    +
    + +

    ◆ xexpression_inner_backstrides_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::xexpression_inner_backstrides_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_inner_backstrides_type<xexpression_type>,
    + + + +
    +

    Definition at line 405 of file xview.hpp.

    + +
    +
    + +

    ◆ xexpression_inner_strides_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::xexpression_inner_strides_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_inner_strides_type<xexpression_type>,
    + +
    +

    Definition at line 400 of file xview.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xview< CT, S >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 370 of file xview.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xview()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class CTA, class FSL, class... SL>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xview< CT, S >::xview (CTA && e,
    FSL && first_slice,
    SL &&... slices )
    +
    +explicitnoexcept
    +
    + +

    Constructs a view on the specified xexpression.

    +

    Users should not call directly this constructor but use the view function instead.

    Parameters
    + + + + +
    ethe xexpression to adapt
    first_slicethe first slice describing the view
    slicesthe slices list describing the view
    +
    +
    +
    See also
    view
    + +

    Definition at line 881 of file xview.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ access() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::access (Arg arg,
    Args... args ) -> reference +
    +
    +inline
    +
    + +

    Definition at line 1587 of file xview.hpp.

    + +
    +
    + +

    ◆ access() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::access (Arg arg,
    Args... args ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 1604 of file xview.hpp.

    + +
    +
    + +

    ◆ access_impl() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type... I, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::access_impl (std::index_sequence< I... > ,
    Args... args ) -> reference +
    +
    +inline
    +
    + +

    Definition at line 1630 of file xview.hpp.

    + +
    +
    + +

    ◆ access_impl() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type... I, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::access_impl (std::index_sequence< I... > ,
    Args... args ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 1637 of file xview.hpp.

    + +
    +
    + +

    ◆ assign_to()

    + +
    +
    +
    +template<class CT, class... S>
    +requires (has_data_interface_concept<T> and contiguous_view_concept<E, S...>)
    +
    +template<class E, class T>
    +requires (has_data_interface_concept<T> and contiguous_view_concept<E, S...>)
    + + + + + + + + + + + +
    void xt::xview< CT, S >::assign_to (xexpression< E > & e,
    bool force_resize ) const
    +
    + +

    Definition at line 1454 of file xview.hpp.

    + +
    +
    + +

    ◆ backstrides()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::backstrides () const -> const inner_strides_type& requires(has_data_interface_concept<T>and strided_view_concept<CT, S...>)
    +
    +inline
    +
    + +

    Definition at line 1282 of file xview.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::xview< CT, S >::broadcast_shape (ST & shape,
    bool reuse_cache = false ) const
    +
    +inline
    +
    + +

    Broadcast the shape of the view to the specified parameter.

    +
    Parameters
    + + + +
    shapethe result shape
    reuse_cacheparameter for internal optimization
    +
    +
    +
    Returns
    a boolean indicating whether the broadcasting is trivial
    + +

    Definition at line 1386 of file xview.hpp.

    + +
    +
    + +

    ◆ build_view()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::build_view (E && e) const -> rebind_t<E> +
    +
    +inline
    +
    + +

    Definition at line 1471 of file xview.hpp.

    + +
    +
    + +

    ◆ build_view_impl()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class E, std::size_t... I>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::build_view_impl (E && e,
    std::index_sequence< I... >  ) const -> rebind_t<E> +
    +
    +inline
    +
    + +

    Definition at line 1464 of file xview.hpp.

    + +
    +
    + +

    ◆ data() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::data () -> pointer + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1305 of file xview.hpp.

    + +
    +
    + +

    ◆ data() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::data () const -> const_pointer + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Return the pointer to the underlying buffer.

    + +

    Definition at line 1297 of file xview.hpp.

    + +
    +
    + +

    ◆ data_element() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::data_element (size_type i) -> reference + requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1494 of file xview.hpp.

    + +
    +
    + +

    ◆ data_element() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::data_element (size_type i) const -> const_reference + requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1502 of file xview.hpp.

    + +
    +
    + +

    ◆ data_offset()

    + +
    +
    +
    +template<class CT, class... S>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    +template<class T>
    +requires (has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    + + + + + +
    + + + + + + + +
    std::size_t xt::xview< CT, S >::data_offset () const
    +
    +inlinenoexcept
    +
    + +

    Return the offset to the first element of the view in the underlying container.

    + +

    Definition at line 1337 of file xview.hpp.

    + +
    +
    + +

    ◆ data_xbegin() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::data_xbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1433 of file xview.hpp.

    + +
    +
    + +

    ◆ data_xbegin() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::data_xbegin ()
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1427 of file xview.hpp.

    + +
    +
    + +

    ◆ data_xbegin_impl()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class It>
    + + + + + +
    + + + + + + + +
    It xt::xview< CT, S >::data_xbegin_impl (It begin) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1414 of file xview.hpp.

    + +
    +
    + +

    ◆ data_xend() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::data_xend (layout_type l,
    size_type offset ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1445 of file xview.hpp.

    + +
    +
    + +

    ◆ data_xend() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::data_xend (layout_type l,
    size_type offset )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1439 of file xview.hpp.

    + +
    +
    + +

    ◆ data_xend_impl()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    It xt::xview< CT, S >::data_xend_impl (It begin,
    layout_type l,
    size_type offset ) const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1421 of file xview.hpp.

    + +
    +
    + +

    ◆ element() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::element (It first,
    It last ) -> reference +
    +
    +inline
    +
    + +

    Definition at line 1070 of file xview.hpp.

    + +
    +
    + +

    ◆ element() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::element (It first,
    It last ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 1123 of file xview.hpp.

    + +
    +
    + +

    ◆ expression() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::expression () const
    +
    +inlinenoexcept
    +
    + +

    Returns a const reference to the underlying expression of the view.

    + +

    Definition at line 1143 of file xview.hpp.

    + +
    +
    + +

    ◆ expression() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::expression ()
    +
    +inlinenoexcept
    +
    + +

    Returns a reference to the underlying expression of the view.

    + +

    Definition at line 1134 of file xview.hpp.

    + +
    +
    + +

    ◆ fill()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    void xt::xview< CT, S >::fill (const T & value)
    +
    +inline
    +
    + +

    Fills the view with the given value.

    +
    Parameters
    + + +
    valuethe value to fill the view with.
    +
    +
    + +

    Definition at line 1013 of file xview.hpp.

    + +
    +
    + +

    ◆ flat() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::flat (size_type i) -> reference + requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1510 of file xview.hpp.

    + +
    +
    + +

    ◆ flat() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::flat (size_type i) const -> const_reference + requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1519 of file xview.hpp.

    + +
    +
    + +

    ◆ has_linear_assign()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + +
    bool xt::xview< CT, S >::has_linear_assign (const ST & str) const
    +
    +inline
    +
    + +

    Checks whether the xview can be linearly assigned to an expression with the specified strides.

    +
    Returns
    a boolean indicating whether a linear assign is possible
    + +

    Definition at line 1398 of file xview.hpp.

    + +
    +
    + +

    ◆ index()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type I, class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::index (Args... args) const -> size_type +
    +
    +inline
    +
    + +

    Definition at line 1644 of file xview.hpp.

    + +
    +
    + +

    ◆ is_contiguous()

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    bool xt::xview< CT, S >::is_contiguous () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 995 of file xview.hpp.

    + +
    +
    + +

    ◆ layout()

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    layout_type xt::xview< CT, S >::layout () const
    +
    +inlinenoexcept
    +
    + +

    Returns the slices of the view.

    + +

    Definition at line 974 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_begin() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_begin () -> linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1171 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_begin () const -> const_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1187 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_cbegin()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_cbegin () const -> const_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1203 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_cend()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_cend () const -> const_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1211 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_crbegin()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_crbegin () const -> const_reverse_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1251 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_crend()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_crend () const -> const_reverse_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1259 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_end () -> linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1179 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_end () const -> const_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1195 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_rbegin () -> reverse_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1219 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_rbegin() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_rbegin () const -> const_reverse_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1235 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_rend() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_rend () -> reverse_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1227 of file xview.hpp.

    + +
    +
    + +

    ◆ linear_rend() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + + + +
    auto xt::xview< CT, S >::linear_rend () const -> const_reverse_linear_iterator + requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    + +

    Definition at line 1243 of file xview.hpp.

    + +
    +
    + +

    ◆ load_simd()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class align, class requested_type, std::size_t N, class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::load_simd (size_type i) const -> simd_return_type<requested_type> + requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1486 of file xview.hpp.

    + +
    +
    + +

    ◆ make_index()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::make_index (It first,
    It last ) const -> base_index_type +
    +
    +inline
    +
    + +

    Definition at line 1686 of file xview.hpp.

    + +
    +
    + +

    ◆ operator const_reference()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<xscalar_concept ST = self_type>
    + + + + + +
    + + + + + + + +
    xt::xview< CT, S >::operator const_reference () const
    +
    +inline
    +
    + +

    Definition at line 606 of file xview.hpp.

    + +
    +
    + +

    ◆ operator reference()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<xscalar_concept ST = self_type>
    + + + + + +
    + + + + + + + +
    xt::xview< CT, S >::operator reference ()
    +
    +inline
    +
    + +

    Definition at line 600 of file xview.hpp.

    + +
    +
    + +

    ◆ operator&() [1/3]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator& () &
    +
    +inline
    +
    + +

    Definition at line 1357 of file xview.hpp.

    + +
    +
    + +

    ◆ operator&() [2/3]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator& () &&
    +
    +inline
    +
    + +

    Definition at line 1369 of file xview.hpp.

    + +
    +
    + +

    ◆ operator&() [3/3]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator& () const &
    +
    +inline
    +
    + +

    Definition at line 1363 of file xview.hpp.

    + +
    +
    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator() (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the view.
    +
    +
    + +

    Definition at line 1033 of file xview.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator() (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices should be equal or greater than the number of dimensions of the view.
    +
    +
    + +

    Definition at line 1086 of file xview.hpp.

    + +
    +
    + +

    ◆ operator=() [1/3]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator= (const E & e) -> disable_xexpression<E, self_type>& +
    +
    +inline
    +
    + +

    Definition at line 942 of file xview.hpp.

    + +
    +
    + +

    ◆ operator=() [2/3]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator= (const xexpression< E > & e) -> self_type& +
    +
    +inline
    +
    + +

    The extended assignment operator.

    + +

    Definition at line 933 of file xview.hpp.

    + +
    +
    + +

    ◆ operator=() [3/3]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::operator= (const xview< CT, S > & rhs)
    +
    +inline
    +
    + +

    Definition at line 918 of file xview.hpp.

    + +
    +
    + +

    ◆ shape()

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::shape () const
    +
    +inlinenoexcept
    +
    + +

    Returns the shape of the view.

    + +

    Definition at line 956 of file xview.hpp.

    + +
    +
    + +

    ◆ sliced_access() [1/3]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type I, class T, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::sliced_access (const T & squeeze,
    Args...  ) const -> size_type + requires(!is_xslice<T>::value) +
    +
    +inline
    +
    + +

    Definition at line 1678 of file xview.hpp.

    + +
    +
    + +

    ◆ sliced_access() [2/3]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type I, class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::sliced_access (const xslice< T > & slice) const -> size_type +
    +
    +inline
    +
    + +

    Definition at line 1661 of file xview.hpp.

    + +
    +
    + +

    ◆ sliced_access() [3/3]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type I, class T, class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::xview< CT, S >::sliced_access (const xslice< T > & slice,
    Arg arg,
    Args... args ) const -> size_type +
    +
    +inline
    +
    + +

    Definition at line 1668 of file xview.hpp.

    + +
    +
    + +

    ◆ slices()

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::slices () const
    +
    +inlinenoexcept
    +
    + +

    Returns the slices of the view.

    + +

    Definition at line 965 of file xview.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::stepper_begin (const ST & shape) -> stepper +
    +
    +inline
    +
    + +

    Definition at line 1937 of file xview.hpp.

    + +
    +
    + +

    ◆ stepper_begin() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::stepper_begin (const ST & shape) const -> const_stepper +
    +
    +inline
    +
    + +

    Definition at line 1967 of file xview.hpp.

    + +
    +
    + +

    ◆ stepper_end() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::stepper_end (const ST & shape,
    layout_type l ) -> stepper +
    +
    +inline
    +
    + +

    Definition at line 1952 of file xview.hpp.

    + +
    +
    + +

    ◆ stepper_end() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class ST>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::stepper_end (const ST & shape,
    layout_type l ) const -> const_stepper +
    +
    +inline
    +
    + +

    Definition at line 1983 of file xview.hpp.

    + +
    +
    + +

    ◆ storage() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::storage () -> storage_type& + requires(has_data_interface_concept<T>) +
    +
    +inline
    +
    + +

    Returns the data holder of the underlying container (only if the view is on a realized container).

    +

    xt::eval will make sure that the underlying xexpression is on a realized container.

    + +

    Definition at line 1155 of file xview.hpp.

    + +
    +
    + +

    ◆ storage() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::storage () const -> const storage_type& + requires(has_data_interface_concept<T>) +
    +
    +inline
    +
    + +

    Definition at line 1163 of file xview.hpp.

    + +
    +
    + +

    ◆ store_simd()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class align, class simd, class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::store_simd (size_type i,
    const simd & e ) -> void + requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>) +
    +
    +inline
    +
    + +

    Definition at line 1478 of file xview.hpp.

    + +
    +
    + +

    ◆ strides()

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::strides () const -> const inner_strides_type& requires(has_data_interface_concept<T>and strided_view_concept<CT, S...>)
    +
    +inline
    +
    + +

    Return the strides for the underlying container of the view.

    + +

    Definition at line 1270 of file xview.hpp.

    + +
    +
    + +

    ◆ unchecked() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::unchecked (Args... args) -> reference +
    +
    +inline
    +
    + +

    Returns a reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the view, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.unchecked(0, 1);
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    + +

    Definition at line 1063 of file xview.hpp.

    + +
    +
    + +

    ◆ unchecked() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::unchecked (Args... args) const -> const_reference +
    +
    +inline
    +
    + +

    Returns a constant reference to the element at the specified position in the view.

    +
    Parameters
    + + +
    argsa list of indices specifying the position in the view. Indices must be unsigned integers, the number of indices must be equal to the number of dimensions of the view, else the behavior is undefined.
    +
    +
    +
    Warning
    This method is meant for performance, for expressions with a dynamic number of dimensions (i.e. not known at compile time). Since it may have undefined behavior (see parameters), operator() should be preferred whenever it is possible.
    +
    +This method is NOT compatible with broadcasting, meaning the following code has undefined behavior:
    xt::xarray<double> a = {{0, 1}, {2, 3}};
    +
    xt::xarray<double> b = {0, 1};
    +
    auto fd = a + b;
    +
    double res = fd.unchecked(0, 1);
    +
    + +

    Definition at line 1116 of file xview.hpp.

    + +
    +
    + +

    ◆ unchecked_impl() [1/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type... I, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::unchecked_impl (std::index_sequence< I... > ,
    Args... args ) -> reference +
    +
    +inline
    +
    + +

    Definition at line 1615 of file xview.hpp.

    + +
    +
    + +

    ◆ unchecked_impl() [2/2]

    + +
    +
    +
    +template<class CT, class... S>
    +
    +template<typename std::decay_t< CT >::size_type... I, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview< CT, S >::unchecked_impl (std::index_sequence< I... > ,
    Args... args ) const -> const_reference +
    +
    +inline
    +
    + +

    Definition at line 1622 of file xview.hpp.

    + +
    +
    + +

    ◆ underlying_size()

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview< CT, S >::underlying_size (size_type dim) const
    +
    +inline
    +
    + +

    Definition at line 1351 of file xview.hpp.

    + +
    +
    +

    Friends And Related Symbol Documentation

    + +

    ◆ xview_semantic< xview< CT, S... > >

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    friend class xview_semantic< xview< CT, S... > >
    +
    +friend
    +
    + +

    Definition at line 743 of file xview.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ contiguous_layout

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xview< CT, S >::contiguous_layout = static_layout != layout_type::dynamic
    +
    +staticconstexpr
    +
    + +

    Definition at line 391 of file xview.hpp.

    + +
    +
    + +

    ◆ has_trivial_strides

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xview< CT, S >::has_trivial_strides
    +
    +staticconstexpr
    +
    +Initial value:
    = is_contiguous_view
    +
    && !std::disjunction<detail::is_xrange<S>...>::value
    +
    +

    Definition at line 412 of file xview.hpp.

    + +
    +
    + +

    ◆ is_const

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xview< CT, S >::is_const = std::is_const<std::remove_reference_t<CT>>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 378 of file xview.hpp.

    + +
    +
    + +

    ◆ is_contiguous_view

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xview< CT, S >::is_contiguous_view = contiguous_layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 394 of file xview.hpp.

    + +
    +
    + +

    ◆ is_strided_view

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xview< CT, S >::is_strided_view = detail::is_strided_view<xexpression_type, S...>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 393 of file xview.hpp.

    + +
    +
    + +

    ◆ rank

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    std::size_t xt::xview< CT, S >::rank = SIZE_MAX
    +
    +staticconstexpr
    +
    + +

    Definition at line 453 of file xview.hpp.

    + +
    +
    + +

    ◆ static_layout

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    layout_type xt::xview< CT, S >::static_layout = inner_types::layout
    +
    +staticconstexpr
    +
    + +

    Definition at line 390 of file xview.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following files:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xtensor_forward.hpp
    • +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xview.js b/classxt_1_1xview.js new file mode 100644 index 000000000..8e04b59cf --- /dev/null +++ b/classxt_1_1xview.js @@ -0,0 +1,21 @@ +var classxt_1_1xview = +[ + [ "xview", "classxt_1_1xview.html#a05ff5fb7b81610a17123a91729525c5c", null ], + [ "broadcast_shape", "classxt_1_1xview.html#a4fb1f607e8b93152ef8426c5ef524c3e", null ], + [ "data", "classxt_1_1xview.html#a2315b4504cabd5c6a0c6f80c782d1d8b", null ], + [ "data_offset", "classxt_1_1xview.html#a869e2398c747ba94deaf0878bb348649", null ], + [ "expression", "classxt_1_1xview.html#a9c5da820e15f25932c740862e0f3150f", null ], + [ "expression", "classxt_1_1xview.html#a5ecd9f1273f10421fdd4c5d64c262585", null ], + [ "fill", "classxt_1_1xview.html#a76141e6f7f637ae7e070d860a08fc678", null ], + [ "has_linear_assign", "classxt_1_1xview.html#a1249c703f1c218ce7998627aa91c10a6", null ], + [ "layout", "classxt_1_1xview.html#aface2a61c07630c793d71241d13de29d", null ], + [ "operator()", "classxt_1_1xview.html#a16ffe8d0c8b973c2fa28e75c2f353437", null ], + [ "operator()", "classxt_1_1xview.html#a9bfc52bb7a7844eb976a096875d6a5a6", null ], + [ "operator=", "classxt_1_1xview.html#af7f042302a75ce76b1ce094b38529188", null ], + [ "shape", "classxt_1_1xview.html#a4f26067384dd1d379fcd476127386966", null ], + [ "slices", "classxt_1_1xview.html#a10687f1d5229c3d4f0b0af8766d9d64b", null ], + [ "storage", "classxt_1_1xview.html#a7ed8a9e636959290636894572d1d2282", null ], + [ "strides", "classxt_1_1xview.html#a806d78f80c3cbf6624009bcb66a2ee5f", null ], + [ "unchecked", "classxt_1_1xview.html#afc28e491c5db09bcfe54e5eea176a5ec", null ], + [ "unchecked", "classxt_1_1xview.html#a8860cdb3a358dfee3af68fafdb5c7010", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xview.png b/classxt_1_1xview.png new file mode 100644 index 0000000000000000000000000000000000000000..fce18655f13cbf7069a8690ef7ab9f63dc54e7cf GIT binary patch literal 7785 zcmeG>d0diNyV^3geCbp(w{opqYMRp0(p1!0N^7jFQM3)L)M_*}w{QvQPE%&7WMoQ4yYQa#JkNRd z=bV)N`@EJcGG3&or?+JHt{va%=^46%&rcT21+UISi&ud+ll^=AcB<8C@UgdF8i#vU zw0-kuXIJ81^}c)e4*Y*xlm9*N+rrpy_xb99@0#W`C;N?_p4rIm9bfvz>kn|${spj4 z=Kq>YKTJtbuTwp4yQMl?H{=_2+4r~kUoAVm*;#EIl)7@Niw*R3&14ma)50->E=tZv z^K|V@a4gCTg@P_Jl*z}s_Ap~|G&qGD{)MhR@$}S=2B%=Fbl~;%{~m!%9p`k@!h~IQ zSV^r4WR8Ukhei_Q?&cjgQ4nU8y*xB2lkMHD~S| zU30W20|kJ>vMy?(E(-N{!*;WLf!hjGT%Nkw3;z*c?CnJQ)CX~t(?8xFjf+#Vl1#;q zFjoScvc!hsX3f;hB@1+|y`fi>E)p5V8&mKDqTV=EDXMr2GOWW95h=V{1k&0cTTZ5X zQvzWfVVOZCaU3DCG=j}Rhapt{xfyJ5q3jMx;^dM_Lq}F}lurut*%2Z| zb$FC-kn}4S3J^%8-Q+%H7a?0DGC@@dAR;^*SL@m_%L2fa40xP?;kfZC*g%_C{WW4} z{jjgJLV8KkBjkix5N(`L?yQ5kM_t@dsDxJlnaDFxFO5`YJ^-qzage}hj0@8(EmcGA z?IL|xS{Jh=6a_y^cwAW;4d+px!Ml1eLgRoX$PJ{!dCfi{D5Ln8vBc4_{9xvUpc*2C z8>!QVFDBIi`=qs(at7r^0%9oZ>Lo>-!n(LtY2{nW=+L{9PTQKL&8PT_WU`|y1QRKh zdA5YN3V9k5mj9(RW8r64bp$=77xHPXE##+i#p@=b?+RkJ8>%vbin;Brj9Vd01_bA% zKiFLois5qQ+&D;+)J{6St)65YjUKqATTTOY$MHjKi&ODFC{m?|>2NYSRu-Z_r-97B zfxRXYi5)(K`{0X4LNxX?i!W$-42lxO8}R{Nkd2_?0v~FhMg_$mO8?Ig zZ1GH;>~*q>Gf-dfh@JU%;ewmR&b(?g3t0Lh%Ib1Tq8f1|$6QlW>@?%61kqW_-CJkx15gHOkN3}>TX_iyymLTsPS z{E0guhi)Cb6_TR8$uS`71|2ri%YP}~=&ilcH9E6*6C8d3{wZ{ka+almqb^!m5(#$+ z8wdo)jMN`4To|x6*1eww-z}_G9nwyyNC~!@H}8yH%fYGl9hURvO{{KgAQ0{ot`Z1) ztt{89K9-bHr+YVEv-+LEZcl&sPB`2T9=>+fLVbO<_g39|%L09Uk6rfV5c<1>(B+N0 zK;=Z>6@)zeeuNTM(P8?_ztnp9S=r<_f={^ z_}y}Xz;1dG?p%XsJqI#L4flic@g##D&7u+0i*|2OeEt6GsMyevg$Hik2Vt$bkpZeX zWk(R4xh`?{ts+L;ueCX}PjEp`newu_vI)O)qHxaOc(-j6a-19+?SlOTjho{bbr4>W zHq8mf;K}WsgE)fMAPD@Ifx5BSdIl?!yW&$`I6V>x1lB)C z_zpPwYuIsRnjIGl5qPTk5V%^)XCi!?ebgSXm?ZZ(*O`G z2)oMhZ%7t=o=PCN;=GB3PF}Ip)nzO^Yj$i-{M^`Q9Suh>GUk^6isr(JFVnnMu+Wsx zOR-TBk;tjGN(hj}01HvV#}4Dgyf0C*+`yv(5vF@CZ35@j-y{&L?BwXIs>}SjUk?X( zNPV~Fc|a)!N&56%jn#?o!2l3A>hB3HSB8%ddcc(|>MWHg+Qfz;by=OJzN}A$VtByV z)mnLuJC1UcYJO9bIG_?B;>3t>>;Z9f-wyNLCCoWwZD>xp{9f$}sW7q|9I4Dd^ z4M=%1W+LAyvEz4++M2_mjkFD(58kB`6`A8#-GLI1!xoHOU%JnN(s>{%oOFtyu^VM7 zbdh+8NR8j4slJz5g87oP82RjdUrd%816WtjkrcMdH)J7=YahF|(cH1N@#8M2!PQ(0 z7ME>$Uh)+rC3L1i%l16OJS1=ET{+C$8;SB+vF{XPTOI>R=tQEO0nzb_1rLl7RAl1O zl9qrbb68!^d(vJOE}B~}FtH{QRLnIr<%DC@50I<)Fpruk@Z;Xack-aH2Wb;_-w zK~v%!<-Zt}_nv!7MN|e}QwMXXv2lGv8|HVKb;tvHMV)oKz#I=<3Z^N53)%ajFtmP8 ztqbV@e&9`i&Mk3uJy~Q@6K_Jrz2p*np=8n`+9It$QC{NH2Gnm8l~P4*i$w_u)Hk(2 zeJ}Mle+2A&ssV=+m%yt3>|)!}7-=jH+ie#yOt(nNcXiq={plTfqKg>MQ_;{-SjQ8> z^_T*{ODr?;RHPkLHC=~2a3HhTfrD>|yr?@F8eOs{m`BjwrV;43pk>K8r!;nnEhUD? zRuoH54%x8=SeHgCJM#@>0BcOMWIv4{8`F13@6MF;UEFwt>4N1V&l8&v@yg%LiR8$l z;OKHNhn2O&A9jz#bJ$X4%i8mZTER)?*!z)CRK+N_O8p`TmiV)x*&^5vM?F*JBa2^Y zeonFZl86j={}*sS!OMoTM67&BdVBu$m6Gwm`9jWqq?=l<5}OTptx-~MQ;Q{ud|GcY zqkhu(1K%GwS{f~m9=Z`KtgZE?K*~ttyIVr0tcXFB)JF!tKJuS3AWo4sSeugU6Ufti zS)Qgza+7W+^Gp$p{J8HC6=X`hJ0v072N*PtNTz+$n7p&G5i+~g#*u9zVxgoYM0u{! zebX}rq9ovVVw|*MwD7IGS5PVRjC8Aee!nL1Ceeh;8Lvi=#v=`%OC4x_6tpPWWAykU z&d#PIEiuJo!xJnN1@=a1H^#L*N5BZw%o-0L}xlCSFV6C?OkJl`yiBMwW+L5UO0tAxB8fvc_58|gbu+yz>?8p-^dE)#wP`u* z+X)UC5gYP^9Mv#jQ2kA-5w4vnJOm^voIDbg*J)-0$c|nreW_f6aV${!uB?$z?P;^em;Elnj9m2s**c&Ns;)kV4-$gOi!X`UPCxyfQ zLfvzkYsg4Sz6aQ`rFQBgd1Qda)<#<9iUdpBz-Vz!kP{%0d1uEQvxbCwz{p-JTvpU? z=MglAk3^Zv)}v@ni)iIS9o{*)(PEMgqgnraY~D1>sCU53Ni<5hQ~c=>}Z zY^*3qeIU|9T8Qnfaa3=~AJUuj2Z~I{pKVcHO_X}WEmor?TSjRp4ztIPn^6NI}gqm#=XwQS=ke@zzEBs|2voSUl6O9u8q z(U(7#u7yq-Qmjup)!yUr6Oa@Hc}LKb9{^Ec*Bf)oMo}p29a`i>rFj|TKBcph3ha7~ zivqI^^|v!-?g*MnkLt8aG_^4?nNW4Ug#wFqGr_W@eJVYg^y*Wa5V|}@S5mNdZPlem zM^6UN*l^HCz)@u%9YJG@^r2um2Xw4`&xHk)Ngor7oT7Lj$%B z(T8qX-wHW&LVKeI+DE5uIicy5AL(Pupl!A@>m8ul^A=RT9HB!MU0U#3uxe_vhqhe8 z?m!zC6|bP(le(_!cfeg0_Dg6`NeEP0X$M)}xuP3%_@osGbCU+<&{iXd89=n( zt(Jp@%}ktHa3}4T`~m0R4)?TQ`hR!0Ve<1e|KjhsrKXGoFN63$Y{34%-rB^ToYGcM zXQ>uYy{&C$f?qkGn(F-7r%hY_e?7EFii+MdZ=Q zV-2(M+w$D)xb+vahn@MU&isj}SqEbp7<`}MGFJ4NICY2Ykq;?i_+ z5DeW`RL{xeiR7>QCVGbB*uZn(k@mCmpTK2oet*6iVV2vBdmoQZCZZA~hZ*pQbbgM* z`<$4dSqBF1q5mYwD;cEj;ls^EKFCVv_aR9&7y?-k+?-HRLO_@?Aja~4{u4Y#Tk--M zdn!zQ@|%4Md2&f~>_!BQ#vHoHN`yO*(9O=+^cfrfCR&Ed9blB}_;B=icaK8)Od>Dt zAO0vnJUm`u&hVEGzvkyi)~%XSZqSEhXhrAoYzUo-=k$z345_#;~Y84W%T@}L~+9}btW0pb9&R|!&CDg<; z%bjMO8)~Ug=hU)6k$nCS&EAdX(%x`8rdii#pRQ=(X|I1cz|jyrDdE{iI2wt7LV@Hm p`w&Nm1$_9I5q)@&W27)*72e02XUV$3Lt(w$JNNA<{p#5F{{-w3 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xview_semantic< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xview_semantic< D >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    assign_temporary(temporary_type &&)xt::xview_semantic< D >inline
    assign_xexpression(const xexpression< E > &e) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    assign_xexpression(const xexpression< E > &e) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    base_type typedef (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    bit_and_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_and_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_or_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_or_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    bit_xor_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    bit_xor_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    computed_assign(const xexpression< E > &e) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    computed_assign(const xexpression< E > &e) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    derived_type typedef (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    divides_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    divides_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    minus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    minus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    modulus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    modulus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    multiplies_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    multiplies_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator%=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator%=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator%=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator&=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator&=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator&=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator*=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator*=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator*=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator+=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator+=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator+=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator-=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator-=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator-=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator/=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator/=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator/=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator=(const xview_semantic &)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    operator=(xview_semantic &&)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    operator=(const xexpression< E > &) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    operator=(const xexpression< E > &rhs) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    operator=(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator=(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    operator^=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator^=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator^=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    operator|=(const E &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    operator|=(const E &e) -> disable_xexpression< E, derived_type & >xt::xsemantic_base< D >inline
    operator|=(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    plus_assign(const xexpression< E > &) (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >
    plus_assign(const xexpression< E > &e) -> derived_type &xt::xsemantic_base< D >inline
    scalar_computed_assign(const E &e, F &&f) (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    scalar_computed_assign(const E &e, F &&f) -> derived_type & (defined in xt::xview_semantic< D >)xt::xview_semantic< D >inline
    temporary_type typedef (defined in xt::xview_semantic< D >)xt::xview_semantic< D >
    xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(const xsemantic_base &)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xsemantic_base(xsemantic_base &&)=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    xview_semantic()=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    xview_semantic(const xview_semantic &)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    xview_semantic(xview_semantic &&)=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    ~xsemantic_base()=default (defined in xt::xsemantic_base< D >)xt::xsemantic_base< D >protected
    ~xview_semantic()=default (defined in xt::xview_semantic< D >)xt::xview_semantic< D >protected
    +
    + + + + diff --git a/classxt_1_1xview__semantic.html b/classxt_1_1xview__semantic.html new file mode 100644 index 000000000..95c311e58 --- /dev/null +++ b/classxt_1_1xview__semantic.html @@ -0,0 +1,696 @@ + + + + + + + +xtensor: xt::xview_semantic< D > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xview_semantic< D > Class Template Reference
    +
    +
    + +

    Implementation of the xsemantic_base interface for multidimensional views. + More...

    + +

    #include <xsemantic.hpp>

    +
    +Inheritance diagram for xt::xview_semantic< D >:
    +
    +
    + + +xt::xsemantic_base< D > +xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xdynamic_view< CT, S, L, FST > +xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > > +xt::xfunctor_view< F, uvt > +xt::xfunctor_view< F, ucvt > +xt::xfunctor_view< F, E > +xt::xindex_view< uvt, I > +xt::xindex_view< uft, I > +xt::xindex_view< ucvt, I > +xt::xindex_view< ucft, I > +xt::xindex_view< E, I > +xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > > +xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > > +xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > > +xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > > +xt::xstrided_view< CT, shape_type > +xt::xstrided_view< CT, S, L, FST > +xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > > +xt::xtensor_view< EC, N, L, xoptional_expression_tag > +xt::xview< uvt, S... > +xt::xview< uft, S... > +xt::xview< ucvt, S... > +xt::xview< ucft, S... > +xt::xview< UnderlyingContainer, Slices... > +xt::xview< E, S... > +xt::xdynamic_view< CT, S, L, FST > +xt::xstrided_view< CT, S, L, FST > + +
    + + + + + + + + + + + + + + + +

    +Public Types

    using base_type = xsemantic_base<D>
     
    using derived_type = D
     
    using temporary_type = typename base_type::temporary_type
     
    - Public Types inherited from xt::xsemantic_base< D >
    using base_type = select_expression_base_t<D>
     
    using derived_type = typename base_type::derived_type
     
    using temporary_type = typename xcontainer_inner_types<D>::temporary_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    +template<class E>
    derived_type & assign_xexpression (const xexpression< E > &e)
     
    +template<class E>
    derived_type & computed_assign (const xexpression< E > &e)
     
    +template<class E, class F>
    derived_type & scalar_computed_assign (const E &e, F &&f)
     
    Assign functions
    derived_type & assign_temporary (temporary_type &&)
     Assigns the temporary tmp to *this.
     
    template<class E>
    auto assign_xexpression (const xexpression< E > &e) -> derived_type &
     
    template<class E>
    auto computed_assign (const xexpression< E > &e) -> derived_type &
     
    template<class E, class F>
    auto scalar_computed_assign (const E &e, F &&f) -> derived_type &
     
    template<class E>
    auto operator= (const xexpression< E > &rhs) -> derived_type &
     
    - Public Member Functions inherited from xt::xsemantic_base< D >
    +template<class E>
    disable_xexpression< E, derived_type & > operator+= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator-= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator*= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator/= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator%= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator&= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator|= (const E &)
     
    +template<class E>
    disable_xexpression< E, derived_type & > operator^= (const E &)
     
    +template<class E>
    derived_type & operator+= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator-= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator*= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator/= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator%= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator&= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator|= (const xexpression< E > &)
     
    +template<class E>
    derived_type & operator^= (const xexpression< E > &)
     
    +template<class E>
    derived_type & assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & plus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & minus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & multiplies_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & divides_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & modulus_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_and_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_or_assign (const xexpression< E > &)
     
    +template<class E>
    derived_type & bit_xor_assign (const xexpression< E > &)
     
    template<class E>
    auto operator+= (const E &e) -> disable_xexpression< E, derived_type & >
     Adds the scalar e to *this.
     
    template<class E>
    auto operator-= (const E &e) -> disable_xexpression< E, derived_type & >
     Subtracts the scalar e from *this.
     
    template<class E>
    auto operator*= (const E &e) -> disable_xexpression< E, derived_type & >
     Multiplies *this with the scalar e.
     
    template<class E>
    auto operator/= (const E &e) -> disable_xexpression< E, derived_type & >
     Divides *this by the scalar e.
     
    template<class E>
    auto operator%= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the remainder of *this after division by the scalar e.
     
    template<class E>
    auto operator&= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise and of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator|= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise or of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator^= (const E &e) -> disable_xexpression< E, derived_type & >
     Computes the bitwise xor of *this and the scalar e and assigns it to *this.
     
    template<class E>
    auto operator+= (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto operator-= (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e from *this.
     
    template<class E>
    auto operator*= (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto operator/= (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto operator%= (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto operator&= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator|= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto operator^= (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of *this and the xexpression e and assigns it to *this.
     
    template<class E>
    auto assign (const xexpression< E > &e) -> derived_type &
     Assigns the xexpression e to *this.
     
    template<class E>
    auto plus_assign (const xexpression< E > &e) -> derived_type &
     Adds the xexpression e to *this.
     
    template<class E>
    auto minus_assign (const xexpression< E > &e) -> derived_type &
     Subtracts the xexpression e to *this.
     
    template<class E>
    auto multiplies_assign (const xexpression< E > &e) -> derived_type &
     Multiplies *this with the xexpression e.
     
    template<class E>
    auto divides_assign (const xexpression< E > &e) -> derived_type &
     Divides *this by the xexpression e.
     
    template<class E>
    auto modulus_assign (const xexpression< E > &e) -> derived_type &
     Computes the remainder of *this after division by the xexpression e.
     
    template<class E>
    auto bit_and_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise and of e to *this.
     
    template<class E>
    auto bit_or_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise or of e to *this.
     
    template<class E>
    auto bit_xor_assign (const xexpression< E > &e) -> derived_type &
     Computes the bitwise xor of e to *this.
     
    template<class E>
    auto operator= (const xexpression< E > &e) -> derived_type &
     
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Protected Member Functions

    xview_semantic (const xview_semantic &)=default
     
    +xview_semanticoperator= (const xview_semantic &)=default
     
    xview_semantic (xview_semantic &&)=default
     
    +xview_semanticoperator= (xview_semantic &&)=default
     
    +template<class E>
    derived_type & operator= (const xexpression< E > &)
     
    - Protected Member Functions inherited from xt::xsemantic_base< D >
    xsemantic_base (const xsemantic_base &)=default
     
    +xsemantic_baseoperator= (const xsemantic_base &)=default
     
    xsemantic_base (xsemantic_base &&)=default
     
    +xsemantic_baseoperator= (xsemantic_base &&)=default
     
    +template<class E>
    derived_type & operator= (const xexpression< E > &)
     
    +

    Detailed Description

    +
    template<class D>
    +class xt::xview_semantic< D >

    Implementation of the xsemantic_base interface for multidimensional views.

    +

    The xview_semantic is an implementation of the xsemantic_base interface for multidimensional views.

    +
    Template Parameters
    + + +
    Dthe derived type
    +
    +
    + +

    Definition at line 254 of file xsemantic.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xview_semantic< D >::base_type = xsemantic_base<D>
    +
    + +

    Definition at line 258 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ derived_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xview_semantic< D >::derived_type = D
    +
    + +

    Definition at line 259 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xview_semantic< D >::temporary_type = typename base_type::temporary_type
    +
    + +

    Definition at line 260 of file xsemantic.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ assign_temporary()

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + +
    auto xt::xview_semantic< D >::assign_temporary (temporary_type && tmp)
    +
    +inline
    +
    + +

    Assigns the temporary tmp to *this.

    +
    Parameters
    + + +
    tmpthe temporary to assign.
    +
    +
    +
    Returns
    a reference to *this.
    + +

    Definition at line 698 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ assign_xexpression()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xview_semantic< D >::assign_xexpression (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Definition at line 726 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ computed_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xview_semantic< D >::computed_assign (const xexpression< E > & e) -> derived_type& +
    +
    +inline
    +
    + +

    Definition at line 735 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ operator=()

    + +
    +
    +
    +template<class D>
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::xview_semantic< D >::operator= (const xexpression< E > & rhs) -> derived_type& +
    +
    +inline
    +
    + +

    Definition at line 775 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ scalar_computed_assign()

    + +
    +
    +
    +template<class D>
    +
    +template<class E, class F>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::xview_semantic< D >::scalar_computed_assign (const E & e,
    F && f ) -> derived_type& +
    +
    +inline
    +
    + +

    Definition at line 759 of file xsemantic.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xsemantic.hpp
    • +
    +
    +
    + + + + diff --git a/classxt_1_1xview__semantic.js b/classxt_1_1xview__semantic.js new file mode 100644 index 000000000..51e5ada08 --- /dev/null +++ b/classxt_1_1xview__semantic.js @@ -0,0 +1,4 @@ +var classxt_1_1xview__semantic = +[ + [ "assign_temporary", "classxt_1_1xview__semantic.html#abaa88fce8540e36bf148047aa3110af9", null ] +]; \ No newline at end of file diff --git a/classxt_1_1xview__semantic.png b/classxt_1_1xview__semantic.png new file mode 100644 index 0000000000000000000000000000000000000000..b006829079cfadb8beed8ce61accfe006745ef3f GIT binary patch literal 24227 zcmeHveO!~}{(ogfb`nm<%2XcmI3Ux&d;nn#j#=VFprRxcn5IJVu*rbUF}787Bu@&u zsRPEKL?uE%c^YGkiI}(sLq!;{Cy>FEv3tVY#u(dv*FCkUZ@-hj^Ll;1-{0$1`@?(A zf%kn~pNIG7{ds?`!|z3eE_i;)^G`hS!~*n|cRqOHiFx=Zo^X2gxq0A|@D)$ag3HqP zwte`n-EIeO?@Smn^DmcgSiR!FtIWhi{rPnwA>Pb zSI{@Rw)%!pXQ$tX|9Ij!J8&Tpq8mfnPH@a(G=p zfkd(m>d5y9fy{c9&9)Z)xWj%{*w#|AYlB<)@sSk#g@Fs~J$Xy>7R=5NNt}`cW*WcK zd?|gSl%Z(N@sIrI`M-u}$ z2N|-D^5NT_oL}VHsaZkiIVbfDhT~cLQ*b*w!nx6srr?qBuUJpjB&a;#?*)ZBj~QOr zbZ0{+&B`7-tLJHMQ2VLgTy35RA~K|L@!fxoW8{!f8}ZSM!PW-N{KSx# z6)VQYdr1sga~dC$81VY58h!5d%w?RqTYk)uZG=~6q6hf1(`gMdG$ihVwv!bHn&k_h zk*IbhbliqokSCjDXy?4)L-3IVcwQ%Fcwgchd(?iMN)77zzoG-o@E^>Y8r57ad z&o_C2pKf>j^ncq|+oEDl?W@=qbBgqjwiBli6^O!j!3M79A_}+un=2|E?~9&Fq_Xkp zeNMjmDI*inT@5c`JRV)EzoD{?yvb0NCgE4tly8GJ%=j|I0f$Cr()6NzZ}ZN3A^1S4Ec`fn$`v-% z00uH|nzEkdMHr3k)6+A#MXg4sYN_A8xNdypQrPywPssLJQSb$p40}4r<3^10^R|=l&6Zci#ctQt8(!y9kooyd zCo-EwbxyE3MzUoq>e656cp=`|mxXuEWpmhy)UN|#@8E}^H+Za8tEaFI{twEx`JmrG zL;Jy7-(uPB!J<94x6)nUe-Y!+YaYaj$Gh%$v@;vqdJg{ci!Z)74%@~NCsov)F@g_=1;VYHDhY%j*RfOc z9A*z9vp;i(G6Nqpd{8kwZJm)G!r0?{?&;OtnE}<2*MYZ@Pv^V5)F`&H8^`-10 zZ|gFQy1r|CW^9%ULM6gT#YeA|k9u{xf!ixY5%Ia>5qDD=mWD(@>Y^Xh)aR<&GsV&f z9kytuVe~LE8Gp}n+gsPD;6Cesd+5Rt#DZ_e3Qofx={-d|> zCVl|#rv9@pz9^r3{+VZYf!CFvzkpVC1~@fuNQh)x4?$Tp@-4!Qln3<$$zQs1H8YfKXyWg zVD7D37cl)9jwwsKA4k2{oiiz!k=n~oa(YL0=PuBc^qlKz5L=w1gw5LVJSN*;?H$9c zT!3>5$vQ)JY2wdlzicECi%dojsJ>Osrwoo9mr8Z+$^6;gPODfQNw)wSNDdM45hi9h zo_SQgq4cFwI*lLS>zCayiHvgaSZ}9VjK&smFU1R;p1) z;MlsoS2h`G?_>sdcokLvak zLb%#_@ld+yNl9mQLJv|Xr#2bXw_6g^`J$41gsH9DzM1H=o)` z17LzWNYJmO;jU3$<4QxbOi$u`8WbahQ@p|=T?^0rs!M`NDaQMk3hG?5!+9~#x|!+K(bM_{kC%*XDrmtZSqPGc&eKFcFB+My7IA44try|j{{q~89Z%@C zb|))FiQO#Ot)XUXb33x81HZ>!?Y0f_RuIw$Nfb%fzR`PEn3kY}m$W@{*&d7jz`?Kd zC&i+y(UFgQJ5oZ%&AE4zvXHbZyl3RuHUtR+0*@Bh2QmB8e;|bR5x*Z1(ot$3dQE4D zc?dnV47ML9AthzV&8sZm8tW}=u)imJNoXy_gfVhzhDU@bNuJk>fO&w2C@g$#7p;W2c=0f8f)Ds z*dbrgq<_*^*o)UMq^|uSpYem7yIPnq;L=2-TZVd4HyZ+vmM%GXK(6Uf#$_^OeBB+$ z$#N~%9-aXkWw|gl@%xcW6m+Ag^gF~bQyfe!E{+@@GS2J<*q6ogTV-z5xmjw*_zL-cTBVX!YWO9s(?LO9oEE@Y4t6Z z41eYhT^dp(?-UUgakN9BQRKvc>92GfMC@mWdcO&p{hqd(OO{WJU9G&B(QLGXdt65K z<$^@a2m75#a#aR%Lpz|QWP7{a3*hIqKY0S+Jw*C8ll{N>ap{=9vloY(>tO(%``^RHI-)Zte!m-Invw!SM!sr!l>RcCz|hwVp`yKWznD zql9s-1{jB%hubUYDW&X{LJ%8qf#^ev?G+4F8Eh8abW49fvNP1fb|a!T#wu7`2<^IrXUntPGw!7A1c}uoyD#};JW4wgTv8e}< z(>EA$vRK=T^RDmW^|Wy8M>J9K1YD`{pvq|Eb?oq^txvbxlDE)Tf+x!?0>z9)miv_LUpfZuTWe%Ia9wZmy<*sPy&t)5@O^pBemj<^$)_yfVZJd? zfVHscJ84&Iw&Sk0TmONhHPv*eCpoi<*n@S1kY?Cz)3H~l0>6FWwl1~2aW5`e*#~m) zx%zzS0-~el$@k>2EArY6o&!FXSA0UId7FsO#M!^W9PLCF$|JFsVy0A15wEYS9Jn8W z=ai;ddpGC?Vs*9ZYUY~g4+T#HZCNUd|yw+orhDfH`x^MQwshT zq+r{+d@pl8NWqv*z=1!>tCQ{Tk6Z9VJI?IH;6;nD*p?;!<;fU=+;;-xJ`QVlW`DEC$I`ZosM#iKpiuwnU`bZc0skJX zIJidFJaD9^=QuN*Sdwlz1`wBRtE>C%?6dmXc=N$t(Oc5UY#XJyNFi3<4&SV!EI?2F z1FWta$eYBLkf-S?9XEBYkif+d=`ZMgLumAt8c?2q=+&`Vw)>TtE|&~?i!S6P|99~; zwG*%^TIv57t~-Z& zP%h&FmH?Ebg-+S;EB_8ht;eDYKn+Akkcobt1FQ0#r?rPcLLA*kyDX{^n5vD5(UG-2 zznzJ5#VvX_gzzXxUNcLDovi5R(Q8v2TQ zf0K=+>NE5-0%w(Y%EBPyMFr&=E3C@Y#2&?-QzLcNAwQNaZUt6;g;O*dv0Rt5&Yda_ zDUk7Z5zr{{=}KtAYXv%KqHeoX|E<0}q5ha^mB#6YsR_zUWSsQQdBl z5LLM;g8{m@NK}pTh|o}BTGULrrd_B2PS2%+-8(geB|AEHGp9xJ6xBg|E>@$ABTEX~M0e8&{hgPyuZdmZ~P zmF;pgND@?!Fo;VXtMRD((}VvV*++>7WM3^YF^b+bb>}l>>9j^SZ6EIHHFhj&F1~l? zDfCo6%yGm5C#9t|-J4OewfS^Q*E4h#1}*?2w?G^4zKkD8ui1CdEcW`T#;l-+j>+vK zDR(c~!I8V%9nNz>_!|?Kp@YxBVRz45~gmo5s&$Ag|M*!YU`ishsx% zMV>+oaS1oN%)I)2%4#laOSSr{=I_uVJAZ=J(Ilb;g8=!r0niDb$;p0(`u8;m5P zr#40{0z~8|-KS(xE=Gho8^+`rb+Pmh=|TUF$aq9_0PF}LVDq{cMetSKQvl);9O+rxz% z4t97z4JZ%6$95`4#8T5{6W0f%O&}7z?eNQX$_?2xW+$r*XgiDFWufeM2cx2F^ zu98X@k|}urPBFF)h4npD-bLU&?g)u9$C_r^h>jE^aZ#;XA>-OA!Qa#<>2@((>sdT3^L|b-2ySMt*l>?}zw%*{vDVN4Y40-} zkLN^ALFw|?Bz}i>6>;ryC5eb)gcRLU7LJ0t78FK5$V*2f+V3TO>Q0q{WYhJWpk!&y z)n5C_hZP@-&y%fNQnHsQPVELs-*&vNhImA8fyLOx=^$5*n{-4&313b~ok#StL58vjIZ zVItg4SxhHyn6;PsP^0(KgUZ38XH~15=TX=cze*g=#kYgfk;=3?BO4b5lwJ%le1DpC zuCbh5Q-p{t2fI*`0;d!o=4*tVjh4Q5s)-Pt=W3$jnexbjco2S3G5C&Ut-?g9DEzOc z@(V0?|CQ2}n6AAh2KllBbp6GP6OmGWUM%t{39XYQ?8v@(r!@m#174UodQg7m+s!+y zI0vD@Dqu{U3KeFa%AuVB;dwSJ_XfpPA6=Onpot)v=*Utgb8q6(>wHxnQerQ8%Ry6! zRnCR%n@B-%Bir?Z4evDFRRwajVogTl+Pi0~!|~nB9gG|^DjEcz8We6P8XpR0jBi!c z@clR%ddlhCN?`g|;H2~+0Em?!6+g~3`DbFBxCI2<;F$k~4&;B37c9=gIc3xsQm(_IYnUi zR_4CgDh_7#ayXzB-8#}JqUE|tzb@|XFU~sI9lnj(?z|{y=2B1r!tOAm8>>uoS)7lX zwlT$2l^Uy)c@hJl_wgKGUJqS0A264ag`PxLDJ#2?FFSF7_B`)yT3s!Fs`n*A`rTA~ z_bYH~i*ixbcUXI(mo)H^Ua^Y9yB4+Cbe2J;P$<@Mx+>uO!kfM0v@o~=mtHB}%bE4! zg3#idaVm^X8(n=qKgXJ6Se+^;7hT6cLvx8*`T0OMD!*);h=5mTW-a&ktkq zQnsWkCGlq1c2>F%F`QlwgO6?oc>LtZB_Gj)`oLc?2rj0lM~b1(e!k*sfb1^nP{7_Y z9%J1f+2bG1-u5$o!`^hMTONSBI)v#$j@|nhE4`H8=;g#9gN#FNBVgO?7gVU>$z3>%DRuz!kxYPVt%J9_Xx~By8h8XZFjLOjNVm?;SU1RxkcbF zBn-IEhI)Gm1u$$~=m}bkvp@J1xd#2yi-{;5S`A^S*3@WaJk?4ZB=#TNaJ!zEKE8is zpKieRER)T&fPUnMU@e2&0rKQhIZ*TAySIA$xM4eaDoBi%zQAyFmn7+4MAu2yG3?R- z@vdkf-Qj9~%eL7aC;1eA&lTjw z?0>airfC@Amp_>z5WPK(vWiw3N|g%Po^b6L!`OU z>dU^0{erBW3P>Kz&9v56)wu>;1Tvec70x5pejzn8e01IC?EJy?9Nqq&Ue7b~XRr*i zVhE(H2_XZykHC=a@2+9$QwTsNq>xsN-)H-B3K6AE^*~Q{i2+v3e)EM2KyD}{Xh?Fx z2xLyQlykR>T(_ME;m{!(11s@Z*Et=KT%he5V$7jd|9>_t-7(qEonzc_m~7~DNO*qd zxl8=GOayD6Agck8>LePDE*mV-W5khk8qDt`ILKSe`yl#cfaqguX#Z@kE$to|{;EgO zRZ)JF$xpN_jdc#Fio;4&Lp`8bW>&+k6$39*5{@rF)+mfSJ$Q&q=0;#yyXirP;V5uf zmA8qq@Minwy!76#*-ST8?{3RA1sXy-dLbkR*}|*7z2+j@Si-E#Asnw_41;L3cuurZ z*TT_CI)(KD4Od`QT7c=Wc=qU!$2bTg_QBmJJdpi0)fL5F7xeG*#t3oP({7XPgR@7HaHIe7RF(N;j=04eDwq8gGC>Dnoq0(6x}_Yp6bvWpRR zm=z8O*tKhF5$_=HLq?7_&`GFDkw?s+dnoPYFfn$v(G5x3iPXx~by70>R)S{u7^jl0 z>s1Xc1S@Mc{cK|$M4rkgF10;7NR+yE+XIZ%4KP+c?(JsjwZLe3Cq}X{-mQ^)i5+uq zycGZ_u%F4dRSH{md(*a*a=vX#r&Ly#MB2+ui z`(@bD;FsPy`;Gh=cQ4Z!2dTKwoA~2|7q_Pb`~L-l_Wx9b2-FvDbfEBx?E9aRrv3+o;hbI?;5g@C z!*}uM5728K=(Yd7_%dq-2nkY7S;u?DfE2d!NddEz*=YpnS>UqkcY+SG$o{ghOBn7P z{1IS;y7ABLV&~>n;(P@*q!yVH+v<`)D%$@`TM{n_iGc9$(1S|h zSalo3D%!%EgsEogKqj6oBkUvdGoATK_bMF0%FIA!roY@x)saZ=^|Kd5y3UPK^$(&H zL1%oxI(!LO2T%uAz$`#wz>%3f-j?2mb3IQJf|De&YSGuJ5iSh!xFh+2-}|fN7l&t6 zOlWbe9rPdpd}9jWG0Fmj14?}$bW>M_y!mPEpP3KjuHVb}?m$U~kcgK?)>!sn#ZBbH z2yPiers>JirYr-OuKE$y4%)|(Nu~<>5YSZ?NN8IjXxx6It#{zJ z#Dm}A3T0`p##7DRWmD@sTlh2!vHw8Psyy%5qgCz4nNiyQS(bC3RhpqTSZ+iOZd6`2M5kLCW{r9sH493F zrGp${RfxvFl0|@8gSJ3#^eerIs6mi~Z|rG7NcXKhBblFVea{3Mobw+vILm@;JE(Ru z&7t82{glj+-Yo%nL)OKbD~(X_D&C9r@e|_{(oV>mLn*TEnb0+NO(gm888QQxl}{e1 z<0|%bhXOT(8fcX;fm{iA)%c(ZeH-hnqk_dMiNI!hPu{5wgtv+{E{(5t9y5NF~7ZLZB zG7QQ(MfT+aw$i&wF&(uU^>#l81SkM<@vtD)lT`PK4(7;<$!B=)XDBG;EKz{^ zFDZv6$LjSn)hyAE!yA1~F{Rpdl_jM_w-#8o5cEsgLVi}@r|FO}tQm8?3uruDU@Xr9 z-pP<{1|{G`A8zb2!mK%@d<|{e1`?mOOXbYC;V~QQJ>X;iwrK_35+XQ-7=ST+V$mpF zRTi#iK?S?8kG@UhC2Zh?dH7I4 z|0tgF9fDg6k<Bda&@f)q^J3*8v5*d~#}p=3Y=9 zGpw~v=9=$YvI7s8k||5JFy-pcGg)_P>J(yGM6!Uj%Eh}Fcc9g5-oa}y)CCosHR*gx z51>pLLPO5^j^apVNrwJo&1g*m6zUQDpo>LJ15Me=Z?fUXG>ta+E>~tRK{`cIXFLvKbMzu6e&266L6>zp#em zCG#M*${p1XdZ~V8S!})}GDFua$rm^jNSJFQI+eeNZMma}>tO5zlG_U-ueFYkt+`mm za}i-(Q4tUH3ZVlb?Y2|W2Lj-@QXc7wXpU}BH>cRcr@Hw|J?yMBD(XpDB+PzVK+b5|{`5_RIz;fY@w#-xgxKxy2F@$lQ5ef=Z3=4yaMS&}CTR z>mTDWvF>cVPwUFP#C$ETeR!ETI?z{hGT$LvC@#6A4>NvHOn5%3w43sK}(&hbmz+0NFa#a*IzA+%aelgcHoE=w4TMQ zh{363p0r`)m~y*d#ZXc!`2gGl#vIo&)2s{RRHTP>2|@6WXb%CvDSpB#fqG5`mR=;( z5oiSjD{4^`e~{8p5)#JNB=htuen;8mg(ATS=)Cw zRZjVsuxD(>$vX3Qjzcr}o~3+1navvLP08}+YSR5nXKEkm_7gGfWk2=CSqH=4jE)+?$|h>=efJwVm=g)zxM;Z=JhMK?878E$Fw8xixVE;t3`o6$J~^7< zj}`NDPp4=8vnPNzpO9{Z<@*W6B_4YgnTMTOHw1ZuK;}*JbaqLb+Yb(Qs}CSr;^dL) z8NViQGqAX;(YEGc|1IYc}Ep8VmOCa~NHuWgyU-yAYFc7(^=Lg&TD8@*fL>6;`P!GO?A z5gv+vE4xoU@?lJuC6ZzVia`pTe>;ToIBUp~4QxLD^02k*kl=)@3+1=Sf)oNBqQ^F9 z2Dydq1Q+UH6z92ks-b)N)H=5oeu(X*QtI(YCx}`axk+7X2|9sY80SLbT_OOFE+%al z&Mwujb@h*}s`9wowwF&Mn!nL-%flddg6S6uet#fJ47v_%!4d;`k`eNNdJ6!MZ`UADn>)y*ais z%JbMkl5YX)bFPb#&?IL+Q?q#xDMV$R0Mj`shxCDmYdj_tnKdClK;N@e5XCoNP?S$` z(rt!&1Hj?r2iMohu;=$SE2 zoyKT;!e;{ikNf5d2eJHa?LX%t>TcMZPlT?`1_IyV5jJax3HW2B@;0jjVJI=9V=Jq5|dMQeY(wa1Oqa zTJT#rSh*Ei{UYUFVjvotcKIRvxC}F$^q^sd`qPactJkiF=jW2uN6RJFxBL@j{43CB z7+Qzj1qav_Wr_9MO@Ls4b-Ui-px*UxI(e6+INXzc-)Pe+ zcehWDW?c6Atliinnmo}f-&GwI?4I2^r5)TykHuy3km%rz098@0{xXABoJz$rN8G(Q zycrla%RhG^(6&2tbBl#+??U9y^(m+bOJ7lPyLtJOD;$`$2f+avbrp^#*+XIX_sMhj zEoy65RYMK@w!2vp{iIc1x^NB~LrZbHCaq80_2TbF|@zGeMC3eBRo){9EKv-7n(j0X&HQD0SgoX$v_0zD`mp&{Yk5k-79~O|u zK=KOTheP@rx2N!Xyj+M}@* zu+~EHpAawA2uAF={?Sqo%pLsYvcDjNiEv@=9RVA2zPWwAhDK}**$VkD+Cqrr3$|{6$n@cK-qPQclgfxc+KbR z(Ouuc1oD;r&tVp58rs*N>$*?a!K)ZcN|G%~6BO9jaw8p5fZzZ};UrE6?6tl=6NX-r zHj;^b!1;mk>gTFoKY~5?13;AqV4F$nc%H&2I4+p!$j;5>ByY5>a~5ui^mACF^u1VM zqbOrhVc=E z@MLB;(q!x6q-Bn2J0c!%N_Jl^uaXvc1oCeF4aqA8E{;Z2c_Wiko3hXBv3#0rL=0(+It6QR=9U|1Jbd((Lp-CIEQqE1+O_PmDxa& zr-;eZR=r&94JHrP9FeGeI^++vu1HK4+5Di^X`NH+9M$FuY@4xyqoE#T%i)?33SAD1 zpLIa<+6u!Xu4U>qZsjgXsa>;pD5)PVcX$FoIfi4`;%Z7q0Xp)?b_^=F{;NZIwLRZD z=}`AYIw*>|k?DcbixDXrsJ(V+l&M2P4xI?KY2_w=X#!zA2b@tdBkL+}nHXrqEA+=z z3VXlDQ7FvYGy`6}o8Mkk#YN0Nby$zQ)cM;#c)*S9+xqxi{o4h zK_qlyz_X-lOGy6Ah-mVw^*80;1nXKCT_48zAMp>xqSN_2R$;dlh&uK6v=``PLF z+M3J5d)PG@@qH^jYO(?nEb}9sQpIwrKQXE~djerz2xpQFpv2)ok;MF8Q;Z7$CYom} zFEco*8@pDz#W8uVDFjbq{;uaaXq6Kt6f{S+(!KxGrT^E1258IR*7#`BdbGmCS{Uz4 zQxiGfSbvI2A;=?T^m~NN@Di<@N>3p?&aasdkGI5D6FaesMrhz@5y;HTSEz=%K`Wdz zku*MV-krlQF593BaBoPyvrg^W4aO-Jb2-bW4^|NANN+Bsm}6ohvF?-OA26K)W&8AZ zn2SwQc5Sa;bd#&e^i&E6wf1D-i0*H8+$d~GIn^^Hd-|xY@nG00Yr0J3*K?iE znkcywkLT$*ecktmlKdt7nNxIC2pr+x5>_3TxpDk^Ze?BGJ+R0Mmd;aQY+b4+`9^O zXZvHEA-G|m??$_03U}SETs&fVBcfd8IWXYdnR-L=L%hpSWm^mBQu~KR;JKBa#F@Pv zXw&$73>eG;qsbm>yCav`Hsi}X8|U3$eZeOpRkp5fd;I`uZIqi$ti!7L+5q(?|DK7o zmeRikqPns=3@>);HCboFYgv}~l2Le_`c`TCjc@0wf|%<%G!xsh4qqhtoab^hQ7*N?!`gEnt5-rnJ|jXnXh z$NpP=(5+v9JpgUSe|xaZql0ArC_UVw<-o(ZX|!az>>_e{RDz*ztAJG}5un~nAs=qH z>}SDzs&^#xYRA5az=kQ~lxTP~RkGju{b}v{9V50++R#&I*!u=x1|1v^!wG|K_W5ur z2~t~dEec(-89){k8Q<}I-`{*HiMNsBEK?#^QF%m$Hjs^-_gj`e5}*J!^gCdO=s4I$*L) z82(rIK$vj4?Azw3EUAjB9l-IP|CAxa*0uzu9=ciNn*C&C38yz4PK9%Sc=Ez-pi>+(&cZ`H!~wq4lPF9E)82HK z)8u+!F|c4CMZ4U@O3cc) z2d@#ai@@;}fJ4;7g73)2!X5&*SXr#ZH8*FZ7d&l$jl0-!a>;%=@j{B68N4D(|CMud*lvP=>h1D+uhqnkjAys+dyG z>KiKthrD%aD}IhGf9v(@l#8+^oo=88OAwLY!j=Y37P*I6*x&iF|D;=ay(R{`c4NG^ ze=1zit;gUsSBz6eju&U;=o__}Yqo(wsKKo9IW%2RWu|TLJeIyQJusELP6Q-qAL8h- zKyh1o8r1yRC0)ghU#n)psZ&usXHT^wnnGrCgeVfMwDsHMICM(8Br9Mn4fQ!&G~kL4 zO!QBTXIm%Et`C@gsw4owJk7ZkE71^~#dW7-f7WM@b)d!iO)#@PV(UY2;Wz`&z#|IZ zgX0VfY)QY=vymClQd;k@pK(>*?%1)iDDU!YXI~so9H9M6a|+6J%1@YD-Vl=rnv>~d z2$0KM-h@I+=Vbs*Z3O*ca(V|2HAH;JQ+>}nLQTYe2^d)VqUB%v2OYuY@=w8LkqF1& z)$PukYdBR83cYK@xa~#1}I5Z0}>t6^6~_RAk_LPkt1GZnQLUl#_u?^2h&a; zJd9?}6Y>JeG1=r1;!ZL+8tl!Qnu5J`6Vw+X5*6ZHyWgCQxJi3xBH~|ag}VAE|H7u03+IhZ-B+lmI5e6cnzGfhm{_Yg5&w>dQM8egJi@0LU|{i zBa{~xf%&Pg9ilkU`h9NXgu?GDFq|Sa?wS5u_x`6^h*!h;YH6{HEME0j?eJIf#k{}7 zDYMDf%=<#R!O#U<-?oEX+6En&wlDvJCXJ-eehXJcPYL7vr|ezGNDRPjhr3E;smpzR zyOrVe*-&_+o`Fl{h{v${Kbo~CpN2WCtJW$&!6*%<5QW=8Fbgk@rMHZXooPQ*;Q;Q7 z>B#N)!s3V7zOqp$SSxs0|e51LBVjUlbqN52dO zbUO_wZ(GJdZEX9x{hty$ltMcp!}%OT*a7l|Pg&?VPA*&}o@f5evln}=H*2X|T!`7P zaW97a<>6_3i(yRvXfVH64xhsoR-}26>F43aai0R6)(3?ABCu_mwREI&U*$y}yN0lv zkBAn1^fybOf1LtEB^J!ecV6v~XkRQ{2#c=-OJGYRy8(S>Agu9v}T8 z&_r-h@t*eib2Q`T4siUTvlc2gfm0d5aV;*Lc>fnsTd}AMb*@Kl0z0%d_gv#I>B>Dk z4h~d$2aocPf5^ypJI3OJ-{S5`NM5Uvh6m+VSro=ilm}-hrMs8cHQI5Fn45vA{bvbk zaGXaB{2U7%$Etk&79~ADv~DLohy|nCW>v6Xzf0W>YI7LfrKlO8kcH$%RY}$bZ=o8l zsLKIGe}=9)4!-**C-F;8W=8gFavnJ(QBK<1S(Vy+-;99a8{oi{wJ^&LB>qH0e#h+a zmj(e+3Wn@hpu1EKcb6i!LL0vHt-DHkr}P|yW5U^;mqsk?n*6fsLP$yo-!(EuzTmD) zxu{auC~W%_2t2PIoJ+4yW0|tird(mFuK|lURcBJL^x3s=GKvv`^ErE83$Ff&J*Tl` znH&6tsb0f|wvyLiIZ)R3s=lMqRc@hn+mXyqb`m{K#Vycz5?_8F9JnJLv3(W!^&B4D z`{VL6UE|a>(nuWZ6&xKN_zPYwlD~8Rb*|x(82{cq+VmNqt^Km*kYR9mNl!u+vP%A8 z`ug?I*G-sCd!fwR(e^Jbb|`4o0plNBCk+O=U)Msu}lG9ZyU=Ac(=$25{)51W|5^Rq8RtoCdHJryV&qwC_h&r2f cdHduGKWut(Fccgo{{;Hohr-u1=*0r_U);{X5v literal 0 HcmV?d00001 diff --git a/classxt_1_1xview__stepper-members.html b/classxt_1_1xview__stepper-members.html new file mode 100644 index 000000000..df260878e --- /dev/null +++ b/classxt_1_1xview__stepper-members.html @@ -0,0 +1,139 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xview_stepper< is_const, CT, S > Member List
    +
    +
    + +

    This is the complete list of members for xt::xview_stepper< is_const, CT, S >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + +
    difference_type typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    operator*() const (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    pointer typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    reference typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    reset(size_type dim) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    reset_back(size_type dim) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    shape_type typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    size_type typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    step(size_type dim) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    step(size_type dim, size_type n) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    step_back(size_type dim) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    step_back(size_type dim, size_type n) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    substepper_type typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    to_begin() (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    to_end(layout_type l) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    value_type typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    view_type typedef (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    xview_stepper()=default (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >
    xview_stepper(view_type *view, substepper_type it, size_type offset, bool end=false, layout_type l=::xt::layout_type::row_major) (defined in xt::xview_stepper< is_const, CT, S >)xt::xview_stepper< is_const, CT, S >inline
    +
    + + + + diff --git a/classxt_1_1xview__stepper.html b/classxt_1_1xview__stepper.html new file mode 100644 index 000000000..bcb1264a1 --- /dev/null +++ b/classxt_1_1xview__stepper.html @@ -0,0 +1,634 @@ + + + + + + + +xtensor: xt::xview_stepper< is_const, CT, S > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xview_stepper< is_const, CT, S > Class Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Types

    using view_type = std::conditional_t<is_const, const xview<CT, S...>, xview<CT, S...>>
     
    using substepper_type = get_stepper<view_type>
     
    using value_type = typename substepper_type::value_type
     
    using reference = typename substepper_type::reference
     
    using pointer = typename substepper_type::pointer
     
    using difference_type = typename substepper_type::difference_type
     
    using size_type = typename view_type::size_type
     
    using shape_type = typename substepper_type::shape_type
     
    + + + + + + + + + + + + + + + + + + + + + +

    Broadcasting

     xview_stepper (view_type *view, substepper_type it, size_type offset, bool end=false, layout_type l=::xt::layout_type::row_major)
     
    reference operator* () const
     
    void step (size_type dim)
     
    void step_back (size_type dim)
     
    void step (size_type dim, size_type n)
     
    void step_back (size_type dim, size_type n)
     
    void reset (size_type dim)
     
    void reset_back (size_type dim)
     
    void to_begin ()
     
    void to_end (layout_type l)
     
    +

    Detailed Description

    +
    template<bool is_const, class CT, class... S>
    +class xt::xview_stepper< is_const, CT, S >
    +

    Definition at line 782 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::difference_type = typename substepper_type::difference_type
    +
    + +

    Definition at line 792 of file xview.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::pointer = typename substepper_type::pointer
    +
    + +

    Definition at line 791 of file xview.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::reference = typename substepper_type::reference
    +
    + +

    Definition at line 790 of file xview.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::shape_type = typename substepper_type::shape_type
    +
    + +

    Definition at line 795 of file xview.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::size_type = typename view_type::size_type
    +
    + +

    Definition at line 793 of file xview.hpp.

    + +
    +
    + +

    ◆ substepper_type

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::substepper_type = get_stepper<view_type>
    +
    + +

    Definition at line 787 of file xview.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::value_type = typename substepper_type::value_type
    +
    + +

    Definition at line 789 of file xview.hpp.

    + +
    +
    + +

    ◆ view_type

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + +
    using xt::xview_stepper< is_const, CT, S >::view_type = std::conditional_t<is_const, const xview<CT, S...>, xview<CT, S...>>
    +
    + +

    Definition at line 786 of file xview.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xview_stepper()

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xt::xview_stepper< is_const, CT, S >::xview_stepper (view_type * view,
    substepper_type it,
    size_type offset,
    bool end = false,
    layout_type l = ::xt::layout_type::row_major )
    +
    +inline
    +
    + +

    Definition at line 2002 of file xview.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator*()

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    auto xt::xview_stepper< is_const, CT, S >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 2037 of file xview.hpp.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::reset (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 2083 of file xview.hpp.

    + +
    +
    + +

    ◆ reset_back()

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::reset_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 2093 of file xview.hpp.

    + +
    +
    + +

    ◆ step() [1/2]

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::step (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 2043 of file xview.hpp.

    + +
    +
    + +

    ◆ step() [2/2]

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::step (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 2063 of file xview.hpp.

    + +
    +
    + +

    ◆ step_back() [1/2]

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::step_back (size_type dim)
    +
    +inline
    +
    + +

    Definition at line 2053 of file xview.hpp.

    + +
    +
    + +

    ◆ step_back() [2/2]

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::step_back (size_type dim,
    size_type n )
    +
    +inline
    +
    + +

    Definition at line 2073 of file xview.hpp.

    + +
    +
    + +

    ◆ to_begin()

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::to_begin ()
    +
    +inline
    +
    + +

    Definition at line 2103 of file xview.hpp.

    + +
    +
    + +

    ◆ to_end()

    + +
    +
    +
    +template<bool is_const, class CT, class... S>
    + + + + + +
    + + + + + + + +
    void xt::xview_stepper< is_const, CT, S >::to_end (layout_type l)
    +
    +inline
    +
    + +

    Definition at line 2110 of file xview.hpp.

    + +
    +
    +
    The documentation for this class was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/classxt__simd_1_1aligned__allocator.html b/classxt__simd_1_1aligned__allocator.html new file mode 100644 index 000000000..79418170f --- /dev/null +++ b/classxt__simd_1_1aligned__allocator.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt_simd::aligned_allocator< T, A > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::aligned_allocator< T, A > Class Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class T, std::size_t A>
    +class xt_simd::aligned_allocator< T, A >
    +

    Definition at line 91 of file xtensor_simd.hpp.

    +

    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/clipboard.js b/clipboard.js new file mode 100644 index 000000000..9da9f3ca4 --- /dev/null +++ b/clipboard.js @@ -0,0 +1,61 @@ +/** + +The code below is based on the Doxygen Awesome project, see +https://github.com/jothepro/doxygen-awesome-css + +MIT License + +Copyright (c) 2021 - 2022 jothepro + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +let clipboard_title = "Copy to clipboard" +let clipboard_icon = `` +let clipboard_successIcon = `` +let clipboard_successDuration = 1000 + +$(function() { + if(navigator.clipboard) { + const fragments = document.getElementsByClassName("fragment") + for(const fragment of fragments) { + const clipboard_div = document.createElement("div") + clipboard_div.classList.add("clipboard") + clipboard_div.innerHTML = clipboard_icon + clipboard_div.title = clipboard_title + $(clipboard_div).click(function() { + const content = this.parentNode.cloneNode(true) + // filter out line number and folded fragments from file listings + content.querySelectorAll(".lineno, .ttc, .foldclosed").forEach((node) => { node.remove() }) + let text = content.textContent + // remove trailing newlines and trailing spaces from empty lines + text = text.replace(/^\s*\n/gm,'\n').replace(/\n*$/,'') + navigator.clipboard.writeText(text); + this.classList.add("success") + this.innerHTML = clipboard_successIcon + window.setTimeout(() => { // switch back to normal icon after timeout + this.classList.remove("success") + this.innerHTML = clipboard_icon + }, clipboard_successDuration); + }) + fragment.insertBefore(clipboard_div, fragment.firstChild) + } + } +}) diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/concepts.html b/concepts.html new file mode 100644 index 000000000..fc7c47280 --- /dev/null +++ b/concepts.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Concepts + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Concepts
    +
    +
    +
    Here is a list of all documented concepts with brief descriptions:
    +
    +
    + + + + diff --git a/concepts.js b/concepts.js new file mode 100644 index 000000000..5e625cee9 --- /dev/null +++ b/concepts.js @@ -0,0 +1,24 @@ +var concepts = +[ + [ "xt", "namespacext.html", [ + [ "xscalar_concept", "conceptxt_1_1xscalar__concept.html", null ], + [ "xexpression_concept", "conceptxt_1_1xexpression__concept.html", null ], + [ "fixed_shape_container_concept", "conceptxt_1_1fixed__shape__container__concept.html", null ], + [ "xgenerator_concept", "conceptxt_1_1xgenerator__concept.html", null ], + [ "has_simd_interface_concept", "conceptxt_1_1has__simd__interface__concept.html", null ], + [ "has_data_interface_concept", "conceptxt_1_1has__data__interface__concept.html", null ], + [ "has_iterator_interface_concept", "conceptxt_1_1has__iterator__interface__concept.html", null ], + [ "iterator_concept", "conceptxt_1_1iterator__concept.html", null ], + [ "with_memory_address_concept", "conceptxt_1_1with__memory__address__concept.html", null ], + [ "without_memory_address_concept", "conceptxt_1_1without__memory__address__concept.html", null ], + [ "xbroadcast_concept", "conceptxt_1_1xbroadcast__concept.html", null ], + [ "contiguous_view_concept", "conceptxt_1_1contiguous__view__concept.html", null ], + [ "strided_view_concept", "conceptxt_1_1strided__view__concept.html", null ] + ] ], + [ "xtl", null, [ + [ "integral_concept", "conceptxtl_1_1integral__concept.html", null ], + [ "non_integral_concept", "conceptxtl_1_1non__integral__concept.html", null ], + [ "complex_concept", "conceptxtl_1_1complex__concept.html", null ], + [ "pointer_concept", "conceptxtl_1_1pointer__concept.html", null ] + ] ] +]; \ No newline at end of file diff --git a/conceptxt_1_1contiguous__view__concept.html b/conceptxt_1_1contiguous__view__concept.html new file mode 100644 index 000000000..c546a792e --- /dev/null +++ b/conceptxt_1_1contiguous__view__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::contiguous_view_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::contiguous_view_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<class E, class... S>
    +
    concept xt::contiguous_view_concept = detail::is_contiguous_view<E, S...>::value
    + +

    Detailed Description

    +
    +

    Definition at line 293 of file xview.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1fixed__shape__container__concept.html b/conceptxt_1_1fixed__shape__container__concept.html new file mode 100644 index 000000000..625e7b668 --- /dev/null +++ b/conceptxt_1_1fixed__shape__container__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::fixed_shape_container_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::fixed_shape_container_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<typename T>
    +
    concept xt::fixed_shape_container_concept = detail::is_fixed<typename std::decay_t<T>::shape_type>::value
    + +

    Detailed Description

    +
    +

    Definition at line 509 of file xshape.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1has__data__interface__concept.html b/conceptxt_1_1has__data__interface__concept.html new file mode 100644 index 000000000..f1d965c7a --- /dev/null +++ b/conceptxt_1_1has__data__interface__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::has_data_interface_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_data_interface_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 572 of file xutils.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1has__iterator__interface__concept.html b/conceptxt_1_1has__iterator__interface__concept.html new file mode 100644 index 000000000..00bc47806 --- /dev/null +++ b/conceptxt_1_1has__iterator__interface__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::has_iterator_interface_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_iterator_interface_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 595 of file xutils.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1has__simd__interface__concept.html b/conceptxt_1_1has__simd__interface__concept.html new file mode 100644 index 000000000..fd39d16e3 --- /dev/null +++ b/conceptxt_1_1has__simd__interface__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::has_simd_interface_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 273 of file xtensor_simd.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1iterator__concept.html b/conceptxt_1_1iterator__concept.html new file mode 100644 index 000000000..c0df2b31c --- /dev/null +++ b/conceptxt_1_1iterator__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::iterator_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::iterator_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 616 of file xutils.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1strided__view__concept.html b/conceptxt_1_1strided__view__concept.html new file mode 100644 index 000000000..8984fd0d3 --- /dev/null +++ b/conceptxt_1_1strided__view__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::strided_view_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::strided_view_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<class E, class... S>
    +
    concept xt::strided_view_concept = detail::is_strided_view<std::decay_t<E>, S...>::value
    + +

    Detailed Description

    +
    +

    Definition at line 295 of file xview.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1with__memory__address__concept.html b/conceptxt_1_1with__memory__address__concept.html new file mode 100644 index 000000000..345b1b970 --- /dev/null +++ b/conceptxt_1_1with__memory__address__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::with_memory_address_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::with_memory_address_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 805 of file xutils.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1without__memory__address__concept.html b/conceptxt_1_1without__memory__address__concept.html new file mode 100644 index 000000000..7a5bbd644 --- /dev/null +++ b/conceptxt_1_1without__memory__address__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::without_memory_address_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::without_memory_address_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 807 of file xutils.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1xbroadcast__concept.html b/conceptxt_1_1xbroadcast__concept.html new file mode 100644 index 000000000..b9e54af00 --- /dev/null +++ b/conceptxt_1_1xbroadcast__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::xbroadcast_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xbroadcast_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 74 of file xbroadcast.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1xexpression__concept.html b/conceptxt_1_1xexpression__concept.html new file mode 100644 index 000000000..220ff5ea5 --- /dev/null +++ b/conceptxt_1_1xexpression__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::xexpression_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xexpression_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<class E>
    +
    concept xt::xexpression_concept = is_xexpression<E>::value
    + +

    Detailed Description

    +
    +

    Definition at line 181 of file xexpression.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1xgenerator__concept.html b/conceptxt_1_1xgenerator__concept.html new file mode 100644 index 000000000..6903aba93 --- /dev/null +++ b/conceptxt_1_1xgenerator__concept.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: xt::xgenerator_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xgenerator_concept Concept Reference
    +
    +
    +

    Concept definition

    +

    Detailed Description

    +
    +

    Definition at line 62 of file xgenerator.hpp.

    +
    +
    + + + + diff --git a/conceptxt_1_1xscalar__concept.html b/conceptxt_1_1xscalar__concept.html new file mode 100644 index 000000000..789fa5846 --- /dev/null +++ b/conceptxt_1_1xscalar__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::xscalar_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xscalar_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<class E>
    +
    concept xt::xscalar_concept = is_xscalar<std::decay_t<E>>::value
    + +

    Detailed Description

    +
    +

    Definition at line 320 of file xscalar.hpp.

    +
    +
    + + + + diff --git a/conceptxtl_1_1complex__concept.html b/conceptxtl_1_1complex__concept.html new file mode 100644 index 000000000..86bde089f --- /dev/null +++ b/conceptxtl_1_1complex__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xtl::complex_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtl::complex_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<typename T>
    +
    concept xtl::complex_concept = xtl::is_complex<typename std::decay<T>::type::value_type>::value
    + +

    Detailed Description

    +
    +

    Definition at line 25 of file xtl_concepts.hpp.

    +
    +
    + + + + diff --git a/conceptxtl_1_1integral__concept.html b/conceptxtl_1_1integral__concept.html new file mode 100644 index 000000000..ad2cee655 --- /dev/null +++ b/conceptxtl_1_1integral__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xtl::integral_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtl::integral_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<typename T>
    +
    concept xtl::integral_concept = xtl::is_integral<T>::value
    + +

    Detailed Description

    +
    +

    Definition at line 19 of file xtl_concepts.hpp.

    +
    +
    + + + + diff --git a/conceptxtl_1_1non__integral__concept.html b/conceptxtl_1_1non__integral__concept.html new file mode 100644 index 000000000..ddabee0b0 --- /dev/null +++ b/conceptxtl_1_1non__integral__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xtl::non_integral_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtl::non_integral_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<typename T>
    +
    concept xtl::non_integral_concept = !xtl::is_integral<T>::value
    + +

    Detailed Description

    +
    +

    Definition at line 22 of file xtl_concepts.hpp.

    +
    +
    + + + + diff --git a/conceptxtl_1_1pointer__concept.html b/conceptxtl_1_1pointer__concept.html new file mode 100644 index 000000000..fc8e19dab --- /dev/null +++ b/conceptxtl_1_1pointer__concept.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xtl::pointer_concept Concept Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtl::pointer_concept Concept Reference
    +
    +
    +

    Concept definition

    +
    template<typename T>
    +
    concept xtl::pointer_concept = std::is_pointer<T>::value
    + +

    Detailed Description

    +
    +

    Definition at line 28 of file xtl_concepts.hpp.

    +
    +
    + + + + diff --git a/cookie.js b/cookie.js new file mode 100644 index 000000000..53ad21d98 --- /dev/null +++ b/cookie.js @@ -0,0 +1,58 @@ +/*! + Cookie helper functions + Copyright (c) 2023 Dimitri van Heesch + Released under MIT license. +*/ +let Cookie = { + cookie_namespace: 'doxygen_', + + readSetting(cookie,defVal) { + if (window.chrome) { + const val = localStorage.getItem(this.cookie_namespace+cookie) || + sessionStorage.getItem(this.cookie_namespace+cookie); + if (val) return val; + } else { + let myCookie = this.cookie_namespace+cookie+"="; + if (document.cookie) { + const index = document.cookie.indexOf(myCookie); + if (index != -1) { + const valStart = index + myCookie.length; + let valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + return document.cookie.substring(valStart, valEnd); + } + } + } + return defVal; + }, + + writeSetting(cookie,val,days=10*365) { // default days='forever', 0=session cookie, -1=delete + if (window.chrome) { + if (days==0) { + sessionStorage.setItem(this.cookie_namespace+cookie,val); + } else { + localStorage.setItem(this.cookie_namespace+cookie,val); + } + } else { + let date = new Date(); + date.setTime(date.getTime()+(days*24*60*60*1000)); + const expiration = days!=0 ? "expires="+date.toGMTString()+";" : ""; + document.cookie = this.cookie_namespace + cookie + "=" + + val + "; SameSite=Lax;" + expiration + "path=/"; + } + }, + + eraseSetting(cookie) { + if (window.chrome) { + if (localStorage.getItem(this.cookie_namespace+cookie)) { + localStorage.removeItem(this.cookie_namespace+cookie); + } else if (sessionStorage.getItem(this.cookie_namespace+cookie)) { + sessionStorage.removeItem(this.cookie_namespace+cookie); + } + } else { + this.writeSetting(cookie,'',-1); + } + }, +} diff --git a/deprecated.html b/deprecated.html new file mode 100644 index 000000000..b69950336 --- /dev/null +++ b/deprecated.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Deprecated List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Deprecated List
    +
    +
    +
    +
    Member xt::reshape_view (E &&e, S &&shape, layout_type)
    +
    +
    +
    +
    +
    + + + + diff --git a/dir_0d75396b9e02a3c29319113837a95cad.html b/dir_0d75396b9e02a3c29319113837a95cad.html new file mode 100644 index 000000000..024136c1a --- /dev/null +++ b/dir_0d75396b9e02a3c29319113837a95cad.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/reducers Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    reducers Directory Reference
    +
    +
    + + + + + + + + + + + + +

    +Files

     xaccumulator.hpp
     
     xblockwise_reducer.hpp
     
     xblockwise_reducer_functors.hpp
     
     xnorm.hpp
     
     xreducer.hpp
     
    +
    +
    + + + + diff --git a/dir_0d75396b9e02a3c29319113837a95cad.js b/dir_0d75396b9e02a3c29319113837a95cad.js new file mode 100644 index 000000000..9d5d607cf --- /dev/null +++ b/dir_0d75396b9e02a3c29319113837a95cad.js @@ -0,0 +1,8 @@ +var dir_0d75396b9e02a3c29319113837a95cad = +[ + [ "xaccumulator.hpp", "xaccumulator_8hpp_source.html", null ], + [ "xblockwise_reducer.hpp", "xblockwise__reducer_8hpp_source.html", null ], + [ "xblockwise_reducer_functors.hpp", "xblockwise__reducer__functors_8hpp_source.html", null ], + [ "xnorm.hpp", "xnorm_8hpp_source.html", null ], + [ "xreducer.hpp", "xreducer_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_5dbc63e3e208067190e586da41725baf.html b/dir_5dbc63e3e208067190e586da41725baf.html new file mode 100644 index 000000000..e398b0d39 --- /dev/null +++ b/dir_5dbc63e3e208067190e586da41725baf.html @@ -0,0 +1,160 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    core Directory Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Files

     xaccessible.hpp
     
     xassign.hpp
     
     xeval.hpp
     
     xexpression.hpp
     
     xexpression_traits.hpp
     
     xfunction.hpp
     
     xiterable.hpp
     
     xiterator.hpp
     
     xlayout.hpp
     
     xmath.hpp
     
     xmultiindex_iterator.hpp
     
     xnoalias.hpp
     
     xoperation.hpp
     
     xsemantic.hpp
     
     xshape.hpp
     
     xstrides.hpp
     
     xtensor_config.hpp
     
     xtensor_forward.hpp
     
     xvectorize.hpp
     
    +
    +
    + + + + diff --git a/dir_5dbc63e3e208067190e586da41725baf.js b/dir_5dbc63e3e208067190e586da41725baf.js new file mode 100644 index 000000000..741688a2e --- /dev/null +++ b/dir_5dbc63e3e208067190e586da41725baf.js @@ -0,0 +1,22 @@ +var dir_5dbc63e3e208067190e586da41725baf = +[ + [ "xaccessible.hpp", "xaccessible_8hpp_source.html", null ], + [ "xassign.hpp", "xassign_8hpp_source.html", null ], + [ "xeval.hpp", "xeval_8hpp_source.html", null ], + [ "xexpression.hpp", "xexpression_8hpp_source.html", null ], + [ "xexpression_traits.hpp", "xexpression__traits_8hpp_source.html", null ], + [ "xfunction.hpp", "xfunction_8hpp_source.html", null ], + [ "xiterable.hpp", "xiterable_8hpp_source.html", null ], + [ "xiterator.hpp", "xiterator_8hpp_source.html", null ], + [ "xlayout.hpp", "xlayout_8hpp_source.html", null ], + [ "xmath.hpp", "xmath_8hpp_source.html", null ], + [ "xmultiindex_iterator.hpp", "xmultiindex__iterator_8hpp_source.html", null ], + [ "xnoalias.hpp", "xnoalias_8hpp_source.html", null ], + [ "xoperation.hpp", "xoperation_8hpp_source.html", null ], + [ "xsemantic.hpp", "xsemantic_8hpp_source.html", null ], + [ "xshape.hpp", "xshape_8hpp_source.html", null ], + [ "xstrides.hpp", "xstrides_8hpp_source.html", null ], + [ "xtensor_config.hpp", "xtensor__config_8hpp_source.html", null ], + [ "xtensor_forward.hpp", "xtensor__forward_8hpp_source.html", null ], + [ "xvectorize.hpp", "xvectorize_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_72c9924f54f34c9a9a500349a94b928a.html b/dir_72c9924f54f34c9a9a500349a94b928a.html new file mode 100644 index 000000000..74053a25d --- /dev/null +++ b/dir_72c9924f54f34c9a9a500349a94b928a.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/generators Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    generators Directory Reference
    +
    +
    + + + + + + + + +

    +Files

     xbuilder.hpp
     
     xgenerator.hpp
     
     xrandom.hpp
     
    +
    +
    + + + + diff --git a/dir_72c9924f54f34c9a9a500349a94b928a.js b/dir_72c9924f54f34c9a9a500349a94b928a.js new file mode 100644 index 000000000..7bc05f8c5 --- /dev/null +++ b/dir_72c9924f54f34c9a9a500349a94b928a.js @@ -0,0 +1,6 @@ +var dir_72c9924f54f34c9a9a500349a94b928a = +[ + [ "xbuilder.hpp", "xbuilder_8hpp_source.html", null ], + [ "xgenerator.hpp", "xgenerator_8hpp_source.html", null ], + [ "xrandom.hpp", "xrandom_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_7614d47be9b26b68b6e19faab3d8cf3d.html b/dir_7614d47be9b26b68b6e19faab3d8cf3d.html new file mode 100644 index 000000000..4e38fc7b9 --- /dev/null +++ b/dir_7614d47be9b26b68b6e19faab3d8cf3d.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/optional Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    optional Directory Reference
    +
    +
    + + + + + + + + + + +

    +Files

     xoptional.hpp
     
     xoptional_assembly.hpp
     
     xoptional_assembly_base.hpp
     
     xoptional_assembly_storage.hpp
     
    +
    +
    + + + + diff --git a/dir_7614d47be9b26b68b6e19faab3d8cf3d.js b/dir_7614d47be9b26b68b6e19faab3d8cf3d.js new file mode 100644 index 000000000..b355d8b17 --- /dev/null +++ b/dir_7614d47be9b26b68b6e19faab3d8cf3d.js @@ -0,0 +1,7 @@ +var dir_7614d47be9b26b68b6e19faab3d8cf3d = +[ + [ "xoptional.hpp", "xoptional_8hpp_source.html", null ], + [ "xoptional_assembly.hpp", "xoptional__assembly_8hpp_source.html", null ], + [ "xoptional_assembly_base.hpp", "xoptional__assembly__base_8hpp_source.html", null ], + [ "xoptional_assembly_storage.hpp", "xoptional__assembly__storage_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_8a589290beb6e41d95922675c5a252d5.html b/dir_8a589290beb6e41d95922675c5a252d5.html new file mode 100644 index 000000000..ecfcefc29 --- /dev/null +++ b/dir_8a589290beb6e41d95922675c5a252d5.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    io Directory Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Files

     xcsv.hpp
     
     xinfo.hpp
     
     xio.hpp
     
     xjson.hpp
     
     xmime.hpp
     
     xnpy.hpp
     
    +
    +
    + + + + diff --git a/dir_8a589290beb6e41d95922675c5a252d5.js b/dir_8a589290beb6e41d95922675c5a252d5.js new file mode 100644 index 000000000..b727b2833 --- /dev/null +++ b/dir_8a589290beb6e41d95922675c5a252d5.js @@ -0,0 +1,9 @@ +var dir_8a589290beb6e41d95922675c5a252d5 = +[ + [ "xcsv.hpp", "xcsv_8hpp_source.html", null ], + [ "xinfo.hpp", "xinfo_8hpp_source.html", null ], + [ "xio.hpp", "xio_8hpp_source.html", null ], + [ "xjson.hpp", "xjson_8hpp_source.html", null ], + [ "xmime.hpp", "xmime_8hpp_source.html", null ], + [ "xnpy.hpp", "xnpy_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_a756a6382b5a8aa8dbc0087dac27d23d.html b/dir_a756a6382b5a8aa8dbc0087dac27d23d.html new file mode 100644 index 000000000..4dbb9b170 --- /dev/null +++ b/dir_a756a6382b5a8aa8dbc0087dac27d23d.html @@ -0,0 +1,152 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    views Directory Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Files

     index_mapper.hpp
     
     xaxis_iterator.hpp
     
     xaxis_slice_iterator.hpp
     
     xbroadcast.hpp
     
     xdynamic_view.hpp
     
     xfunctor_view.hpp
     
     xindex_view.hpp
     
     xmasked_view.hpp
     
     xoffset_view.hpp
     
     xrepeat.hpp
     
     xslice.hpp
     
     xstrided_view.hpp
     
     xstrided_view_base.hpp
     
     xview.hpp
     
     xview_utils.hpp
     
    +
    +
    + + + + diff --git a/dir_a756a6382b5a8aa8dbc0087dac27d23d.js b/dir_a756a6382b5a8aa8dbc0087dac27d23d.js new file mode 100644 index 000000000..de3906b45 --- /dev/null +++ b/dir_a756a6382b5a8aa8dbc0087dac27d23d.js @@ -0,0 +1,18 @@ +var dir_a756a6382b5a8aa8dbc0087dac27d23d = +[ + [ "index_mapper.hpp", "index__mapper_8hpp_source.html", null ], + [ "xaxis_iterator.hpp", "xaxis__iterator_8hpp_source.html", null ], + [ "xaxis_slice_iterator.hpp", "xaxis__slice__iterator_8hpp_source.html", null ], + [ "xbroadcast.hpp", "xbroadcast_8hpp_source.html", null ], + [ "xdynamic_view.hpp", "xdynamic__view_8hpp_source.html", null ], + [ "xfunctor_view.hpp", "xfunctor__view_8hpp_source.html", null ], + [ "xindex_view.hpp", "xindex__view_8hpp_source.html", null ], + [ "xmasked_view.hpp", "xmasked__view_8hpp_source.html", null ], + [ "xoffset_view.hpp", "xoffset__view_8hpp_source.html", null ], + [ "xrepeat.hpp", "xrepeat_8hpp_source.html", null ], + [ "xslice.hpp", "xslice_8hpp_source.html", null ], + [ "xstrided_view.hpp", "xstrided__view_8hpp_source.html", null ], + [ "xstrided_view_base.hpp", "xstrided__view__base_8hpp_source.html", null ], + [ "xview.hpp", "xview_8hpp_source.html", null ], + [ "xview_utils.hpp", "xview__utils_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_c04393294c6204f6f7005e440fd4c48c.html b/dir_c04393294c6204f6f7005e440fd4c48c.html new file mode 100644 index 000000000..9eb2cb749 --- /dev/null +++ b/dir_c04393294c6204f6f7005e440fd4c48c.html @@ -0,0 +1,138 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    containers Directory Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Files

     xadapt.hpp
     
     xarray.hpp
     
     xbuffer_adaptor.hpp
     
     xcontainer.hpp
     
     xfixed.hpp
     
     xscalar.hpp
     
     xstorage.hpp
     
     xtensor.hpp
     
    +
    +
    + + + + diff --git a/dir_c04393294c6204f6f7005e440fd4c48c.js b/dir_c04393294c6204f6f7005e440fd4c48c.js new file mode 100644 index 000000000..c1267f7fc --- /dev/null +++ b/dir_c04393294c6204f6f7005e440fd4c48c.js @@ -0,0 +1,11 @@ +var dir_c04393294c6204f6f7005e440fd4c48c = +[ + [ "xadapt.hpp", "xadapt_8hpp_source.html", null ], + [ "xarray.hpp", "xarray_8hpp_source.html", null ], + [ "xbuffer_adaptor.hpp", "xbuffer__adaptor_8hpp_source.html", null ], + [ "xcontainer.hpp", "xcontainer_8hpp_source.html", null ], + [ "xfixed.hpp", "xfixed_8hpp_source.html", null ], + [ "xscalar.hpp", "xscalar_8hpp_source.html", null ], + [ "xstorage.hpp", "xstorage_8hpp_source.html", null ], + [ "xtensor.hpp", "xtensor_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_c7391fa963006b3dcc74b1e23f2b5aa5.html b/dir_c7391fa963006b3dcc74b1e23f2b5aa5.html new file mode 100644 index 000000000..ef37db003 --- /dev/null +++ b/dir_c7391fa963006b3dcc74b1e23f2b5aa5.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/utils Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    utils Directory Reference
    +
    +
    + + + + + + + + +

    +Files

     xexception.hpp
     
     xtensor_simd.hpp
     
     xutils.hpp
     
    +
    +
    + + + + diff --git a/dir_c7391fa963006b3dcc74b1e23f2b5aa5.js b/dir_c7391fa963006b3dcc74b1e23f2b5aa5.js new file mode 100644 index 000000000..18325924b --- /dev/null +++ b/dir_c7391fa963006b3dcc74b1e23f2b5aa5.js @@ -0,0 +1,6 @@ +var dir_c7391fa963006b3dcc74b1e23f2b5aa5 = +[ + [ "xexception.hpp", "xexception_8hpp_source.html", null ], + [ "xtensor_simd.hpp", "xtensor__simd_8hpp_source.html", null ], + [ "xutils.hpp", "xutils_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_cd476e4823af9724af1911969b947d0c.html b/dir_cd476e4823af9724af1911969b947d0c.html new file mode 100644 index 000000000..93e9113ce --- /dev/null +++ b/dir_cd476e4823af9724af1911969b947d0c.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    misc Directory Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + +

    +Files

     xcomplex.hpp
     
     xexpression_holder.hpp
     
     xfft.hpp
     
     xhistogram.hpp
     
     xmanipulation.hpp
     
     xpad.hpp
     
     xset_operation.hpp
     
     xsort.hpp
     
     xtl_concepts.hpp
     
    +
    +
    + + + + diff --git a/dir_cd476e4823af9724af1911969b947d0c.js b/dir_cd476e4823af9724af1911969b947d0c.js new file mode 100644 index 000000000..93758553c --- /dev/null +++ b/dir_cd476e4823af9724af1911969b947d0c.js @@ -0,0 +1,12 @@ +var dir_cd476e4823af9724af1911969b947d0c = +[ + [ "xcomplex.hpp", "xcomplex_8hpp_source.html", null ], + [ "xexpression_holder.hpp", "xexpression__holder_8hpp_source.html", null ], + [ "xfft.hpp", "xfft_8hpp_source.html", null ], + [ "xhistogram.hpp", "xhistogram_8hpp_source.html", null ], + [ "xmanipulation.hpp", "xmanipulation_8hpp_source.html", null ], + [ "xpad.hpp", "xpad_8hpp_source.html", null ], + [ "xset_operation.hpp", "xset__operation_8hpp_source.html", null ], + [ "xsort.hpp", "xsort_8hpp_source.html", null ], + [ "xtl_concepts.hpp", "xtl__concepts_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 000000000..c3bc5e1eb --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,118 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    include Directory Reference
    +
    +
    +
    +
    + + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 000000000..1ec67b6c4 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "xtensor", "dir_ea185b87f60949e3b1bf14314f33a519.html", "dir_ea185b87f60949e3b1bf14314f33a519" ] +]; \ No newline at end of file diff --git a/dir_ea185b87f60949e3b1bf14314f33a519.html b/dir_ea185b87f60949e3b1bf14314f33a519.html new file mode 100644 index 000000000..ad44c7f55 --- /dev/null +++ b/dir_ea185b87f60949e3b1bf14314f33a519.html @@ -0,0 +1,142 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtensor Directory Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Directories

     chunk
     
     containers
     
     core
     
     generators
     
     io
     
     misc
     
     optional
     
     reducers
     
     utils
     
     views
     
    +
    +
    + + + + diff --git a/dir_ea185b87f60949e3b1bf14314f33a519.js b/dir_ea185b87f60949e3b1bf14314f33a519.js new file mode 100644 index 000000000..1fb6e0f21 --- /dev/null +++ b/dir_ea185b87f60949e3b1bf14314f33a519.js @@ -0,0 +1,13 @@ +var dir_ea185b87f60949e3b1bf14314f33a519 = +[ + [ "chunk", "dir_eadb0ec9a1f66a1e2a37a75175ba90a3.html", "dir_eadb0ec9a1f66a1e2a37a75175ba90a3" ], + [ "containers", "dir_c04393294c6204f6f7005e440fd4c48c.html", "dir_c04393294c6204f6f7005e440fd4c48c" ], + [ "core", "dir_5dbc63e3e208067190e586da41725baf.html", "dir_5dbc63e3e208067190e586da41725baf" ], + [ "generators", "dir_72c9924f54f34c9a9a500349a94b928a.html", "dir_72c9924f54f34c9a9a500349a94b928a" ], + [ "io", "dir_8a589290beb6e41d95922675c5a252d5.html", "dir_8a589290beb6e41d95922675c5a252d5" ], + [ "misc", "dir_cd476e4823af9724af1911969b947d0c.html", "dir_cd476e4823af9724af1911969b947d0c" ], + [ "optional", "dir_7614d47be9b26b68b6e19faab3d8cf3d.html", "dir_7614d47be9b26b68b6e19faab3d8cf3d" ], + [ "reducers", "dir_0d75396b9e02a3c29319113837a95cad.html", "dir_0d75396b9e02a3c29319113837a95cad" ], + [ "utils", "dir_c7391fa963006b3dcc74b1e23f2b5aa5.html", "dir_c7391fa963006b3dcc74b1e23f2b5aa5" ], + [ "views", "dir_a756a6382b5a8aa8dbc0087dac27d23d.html", "dir_a756a6382b5a8aa8dbc0087dac27d23d" ] +]; \ No newline at end of file diff --git a/dir_eadb0ec9a1f66a1e2a37a75175ba90a3.html b/dir_eadb0ec9a1f66a1e2a37a75175ba90a3.html new file mode 100644 index 000000000..68a33529a --- /dev/null +++ b/dir_eadb0ec9a1f66a1e2a37a75175ba90a3.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/chunk Directory Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    chunk Directory Reference
    +
    +
    + + + + + + + + +

    +Files

     xchunked_array.hpp
     
     xchunked_assign.hpp
     
     xchunked_view.hpp
     
    +
    +
    + + + + diff --git a/dir_eadb0ec9a1f66a1e2a37a75175ba90a3.js b/dir_eadb0ec9a1f66a1e2a37a75175ba90a3.js new file mode 100644 index 000000000..a2b4194f4 --- /dev/null +++ b/dir_eadb0ec9a1f66a1e2a37a75175ba90a3.js @@ -0,0 +1,6 @@ +var dir_eadb0ec9a1f66a1e2a37a75175ba90a3 = +[ + [ "xchunked_array.hpp", "xchunked__array_8hpp_source.html", null ], + [ "xchunked_assign.hpp", "xchunked__assign_8hpp_source.html", null ], + [ "xchunked_view.hpp", "xchunked__view_8hpp_source.html", null ] +]; \ No newline at end of file diff --git a/doc.svg b/doc.svg new file mode 100644 index 000000000..0b928a531 --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 000000000..ac18b2755 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 000000000..4947e245d --- /dev/null +++ b/doxygen.css @@ -0,0 +1,2255 @@ +/* The standard CSS for doxygen 1.13.2*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--fragment-copy-ok-color: #2EC82E; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; +--fold-line-color: #808080; +--fold-minus-image: url('minus.svg'); +--fold-plus-image: url('plus.svg'); +--fold-minus-image-relpath: url('../../minus.svg'); +--fold-plus-image-relpath: url('../../plus.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #f8d1cc; +--warning-color-hl: #b61825; +--warning-color-text: #75070f; +--note-color-bg: #faf3d8; +--note-color-hl: #f3a600; +--note-color-text: #5f4204; +--todo-color-bg: #e4f3ff; +--todo-color-hl: #1879C4; +--todo-color-text: #274a5c; +--test-color-bg: #e8e8ff; +--test-color-hl: #3939C4; +--test-color-text: #1a1a5c; +--deprecated-color-bg: #ecf0f3; +--deprecated-color-hl: #5b6269; +--deprecated-color-text: #43454a; +--bug-color-bg: #e4dafd; +--bug-color-hl: #5b2bdd; +--bug-color-text: #2a0d72; +--invariant-color-bg: #d8f1e3; +--invariant-color-hl: #44b86f; +--invariant-color-text: #265532; +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #C0C0C0; +--code-vhdl-keyword-color: #CF53C9; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: #090D16; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--fragment-copy-ok-color: #0EA80E; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; +--fold-line-color: #808080; +--fold-minus-image: url('minusd.svg'); +--fold-plus-image: url('plusd.svg'); +--fold-minus-image-relpath: url('../../minusd.svg'); +--fold-plus-image-relpath: url('../../plusd.svg'); + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +/** special sections */ +--warning-color-bg: #2e1917; +--warning-color-hl: #ad2617; +--warning-color-text: #f5b1aa; +--note-color-bg: #3b2e04; +--note-color-hl: #f1b602; +--note-color-text: #ceb670; +--todo-color-bg: #163750; +--todo-color-hl: #1982D2; +--todo-color-text: #dcf0fa; +--test-color-bg: #121258; +--test-color-hl: #4242cf; +--test-color-text: #c0c0da; +--deprecated-color-bg: #2e323b; +--deprecated-color-hl: #738396; +--deprecated-color-text: #abb0bd; +--bug-color-bg: #2a2536; +--bug-color-hl: #7661b3; +--bug-color-text: #ae9ed6; +--invariant-color-bg: #303a35; +--invariant-color-hl: #76ce96; +--invariant-color-text: #cceed5; +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +#main-menu a:focus { + outline: auto; + z-index: 10; + position: relative; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: none; + background: linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%); +} + +a:hover > span.arrow { + text-decoration: none; + background : var(--nav-background-color); +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul.check { + list-style:none; + text-indent: -16px; + padding-left: 38px; +} +li.unchecked:before { + content: "\2610\A0"; +} +li.checked:before { + content: "\2611\A0"; +} + +ol { + text-indent: 0px; +} + +ul { + text-indent: 0px; + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; + overflow-y: hidden; + position: relative; + min-height: 12px; + margin: 10px 0px; + padding: 10px 10px; + border: 1px solid var(--fragment-border-color); + border-radius: 4px; + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); +} + +pre.fragment { + word-wrap: break-word; + font-size: 10pt; + line-height: 125%; + font-family: var(--font-family-monospace); +} + +.clipboard { + width: 24px; + height: 24px; + right: 5px; + top: 5px; + opacity: 0; + position: absolute; + display: inline; + overflow: hidden; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.clipboard.success { + border: 1px solid var(--fragment-foreground-color); + border-radius: 4px; +} + +.fragment:hover .clipboard, .clipboard.success { + opacity: .4; +} + +.clipboard:hover, .clipboard.success { + opacity: 1 !important; +} + +.clipboard:active:not([class~=success]) svg { + transform: scale(.91); +} + +.clipboard.success svg { + fill: var(--fragment-copy-ok-color); +} + +.clipboard.success { + border-color: var(--fragment-copy-ok-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + +span.fold { + margin-left: 5px; + margin-right: 1px; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; + display: inline-block; + width: 12px; + height: 12px; + background-repeat:no-repeat; + background-position:center; +} + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; +} + +.paramname { + white-space: nowrap; + padding: 0px; + padding-bottom: 1px; + margin-left: 2px; +} + +.paramname em { + color: var(--memdef-param-name-color); + font-style: normal; + margin-right: 1px; +} + +.paramname .paramdefval { + font-family: var(--font-family-monospace); +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fieldinit { + padding-top: 3px; + text-align: right; +} + + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* + +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention, dl.important { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +*/ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, +dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { + padding: 10px; + margin: 10px 0px; + overflow: hidden; + margin-left: 0; + border-radius: 4px; +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention, dl.important { + background: var(--warning-color-bg); + border-left: 8px solid var(--warning-color-hl); + color: var(--warning-color-text); +} + +dl.warning dt, dl.attention dt, dl.important dt { + color: var(--warning-color-hl); +} + +dl.note, dl.remark { + background: var(--note-color-bg); + border-left: 8px solid var(--note-color-hl); + color: var(--note-color-text); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-hl); +} + +dl.todo { + background: var(--todo-color-bg); + border-left: 8px solid var(--todo-color-hl); + color: var(--todo-color-text); +} + +dl.todo dt { + color: var(--todo-color-hl); +} + +dl.test { + background: var(--test-color-bg); + border-left: 8px solid var(--test-color-hl); + color: var(--test-color-text); +} + +dl.test dt { + color: var(--test-color-hl); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.bug { + background: var(--bug-color-bg); + border-left: 8px solid var(--bug-color-hl); + color: var(--bug-color-text); +} + +dl.bug dt a { + color: var(--bug-color-hl) !important; +} + +dl.deprecated { + background: var(--deprecated-color-bg); + border-left: 8px solid var(--deprecated-color-hl); + color: var(--deprecated-color-text); +} + +dl.deprecated dt a { + color: var(--deprecated-color-hl) !important; +} + +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color-bg); + border-left: 8px solid var(--invariant-color-hl); + color: var(--invariant-color-text); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-hl); +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#side-nav #projectname +{ + font-size: 130%; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li[class^='level'] { + margin-left: 15px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.empty { + background-image: none; + margin-top: 0px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd +{ + display: inline-block; +} +tt, code, kbd +{ + vertical-align: top; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 000000000..79a763540 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doxygen_crawl.html b/doxygen_crawl.html new file mode 100644 index 000000000..16a29f969 --- /dev/null +++ b/doxygen_crawl.html @@ -0,0 +1,1988 @@ + + + +Validator / crawler helper + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 000000000..8985f424f --- /dev/null +++ b/dynsections.js @@ -0,0 +1,205 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + +let dynsection = { + + // helper function + updateStripes : function() { + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); + }, + + toggleVisibility : function(linkObj) { + const base = $(linkObj).attr('id'); + const summary = $('#'+base+'-summary'); + const content = $('#'+base+'-content'); + const trigger = $('#'+base+'-trigger'); + const src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; + }, + + toggleLevel : function(level) { + $('table.directory tr').each(function() { + const l = this.id.split('_').length-1; + const i = $('#img'+this.id.substring(3)); + const a = $('#arr'+this.id.substring(3)); + if (l'); + // add vertical lines to other rows + $('span[class=lineno]').not(':eq(0)').append(''); + // add toggle controls to lines with fold divs + $('div[class=foldopen]').each(function() { + // extract specific id to use + const id = $(this).attr('id').replace('foldopen',''); + // extract start and end foldable fragment attributes + const start = $(this).attr('data-start'); + const end = $(this).attr('data-end'); + // replace normal fold span with controls for the first line of a foldable fragment + $(this).find('span[class=fold]:first').replaceWith(''); + // append div for folded (closed) representation + $(this).after(''); + // extract the first line from the "open" section to represent closed content + const line = $(this).children().first().clone(); + // remove any glow that might still be active on the original line + $(line).removeClass('glow'); + if (start) { + // if line already ends with a start marker (e.g. trailing {), remove it + $(line).html($(line).html().replace(new RegExp('\\s*'+start+'\\s*$','g'),'')); + } + // replace minus with plus symbol + $(line).find('span[class=fold]').css('background-image',codefold.plusImg[relPath]); + // append ellipsis + $(line).append(' '+start+''+end); + // insert constructed line into closed div + $('#foldclosed'+id).html(line); + }); + }, +}; +/* @license-end */ +$(function() { + $('.code,.codeRef').each(function() { + $(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html()); + $.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ]; + $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true }); + }); +}); diff --git a/examples.html b/examples.html new file mode 100644 index 000000000..17d37ce51 --- /dev/null +++ b/examples.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Examples + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Examples
    +
    + +
    + + + + diff --git a/examples.js b/examples.js new file mode 100644 index 000000000..4de82b521 --- /dev/null +++ b/examples.js @@ -0,0 +1,4 @@ +var examples = +[ + [ "/home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp", "_2home_2runner_2work_2xtensor_2xtensor_2include_2xtensor_2views_2index_mapper_8hpp-example.html", null ] +]; \ No newline at end of file diff --git a/files.html b/files.html new file mode 100644 index 000000000..920d5df8c --- /dev/null +++ b/files.html @@ -0,0 +1,208 @@ + + + + + + + +xtensor: File List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    File List
    +
    +
    +
    Here is a list of all documented files with brief descriptions:
    +
    [detail level 1234]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      include
      xtensor
      chunk
     xchunked_array.hpp
     xchunked_assign.hpp
     xchunked_view.hpp
      containers
     xadapt.hpp
     xarray.hpp
     xbuffer_adaptor.hpp
     xcontainer.hpp
     xfixed.hpp
     xscalar.hpp
     xstorage.hpp
     xtensor.hpp
      core
     xaccessible.hpp
     xassign.hpp
     xeval.hpp
     xexpression.hpp
     xexpression_traits.hpp
     xfunction.hpp
     xiterable.hpp
     xiterator.hpp
     xlayout.hpp
     xmath.hpp
     xmultiindex_iterator.hpp
     xnoalias.hpp
     xoperation.hpp
     xsemantic.hpp
     xshape.hpp
     xstrides.hpp
     xtensor_config.hpp
     xtensor_forward.hpp
     xvectorize.hpp
      generators
     xbuilder.hpp
     xgenerator.hpp
     xrandom.hpp
      io
     xcsv.hpp
     xinfo.hpp
     xio.hpp
     xjson.hpp
     xmime.hpp
     xnpy.hpp
      misc
     xcomplex.hpp
     xexpression_holder.hpp
     xfft.hpp
     xhistogram.hpp
     xmanipulation.hpp
     xpad.hpp
     xset_operation.hpp
     xsort.hpp
     xtl_concepts.hpp
      optional
     xoptional.hpp
     xoptional_assembly.hpp
     xoptional_assembly_base.hpp
     xoptional_assembly_storage.hpp
      reducers
     xaccumulator.hpp
     xblockwise_reducer.hpp
     xblockwise_reducer_functors.hpp
     xnorm.hpp
     xreducer.hpp
      utils
     xexception.hpp
     xtensor_simd.hpp
     xutils.hpp
      views
     index_mapper.hpp
     xaxis_iterator.hpp
     xaxis_slice_iterator.hpp
     xbroadcast.hpp
     xdynamic_view.hpp
     xfunctor_view.hpp
     xindex_view.hpp
     xmasked_view.hpp
     xoffset_view.hpp
     xrepeat.hpp
     xslice.hpp
     xstrided_view.hpp
     xstrided_view_base.hpp
     xview.hpp
     xview_utils.hpp
    +
    +
    +
    + + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 000000000..f1749d909 --- /dev/null +++ b/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ] +]; \ No newline at end of file diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 000000000..b04bed2e7 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 000000000..52f0166a2 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 000000000..f6896dd25 --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 000000000..2d1f06e7b --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/functions.html b/functions.html new file mode 100644 index 000000000..7f4f62667 --- /dev/null +++ b/functions.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - a -

    +
    +
    + + + + diff --git a/functions_b.html b/functions_b.html new file mode 100644 index 000000000..b7707c076 --- /dev/null +++ b/functions_b.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_c.html b/functions_c.html new file mode 100644 index 000000000..0f372670b --- /dev/null +++ b/functions_c.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_d.html b/functions_d.html new file mode 100644 index 000000000..1bdd8f38b --- /dev/null +++ b/functions_d.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_dup.js b/functions_dup.js new file mode 100644 index 000000000..4a51fa394 --- /dev/null +++ b/functions_dup.js @@ -0,0 +1,21 @@ +var functions_dup = +[ + [ "a", "functions.html", null ], + [ "b", "functions_b.html", null ], + [ "c", "functions_c.html", null ], + [ "d", "functions_d.html", null ], + [ "e", "functions_e.html", null ], + [ "f", "functions_f.html", null ], + [ "h", "functions_h.html", null ], + [ "i", "functions_i.html", null ], + [ "l", "functions_l.html", null ], + [ "m", "functions_m.html", null ], + [ "n", "functions_n.html", null ], + [ "o", "functions_o.html", null ], + [ "p", "functions_p.html", null ], + [ "r", "functions_r.html", null ], + [ "s", "functions_s.html", null ], + [ "u", "functions_u.html", null ], + [ "v", "functions_v.html", null ], + [ "x", "functions_x.html", null ] +]; \ No newline at end of file diff --git a/functions_e.html b/functions_e.html new file mode 100644 index 000000000..da77a9f0d --- /dev/null +++ b/functions_e.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_f.html b/functions_f.html new file mode 100644 index 000000000..a6c647f73 --- /dev/null +++ b/functions_f.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 000000000..12557ab1f --- /dev/null +++ b/functions_func.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - a -

    +
    +
    + + + + diff --git a/functions_func.js b/functions_func.js new file mode 100644 index 000000000..eca1ded55 --- /dev/null +++ b/functions_func.js @@ -0,0 +1,20 @@ +var functions_func = +[ + [ "a", "functions_func.html", null ], + [ "b", "functions_func_b.html", null ], + [ "c", "functions_func_c.html", null ], + [ "d", "functions_func_d.html", null ], + [ "e", "functions_func_e.html", null ], + [ "f", "functions_func_f.html", null ], + [ "h", "functions_func_h.html", null ], + [ "i", "functions_func_i.html", null ], + [ "l", "functions_func_l.html", null ], + [ "m", "functions_func_m.html", null ], + [ "o", "functions_func_o.html", null ], + [ "p", "functions_func_p.html", null ], + [ "r", "functions_func_r.html", null ], + [ "s", "functions_func_s.html", null ], + [ "u", "functions_func_u.html", null ], + [ "v", "functions_func_v.html", null ], + [ "x", "functions_func_x.html", null ] +]; \ No newline at end of file diff --git a/functions_func_b.html b/functions_func_b.html new file mode 100644 index 000000000..7e8452b34 --- /dev/null +++ b/functions_func_b.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func_c.html b/functions_func_c.html new file mode 100644 index 000000000..222746df1 --- /dev/null +++ b/functions_func_c.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func_d.html b/functions_func_d.html new file mode 100644 index 000000000..83ec811e0 --- /dev/null +++ b/functions_func_d.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_func_e.html b/functions_func_e.html new file mode 100644 index 000000000..17fcb0c3d --- /dev/null +++ b/functions_func_e.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func_f.html b/functions_func_f.html new file mode 100644 index 000000000..d560f0b5c --- /dev/null +++ b/functions_func_f.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func_h.html b/functions_func_h.html new file mode 100644 index 000000000..574d450ea --- /dev/null +++ b/functions_func_h.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_func_i.html b/functions_func_i.html new file mode 100644 index 000000000..78852bd9e --- /dev/null +++ b/functions_func_i.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - i -

    +
    +
    + + + + diff --git a/functions_func_l.html b/functions_func_l.html new file mode 100644 index 000000000..14da45545 --- /dev/null +++ b/functions_func_l.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_func_m.html b/functions_func_m.html new file mode 100644 index 000000000..13c8220c7 --- /dev/null +++ b/functions_func_m.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - m -

    +
    +
    + + + + diff --git a/functions_func_o.html b/functions_func_o.html new file mode 100644 index 000000000..6b0f48a7c --- /dev/null +++ b/functions_func_o.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - o -

    +
    +
    + + + + diff --git a/functions_func_p.html b/functions_func_p.html new file mode 100644 index 000000000..7b79d0ed8 --- /dev/null +++ b/functions_func_p.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - p -

    +
    +
    + + + + diff --git a/functions_func_r.html b/functions_func_r.html new file mode 100644 index 000000000..b613d845c --- /dev/null +++ b/functions_func_r.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func_s.html b/functions_func_s.html new file mode 100644 index 000000000..0cca796bd --- /dev/null +++ b/functions_func_s.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_func_u.html b/functions_func_u.html new file mode 100644 index 000000000..070a96d7e --- /dev/null +++ b/functions_func_u.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_func_v.html b/functions_func_v.html new file mode 100644 index 000000000..4d384ec3d --- /dev/null +++ b/functions_func_v.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - v -

    +
    +
    + + + + diff --git a/functions_func_x.html b/functions_func_x.html new file mode 100644 index 000000000..a47c593b9 --- /dev/null +++ b/functions_func_x.html @@ -0,0 +1,142 @@ + + + + + + + +xtensor: Class Members - Functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented functions with links to the class documentation for each member:
    + +

    - x -

    +
    +
    + + + + diff --git a/functions_h.html b/functions_h.html new file mode 100644 index 000000000..e091ba9cd --- /dev/null +++ b/functions_h.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_i.html b/functions_i.html new file mode 100644 index 000000000..61ff72e46 --- /dev/null +++ b/functions_i.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - i -

    +
    +
    + + + + diff --git a/functions_l.html b/functions_l.html new file mode 100644 index 000000000..b790e78be --- /dev/null +++ b/functions_l.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_m.html b/functions_m.html new file mode 100644 index 000000000..4b130455d --- /dev/null +++ b/functions_m.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - m -

    +
    +
    + + + + diff --git a/functions_n.html b/functions_n.html new file mode 100644 index 000000000..5dadb6ba7 --- /dev/null +++ b/functions_n.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - n -

    +
    +
    + + + + diff --git a/functions_o.html b/functions_o.html new file mode 100644 index 000000000..edf86221f --- /dev/null +++ b/functions_o.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - o -

    +
    +
    + + + + diff --git a/functions_p.html b/functions_p.html new file mode 100644 index 000000000..de47b6e95 --- /dev/null +++ b/functions_p.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - p -

    +
    +
    + + + + diff --git a/functions_r.html b/functions_r.html new file mode 100644 index 000000000..8a3c4db81 --- /dev/null +++ b/functions_r.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_s.html b/functions_s.html new file mode 100644 index 000000000..9d5dec28d --- /dev/null +++ b/functions_s.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/functions_type.html b/functions_type.html new file mode 100644 index 000000000..67d4cd0b8 --- /dev/null +++ b/functions_type.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Class Members - Typedefs + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented typedefs with links to the class documentation for each member:
    +
    +
    + + + + diff --git a/functions_u.html b/functions_u.html new file mode 100644 index 000000000..e5115c6af --- /dev/null +++ b/functions_u.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    + + + + diff --git a/functions_v.html b/functions_v.html new file mode 100644 index 000000000..83c4fe8e4 --- /dev/null +++ b/functions_v.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - v -

    +
    +
    + + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 000000000..78f9eac3c --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Class Members - Variables + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented variables with links to the class documentation for each member:
    +
    +
    + + + + diff --git a/functions_x.html b/functions_x.html new file mode 100644 index 000000000..449a5afd5 --- /dev/null +++ b/functions_x.html @@ -0,0 +1,142 @@ + + + + + + + +xtensor: Class Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented class members with links to the class documentation for each member:
    + +

    - x -

    +
    +
    + + + + diff --git a/group__acc__functions.html b/group__acc__functions.html new file mode 100644 index 000000000..af46d801e --- /dev/null +++ b/group__acc__functions.html @@ -0,0 +1,231 @@ + + + + + + + +xtensor: accumulating functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    accumulating functions
    +
    +
    + + + + + + + + + + +

    +Functions

    template<class T = void, class E>
    auto xt::cumsum (E &&e, std::ptrdiff_t axis)
     Cumulative sum.
     
    template<class T = void, class E>
    auto xt::cumprod (E &&e, std::ptrdiff_t axis)
     Cumulative product.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ cumprod()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::cumprod (E && e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Cumulative product.

    +

    Returns the accumulated product for the elements over given axis (or flattened).

    Parameters
    + + + +
    ean xexpression
    axisthe axes along which the cumulative product is computed (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. Tis also used for determining the value type of the result, which is the type of T() * E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xarray<T>
    + +

    Definition at line 2318 of file xmath.hpp.

    + +
    +
    + +

    ◆ cumsum()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::cumsum (E && e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Cumulative sum.

    +

    Returns the accumulated sum for the elements over given axis (or flattened).

    Parameters
    + + + +
    ean xexpression
    axisthe axes along which the cumulative sum is computed (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. Tis also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xarray<T>
    + +

    Definition at line 2283 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__acc__functions.js b/group__acc__functions.js new file mode 100644 index 000000000..59ca82515 --- /dev/null +++ b/group__acc__functions.js @@ -0,0 +1,5 @@ +var group__acc__functions = +[ + [ "xt::cumprod", "group__acc__functions.html#ga17f752dbaca06608f974c3514509fa7b", null ], + [ "xt::cumsum", "group__acc__functions.html#gaae1630a06b4975a5a759f2215e738123", null ] +]; \ No newline at end of file diff --git a/group__arithmetic__operators.html b/group__arithmetic__operators.html new file mode 100644 index 000000000..d780f78d2 --- /dev/null +++ b/group__arithmetic__operators.html @@ -0,0 +1,451 @@ + + + + + + + +xtensor: Arithmetic operators + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Arithmetic operators
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::operator+ (E &&e) noexcept -> detail::xfunction_type_t< detail::identity, E >
     Identity.
     
    template<class E>
    auto xt::operator- (E &&e) noexcept -> detail::xfunction_type_t< detail::negate, E >
     Opposite.
     
    template<class E1, class E2>
    auto xt::operator+ (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::plus, E1, E2 >
     Addition.
     
    template<class E1, class E2>
    auto xt::operator- (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::minus, E1, E2 >
     Substraction.
     
    template<class E1, class E2>
    auto xt::operator* (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
     Multiplication.
     
    template<class E1, class E2>
    auto xt::operator/ (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::divides, E1, E2 >
     Division.
     
    template<class E1, class E2>
    auto xt::operator% (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::modulus, E1, E2 >
     Modulus.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ operator%()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator% (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::modulus, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Modulus.

    +

    Returns an xfunction for the element-wise modulus of e1 by e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 327 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator*()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator* (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::multiplies, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Multiplication.

    +

    Returns an xfunction for the element-wise multiplication of e1 by e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 295 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator+() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::operator+ (E && e) -> detail::xfunction_type_t<detail::identity, E> +
    +
    +inlinenoexcept
    +
    + +

    Identity.

    +

    Returns an xfunction for the element-wise identity of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 232 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator+() [2/2]

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator+ (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::plus, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Addition.

    +

    Returns an xfunction for the element-wise addition of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 263 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator-() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::operator- (E && e) -> detail::xfunction_type_t<detail::negate, E> +
    +
    +inlinenoexcept
    +
    + +

    Opposite.

    +

    Returns an xfunction for the element-wise opposite of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 247 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator-() [2/2]

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator- (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::minus, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Substraction.

    +

    Returns an xfunction for the element-wise substraction of e2 to e1.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 279 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator/()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator/ (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::divides, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Division.

    +

    Returns an xfunction for the element-wise division of e1 by e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 311 of file xoperation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__arithmetic__operators.js b/group__arithmetic__operators.js new file mode 100644 index 000000000..599493511 --- /dev/null +++ b/group__arithmetic__operators.js @@ -0,0 +1,10 @@ +var group__arithmetic__operators = +[ + [ "xt::operator%", "group__arithmetic__operators.html#gaa3c78e8ff8a284881563ccbdd64bf145", null ], + [ "xt::operator*", "group__arithmetic__operators.html#gaee209a211df9c1fdd671fe786c01eca6", null ], + [ "xt::operator+", "group__arithmetic__operators.html#ga4f6fda1324731f7d8c7bedfd786fd711", null ], + [ "xt::operator+", "group__arithmetic__operators.html#ga3a0012dd54e6eddb1dc1499bda3835fc", null ], + [ "xt::operator-", "group__arithmetic__operators.html#gae9984fddddb53d90fcef38c017ebb5c9", null ], + [ "xt::operator-", "group__arithmetic__operators.html#gadcc7da6c96325690024067869af4e3bf", null ], + [ "xt::operator/", "group__arithmetic__operators.html#ga5c9e3cca169a86ea0974e67d562f7f8c", null ] +]; \ No newline at end of file diff --git a/group__basic__functions.html b/group__basic__functions.html new file mode 100644 index 000000000..b72df55c4 --- /dev/null +++ b/group__basic__functions.html @@ -0,0 +1,1159 @@ + + + + + + + +xtensor: Basic functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Basic functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::abs (E &&e) noexcept -> detail::xfunction_type_t< math::abs_fun, E >
     Absolute value function.
     
    template<class E>
    auto xt::fabs (E &&e) noexcept -> detail::xfunction_type_t< math::fabs_fun, E >
     Absolute value function.
     
    template<class E1, class E2>
    auto xt::fmod (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmod_fun, E1, E2 >
     Remainder of the floating point division operation.
     
    template<class E1, class E2>
    auto xt::remainder (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::remainder_fun, E1, E2 >
     Signed remainder of the division operation.
     
    template<class E1, class E2, class E3>
    auto xt::fma (E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< math::fma_fun, E1, E2, E3 >
     Fused multiply-add operation.
     
    template<class E1, class E2>
    auto xt::fmax (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmax_fun, E1, E2 >
     Maximum function.
     
    template<class E1, class E2>
    auto xt::fmin (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmin_fun, E1, E2 >
     Minimum function.
     
    template<class E1, class E2>
    auto xt::fdim (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fdim_fun, E1, E2 >
     Positive difference function.
     
    template<class E>
    auto xt::deg2rad (E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >
     Convert angles from degrees to radians.
     
    template<class E>
    auto xt::radians (E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >
     Convert angles from degrees to radians.
     
    template<class E>
    auto xt::rad2deg (E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >
     Convert angles from radians to degrees.
     
    template<class E>
    auto xt::degrees (E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >
     Convert angles from radians to degrees.
     
    template<class E1, class E2>
    auto xt::maximum (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::maximum< void >, E1, E2 >
     Elementwise maximum.
     
    template<class E1, class E2>
    auto xt::minimum (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::minimum< void >, E1, E2 >
     Elementwise minimum.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::amax (E &&e, X &&axes, EVS es=EVS())
     Maximum element along given axis.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::amin (E &&e, X &&axes, EVS es=EVS())
     Minimum element along given axis.
     
    template<class E1, class E2, class E3>
    auto xt::clip (E1 &&e1, E2 &&lo, E3 &&hi) noexcept -> detail::xfunction_type_t< math::clamp_fun, E1, E2, E3 >
     Clip values between hi and lo.
     
    template<class E>
    auto xt::sign (E &&e) noexcept -> detail::xfunction_type_t< math::sign_fun, E >
     Returns an element-wise indication of the sign of a number.
     
    template<class E1, class E2, class E3, typename T>
    auto xt::interp (const E1 &x, const E2 &xp, const E3 &fp, T left, T right)
     Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.
     
    template<class E1, class E2 = xt::placeholders::xtuph, class E3 = double>
    auto xt::unwrap (E1 &&p, E2 discontinuity=xnone(), std::ptrdiff_t axis=-1, E3 period=2.0 *xt::numeric_constants< double >::PI)
     Unwrap by taking the complement of large deltas with respect to the period.
     
    template<class E1, class E2, class E3>
    auto xt::interp (const E1 &x, const E2 &xp, const E3 &fp)
     Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ abs()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::abs (E && e) -> detail::xfunction_type_t<math::abs_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Absolute value function.

    +

    Returns an xfunction for the element-wise absolute value of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 443 of file xmath.hpp.

    + +
    +
    + +

    ◆ amax()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::amax (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Maximum element along given axis.

    +

    Returns an xreducer for the maximum of elements over given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the maximum is found (optional)
    esevaluation strategy of the reducer
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 782 of file xmath.hpp.

    + +
    +
    + +

    ◆ amin()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::amin (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Minimum element along given axis.

    +

    Returns an xreducer for the minimum of elements over given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the minimum is found (optional)
    esevaluation strategy of the reducer
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 800 of file xmath.hpp.

    + +
    +
    + +

    ◆ clip()

    + +
    +
    +
    +template<class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::clip (E1 && e1,
    E2 && lo,
    E3 && hi ) -> detail::xfunction_type_t<math::clamp_fun, E1, E2, E3> +
    +
    +inlinenoexcept
    +
    + +

    Clip values between hi and lo.

    +

    Returns an xfunction for the element-wise clipped values between lo and hi

    Parameters
    + + + + +
    e1an xexpression or a scalar
    loa scalar
    hia scalar
    +
    +
    +
    Returns
    a xfunction
    + +

    Definition at line 815 of file xmath.hpp.

    + +
    +
    + +

    ◆ deg2rad()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::deg2rad (E && e) -> detail::xfunction_type_t<math::deg2rad, E> +
    +
    +inlinenoexcept
    +
    + +

    Convert angles from degrees to radians.

    +

    Returns an xfunction for the element-wise corresponding angle in radians of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 684 of file xmath.hpp.

    + +
    +
    + +

    ◆ degrees()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::degrees (E && e) -> detail::xfunction_type_t<math::rad2deg, E> +
    +
    +inlinenoexcept
    +
    + +

    Convert angles from radians to degrees.

    +

    Returns an xfunction for the element-wise corresponding angle in degrees of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 729 of file xmath.hpp.

    + +
    +
    + +

    ◆ fabs()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::fabs (E && e) -> detail::xfunction_type_t<math::fabs_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Absolute value function.

    +

    Returns an xfunction for the element-wise absolute value of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 458 of file xmath.hpp.

    + +
    +
    + +

    ◆ fdim()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::fdim (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::fdim_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Positive difference function.

    +

    Returns an xfunction for the element-wise positive difference of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 565 of file xmath.hpp.

    + +
    +
    + +

    ◆ fma()

    + +
    +
    +
    +template<class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::fma (E1 && e1,
    E2 && e2,
    E3 && e3 ) -> detail::xfunction_type_t<math::fma_fun, E1, E2, E3> +
    +
    +inlinenoexcept
    +
    + +

    Fused multiply-add operation.

    +

    Returns an xfunction for e1 * e2 + e3 as if to infinite precision and rounded only once to fit the result type.

    Parameters
    + + + + +
    e1an xfunction or a scalar
    e2an xfunction or a scalar
    e3an xfunction or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1, e2 and e3 can't be scalars every three.
    + +

    Definition at line 510 of file xmath.hpp.

    + +
    +
    + +

    ◆ fmax()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::fmax (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::fmax_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Maximum function.

    +

    Returns an xfunction for the element-wise maximum of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 531 of file xmath.hpp.

    + +
    +
    + +

    ◆ fmin()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::fmin (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::fmin_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Minimum function.

    +

    Returns an xfunction for the element-wise minimum of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 548 of file xmath.hpp.

    + +
    +
    + +

    ◆ fmod()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::fmod (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::fmod_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Remainder of the floating point division operation.

    +

    Returns an xfunction for the element-wise remainder of the floating point division operation e1 / e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 475 of file xmath.hpp.

    + +
    +
    + +

    ◆ interp() [1/2]

    + +
    +
    +
    +template<class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::interp (const E1 & x,
    const E2 & xp,
    const E3 & fp )
    +
    +inline
    +
    + +

    Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.

    +
    Parameters
    + + + + +
    xThe x-coordinates at which to evaluate the interpolated values (sorted).
    xpThe x-coordinates of the data points (sorted).
    fpThe y-coordinates of the data points, same length as xp.
    +
    +
    +
    Returns
    an one-dimensional xarray, same length as x.
    + +

    Definition at line 3182 of file xmath.hpp.

    + +
    +
    + +

    ◆ interp() [2/2]

    + +
    +
    +
    +template<class E1, class E2, class E3, typename T>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::interp (const E1 & x,
    const E2 & xp,
    const E3 & fp,
    T left,
    T right )
    +
    +inline
    +
    + +

    Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.

    +
    Parameters
    + + + + + + +
    xThe x-coordinates at which to evaluate the interpolated values (sorted).
    xpThe x-coordinates of the data points (sorted).
    fpThe y-coordinates of the data points, same length as xp.
    leftValue to return for x < xp[0].
    rightValue to return for x > xp[-1]
    +
    +
    +
    Returns
    an one-dimensional xarray, same length as x.
    + +

    Definition at line 3017 of file xmath.hpp.

    + +
    +
    + +

    ◆ maximum()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::maximum (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::maximum<void>, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Elementwise maximum.

    +

    Returns an xfunction for the element-wise maximum between e1 and e2.

    Parameters
    + + + +
    e1an xexpression
    e2an xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 745 of file xmath.hpp.

    + +
    +
    + +

    ◆ minimum()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::minimum (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::minimum<void>, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Elementwise minimum.

    +

    Returns an xfunction for the element-wise minimum between e1 and e2.

    Parameters
    + + + +
    e1an xexpression
    e2an xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 761 of file xmath.hpp.

    + +
    +
    + +

    ◆ rad2deg()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::rad2deg (E && e) -> detail::xfunction_type_t<math::rad2deg, E> +
    +
    +inlinenoexcept
    +
    + +

    Convert angles from radians to degrees.

    +

    Returns an xfunction for the element-wise corresponding angle in degrees of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 714 of file xmath.hpp.

    + +
    +
    + +

    ◆ radians()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::radians (E && e) -> detail::xfunction_type_t<math::deg2rad, E> +
    +
    +inlinenoexcept
    +
    + +

    Convert angles from degrees to radians.

    +

    Returns an xfunction for the element-wise corresponding angle in radians of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 699 of file xmath.hpp.

    + +
    +
    + +

    ◆ remainder()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::remainder (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::remainder_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Signed remainder of the division operation.

    +

    Returns an xfunction for the element-wise signed remainder of the floating point division operation e1 / e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 492 of file xmath.hpp.

    + +
    +
    + +

    ◆ sign()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::sign (E && e) -> detail::xfunction_type_t<math::sign_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Returns an element-wise indication of the sign of a number.

    +

    If the number is positive, returns +1. If negative, -1. If the number is zero, returns 0.

    +
    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 877 of file xmath.hpp.

    + +
    +
    + +

    ◆ unwrap()

    + +
    +
    +
    +template<class E1, class E2 = xt::placeholders::xtuph, class E3 = double>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::unwrap (E1 && p,
    E2 discontinuity = xnone(),
    std::ptrdiff_t axis = -1,
    E3 period = 2.0 * xt::numeric_constants<double>::PI )
    +
    +inline
    +
    + +

    Unwrap by taking the complement of large deltas with respect to the period.

    +

    https://numpy.org/doc/stable/reference/generated/numpy.unwrap.html

    Parameters
    + + + + + +
    pInput array.
    discontinuityMaximum discontinuity between values, default is period / 2. Values below period / 2 are treated as if they were period / 2. To have an effect different from the default, use discontinuity > period / 2.
    axisAxis along which unwrap will operate, default: the last axis.
    periodSize of the range over which the input wraps. Default: $ 2 \pi $.
    +
    +
    + +

    Definition at line 3137 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__basic__functions.js b/group__basic__functions.js new file mode 100644 index 000000000..490109ec8 --- /dev/null +++ b/group__basic__functions.js @@ -0,0 +1,24 @@ +var group__basic__functions = +[ + [ "xt::abs", "group__basic__functions.html#ga5a8df8c0823f064b710b90fdc73384f7", null ], + [ "xt::amax", "group__basic__functions.html#ga2087e1dd9e331edc470b4b78343f33af", null ], + [ "xt::amin", "group__basic__functions.html#gaab0c337a9aefb746fb8a8b6cfcb511ed", null ], + [ "xt::clip", "group__basic__functions.html#ga951c830ac7329af2e6de1194821c09c4", null ], + [ "xt::deg2rad", "group__basic__functions.html#ga1bc991dd9cc5f66575ab91f87b140577", null ], + [ "xt::degrees", "group__basic__functions.html#ga4450fb9262604f2ed230e479092e7fdb", null ], + [ "xt::fabs", "group__basic__functions.html#ga6548f786920ac988f0e655576b3a3c82", null ], + [ "xt::fdim", "group__basic__functions.html#gaa68f33844e1bb457b87880b7433506d3", null ], + [ "xt::fma", "group__basic__functions.html#ga0f88cbfba7ddc6b5e8a1c74e422a0409", null ], + [ "xt::fmax", "group__basic__functions.html#ga782cdb54181f69e99679e1045cb53323", null ], + [ "xt::fmin", "group__basic__functions.html#gab8eb77690d6d7b651f61a961b0b4e472", null ], + [ "xt::fmod", "group__basic__functions.html#ga51fa6991b9bc8878a763212346d6449b", null ], + [ "xt::interp", "group__basic__functions.html#gaa909fc5959dbb290c47c9698d5076ed3", null ], + [ "xt::interp", "group__basic__functions.html#ga47e1576710edcbb14d2ccf4df7d62ec3", null ], + [ "xt::maximum", "group__basic__functions.html#ga72354e9ca3d4446608c32d77d78fc721", null ], + [ "xt::minimum", "group__basic__functions.html#ga6ba20f491bf0a014df5a219461ac8c98", null ], + [ "xt::rad2deg", "group__basic__functions.html#gab8884e81107ab3012f7604fa1826bca3", null ], + [ "xt::radians", "group__basic__functions.html#ga9bdbff83a3137d687d749c710fa466fb", null ], + [ "xt::remainder", "group__basic__functions.html#ga2322bc87a5871e26173db4b2383e1db8", null ], + [ "xt::sign", "group__basic__functions.html#gad678caa2e599d095ad40e2b32bf4eb37", null ], + [ "xt::unwrap", "group__basic__functions.html#gaeb6f80a96d7a1da033b737b34acaeb74", null ] +]; \ No newline at end of file diff --git a/group__bitwise__operators.html b/group__bitwise__operators.html new file mode 100644 index 000000000..b0a95199b --- /dev/null +++ b/group__bitwise__operators.html @@ -0,0 +1,506 @@ + + + + + + + +xtensor: Bitwise operators + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Bitwise operators
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E1, class E2>
    auto xt::operator& (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_and, E1, E2 >
     Bitwise and.
     
    template<class E1, class E2>
    auto xt::operator| (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_or, E1, E2 >
     Bitwise or.
     
    template<class E1, class E2>
    auto xt::operator^ (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_xor, E1, E2 >
     Bitwise xor.
     
    template<class E>
    auto xt::operator~ (E &&e) noexcept -> detail::xfunction_type_t< detail::bitwise_not, E >
     Bitwise not.
     
    template<class E1, class E2>
    auto xt::left_shift (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::left_shift, E1, E2 >
     Bitwise left shift.
     
    template<class E1, class E2>
    auto xt::right_shift (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::right_shift, E1, E2 >
     Bitwise left shift.
     
    template<class E1, class E2>
    auto xt::operator<< (E1 &&e1, E2 &&e2) noexcept -> detail::shift_return_type_t< detail::left_shift, E1, E2 >
     Bitwise left shift.
     
    template<class E1, class E2>
    auto xt::operator>> (E1 &&e1, E2 &&e2) -> detail::shift_return_type_t< detail::right_shift, E1, E2 >
     Bitwise right shift.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ left_shift()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::left_shift (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::left_shift, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise left shift.

    +

    Returns an xfunction for the element-wise bitwise left shift of e1 by e2.

    Parameters
    + + + +
    e1an xexpression
    e2an xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 461 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator&()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator& (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::bitwise_and, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise and.

    +

    Returns an xfunction for the element-wise bitwise and of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 398 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator<<()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator<< (E1 && e1,
    E2 && e2 ) -> detail::shift_return_type_t<detail::left_shift, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise left shift.

    +

    Returns an xfunction for the element-wise bitwise left shift of e1 by e2.

    Parameters
    + + + +
    e1an xexpression
    e2an xexpression
    +
    +
    +
    Returns
    an xfunction
    +
    See also
    left_shift
    + +

    Definition at line 524 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator>>()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator>> (E1 && e1,
    E2 && e2 ) -> detail::shift_return_type_t<detail::right_shift, E1, E2> +
    +
    +inline
    +
    + +

    Bitwise right shift.

    +

    Returns an xfunction for the element-wise bitwise right shift of e1 by e2.

    Parameters
    + + + +
    e1an xexpression
    e2an xexpression
    +
    +
    +
    Returns
    an xfunction
    +
    See also
    right_shift
    + +

    Definition at line 542 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator^()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator^ (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::bitwise_xor, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise xor.

    +

    Returns an xfunction for the element-wise bitwise xor of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 430 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator|()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator| (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::bitwise_or, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise or.

    +

    Returns an xfunction for the element-wise bitwise or of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 414 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator~()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::operator~ (E && e) -> detail::xfunction_type_t<detail::bitwise_not, E> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise not.

    +

    Returns an xfunction for the element-wise bitwise not of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 445 of file xoperation.hpp.

    + +
    +
    + +

    ◆ right_shift()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::right_shift (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::right_shift, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Bitwise left shift.

    +

    Returns an xfunction for the element-wise bitwise left shift of e1 by e2.

    Parameters
    + + + +
    e1an xexpression
    e2an xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 477 of file xoperation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__bitwise__operators.js b/group__bitwise__operators.js new file mode 100644 index 000000000..e747d71d1 --- /dev/null +++ b/group__bitwise__operators.js @@ -0,0 +1,11 @@ +var group__bitwise__operators = +[ + [ "xt::left_shift", "group__bitwise__operators.html#ga2cd49affcc3745f02fbb43f1bed16ed1", null ], + [ "xt::operator&", "group__bitwise__operators.html#ga0084d8f6f0f513d35a35e79f7fffc2fb", null ], + [ "xt::operator<<", "group__bitwise__operators.html#gaa7b48fdbaa2c12656338470eb3cc5c8e", null ], + [ "xt::operator>>", "group__bitwise__operators.html#gace6ce969d4a7bdee37e410309448df92", null ], + [ "xt::operator^", "group__bitwise__operators.html#ga85c9a2b613116854aa104a4005f2a0f4", null ], + [ "xt::operator|", "group__bitwise__operators.html#gac1e3650f1eae70c7ab951cce7df0b7ac", null ], + [ "xt::operator~", "group__bitwise__operators.html#ga61f9831f1f2da86982f23d8e4e45e3db", null ], + [ "xt::right_shift", "group__bitwise__operators.html#ga2eab76876895cd0cae2a667e513c9f92", null ] +]; \ No newline at end of file diff --git a/group__casting__operators.html b/group__casting__operators.html new file mode 100644 index 000000000..fdc23ead7 --- /dev/null +++ b/group__casting__operators.html @@ -0,0 +1,169 @@ + + + + + + + +xtensor: Casting operators + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Casting operators
    +
    +
    + + + + + + +

    +Functions

    template<class R, class E>
    auto xt::cast (E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
     Element-wise static_cast.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ cast()

    + +
    +
    +
    +template<class R, class E>
    + + + + + +
    + + + + + + + +
    auto xt::cast (E && e) -> detail::xfunction_type_t<typename detail::cast<R>::functor, E> +
    +
    +inlinenoexcept
    +
    + +

    Element-wise static_cast.

    +

    Returns an xfunction for the element-wise static_cast of e to type R.

    +
    Parameters
    + + +
    ean xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 989 of file xoperation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__casting__operators.js b/group__casting__operators.js new file mode 100644 index 000000000..b65ba968a --- /dev/null +++ b/group__casting__operators.js @@ -0,0 +1,4 @@ +var group__casting__operators = +[ + [ "xt::cast", "group__casting__operators.html#ga8d57e20151af53f5ffec3afa6f834cf4", null ] +]; \ No newline at end of file diff --git a/group__classif__functions.html b/group__classif__functions.html new file mode 100644 index 000000000..fad8928f4 --- /dev/null +++ b/group__classif__functions.html @@ -0,0 +1,378 @@ + + + + + + + +xtensor: Classification functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Classification functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::isfinite (E &&e) noexcept -> detail::xfunction_type_t< math::isfinite_fun, E >
     finite value check
     
    template<class E>
    auto xt::isinf (E &&e) noexcept -> detail::xfunction_type_t< math::isinf_fun, E >
     infinity check
     
    template<class E>
    auto xt::isnan (E &&e) noexcept -> detail::xfunction_type_t< math::isnan_fun, E >
     NaN check.
     
    template<class E1, class E2>
    auto xt::isclose (E1 &&e1, E2 &&e2, double rtol=1e-05, double atol=1e-08, bool equal_nan=false) noexcept
     Element-wise closeness detection.
     
    template<class E1, class E2>
    auto xt::allclose (E1 &&e1, E2 &&e2, double rtol=1e-05, double atol=1e-08) noexcept
     Check if all elements in e1 are close to the corresponding elements in e2.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ allclose()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::allclose (E1 && e1,
    E2 && e2,
    double rtol = 1e-05,
    double atol = 1e-08 )
    +
    +inlinenoexcept
    +
    + +

    Check if all elements in e1 are close to the corresponding elements in e2.

    +

    Returns true if all elements in e1 and e2 are close to each other according to parameters atol and rtol.

    Parameters
    + + + + + +
    e1input array to compare
    e2input arrays to compare
    rtolthe relative tolerance parameter (default 1e-05)
    atolthe absolute tolerance parameter (default 1e-08)
    +
    +
    +
    Returns
    a boolean
    + +

    Definition at line 1810 of file xmath.hpp.

    + +
    +
    + +

    ◆ isclose()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::isclose (E1 && e1,
    E2 && e2,
    double rtol = 1e-05,
    double atol = 1e-08,
    bool equal_nan = false )
    +
    +inlinenoexcept
    +
    + +

    Element-wise closeness detection.

    +

    Returns an xfunction that evaluates to true if the elements in e1 and e2 are close to each other according to parameters atol and rtol. The equation is: std::abs(a - b) <= (m_atol + m_rtol * std::abs(b)).

    Parameters
    + + + + + + +
    e1input array to compare
    e2input array to compare
    rtolthe relative tolerance parameter (default 1e-05)
    atolthe absolute tolerance parameter (default 1e-08)
    equal_nanif true, isclose returns true if both elements of e1 and e2 are NaN
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1787 of file xmath.hpp.

    + +
    +
    + +

    ◆ isfinite()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::isfinite (E && e) -> detail::xfunction_type_t<math::isfinite_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    finite value check

    +

    Returns an xfunction for the element-wise finite value check tangent of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1675 of file xmath.hpp.

    + +
    +
    + +

    ◆ isinf()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::isinf (E && e) -> detail::xfunction_type_t<math::isinf_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    infinity check

    +

    Returns an xfunction for the element-wise infinity check tangent of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1690 of file xmath.hpp.

    + +
    +
    + +

    ◆ isnan()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::isnan (E && e) -> detail::xfunction_type_t<math::isnan_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    NaN check.

    +

    Returns an xfunction for the element-wise NaN check tangent of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1705 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__classif__functions.js b/group__classif__functions.js new file mode 100644 index 000000000..475d97ceb --- /dev/null +++ b/group__classif__functions.js @@ -0,0 +1,8 @@ +var group__classif__functions = +[ + [ "xt::allclose", "group__classif__functions.html#ga07beaa8c1b5c159ac3f6c0c09ab1e05c", null ], + [ "xt::isclose", "group__classif__functions.html#ga94330518c2d0f78691dc8bb4b27eb72a", null ], + [ "xt::isfinite", "group__classif__functions.html#ga177a09c77ac16a253588403fe7cbeaec", null ], + [ "xt::isinf", "group__classif__functions.html#ga94db88dbac47fd2e3cce71c568332554", null ], + [ "xt::isnan", "group__classif__functions.html#ga41ec7bcedb794bccf3535bac9c3142ab", null ] +]; \ No newline at end of file diff --git a/group__comparison__operators.html b/group__comparison__operators.html new file mode 100644 index 000000000..dfa3c7049 --- /dev/null +++ b/group__comparison__operators.html @@ -0,0 +1,699 @@ + + + + + + + +xtensor: Comparison operators + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Comparison operators
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E1, class E2>
    auto xt::operator< (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::less, E1, E2 >
     Lesser than.
     
    template<class E1, class E2>
    auto xt::operator<= (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::less_equal, E1, E2 >
     Lesser or equal.
     
    template<class E1, class E2>
    auto xt::operator> (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::greater, E1, E2 >
     Greater than.
     
    template<class E1, class E2>
    auto xt::operator>= (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::greater_equal, E1, E2 >
     Greater or equal.
     
    template<class E1, class E2>
    std::enable_if_t< xoptional_comparable< E1, E2 >::value, bool > xt::operator== (const xexpression< E1 > &e1, const xexpression< E2 > &e2)
     Equality.
     
    template<class E1, class E2>
    bool xt::operator!= (const xexpression< E1 > &e1, const xexpression< E2 > &e2)
     Inequality.
     
    template<class E1, class E2>
    auto xt::equal (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >
     Element-wise equality.
     
    template<class E1, class E2>
    auto xt::not_equal (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::not_equal_to, E1, E2 >
     Element-wise inequality.
     
    template<class E1, class E2>
    auto xt::less (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1)< std::forward< E2 >(e2))
     Lesser than.
     
    template<class E1, class E2>
    auto xt::less_equal (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1)<=std::forward< E2 >(e2))
     Lesser or equal.
     
    template<class E1, class E2>
    auto xt::greater (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) > std::forward< E2 >(e2))
     Greater than.
     
    template<class E1, class E2>
    auto xt::greater_equal (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) >=std::forward< E2 >(e2))
     Greater or equal.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ equal()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::equal (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::equal_to, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Element-wise equality.

    +

    Returns an xfunction for the element-wise equality of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 673 of file xoperation.hpp.

    + +
    +
    + +

    ◆ greater()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::greater (E1 && e1,
    E2 && e2 ) -> decltype(std::forward<E1>(e1) > std::forward<E2>(e2)) +
    +
    +inlinenoexcept
    +
    + +

    Greater than.

    +

    Returns an xfunction for the element-wise greater than comparison of e1 and e2. This function is equivalent to operator>(E1&&, E2&&).

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 740 of file xoperation.hpp.

    + +
    +
    + +

    ◆ greater_equal()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::greater_equal (E1 && e1,
    E2 && e2 ) -> decltype(std::forward<E1>(e1) >= std::forward<E2>(e2)) +
    +
    +inlinenoexcept
    +
    + +

    Greater or equal.

    +

    Returns an xfunction for the element-wise greater or equal comparison of e1 and e2. This function is equivalent to operator>=(E1&&, E2&&).

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 757 of file xoperation.hpp.

    + +
    +
    + +

    ◆ less()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::less (E1 && e1,
    E2 && e2 ) -> decltype(std::forward<E1>(e1) < std::forward<E2>(e2)) +
    +
    +inlinenoexcept
    +
    + +

    Lesser than.

    +

    Returns an xfunction for the element-wise lesser than comparison of e1 and e2. This function is equivalent to operator<(E1&&, E2&&).

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 706 of file xoperation.hpp.

    + +
    +
    + +

    ◆ less_equal()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::less_equal (E1 && e1,
    E2 && e2 ) -> decltype(std::forward<E1>(e1) <= std::forward<E2>(e2)) +
    +
    +inlinenoexcept
    +
    + +

    Lesser or equal.

    +

    Returns an xfunction for the element-wise lesser or equal comparison of e1 and e2. This function is equivalent to operator<=(E1&&, E2&&).

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 723 of file xoperation.hpp.

    + +
    +
    + +

    ◆ not_equal()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::not_equal (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::not_equal_to, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Element-wise inequality.

    +

    Returns an xfunction for the element-wise inequality of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 689 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const xexpression< E1 > & e1,
    const xexpression< E2 > & e2 )
    +
    +inline
    +
    + +

    Inequality.

    +

    Returns true if e1 and e2 have different shapes or hold the different values. Unlike other comparison operators, this does not return an xfunction.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    a boolean
    + +

    Definition at line 657 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator<()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator< (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::less, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Lesser than.

    +

    Returns an xfunction for the element-wise lesser than comparison of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 562 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator<=()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator<= (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::less_equal, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Lesser or equal.

    +

    Returns an xfunction for the element-wise lesser or equal comparison of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 578 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    std::enable_if_t< xoptional_comparable< E1, E2 >::value, bool > xt::operator== (const xexpression< E1 > & e1,
    const xexpression< E2 > & e2 )
    +
    +inline
    +
    + +

    Equality.

    +

    Returns true if e1 and e2 have the same shape and hold the same values. Unlike other comparison operators, this does not return an xfunction.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    a boolean
    + +

    Definition at line 629 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator>()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator> (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::greater, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Greater than.

    +

    Returns an xfunction for the element-wise greater than comparison of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 594 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator>=()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator>= (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::greater_equal, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Greater or equal.

    +

    Returns an xfunction for the element-wise greater or equal comparison of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 610 of file xoperation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__comparison__operators.js b/group__comparison__operators.js new file mode 100644 index 000000000..cda864dad --- /dev/null +++ b/group__comparison__operators.js @@ -0,0 +1,15 @@ +var group__comparison__operators = +[ + [ "xt::equal", "group__comparison__operators.html#ga4c778acba0a9407a9093505fad0506d2", null ], + [ "xt::greater", "group__comparison__operators.html#ga7c7efdc8246d1ae40ab7f6a8cffe0958", null ], + [ "xt::greater_equal", "group__comparison__operators.html#ga68a359635b6a5d0940f97c7586a61ea3", null ], + [ "xt::less", "group__comparison__operators.html#ga2c830ecb583258f639e710642dbf0d7c", null ], + [ "xt::less_equal", "group__comparison__operators.html#ga9e84bf652cf6e810f974a8bcb51f1511", null ], + [ "xt::not_equal", "group__comparison__operators.html#ga014ea335af4e1334f9d95ca6f9b9f6ce", null ], + [ "xt::operator!=", "group__comparison__operators.html#gaae699c5c8cda32f45372da2daee9a9b4", null ], + [ "xt::operator<", "group__comparison__operators.html#ga2adbdc9609fe51aa3e50955fe039ba67", null ], + [ "xt::operator<=", "group__comparison__operators.html#gaf7b3cb0fe146e5a95a750a1291bfdcca", null ], + [ "xt::operator==", "group__comparison__operators.html#gaa82e19b7daac1f55388a62f89cd5f9c7", null ], + [ "xt::operator>", "group__comparison__operators.html#ga3addaced4bd7bdacea4a842d9d6c850a", null ], + [ "xt::operator>=", "group__comparison__operators.html#gaa40baca1e4f53789261cd3e8736a98ef", null ] +]; \ No newline at end of file diff --git a/group__digitize.html b/group__digitize.html new file mode 100644 index 000000000..69d736bbe --- /dev/null +++ b/group__digitize.html @@ -0,0 +1,182 @@ + + + + + + + +xtensor: Digitize helpers + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Digitize helpers
    +
    +
    + +

    Helpers for assigning values to histogram bins. +More...

    + + + + + + +

    +Functions

    template<class E1, class E2>
    auto xt::digitize (E1 &&data, E2 &&bin_edges, bool right=false)
     Return the indices of the bins to which each value in input array belongs.
     
    +

    Detailed Description

    +

    Helpers for assigning values to histogram bins.

    +

    Function Documentation

    + +

    ◆ digitize()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::digitize (E1 && data,
    E2 && bin_edges,
    bool right = false )
    +
    +inline
    +
    + +

    Return the indices of the bins to which each value in input array belongs.

    +
    Parameters
    + + + + +
    dataThe data.
    bin_edgesThe bin-edges. It has to be 1-dimensional and monotonic.
    rightIndicating whether the intervals include the right or the left bin edge.
    +
    +
    +
    Returns
    Output array of indices, of same shape as x.
    + +

    Definition at line 41 of file xhistogram.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__digitize.js b/group__digitize.js new file mode 100644 index 000000000..eb71d4cd1 --- /dev/null +++ b/group__digitize.js @@ -0,0 +1,4 @@ +var group__digitize = +[ + [ "xt::digitize", "group__digitize.html#ga80fb5a6e58dafe175544508ea913cff0", null ] +]; \ No newline at end of file diff --git a/group__err__functions.html b/group__err__functions.html new file mode 100644 index 000000000..0da8324da --- /dev/null +++ b/group__err__functions.html @@ -0,0 +1,297 @@ + + + + + + + +xtensor: Error and gamma functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Error and gamma functions
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::erf (E &&e) noexcept -> detail::xfunction_type_t< math::erf_fun, E >
     Error function.
     
    template<class E>
    auto xt::erfc (E &&e) noexcept -> detail::xfunction_type_t< math::erfc_fun, E >
     Complementary error function.
     
    template<class E>
    auto xt::tgamma (E &&e) noexcept -> detail::xfunction_type_t< math::tgamma_fun, E >
     Gamma function.
     
    template<class E>
    auto xt::lgamma (E &&e) noexcept -> detail::xfunction_type_t< math::lgamma_fun, E >
     Natural logarithm of the gamma function.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ erf()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::erf (E && e) -> detail::xfunction_type_t<math::erf_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Error function.

    +

    Returns an xfunction for the element-wise error function of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1506 of file xmath.hpp.

    + +
    +
    + +

    ◆ erfc()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::erfc (E && e) -> detail::xfunction_type_t<math::erfc_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Complementary error function.

    +

    Returns an xfunction for the element-wise complementary error function of e, whithout loss of precision for large argument.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1521 of file xmath.hpp.

    + +
    +
    + +

    ◆ lgamma()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::lgamma (E && e) -> detail::xfunction_type_t<math::lgamma_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Natural logarithm of the gamma function.

    +

    Returns an xfunction for the element-wise logarithm of the asbolute value fo the gamma function of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1551 of file xmath.hpp.

    + +
    +
    + +

    ◆ tgamma()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::tgamma (E && e) -> detail::xfunction_type_t<math::tgamma_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Gamma function.

    +

    Returns an xfunction for the element-wise gamma function of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1536 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__err__functions.js b/group__err__functions.js new file mode 100644 index 000000000..db1676b69 --- /dev/null +++ b/group__err__functions.js @@ -0,0 +1,7 @@ +var group__err__functions = +[ + [ "xt::erf", "group__err__functions.html#ga996f61e9186110b7daa859da0a8d2755", null ], + [ "xt::erfc", "group__err__functions.html#ga6af9a81a9ca2bab66e744167c9683920", null ], + [ "xt::lgamma", "group__err__functions.html#ga5216029cd6e56b81f5145041540d043e", null ], + [ "xt::tgamma", "group__err__functions.html#gabe9c5e1fc33af3db795c8b3655321f02", null ] +]; \ No newline at end of file diff --git a/group__exp__functions.html b/group__exp__functions.html new file mode 100644 index 000000000..374d27532 --- /dev/null +++ b/group__exp__functions.html @@ -0,0 +1,426 @@ + + + + + + + +xtensor: Exponential functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Exponential functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::exp (E &&e) noexcept -> detail::xfunction_type_t< math::exp_fun, E >
     Natural exponential function.
     
    template<class E>
    auto xt::exp2 (E &&e) noexcept -> detail::xfunction_type_t< math::exp2_fun, E >
     Base 2 exponential function.
     
    template<class E>
    auto xt::expm1 (E &&e) noexcept -> detail::xfunction_type_t< math::expm1_fun, E >
     Natural exponential minus one function.
     
    template<class E>
    auto xt::log (E &&e) noexcept -> detail::xfunction_type_t< math::log_fun, E >
     Natural logarithm function.
     
    template<class E>
    auto xt::log10 (E &&e) noexcept -> detail::xfunction_type_t< math::log10_fun, E >
     Base 10 logarithm function.
     
    template<class E>
    auto xt::log2 (E &&e) noexcept -> detail::xfunction_type_t< math::log2_fun, E >
     Base 2 logarithm function.
     
    template<class E>
    auto xt::log1p (E &&e) noexcept -> detail::xfunction_type_t< math::log1p_fun, E >
     Natural logarithm of one plus function.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ exp()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::exp (E && e) -> detail::xfunction_type_t<math::exp_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Natural exponential function.

    +

    Returns an xfunction for the element-wise natural exponential of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 900 of file xmath.hpp.

    + +
    +
    + +

    ◆ exp2()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::exp2 (E && e) -> detail::xfunction_type_t<math::exp2_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Base 2 exponential function.

    +

    Returns an xfunction for the element-wise base 2 exponential of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 915 of file xmath.hpp.

    + +
    +
    + +

    ◆ expm1()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::expm1 (E && e) -> detail::xfunction_type_t<math::expm1_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Natural exponential minus one function.

    +

    Returns an xfunction for the element-wise natural exponential of e, minus 1.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 930 of file xmath.hpp.

    + +
    +
    + +

    ◆ log()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::log (E && e) -> detail::xfunction_type_t<math::log_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Natural logarithm function.

    +

    Returns an xfunction for the element-wise natural logarithm of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 945 of file xmath.hpp.

    + +
    +
    + +

    ◆ log10()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::log10 (E && e) -> detail::xfunction_type_t<math::log10_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Base 10 logarithm function.

    +

    Returns an xfunction for the element-wise base 10 logarithm of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 960 of file xmath.hpp.

    + +
    +
    + +

    ◆ log1p()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::log1p (E && e) -> detail::xfunction_type_t<math::log1p_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Natural logarithm of one plus function.

    +

    Returns an xfunction for the element-wise natural logarithm of e, plus 1.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 990 of file xmath.hpp.

    + +
    +
    + +

    ◆ log2()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::log2 (E && e) -> detail::xfunction_type_t<math::log2_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Base 2 logarithm function.

    +

    Returns an xfunction for the element-wise base 2 logarithm of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 975 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__exp__functions.js b/group__exp__functions.js new file mode 100644 index 000000000..bbda9a612 --- /dev/null +++ b/group__exp__functions.js @@ -0,0 +1,10 @@ +var group__exp__functions = +[ + [ "xt::exp", "group__exp__functions.html#gae0c736d69056d124184aada09007e70b", null ], + [ "xt::exp2", "group__exp__functions.html#ga212886f718828e83aaf07cdabf60aeab", null ], + [ "xt::expm1", "group__exp__functions.html#ga1646ca23b54f4a72d4bbe46f1182921c", null ], + [ "xt::log", "group__exp__functions.html#gaaeb73f780e08001206f1f9ed9db161e1", null ], + [ "xt::log10", "group__exp__functions.html#gae6585ff00a0cf0fdcdf659639e8d1ca0", null ], + [ "xt::log1p", "group__exp__functions.html#ga08b8fa80ab57f38bb87e8c01b943d7f7", null ], + [ "xt::log2", "group__exp__functions.html#gae08fcbd5914db4f5b2649f5333375d95", null ] +]; \ No newline at end of file diff --git a/group__histogram.html b/group__histogram.html new file mode 100644 index 000000000..624755f97 --- /dev/null +++ b/group__histogram.html @@ -0,0 +1,775 @@ + + + + + + + +xtensor: Histogram functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Histogram functions
    +
    +
    + +

    Helpers for computing histograms and histogram bin edges. +More...

    + + + + + +

    +Enumerations

    enum class  xt::histogram_algorithm { automatic +, linspace +, logspace +, uniform + }
     Defines different algorithms to be used in "histogram_bin_edges". More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class R = double, class E1, class E2, class E3>
    auto xt::histogram (E1 &&data, E2 &&bin_edges, E3 &&weights, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2>
    auto xt::histogram (E1 &&data, E2 &&bin_edges, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1>
    auto xt::histogram (E1 &&data, std::size_t bins=10, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2>
    auto xt::histogram (E1 &&data, std::size_t bins, E2 left, E2 right, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2>
    auto xt::histogram (E1 &&data, std::size_t bins, E2 &&weights, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2, class E3>
    auto xt::histogram (E1 &&data, std::size_t bins, E2 &&weights, E3 left, E3 right, bool density=false)
     Compute the histogram of a set of data.
     
    template<class E1, class E2, class E3>
    auto xt::histogram_bin_edges (E1 &&data, E2 &&weights, E3 left, E3 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1, class E2>
    auto xt::histogram_bin_edges (E1 &&data, E2 &&weights, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1>
    auto xt::histogram_bin_edges (E1 &&data, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1, class E2>
    auto xt::histogram_bin_edges (E1 &&data, E2 left, E2 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    +

    Detailed Description

    +

    Helpers for computing histograms and histogram bin edges.

    +

    Enumeration Type Documentation

    + +

    ◆ histogram_algorithm

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::histogram_algorithm
    +
    +strong
    +
    + +

    Defines different algorithms to be used in "histogram_bin_edges".

    + +

    Definition at line 290 of file xhistogram.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ histogram() [1/6]

    + +
    +
    +
    +template<class R = double, class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::histogram (E1 && data,
    E2 && bin_edges,
    bool density = false )
    +
    +inline
    +
    + +

    Compute the histogram of a set of data.

    +
    Parameters
    + + + + +
    dataThe data.
    bin_edgesThe bin-edges.
    densityIf true the resulting integral is normalized to 1. [default: false]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bin_edges.size()-1.
    + +

    Definition at line 173 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram() [2/6]

    + +
    +
    +
    +template<class R = double, class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram (E1 && data,
    E2 && bin_edges,
    E3 && weights,
    bool density = false )
    +
    +inline
    +
    + +

    Compute the histogram of a set of data.

    +
    Parameters
    + + + + + +
    dataThe data.
    bin_edgesThe bin-edges. It has to be 1-dimensional and monotonic.
    weightsWeight factors corresponding to each data-point.
    densityIf true the resulting integral is normalized to 1. [default: false]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bin_edges.size()-1.
    + +

    Definition at line 152 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram() [3/6]

    + +
    +
    +
    +template<class R = double, class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram (E1 && data,
    std::size_t bins,
    E2 && weights,
    bool density = false )
    +
    +inline
    +
    + +

    Compute the histogram of a set of data.

    +
    Parameters
    + + + + + +
    dataThe data.
    binsThe number of bins.
    weightsWeight factors corresponding to each data-point.
    densityIf true the resulting integral is normalized to 1. [default: false]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bin_edges.size()-1.
    + +

    Definition at line 251 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram() [4/6]

    + +
    +
    +
    +template<class R = double, class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram (E1 && data,
    std::size_t bins,
    E2 && weights,
    E3 left,
    E3 right,
    bool density = false )
    +
    +inline
    +
    + +

    Compute the histogram of a set of data.

    +
    Parameters
    + + + + + + + +
    dataThe data.
    binsThe number of bins.
    leftThe lower-most edge.
    rightThe upper-most edge.
    weightsWeight factors corresponding to each data-point.
    densityIf true the resulting integral is normalized to 1. [default: false]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bin_edges.size()-1.
    + +

    Definition at line 275 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram() [5/6]

    + +
    +
    +
    +template<class R = double, class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram (E1 && data,
    std::size_t bins,
    E2 left,
    E2 right,
    bool density = false )
    +
    +inline
    +
    + +

    Compute the histogram of a set of data.

    +
    Parameters
    + + + + + + +
    dataThe data.
    binsThe number of bins.
    leftThe lower-most edge.
    rightThe upper-most edge.
    densityIf true the resulting integral is normalized to 1. [default: false]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bin_edges.size()-1.
    + +

    Definition at line 225 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram() [6/6]

    + +
    +
    +
    +template<class R = double, class E1>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::histogram (E1 && data,
    std::size_t bins = 10,
    bool density = false )
    +
    +inline
    +
    + +

    Compute the histogram of a set of data.

    +
    Parameters
    + + + + +
    dataThe data.
    binsThe number of bins. [default: 10]
    densityIf true the resulting integral is normalized to 1. [default: false]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bin_edges.size()-1.
    + +

    Definition at line 198 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram_bin_edges() [1/4]

    + +
    +
    +
    +template<class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram_bin_edges (E1 && data,
    E2 && weights,
    E3 left,
    E3 right,
    std::size_t bins = 10,
    histogram_algorithm mode = histogram_algorithm::automatic )
    +
    +inline
    +
    + +

    Compute the bin-edges of a histogram of a set of data using different algorithms.

    +
    Parameters
    + + + + + + + +
    dataThe data.
    weightsWeight factors corresponding to each data-point.
    leftThe lower-most edge.
    rightThe upper-most edge.
    binsThe number of bins. [default: 10]
    modeThe type of algorithm to use. [default: "auto"]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bins+1.
    + +

    Definition at line 311 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram_bin_edges() [2/4]

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram_bin_edges (E1 && data,
    E2 && weights,
    std::size_t bins = 10,
    histogram_algorithm mode = histogram_algorithm::automatic )
    +
    +inline
    +
    + +

    Compute the bin-edges of a histogram of a set of data using different algorithms.

    +
    Parameters
    + + + + + +
    dataThe data.
    weightsWeight factors corresponding to each data-point.
    binsThe number of bins. [default: 10]
    modeThe type of algorithm to use. [default: "auto"]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bins+1.
    + +

    Definition at line 428 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram_bin_edges() [3/4]

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::histogram_bin_edges (E1 && data,
    E2 left,
    E2 right,
    std::size_t bins = 10,
    histogram_algorithm mode = histogram_algorithm::automatic )
    +
    +inline
    +
    + +

    Compute the bin-edges of a histogram of a set of data using different algorithms.

    +
    Parameters
    + + + + + + +
    dataThe data.
    leftThe lower-most edge.
    rightThe upper-most edge.
    binsThe number of bins. [default: 10]
    modeThe type of algorithm to use. [default: "auto"]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bins+1.
    + +

    Definition at line 490 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ histogram_bin_edges() [4/4]

    + +
    +
    +
    +template<class E1>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::histogram_bin_edges (E1 && data,
    std::size_t bins = 10,
    histogram_algorithm mode = histogram_algorithm::automatic )
    +
    +inline
    +
    + +

    Compute the bin-edges of a histogram of a set of data using different algorithms.

    +
    Parameters
    + + + + +
    dataThe data.
    binsThe number of bins. [default: 10]
    modeThe type of algorithm to use. [default: "auto"]
    +
    +
    +
    Returns
    An one-dimensional xarray<double>, length: bins+1.
    + +

    Definition at line 460 of file xhistogram.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__histogram.js b/group__histogram.js new file mode 100644 index 000000000..f2de145fb --- /dev/null +++ b/group__histogram.js @@ -0,0 +1,14 @@ +var group__histogram = +[ + [ "xt::histogram_algorithm", "group__histogram.html#gaaa63c71a8935d44bbec1aa9af4cb61b8", null ], + [ "xt::histogram", "group__histogram.html#ga0a5ba67f2a11ee24ccf629105d12e407", null ], + [ "xt::histogram", "group__histogram.html#ga95e9ea74b2e3f62bb682798bd5d7414d", null ], + [ "xt::histogram", "group__histogram.html#ga8545490885a4a8466344d954bd5326c1", null ], + [ "xt::histogram", "group__histogram.html#gaaadf08c80728a3d2ace5739f3350f908", null ], + [ "xt::histogram", "group__histogram.html#ga60449f18cbf62c0a104cf72e53f7948d", null ], + [ "xt::histogram", "group__histogram.html#gad8379adac71c1af9b9bc50f835d9536f", null ], + [ "xt::histogram_bin_edges", "group__histogram.html#ga53ca89b6c48fc35c9a293c2d81f66288", null ], + [ "xt::histogram_bin_edges", "group__histogram.html#gaa3d16282168b4675fdc93c5563eb5324", null ], + [ "xt::histogram_bin_edges", "group__histogram.html#ga5abbd094554988573b2c3cce9e521aab", null ], + [ "xt::histogram_bin_edges", "group__histogram.html#ga49105a6754699f6ab1073e9868782ec8", null ] +]; \ No newline at end of file diff --git a/group__hyper__functions.html b/group__hyper__functions.html new file mode 100644 index 000000000..21bfcb6e3 --- /dev/null +++ b/group__hyper__functions.html @@ -0,0 +1,383 @@ + + + + + + + +xtensor: Hyperbolic functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Hyperbolic functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::sinh (E &&e) noexcept -> detail::xfunction_type_t< math::sinh_fun, E >
     Hyperbolic sine function.
     
    template<class E>
    auto xt::cosh (E &&e) noexcept -> detail::xfunction_type_t< math::cosh_fun, E >
     Hyperbolic cosine function.
     
    template<class E>
    auto xt::tanh (E &&e) noexcept -> detail::xfunction_type_t< math::tanh_fun, E >
     Hyperbolic tangent function.
     
    template<class E>
    auto xt::asinh (E &&e) noexcept -> detail::xfunction_type_t< math::asinh_fun, E >
     Inverse hyperbolic sine function.
     
    template<class E>
    auto xt::acosh (E &&e) noexcept -> detail::xfunction_type_t< math::acosh_fun, E >
     Inverse hyperbolic cosine function.
     
    template<class E>
    auto xt::atanh (E &&e) noexcept -> detail::xfunction_type_t< math::atanh_fun, E >
     Inverse hyperbolic tangent function.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ acosh()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::acosh (E && e) -> detail::xfunction_type_t<math::acosh_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Inverse hyperbolic cosine function.

    +

    Returns an xfunction for the element-wise inverse hyperbolic cosine of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1468 of file xmath.hpp.

    + +
    +
    + +

    ◆ asinh()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::asinh (E && e) -> detail::xfunction_type_t<math::asinh_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Inverse hyperbolic sine function.

    +

    Returns an xfunction for the element-wise inverse hyperbolic sine of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1453 of file xmath.hpp.

    + +
    +
    + +

    ◆ atanh()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::atanh (E && e) -> detail::xfunction_type_t<math::atanh_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Inverse hyperbolic tangent function.

    +

    Returns an xfunction for the element-wise inverse hyperbolic tangent of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1483 of file xmath.hpp.

    + +
    +
    + +

    ◆ cosh()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::cosh (E && e) -> detail::xfunction_type_t<math::cosh_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Hyperbolic cosine function.

    +

    Returns an xfunction for the element-wise hyperbolic cosine of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1423 of file xmath.hpp.

    + +
    +
    + +

    ◆ sinh()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::sinh (E && e) -> detail::xfunction_type_t<math::sinh_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Hyperbolic sine function.

    +

    Returns an xfunction for the element-wise hyperbolic sine of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1408 of file xmath.hpp.

    + +
    +
    + +

    ◆ tanh()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::tanh (E && e) -> detail::xfunction_type_t<math::tanh_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Hyperbolic tangent function.

    +

    Returns an xfunction for the element-wise hyperbolic tangent of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1438 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__hyper__functions.js b/group__hyper__functions.js new file mode 100644 index 000000000..033ff41a3 --- /dev/null +++ b/group__hyper__functions.js @@ -0,0 +1,9 @@ +var group__hyper__functions = +[ + [ "xt::acosh", "group__hyper__functions.html#ga982a251110da20b8dae705367b3ddd7e", null ], + [ "xt::asinh", "group__hyper__functions.html#ga0893b951ad8fb1b23b97f0dae14651de", null ], + [ "xt::atanh", "group__hyper__functions.html#gaf99552b5a0d06bfd92f42f272e7af623", null ], + [ "xt::cosh", "group__hyper__functions.html#ga4073cdc98201789ff723069156b4d34b", null ], + [ "xt::sinh", "group__hyper__functions.html#ga43507ff72c11c17061fd4ae7716c11d5", null ], + [ "xt::tanh", "group__hyper__functions.html#ga1b22c94cc8d9750ca8153d9b5bbb6c86", null ] +]; \ No newline at end of file diff --git a/group__logical__operators.html b/group__logical__operators.html new file mode 100644 index 000000000..277dd6f49 --- /dev/null +++ b/group__logical__operators.html @@ -0,0 +1,833 @@ + + + + + + + +xtensor: Logical operators + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Logical operators
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E1, class E2>
    auto xt::operator|| (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::logical_or, E1, E2 >
     Or.
     
    template<class E1, class E2>
    auto xt::operator&& (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::logical_and, E1, E2 >
     And.
     
    template<class E>
    auto xt::operator! (E &&e) noexcept -> detail::xfunction_type_t< detail::logical_not, E >
     Not.
     
    template<class E1, class E2, class E3>
    auto xt::where (E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< detail::conditional_ternary, E1, E2, E3 >
     Ternary selection.
     
    template<class T>
    auto xt::nonzero (const T &arr)
     return vector of indices where T is not zero
     
    template<class T>
    auto xt::where (const T &condition)
     return vector of indices where condition is true (equivalent to nonzero(condition))
     
    template<layout_type L = ::xt::layout_type::row_major, class T>
    auto xt::argwhere (const T &arr)
     return vector of indices where arr is not zero
     
    template<class E>
    bool xt::any (E &&e)
     Any.
     
    template<class E>
    bool xt::all (E &&e)
     Any.
     
    template<class E, class T>
    auto xt::isin (E &&element, std::initializer_list< T > test_elements) noexcept
     isin
     
    template<class E, class F>
    +requires (has_iterator_interface_concept<F>)
    auto xt::isin (E &&element, F &&test_elements) noexcept
     isin
     
    template<class E, iterator_concept I>
    auto xt::isin (E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept
     isin
     
    template<class E, class T>
    auto xt::in1d (E &&element, std::initializer_list< T > test_elements) noexcept
     in1d
     
    template<class E, class F>
    +requires (has_iterator_interface_concept<F>)
    auto xt::in1d (E &&element, F &&test_elements) noexcept
     in1d
     
    template<class E, iterator_concept I>
    auto xt::in1d (E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept
     in1d
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ all()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    bool xt::all (E && e)
    +
    +inline
    +
    + +

    Any.

    +

    Returns true if all of the values of e are truthy, false otherwise.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    a boolean
    + +

    Definition at line 959 of file xoperation.hpp.

    + +
    +
    + +

    ◆ any()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    bool xt::any (E && e)
    +
    +inline
    +
    + +

    Any.

    +

    Returns true if any of the values of e is truthy, false otherwise.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    a boolean
    + +

    Definition at line 935 of file xoperation.hpp.

    + +
    +
    + +

    ◆ argwhere()

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class T>
    + + + + + +
    + + + + + + + +
    auto xt::argwhere (const T & arr)
    +
    +inline
    +
    + +

    return vector of indices where arr is not zero

    +
    Template Parameters
    + + +
    Lthe traversal order
    +
    +
    +
    Parameters
    + + +
    arrinput array
    +
    +
    +
    Returns
    vector of index_types where arr is not equal to zero (use xt::from_indices to convert)
    +
    See also
    xt::from_indices
    + +

    Definition at line 904 of file xoperation.hpp.

    + +
    +
    + +

    ◆ in1d() [1/3]

    + +
    +
    +
    +template<class E, class F>
    +requires (has_iterator_interface_concept<F>)
    + + + + + +
    + + + + + + + + + + + +
    auto xt::in1d (E && element,
    F && test_elements )
    +
    +inlinenoexcept
    +
    + +

    in1d

    +

    Returns a boolean array of the same shape as element that is true where an element of element is in test_elements and False otherwise.

    Parameters
    + + + +
    elementan xexpression
    test_elementsan array
    +
    +
    +
    Returns
    a boolean array
    + +

    Definition at line 152 of file xset_operation.hpp.

    + +
    +
    + +

    ◆ in1d() [2/3]

    + +
    +
    +
    +template<class E, iterator_concept I>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::in1d (E && element,
    I && test_elements_begin,
    I && test_elements_end )
    +
    +inlinenoexcept
    +
    + +

    in1d

    +

    Returns a boolean array of the same shape as element that is true where an element of element is in test_elements and False otherwise.

    Parameters
    + + + + +
    elementan xexpression
    test_elements_beginiterator to the beginning of an array
    test_elements_enditerator to the end of an array
    +
    +
    +
    Returns
    a boolean array
    + +

    Definition at line 172 of file xset_operation.hpp.

    + +
    +
    + +

    ◆ in1d() [3/3]

    + +
    +
    +
    +template<class E, class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::in1d (E && element,
    std::initializer_list< T > test_elements )
    +
    +inlinenoexcept
    +
    + +

    in1d

    +

    Returns a boolean array of the same shape as element that is true where an element of element is in test_elements and False otherwise.

    Parameters
    + + + +
    elementan xexpression
    test_elementsan array
    +
    +
    +
    Returns
    a boolean array
    + +

    Definition at line 135 of file xset_operation.hpp.

    + +
    +
    + +

    ◆ isin() [1/3]

    + +
    +
    +
    +template<class E, class F>
    +requires (has_iterator_interface_concept<F>)
    + + + + + +
    + + + + + + + + + + + +
    auto xt::isin (E && element,
    F && test_elements )
    +
    +inlinenoexcept
    +
    + +

    isin

    +

    Returns a boolean array of the same shape as element that is true where an element of element is in test_elements and False otherwise.

    Parameters
    + + + +
    elementan xexpression
    test_elementsan array
    +
    +
    +
    Returns
    a boolean array
    + +

    Definition at line 95 of file xset_operation.hpp.

    + +
    +
    + +

    ◆ isin() [2/3]

    + +
    +
    +
    +template<class E, iterator_concept I>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::isin (E && element,
    I && test_elements_begin,
    I && test_elements_end )
    +
    +inlinenoexcept
    +
    + +

    isin

    +

    Returns a boolean array of the same shape as element that is true where an element of element is in test_elements and False otherwise.

    Parameters
    + + + + +
    elementan xexpression
    test_elements_beginiterator to the beginning of an array
    test_elements_enditerator to the end of an array
    +
    +
    +
    Returns
    a boolean array
    + +

    Definition at line 115 of file xset_operation.hpp.

    + +
    +
    + +

    ◆ isin() [3/3]

    + +
    +
    +
    +template<class E, class T>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::isin (E && element,
    std::initializer_list< T > test_elements )
    +
    +inlinenoexcept
    +
    + +

    isin

    +

    Returns a boolean array of the same shape as element that is true where an element of element is in test_elements and False otherwise.

    Parameters
    + + + +
    elementan xexpression
    test_elementsan array
    +
    +
    +
    Returns
    a boolean array
    + +

    Definition at line 75 of file xset_operation.hpp.

    + +
    +
    + +

    ◆ nonzero()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::nonzero (const T & arr)
    +
    +inline
    +
    + +

    return vector of indices where T is not zero

    +
    Parameters
    + + +
    arrinput array
    +
    +
    +
    Returns
    vector of vectors, one for each dimension of arr, containing the indices of the non-zero elements in that dimension
    + +

    Definition at line 855 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator!()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::operator! (E && e) -> detail::xfunction_type_t<detail::logical_not, E> +
    +
    +inlinenoexcept
    +
    + +

    Not.

    +

    Returns an xfunction for the element-wise not of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 378 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator&&()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator&& (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::logical_and, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    And.

    +

    Returns an xfunction for the element-wise and of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 363 of file xoperation.hpp.

    + +
    +
    + +

    ◆ operator||()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::operator|| (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<detail::logical_or, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Or.

    +

    Returns an xfunction for the element-wise or of e1 and e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 347 of file xoperation.hpp.

    + +
    +
    + +

    ◆ where() [1/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::where (const T & condition)
    +
    +inline
    +
    + +

    return vector of indices where condition is true (equivalent to nonzero(condition))

    +
    Parameters
    + + +
    conditioninput array
    +
    +
    +
    Returns
    vector of index_types where condition is not equal to zero
    + +

    Definition at line 888 of file xoperation.hpp.

    + +
    +
    + +

    ◆ where() [2/2]

    + +
    +
    +
    +template<class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::where (E1 && e1,
    E2 && e2,
    E3 && e3 ) -> detail::xfunction_type_t<detail::conditional_ternary, E1, E2, E3> +
    +
    +inlinenoexcept
    +
    + +

    Ternary selection.

    +

    Returns an xfunction for the element-wise ternary selection (i.e. operator ? :) of e1, e2 and e3.

    Parameters
    + + + + +
    e1a boolean xexpression
    e2an xexpression or a scalar
    e3an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 776 of file xoperation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__logical__operators.js b/group__logical__operators.js new file mode 100644 index 000000000..3590870c0 --- /dev/null +++ b/group__logical__operators.js @@ -0,0 +1,18 @@ +var group__logical__operators = +[ + [ "xt::all", "group__logical__operators.html#ga8da84f179efb13f3d860c5950b5c626e", null ], + [ "xt::any", "group__logical__operators.html#gadf5680cca336e22d483b0bfa188db592", null ], + [ "xt::argwhere", "group__logical__operators.html#ga8e8213a0ec55abe31dc046b6a03379d7", null ], + [ "xt::in1d", "group__logical__operators.html#gad8d2b8d4816486e29169f211636d9c97", null ], + [ "xt::in1d", "group__logical__operators.html#ga3f5912e0cd902bfd8c36037167001c73", null ], + [ "xt::in1d", "group__logical__operators.html#gab1bbf85dbe7bc76561321466d657bed4", null ], + [ "xt::isin", "group__logical__operators.html#gaf0995facdc63eee30636804c8296bb67", null ], + [ "xt::isin", "group__logical__operators.html#gae16e50a10ea871ad6bf8a42905db4b48", null ], + [ "xt::isin", "group__logical__operators.html#gac71ec22119ac398c4c737d48197e5399", null ], + [ "xt::nonzero", "group__logical__operators.html#ga9f570271ba6f20a0d6a5880fa4ae83cb", null ], + [ "xt::operator!", "group__logical__operators.html#ga669c5968e594e618cd199674074c32e4", null ], + [ "xt::operator&&", "group__logical__operators.html#ga95f7645635520ba70e7d0d9b0e989205", null ], + [ "xt::operator||", "group__logical__operators.html#gab0fb5db8b5da410253c08053a1c9c518", null ], + [ "xt::where", "group__logical__operators.html#gad36802fb44a519f60e8c2d20ab5b6ef8", null ], + [ "xt::where", "group__logical__operators.html#gabe2a59ff19cc1341bdaf0f833793cbd5", null ] +]; \ No newline at end of file diff --git a/group__nan__functions.html b/group__nan__functions.html new file mode 100644 index 000000000..7edb49979 --- /dev/null +++ b/group__nan__functions.html @@ -0,0 +1,695 @@ + + + + + + + +xtensor: nan functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    nan functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::nan_to_num (E &&e)
     Convert nan or +/- inf to numbers.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::nanmin (E &&e, X &&axes, EVS es=EVS())
     Minimum element over given axes, ignoring NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::nanmax (E &&e, X &&axes, EVS es=EVS())
     Maximum element along given axes, ignoring NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::nansum (E &&e, X &&axes, EVS es=EVS())
     Sum of elements over given axes, replacing NaN with 0.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::nanprod (E &&e, X &&axes, EVS es=EVS())
     Product of elements over given axes, replacing NaN with 1.
     
    template<class T = void, class E>
    auto xt::nancumsum (E &&e, std::ptrdiff_t axis)
     Cumulative sum, replacing nan with 0.
     
    template<class T = void, class E>
    auto xt::nancumprod (E &&e, std::ptrdiff_t axis)
     Cumulative product, replacing nan with 1.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::nanmean (E &&e, X &&axes, EVS es=EVS())
     Mean of elements over given axes, excluding NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::nanvar (E &&e, X &&axes, EVS es=EVS())
     Compute the variance along the specified axes, excluding NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::nanstd (E &&e, X &&axes, EVS es=EVS())
     Compute the standard deviation along the specified axis, excluding nans.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ nan_to_num()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::nan_to_num (E && e)
    +
    +inline
    +
    + +

    Convert nan or +/- inf to numbers.

    +

    This functions converts NaN to 0, and +inf to the highest, -inf to the lowest floating point value of the same type.

    +
    Parameters
    + + +
    einput xexpression
    +
    +
    +
    Returns
    an xexpression
    + +

    Definition at line 2444 of file xmath.hpp.

    + +
    +
    + +

    ◆ nancumprod()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nancumprod (E && e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Cumulative product, replacing nan with 1.

    +

    Returns an xaccumulator for the product of elements over given axis, replacing nan with 1.

    Parameters
    + + + +
    ean xexpression
    axisthe axis along which the elements are accumulated (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() * E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xaccumulator
    + +

    Definition at line 2662 of file xmath.hpp.

    + +
    +
    + +

    ◆ nancumsum()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nancumsum (E && e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Cumulative sum, replacing nan with 0.

    +

    Returns an xaccumulator for the sum of elements over given axis, replacing nan with 0.

    Parameters
    + + + +
    ean xexpression
    axisthe axis along which the elements are accumulated (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xaccumulator
    + +

    Definition at line 2627 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmax()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmax (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Maximum element along given axes, ignoring NaNs.

    +

    Returns an xreducer for the sum of elements over given axes, ignoring NaN.

    Warning
    Casting the result to an integer type can cause undefined behavior.
    +
    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the sum is performed (optional)
    esevaluation strategy of the reducer (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe result type. The default is E::value_type.
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 2477 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmean()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmean (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Mean of elements over given axes, excluding NaNs.

    +

    Returns an xreducer for the mean of elements over given axes, excluding NaNs. This is not the same as counting NaNs as zero, since excluding NaNs changes the number of elements considered in the statistic.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the mean is computed (optional)
    esthe evaluation strategy (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe result type. The default is E::value_type. You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    + +

    Definition at line 2746 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmin()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmin (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Minimum element over given axes, ignoring NaNs.

    +

    Returns an xreducer for the minimum of elements over given axes, ignoring NaNs.

    Warning
    Casting the result to an integer type can cause undefined behavior.
    +
    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the minimum is found (optional)
    esevaluation strategy of the reducer (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe result type. The default is E::value_type.
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 2462 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanprod()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanprod (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Product of elements over given axes, replacing NaN with 1.

    +

    Returns an xreducer for the sum of elements over given axes, replacing nan with 1.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the sum is performed (optional)
    esevaluation strategy of the reducer (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() * E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 2511 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanstd()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanstd (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Compute the standard deviation along the specified axis, excluding nans.

    +

    Returns the standard deviation, a measure of the spread of a distribution, of the array elements. The standard deviation is computed for the flattened array by default, otherwise over the specified axis. Excluding NaNs changes the number of elements considered in the statistic.

    +

    Note: this function is not yet specialized for complex numbers.

    +
    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the standard deviation is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Template Parameters
    + + +
    Tthe result type. The default is E::value_type. You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    +
    See also
    nanvar, nanmean
    + +

    Definition at line 2871 of file xmath.hpp.

    + +
    +
    + +

    ◆ nansum()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nansum (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Sum of elements over given axes, replacing NaN with 0.

    +

    Returns an xreducer for the sum of elements over given axes, ignoring NaN.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the sum is performed (optional)
    esevaluation strategy of the reducer (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 2494 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanvar()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanvar (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Compute the variance along the specified axes, excluding NaNs.

    +

    Returns the variance of the array elements, a measure of the spread of a distribution. The variance is computed for the flattened array by default, otherwise over the specified axes. Excluding NaNs changes the number of elements considered in the statistic.

    +

    Note: this function is not yet specialized for complex numbers.

    +
    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the variance is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Template Parameters
    + + +
    Tthe result type. The default is E::value_type. You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    +
    See also
    nanstd, nanmean
    + +

    Definition at line 2823 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__nan__functions.js b/group__nan__functions.js new file mode 100644 index 000000000..77f598c28 --- /dev/null +++ b/group__nan__functions.js @@ -0,0 +1,13 @@ +var group__nan__functions = +[ + [ "xt::nan_to_num", "group__nan__functions.html#gae82e0b56454b586ec1ffbf57d6d2122f", null ], + [ "xt::nancumprod", "group__nan__functions.html#ga4fb43a2f434821dfec8464e84ad05de7", null ], + [ "xt::nancumsum", "group__nan__functions.html#ga48eab6816103340e288db50e05f00e60", null ], + [ "xt::nanmax", "group__nan__functions.html#ga0e300ce1d00beec93e45d7aa0e308ceb", null ], + [ "xt::nanmean", "group__nan__functions.html#ga5ff43d5bf500e85b384c2c08d2ababe9", null ], + [ "xt::nanmin", "group__nan__functions.html#gaaade983a5b6b9406608d54f3ba37a264", null ], + [ "xt::nanprod", "group__nan__functions.html#gad63669d7342cc68dae7b15f3c49ca1c2", null ], + [ "xt::nanstd", "group__nan__functions.html#ga21421ea090897548b9199c1fdb3049be", null ], + [ "xt::nansum", "group__nan__functions.html#gadbfe228ebc452fabfdbf4067274a471a", null ], + [ "xt::nanvar", "group__nan__functions.html#ga3c3fdce46c4143d595e11db1646f7d89", null ] +]; \ No newline at end of file diff --git a/group__nearint__functions.html b/group__nearint__functions.html new file mode 100644 index 000000000..d41413040 --- /dev/null +++ b/group__nearint__functions.html @@ -0,0 +1,383 @@ + + + + + + + +xtensor: Nearest integer floating point operations + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Nearest integer floating point operations
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::ceil (E &&e) noexcept -> detail::xfunction_type_t< math::ceil_fun, E >
     ceil function.
     
    template<class E>
    auto xt::floor (E &&e) noexcept -> detail::xfunction_type_t< math::floor_fun, E >
     floor function.
     
    template<class E>
    auto xt::trunc (E &&e) noexcept -> detail::xfunction_type_t< math::trunc_fun, E >
     trunc function.
     
    template<class E>
    auto xt::round (E &&e) noexcept -> detail::xfunction_type_t< math::round_fun, E >
     round function.
     
    template<class E>
    auto xt::nearbyint (E &&e) noexcept -> detail::xfunction_type_t< math::nearbyint_fun, E >
     nearbyint function.
     
    template<class E>
    auto xt::rint (E &&e) noexcept -> detail::xfunction_type_t< math::rint_fun, E >
     rint function.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ ceil()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::ceil (E && e) -> detail::xfunction_type_t<math::ceil_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    ceil function.

    +

    Returns an xfunction for the element-wise smallest integer value not less than e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1574 of file xmath.hpp.

    + +
    +
    + +

    ◆ floor()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::floor (E && e) -> detail::xfunction_type_t<math::floor_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    floor function.

    +

    Returns an xfunction for the element-wise smallest integer value not greater than e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1589 of file xmath.hpp.

    + +
    +
    + +

    ◆ nearbyint()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::nearbyint (E && e) -> detail::xfunction_type_t<math::nearbyint_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    nearbyint function.

    +

    Returns an xfunction for the element-wise rounding of e to integer values in floating point format, using the current rounding mode. nearbyint never raises FE_INEXACT error.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1636 of file xmath.hpp.

    + +
    +
    + +

    ◆ rint()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::rint (E && e) -> detail::xfunction_type_t<math::rint_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    rint function.

    +

    Returns an xfunction for the element-wise rounding of e to integer values in floating point format, using the current rounding mode. Contrary to nearbyint, rint may raise FE_INEXACT error.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1652 of file xmath.hpp.

    + +
    +
    + +

    ◆ round()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::round (E && e) -> detail::xfunction_type_t<math::round_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    round function.

    +

    Returns an xfunction for the element-wise nearest integer value to e, rounding halfway cases away from zero, regardless of the current rounding mode.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1620 of file xmath.hpp.

    + +
    +
    + +

    ◆ trunc()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::trunc (E && e) -> detail::xfunction_type_t<math::trunc_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    trunc function.

    +

    Returns an xfunction for the element-wise nearest integer not greater in magnitude than e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1604 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__nearint__functions.js b/group__nearint__functions.js new file mode 100644 index 000000000..b5c17f13d --- /dev/null +++ b/group__nearint__functions.js @@ -0,0 +1,9 @@ +var group__nearint__functions = +[ + [ "xt::ceil", "group__nearint__functions.html#ga06d485029e29f092e60af3afabd0d154", null ], + [ "xt::floor", "group__nearint__functions.html#ga651ff45bf2ffda746e6602773925ca5c", null ], + [ "xt::nearbyint", "group__nearint__functions.html#ga297d1cfd2029ec779f3b2caf20cae56f", null ], + [ "xt::rint", "group__nearint__functions.html#gaad503e7c9ee485a6b623770c8f43bde0", null ], + [ "xt::round", "group__nearint__functions.html#gaa8b6a7ec9f215261ace43466d4ae6f0b", null ], + [ "xt::trunc", "group__nearint__functions.html#ga1bf2a5edfa5f687938657e37064ddc74", null ] +]; \ No newline at end of file diff --git a/group__pow__functions.html b/group__pow__functions.html new file mode 100644 index 000000000..30af109a9 --- /dev/null +++ b/group__pow__functions.html @@ -0,0 +1,444 @@ + + + + + + + +xtensor: Power functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Power functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E1, class E2>
    auto xt::pow (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
     Power function.
     
    template<class E1>
    auto xt::square (E1 &&e1) noexcept
     Square power function, equivalent to e1 * e1.
     
    template<class E1>
    auto xt::cube (E1 &&e1) noexcept
     Cube power function, equivalent to e1 * e1 * e1.
     
    template<std::size_t N, class E>
    auto xt::pow (E &&e) noexcept
     Integer power function.
     
    template<class E>
    auto xt::sqrt (E &&e) noexcept -> detail::xfunction_type_t< math::sqrt_fun, E >
     Square root function.
     
    template<class E>
    auto xt::cbrt (E &&e) noexcept -> detail::xfunction_type_t< math::cbrt_fun, E >
     Cubic root function.
     
    template<class E1, class E2>
    auto xt::hypot (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::hypot_fun, E1, E2 >
     Hypotenuse function.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ cbrt()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::cbrt (E && e) -> detail::xfunction_type_t<math::cbrt_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Cubic root function.

    +

    Returns an xfunction for the element-wise cubic root of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1251 of file xmath.hpp.

    + +
    +
    + +

    ◆ cube()

    + +
    +
    +
    +template<class E1>
    + + + + + +
    + + + + + + + +
    auto xt::cube (E1 && e1)
    +
    +inlinenoexcept
    +
    + +

    Cube power function, equivalent to e1 * e1 * e1.

    +

    Returns an xfunction for the element-wise value of of e1 * e1.

    Parameters
    + + +
    e1an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1149 of file xmath.hpp.

    + +
    +
    + +

    ◆ hypot()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::hypot (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::hypot_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Hypotenuse function.

    +

    Returns an xfunction for the element-wise square root of the sum of the square of e1 and e2, avoiding overflow and underflow at intermediate stages of computation.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 1269 of file xmath.hpp.

    + +
    +
    + +

    ◆ pow() [1/2]

    + +
    +
    +
    +template<std::size_t N, class E>
    + + + + + +
    + + + + + + + +
    auto xt::pow (E && e)
    +
    +inlinenoexcept
    +
    + +

    Integer power function.

    +

    Returns an xfunction for the element-wise power of e1 to an integral constant.

    +

    Instead of computing the power by using the (expensive) logarithm, this function computes the power in a number of straight-forward multiplication steps. This function is therefore much faster (even for high N) than the generic pow-function.

    +

    For example, e1^20 can be expressed as (((e1^2)^2)^2)^2*(e1^2)^2, which is just 5 multiplications.

    +
    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Template Parameters
    + + +
    Nthe exponent (has to be positive integer)
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1220 of file xmath.hpp.

    + +
    +
    + +

    ◆ pow() [2/2]

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::pow (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::pow_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Power function.

    +

    Returns an xfunction for the element-wise value of of e1 raised to the power e2.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 1015 of file xmath.hpp.

    + +
    +
    + +

    ◆ sqrt()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::sqrt (E && e) -> detail::xfunction_type_t<math::sqrt_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Square root function.

    +

    Returns an xfunction for the element-wise square root of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1236 of file xmath.hpp.

    + +
    +
    + +

    ◆ square()

    + +
    +
    +
    +template<class E1>
    + + + + + +
    + + + + + + + +
    auto xt::square (E1 && e1)
    +
    +inlinenoexcept
    +
    + +

    Square power function, equivalent to e1 * e1.

    +

    Returns an xfunction for the element-wise value of of e1 * e1.

    Parameters
    + + +
    e1an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1126 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__pow__functions.js b/group__pow__functions.js new file mode 100644 index 000000000..0577dc64a --- /dev/null +++ b/group__pow__functions.js @@ -0,0 +1,10 @@ +var group__pow__functions = +[ + [ "xt::cbrt", "group__pow__functions.html#gad5ff49e786eca533425d6f230c945184", null ], + [ "xt::cube", "group__pow__functions.html#ga0d98743e330f7ef3474bd706e186ac44", null ], + [ "xt::hypot", "group__pow__functions.html#ga9b55bcc865f0dd82fd679e01c3838526", null ], + [ "xt::pow", "group__pow__functions.html#ga9cf15362f1892675576f2298c01e2b6b", null ], + [ "xt::pow", "group__pow__functions.html#ga726d449a0411dabbe7451c38cec235ae", null ], + [ "xt::sqrt", "group__pow__functions.html#ga2ac4c9ab16cee0b95b444191419c2802", null ], + [ "xt::square", "group__pow__functions.html#ga6e5fca6d456f46a946b4a9707e1d442f", null ] +]; \ No newline at end of file diff --git a/group__red__functions.html b/group__red__functions.html new file mode 100644 index 000000000..37f54bbab --- /dev/null +++ b/group__red__functions.html @@ -0,0 +1,1196 @@ + + + + + + + +xtensor: reducing functions + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    reducing functions
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::sum (E &&e, X &&axes, EVS es=EVS())
     Sum of elements over given axes.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto xt::prod (E &&e, X &&axes, EVS es=EVS())
     Product of elements over given axes.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::mean (E &&e, X &&axes, EVS es=EVS())
     Mean of elements over given axes.
     
    template<class T = void, class E, class W, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, std::negation< xtl::is_integral< X > > > = 0>
    auto xt::average (E &&e, W &&weights, X &&axes, EVS ev=EVS())
     Average of elements over given axes using weights.
     
    template<class T = void, class E, class X, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< D > > = 0>
    auto xt::variance (E &&e, X &&axes, const D &ddof, EVS es=EVS())
     Compute the variance along the specified axes.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::stddev (E &&e, X &&axes, EVS es=EVS())
     Compute the standard deviation along the specified axis.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto xt::minmax (E &&e, EVS es=EVS())
     Minimum and maximum among the elements of an array or expression.
     
    template<class T>
    auto xt::diff (const xexpression< T > &a, std::size_t n=1, std::ptrdiff_t axis=-1)
     Calculate the n-th discrete difference along the given axis.
     
    template<class T>
    auto xt::trapz (const xexpression< T > &y, double dx=1.0, std::ptrdiff_t axis=-1)
     Integrate along the given axis using the composite trapezoidal rule.
     
    template<class T, class E>
    auto xt::trapz (const xexpression< T > &y, const xexpression< E > &x, std::ptrdiff_t axis=-1)
     Integrate along the given axis using the composite trapezoidal rule.
     
    template<class E, class X, class EVS, class>
    auto xt::norm_l0 (E &&e, X &&axes, EVS es) noexcept
     L0 (count) pseudo-norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS, class>
    auto xt::norm_l1 (E &&e, X &&axes, EVS es) noexcept
     L1 norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS, class>
    auto xt::norm_sq (E &&e, X &&axes, EVS es) noexcept
     Squared L2 norm of an array-like argument over given axes.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto xt::norm_l2 (E &&e, EVS es=EVS()) noexcept
     L2 norm of a scalar or array-like argument.
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E >, std::negation< is_reducer_options< X > > > = 0>
    auto xt::norm_l2 (E &&e, X &&axes, EVS es=EVS()) noexcept
     L2 norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS, class>
    auto xt::norm_linf (E &&e, X &&axes, EVS es) noexcept
     Infinity (maximum) norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::norm_lp_to_p (E &&e, double p, X &&axes, EVS es=EVS()) noexcept
     p-th power of the Lp norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto xt::norm_lp (E &&e, double p, X &&axes, EVS es=EVS())
     Lp norm of an array-like argument over given axes.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto xt::norm_induced_l1 (E &&e, EVS es=EVS())
     Induced L1 norm of a matrix.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto xt::norm_induced_linf (E &&e, EVS es=EVS())
     Induced L-infinity norm of a matrix.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ average()

    + +
    +
    +
    +template<class T = void, class E, class W, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, std::negation< xtl::is_integral< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::average (E && e,
    W && weights,
    X && axes,
    EVS ev = EVS() )
    +
    +inline
    +
    + +

    Average of elements over given axes using weights.

    +

    Returns an xreducer for the mean of elements over given axes.

    Parameters
    + + + + +
    ean xexpression
    weightsxexpression containing weights associated with the values in e
    axesthe axes along which the mean is computed (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. Tis also used for determining the value type of the result, which is the type of T() + E::value_type(). You can passbig_promote_value_type_t<E>` to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    +
    See also
    mean
    + +

    Definition at line 1973 of file xmath.hpp.

    + +
    +
    + +

    ◆ diff()

    + +
    +
    +
    +template<class T>
    + + + + + + + + + + + + + + + + +
    auto xt::diff (const xexpression< T > & a,
    std::size_t n = 1,
    std::ptrdiff_t axis = -1 )
    +
    + +

    Calculate the n-th discrete difference along the given axis.

    +

    Calculate the n-th discrete difference along the given axis. This function is not lazy (might change in the future).

    Parameters
    + + + + +
    aan xexpression
    nThe number of times values are differenced. If zero, the input is returned as-is. (optional)
    axisThe axis along which the difference is taken, default is the last axis.
    +
    +
    +
    Returns
    an xarray
    + +

    Definition at line 2908 of file xmath.hpp.

    + +
    +
    + +

    ◆ mean()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::mean (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Mean of elements over given axes.

    +

    Returns an xreducer for the mean of elements over given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the mean is computed (optional)
    esthe evaluation strategy (optional)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    + +

    Definition at line 1932 of file xmath.hpp.

    + +
    +
    + +

    ◆ minmax()

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::minmax (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Minimum and maximum among the elements of an array or expression.

    +

    Returns an xreducer for the minimum and maximum of an expression's elements.

    Parameters
    + + + +
    ean xexpression
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xexpression of type std::array<value_type, 2>, whose first and second element represent the minimum and maximum respectively
    + +

    Definition at line 2231 of file xmath.hpp.

    + +
    +
    + +

    ◆ norm_induced_l1()

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::norm_induced_l1 (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Induced L1 norm of a matrix.

    +

    Returns an xreducer for the induced L1 norm (i.e. the maximum of the L1 norms of e's columns).

    Parameters
    + + + +
    ea 2D xexpression
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy)
    + +

    Definition at line 630 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_induced_linf()

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::norm_induced_linf (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Induced L-infinity norm of a matrix.

    +

    Returns an xreducer for the induced L-infinity norm (i.e. the maximum of the L1 norms of e's rows).

    Parameters
    + + + +
    ea 2D xexpression
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy)
    + +

    Definition at line 650 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_l0()

    + +
    +
    +
    +template<class E, class X, class EVS, class>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_l0 (E && e,
    X && axes,
    EVS es )
    +
    +noexcept
    +
    + +

    L0 (count) pseudo-norm of an array-like argument over given axes.

    +

    Returns an xreducer for the L0 pseudo-norm of the elements across given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the norm is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy) When no axes are provided, the norm is calculated over the entire array. In this case, the reducer represents a scalar result, otherwise an array of appropriate dimension.
    + +
    +
    + +

    ◆ norm_l1()

    + +
    +
    +
    +template<class E, class X, class EVS, class>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_l1 (E && e,
    X && axes,
    EVS es )
    +
    +noexcept
    +
    + +

    L1 norm of an array-like argument over given axes.

    +

    Returns an xreducer for the L1 norm of the elements across given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the norm is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy) When no axes are provided, the norm is calculated over the entire array. In this case, the reducer represents a scalar result, otherwise an array of appropriate dimension.
    + +
    +
    + +

    ◆ norm_l2() [1/2]

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::norm_l2 (E && e,
    EVS es = EVS() )
    +
    +inlinenoexcept
    +
    + +

    L2 norm of a scalar or array-like argument.

    +
    Parameters
    + + + +
    ean xexpression
    esevaluation strategy to use (lazy (default), or immediate) For scalar types: implemented as abs(t)
    + otherwise: implemented as sqrt(norm_sq(t)).
    +
    +
    + +

    Definition at line 494 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_l2() [2/2]

    + +
    +
    +
    +template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E >, std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_l2 (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inlinenoexcept
    +
    + +

    L2 norm of an array-like argument over given axes.

    +

    Returns an xreducer for the L2 norm of the elements across given axes.

    Parameters
    + + + + +
    ean xexpression
    esevaluation strategy to use (lazy (default), or immediate)
    axesthe axes along which the norm is computed
    +
    +
    +
    Returns
    an xreducer (specifically: sqrt(norm_sq(e, axes))) (or xcontainer, depending on evaluation strategy)
    + +

    Definition at line 516 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_linf()

    + +
    +
    +
    +template<class E, class X, class EVS, class>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_linf (E && e,
    X && axes,
    EVS es )
    +
    +noexcept
    +
    + +

    Infinity (maximum) norm of an array-like argument over given axes.

    +

    Returns an xreducer for the infinity norm of the elements across given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the norm is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy) When no axes are provided, the norm is calculated over the entire array. In this case, the reducer represents a scalar result, otherwise an array of appropriate dimension.
    + +
    +
    + +

    ◆ norm_lp()

    + +
    +
    +
    +template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::norm_lp (E && e,
    double p,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Lp norm of an array-like argument over given axes.

    +

    Returns an xreducer for the Lp norm (p != 0) of the elements across given axes.

    Parameters
    + + + + + +
    ean xexpression
    p
    axesthe axes along which the norm is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy) When no axes are provided, the norm is calculated over the entire array. In this case, the reducer represents a scalar result, otherwise an array of appropriate dimension.
    + +

    Definition at line 601 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_lp_to_p()

    + +
    +
    +
    +template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::norm_lp_to_p (E && e,
    double p,
    X && axes,
    EVS es = EVS() )
    +
    +inlinenoexcept
    +
    + +

    p-th power of the Lp norm of an array-like argument over given axes.

    +

    Returns an xreducer for the p-th power of the Lp norm of the elements across given axes.

    Parameters
    + + + + + +
    ean xexpression
    p
    axesthe axes along which the norm is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy) When no axes are provided, the norm is calculated over the entire array. In this case, the reducer represents a scalar result, otherwise an array of appropriate dimension.
    + +

    Definition at line 557 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_sq()

    + +
    +
    +
    +template<class E, class X, class EVS, class>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_sq (E && e,
    X && axes,
    EVS es )
    +
    +noexcept
    +
    + +

    Squared L2 norm of an array-like argument over given axes.

    +

    Returns an xreducer for the squared L2 norm of the elements across given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the norm is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Returns
    an xreducer (or xcontainer, depending on evaluation strategy) When no axes are provided, the norm is calculated over the entire array. In this case, the reducer represents a scalar result, otherwise an array of appropriate dimension.
    + +
    +
    + +

    ◆ prod()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::prod (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Product of elements over given axes.

    +

    Returns an xreducer for the product of elements over given axes.

    Parameters
    + + + + + +
    ean xexpression
    axesthe axes along which the product is computed (optional)
    ddofdelta degrees of freedom (optional). The divisor used in calculations is N - ddof, where N represents the number of elements. By default ddof is zero.
    esevaluation strategy of the reducer
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() * E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 1858 of file xmath.hpp.

    + +
    +
    + +

    ◆ stddev()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::stddev (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Compute the standard deviation along the specified axis.

    +

    Returns the standard deviation, a measure of the spread of a distribution, of the array elements. The standard deviation is computed for the flattened array by default, otherwise over the specified axis.

    +

    Note: this function is not yet specialized for complex numbers.

    +
    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the standard deviation is computed (optional)
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. Tis also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    +
    See also
    variance, mean
    + +

    Definition at line 2178 of file xmath.hpp.

    + +
    +
    + +

    ◆ sum()

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::sum (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Sum of elements over given axes.

    +

    Returns an xreducer for the sum of elements over given axes.

    Parameters
    + + + + +
    ean xexpression
    axesthe axes along which the sum is performed (optional)
    esevaluation strategy of the reducer
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. T is also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xreducer
    + +

    Definition at line 1838 of file xmath.hpp.

    + +
    +
    + +

    ◆ trapz() [1/2]

    + +
    +
    +
    +template<class T, class E>
    + + + + + + + + + + + + + + + + +
    auto xt::trapz (const xexpression< T > & y,
    const xexpression< E > & x,
    std::ptrdiff_t axis = -1 )
    +
    + +

    Integrate along the given axis using the composite trapezoidal rule.

    +

    Returns definite integral as approximated by trapezoidal rule. This function is not lazy (might change in the future).

    Parameters
    + + + + +
    yan xexpression
    xan xexpression representing the sample points corresponding to the y values.
    axisthe axis along which to integrate.
    +
    +
    +
    Returns
    an xarray
    + +

    Definition at line 2972 of file xmath.hpp.

    + +
    +
    + +

    ◆ trapz() [2/2]

    + +
    +
    +
    +template<class T>
    + + + + + + + + + + + + + + + + +
    auto xt::trapz (const xexpression< T > & y,
    double dx = 1.0,
    std::ptrdiff_t axis = -1 )
    +
    + +

    Integrate along the given axis using the composite trapezoidal rule.

    +

    Returns definite integral as approximated by trapezoidal rule. This function is not lazy (might change in the future).

    Parameters
    + + + + +
    yan xexpression
    dxthe spacing between sample points (optional)
    axisthe axis along which to integrate.
    +
    +
    +
    Returns
    an xarray
    + +

    Definition at line 2945 of file xmath.hpp.

    + +
    +
    + +

    ◆ variance()

    + +
    +
    +
    +template<class T = void, class E, class X, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< D > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::variance (E && e,
    X && axes,
    const D & ddof,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Compute the variance along the specified axes.

    +

    Returns the variance of the array elements, a measure of the spread of a distribution. The variance is computed for the flattened array by default, otherwise over the specified axes.

    +

    Note: this function is not yet specialized for complex numbers.

    +
    Parameters
    + + + + + +
    ean xexpression
    axesthe axes along which the variance is computed (optional)
    ddofdelta degrees of freedom (optional). The divisor used in calculations is N - ddof, where N represents the number of elements. By default ddof is zero.
    esevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +
    Template Parameters
    + + +
    Tthe value type used for internal computation. The default is E::value_type. Tis also used for determining the value type of the result, which is the type of T() + E::value_type(). You can pass big_promote_value_type_t<E> to avoid overflow in computation.
    +
    +
    +
    Returns
    an xexpression
    +
    See also
    stddev, mean
    + +

    Definition at line 2117 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__red__functions.js b/group__red__functions.js new file mode 100644 index 000000000..54ee26812 --- /dev/null +++ b/group__red__functions.js @@ -0,0 +1,23 @@ +var group__red__functions = +[ + [ "xt::average", "group__red__functions.html#gac71fc60e960526979d68aece67232f82", null ], + [ "xt::diff", "group__red__functions.html#gab421eb4d3565597848ec53dad1b0d6c6", null ], + [ "xt::mean", "group__red__functions.html#gad0919b7cd9e5d8907363a2a146c1ec09", null ], + [ "xt::minmax", "group__red__functions.html#gab752be31d54ec7e45daef9a5d3868030", null ], + [ "xt::norm_induced_l1", "group__red__functions.html#ga6756e0125ea6eaf41da4d72c863222ad", null ], + [ "xt::norm_induced_linf", "group__red__functions.html#ga32553e96de228c6a760ea1e7eac51dbd", null ], + [ "xt::norm_l0", "group__red__functions.html#gad29e1eba5e05138bd5db7bfc577215f1", null ], + [ "xt::norm_l1", "group__red__functions.html#ga75c1f16a4c45c0ded05f6a50f8245385", null ], + [ "xt::norm_l2", "group__red__functions.html#ga612264ac7b3ed369ebe6da569e2bf7f5", null ], + [ "xt::norm_l2", "group__red__functions.html#gad8d838a048615ed661350fcd7af66d06", null ], + [ "xt::norm_linf", "group__red__functions.html#gad3987362169c6b7f82dc4acaa012c65f", null ], + [ "xt::norm_lp", "group__red__functions.html#ga4f5622197f95e83dafec8394265fd750", null ], + [ "xt::norm_lp_to_p", "group__red__functions.html#gaa1062bcc8bc659e9a09a5816626d5575", null ], + [ "xt::norm_sq", "group__red__functions.html#ga243ff01254cf5c1bcfe3ef6b6b67331d", null ], + [ "xt::prod", "group__red__functions.html#ga90d729a5dc08b66740997ad3e7fdb0c1", null ], + [ "xt::stddev", "group__red__functions.html#ga0c8291754c7c050cbfac3f6eeeaa1f77", null ], + [ "xt::sum", "group__red__functions.html#ga018d66d27aae0df9558107d684380436", null ], + [ "xt::trapz", "group__red__functions.html#ga681c9cbfe336a5a7892633f189098c3d", null ], + [ "xt::trapz", "group__red__functions.html#ga99e0a7ad0979b3ceeaf99d75fd30af9d", null ], + [ "xt::variance", "group__red__functions.html#ga7001a4fe6acde5968aa526166659a5fa", null ] +]; \ No newline at end of file diff --git a/group__searchsorted.html b/group__searchsorted.html new file mode 100644 index 000000000..96d019e3a --- /dev/null +++ b/group__searchsorted.html @@ -0,0 +1,182 @@ + + + + + + + +xtensor: Searchsorted helpers + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Searchsorted helpers
    +
    +
    + +

    Helpers for locating insertion indices in sorted arrays. +More...

    + + + + + + +

    +Functions

    template<class E1, class E2>
    auto xt::searchsorted (E1 &&a, E2 &&v, bool right=true)
     Find indices where elements should be inserted to maintain order.
     
    +

    Detailed Description

    +

    Helpers for locating insertion indices in sorted arrays.

    +

    Function Documentation

    + +

    ◆ searchsorted()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::searchsorted (E1 && a,
    E2 && v,
    bool right = true )
    +
    +inline
    +
    + +

    Find indices where elements should be inserted to maintain order.

    +
    Parameters
    + + + + +
    aInput array: sorted (array_like).
    vValues to insert into a (array_like).
    rightIf false, the index of the first suitable location found is given.
    +
    +
    +
    Returns
    Array of insertion points with the same shape as v.
    + +

    Definition at line 192 of file xset_operation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__searchsorted.js b/group__searchsorted.js new file mode 100644 index 000000000..58ebaa306 --- /dev/null +++ b/group__searchsorted.js @@ -0,0 +1,4 @@ +var group__searchsorted = +[ + [ "xt::searchsorted", "group__searchsorted.html#ga7f2dbcb81b8a765fe3972a7490d62618", null ] +]; \ No newline at end of file diff --git a/group__trigo__functions.html b/group__trigo__functions.html new file mode 100644 index 000000000..84580e719 --- /dev/null +++ b/group__trigo__functions.html @@ -0,0 +1,432 @@ + + + + + + + +xtensor: Trigonometric function + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Trigonometric function
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::sin (E &&e) noexcept -> detail::xfunction_type_t< math::sin_fun, E >
     Sine function.
     
    template<class E>
    auto xt::cos (E &&e) noexcept -> detail::xfunction_type_t< math::cos_fun, E >
     Cosine function.
     
    template<class E>
    auto xt::tan (E &&e) noexcept -> detail::xfunction_type_t< math::tan_fun, E >
     Tangent function.
     
    template<class E>
    auto xt::asin (E &&e) noexcept -> detail::xfunction_type_t< math::asin_fun, E >
     Arcsine function.
     
    template<class E>
    auto xt::acos (E &&e) noexcept -> detail::xfunction_type_t< math::acos_fun, E >
     Arccosine function.
     
    template<class E>
    auto xt::atan (E &&e) noexcept -> detail::xfunction_type_t< math::atan_fun, E >
     Arctangent function.
     
    template<class E1, class E2>
    auto xt::atan2 (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::atan2_fun, E1, E2 >
     Artangent function, using signs to determine quadrants.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ acos()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::acos (E && e) -> detail::xfunction_type_t<math::acos_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Arccosine function.

    +

    Returns an xfunction for the element-wise arccosine of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1352 of file xmath.hpp.

    + +
    +
    + +

    ◆ asin()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::asin (E && e) -> detail::xfunction_type_t<math::asin_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Arcsine function.

    +

    Returns an xfunction for the element-wise arcsine of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1337 of file xmath.hpp.

    + +
    +
    + +

    ◆ atan()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::atan (E && e) -> detail::xfunction_type_t<math::atan_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Arctangent function.

    +

    Returns an xfunction for the element-wise arctangent of e.

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1367 of file xmath.hpp.

    + +
    +
    + +

    ◆ atan2()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::atan2 (E1 && e1,
    E2 && e2 ) -> detail::xfunction_type_t<math::atan2_fun, E1, E2> +
    +
    +inlinenoexcept
    +
    + +

    Artangent function, using signs to determine quadrants.

    +

    Returns an xfunction for the element-wise arctangent of e1 / e2, using the signs of arguments to determine the correct quadrant.

    Parameters
    + + + +
    e1an xexpression or a scalar
    e2an xexpression or a scalar
    +
    +
    +
    Returns
    an xfunction
    +
    Note
    e1 and e2 can't be both scalars.
    + +

    Definition at line 1385 of file xmath.hpp.

    + +
    +
    + +

    ◆ cos()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::cos (E && e) -> detail::xfunction_type_t<math::cos_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Cosine function.

    +

    Returns an xfunction for the element-wise cosine of e (measured in radians).

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1307 of file xmath.hpp.

    + +
    +
    + +

    ◆ sin()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::sin (E && e) -> detail::xfunction_type_t<math::sin_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Sine function.

    +

    Returns an xfunction for the element-wise sine of e (measured in radians).

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1292 of file xmath.hpp.

    + +
    +
    + +

    ◆ tan()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::tan (E && e) -> detail::xfunction_type_t<math::tan_fun, E> +
    +
    +inlinenoexcept
    +
    + +

    Tangent function.

    +

    Returns an xfunction for the element-wise tangent of e (measured in radians).

    Parameters
    + + +
    ean xexpression
    +
    +
    +
    Returns
    an xfunction
    + +

    Definition at line 1322 of file xmath.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__trigo__functions.js b/group__trigo__functions.js new file mode 100644 index 000000000..b08643468 --- /dev/null +++ b/group__trigo__functions.js @@ -0,0 +1,10 @@ +var group__trigo__functions = +[ + [ "xt::acos", "group__trigo__functions.html#gaef1a134c51ccdb072964383887b838c7", null ], + [ "xt::asin", "group__trigo__functions.html#gabdab214ece01511604c914f91b81fdb1", null ], + [ "xt::atan", "group__trigo__functions.html#gab62818bfe16f2dd284b39bea1a345383", null ], + [ "xt::atan2", "group__trigo__functions.html#gaba0008974d39d88ec21dff058a642ca0", null ], + [ "xt::cos", "group__trigo__functions.html#gabf9e140b22bb15dc6add351a7dc06d58", null ], + [ "xt::sin", "group__trigo__functions.html#gad8638d83d6874334a912c892b9d8a9c5", null ], + [ "xt::tan", "group__trigo__functions.html#gae6d7aef2bb82c074da4a500ca5eadc7b", null ] +]; \ No newline at end of file diff --git a/group__xt__xadapt.html b/group__xt__xadapt.html new file mode 100644 index 000000000..cf30e68dd --- /dev/null +++ b/group__xt__xadapt.html @@ -0,0 +1,1012 @@ + + + + + + + +xtensor: Adaptors of STL-like containers + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Adaptors of STL-like containers
    +
    +
    + + + + + + + + + + +

    +Typedefs

    template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major>
    using xt::xtensor_pointer
     xtensor adaptor for a pointer.
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class SC = xt::svector<typename uvector<T, std::allocator<std::size_t>>::size_type, 4, std::allocator<std::size_t>, true>>
    using xt::xarray_pointer
     xarray adaptor for a pointer.
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<layout_type L = ::xt::layout_type::row_major, class C, class SC>
    auto xt::adapt (C &&container, const SC &shape, layout_type l=L)
     Constructs:
     
    template<class C, class SC, class SS>
    auto xt::adapt (C &&container, SC &&shape, SS &&strides)
     Constructs:
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class O, class SC, class A = detail::default_allocator_for_ptr_t<P>>
    auto xt::adapt (P &&pointer, typename A::size_type size, O ownership, const SC &shape, layout_type l=L, const A &alloc=A())
     Constructs:
     
    template<class P, class O, class SC, class SS, class A = detail::default_allocator_for_ptr_t<P>>
    auto xt::adapt (P &&pointer, typename A::size_type size, O ownership, SC &&shape, SS &&strides, const A &alloc=A())
     Constructs:
     
    template<layout_type L = ::xt::layout_type::row_major, class T, std::size_t N, class SC>
    auto xt::adapt (T(&c_array)[N], const SC &shape, layout_type l=L)
     Constructs:
     
    template<class T, std::size_t N, class SC, class SS>
    auto xt::adapt (T(&c_array)[N], SC &&shape, SS &&strides)
     Constructs:
     
    template<layout_type L = ::xt::layout_type::row_major, class C, std::size_t... X>
    auto xt::adapt (C &&pointer, const fixed_shape< X... > &)
     Constructs an non-owning xtensor_fixed_adaptor from a pointer with the specified shape and layout.
     
    template<layout_type L = ::xt::layout_type::row_major, class C>
    xtensor_adaptor< C, 1, L > xt::adapt (C &&container, layout_type l=L)
     Constructs a 1-D xtensor_adaptor of the given stl-like container, with the specified layout_type.
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class O, class A = detail::default_allocator_for_ptr_t<P>>
    xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< P >, O, A >, 1, L > xt::adapt (P &&pointer, typename A::size_type size, O ownership, layout_type l=L, const A &alloc=A())
     Constructs a 1-D xtensor_adaptor of the given dynamically allocated C array, with the specified layout.
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class SC, xtl::check_concept< detail::not_an_array< std::decay_t< SC > > > = 0>
    auto xt::adapt_smart_ptr (P &&smart_ptr, const SC &shape, layout_type l=L)
     Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class SC, class D, xtl::check_concept< detail::not_an_array< std::decay_t< SC > >, detail::not_a_layout< std::decay_t< D > > > = 0>
    auto xt::adapt_smart_ptr (P &&data_ptr, const SC &shape, D &&smart_ptr, layout_type l=L)
     Adapt a smart pointer (shared_ptr or unique_ptr)
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class I, std::size_t N>
    auto xt::adapt_smart_ptr (P &&smart_ptr, const I(&shape)[N], layout_type l=L)
     Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class I, std::size_t N, class D, xtl::check_concept< detail::not_a_layout< std::decay_t< D > > > = 0>
    auto xt::adapt_smart_ptr (P &&data_ptr, const I(&shape)[N], D &&smart_ptr, layout_type l=L)
     Adapt a smart pointer (shared_ptr or unique_ptr)
     
    +

    Detailed Description

    +

    Typedef Documentation

    + +

    ◆ xarray_pointer

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class SC = xt::svector<typename uvector<T, std::allocator<std::size_t>>::size_type, 4, std::allocator<std::size_t>, true>>
    + + + + +
    using xt::xarray_pointer
    +
    +Initial value:
    +
    xbuffer_adaptor<xtl::closure_type_t<T*>, xt::no_ownership, detail::default_allocator_for_ptr_t<T>>,
    +
    L,
    +
    SC>
    +
    Dense multidimensional container adaptor with tensor semantic.
    Definition xarray.hpp:216
    + + +
    +

    xarray adaptor for a pointer.

    +

    Construct for example with:

    +
    #include <xtensor/xadapt.hpp>
    +
    +
    std::vector<int> data(4, 0);
    +
    xt::svector<size_t> shape({2, 2});
    +
    +
    xt::xarray_pointer<int> a = xt::adapt(data.data(), data.size(), xt::no_ownership(), shape);
    + +
    xarray_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, L, SC > xarray_pointer
    xarray adaptor for a pointer.
    Definition xadapt.hpp:915
    +
    auto adapt(C &&container, const SC &shape, layout_type l=L)
    Constructs:
    +
    Template Parameters
    + + + + +
    TThe data type (e.g. double).
    LThe xt::layout_type() of the xarray.
    SCThe shape container type (e.g. xt::svector<size_t>). Default matches xt::adapt(P&&, typename A::size_type, O, const SC&, layout_type, const A& alloc)
    +
    +
    + +

    Definition at line 915 of file xadapt.hpp.

    + +
    +
    + +

    ◆ xtensor_pointer

    + +
    +
    +
    +template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major>
    + + + + +
    using xt::xtensor_pointer
    +
    +Initial value:
    +
    xbuffer_adaptor<xtl::closure_type_t<T*>, xt::no_ownership, detail::default_allocator_for_ptr_t<T>>,
    +
    N,
    +
    L>
    +
    Dense multidimensional container adaptor with tensor semantics and fixed dimension.
    Definition xtensor.hpp:212
    +
    +

    xtensor adaptor for a pointer.

    +

    Construct for example with:

    +
    #include <xtensor/xadapt.hpp>
    +
    +
    std::array<size_t, 2> shape = {2, 2};
    +
    std::vector<double> data = {1, 2, 3, 4};
    +
    +
    xt::xtensor_pointer<double, 2> a = xt::adapt(data.data(), 4, xt::no_ownership(), shape);
    +
    xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, N, L > xtensor_pointer
    xtensor adaptor for a pointer.
    Definition xadapt.hpp:886
    +
    Template Parameters
    + + + + +
    TThe data type (e.g. double).
    NThe number of dimensions.
    LThe xt::layout_type() of the xtensor.
    +
    +
    + +

    Definition at line 886 of file xadapt.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ adapt() [1/9]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class C, class SC>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::adapt (C && container,
    const SC & shape,
    layout_type l = L )
    +
    +inline
    +
    + +

    Constructs:

    + +

    from the given stl-like container or pointer, with the specified shape and layout. If the adaptor is built from a pointer, it does not take its ownership.

    +
    Parameters
    + + + + +
    containerthe container or pointer to adapt
    shapethe shape of the adaptor
    lthe layout_type of the adaptor
    +
    +
    + +
    +
    + +

    ◆ adapt() [2/9]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class C>
    + + + + + +
    + + + + + + + + + + + +
    xtensor_adaptor< C, 1, L > xt::adapt (C && container,
    layout_type l = L )
    +
    +inline
    +
    + +

    Constructs a 1-D xtensor_adaptor of the given stl-like container, with the specified layout_type.

    +
    Parameters
    + + + +
    containerthe container to adapt
    lthe layout_type of the xtensor_adaptor
    +
    +
    + +
    +
    + +

    ◆ adapt() [3/9]

    + +
    +
    +
    +template<class C, class SC, class SS>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::adapt (C && container,
    SC && shape,
    SS && strides )
    +
    +inline
    +
    + +

    Constructs:

    + +

    from the given stl-like container with the specified shape and strides.

    +
    Parameters
    + + + + +
    containerthe container to adapt
    shapethe shape of the adaptor
    stridesthe strides of the adaptor
    +
    +
    + +
    +
    + +

    ◆ adapt() [4/9]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class C, std::size_t... X>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::adapt (C && pointer,
    const fixed_shape< X... > &  )
    +
    +inline
    +
    + +

    Constructs an non-owning xtensor_fixed_adaptor from a pointer with the specified shape and layout.

    +
    Parameters
    + + + +
    pointerthe pointer to adapt
    shapethe shape of the xtensor_fixed_adaptor
    +
    +
    + +
    +
    + +

    ◆ adapt() [5/9]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class P, class O, class SC, class A = detail::default_allocator_for_ptr_t<P>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::adapt (P && pointer,
    typename A::size_type size,
    O ownership,
    const SC & shape,
    layout_type l = L,
    const A & alloc = A() )
    +
    +inline
    +
    + +

    Constructs:

    + +

    of the given dynamically allocated C array, with the specified shape and layout.

    +
    Parameters
    + + + + + + + +
    pointerthe pointer to the beginning of the dynamic array
    sizethe size of the dynamic array
    ownershipindicates whether the adaptor takes ownership of the array. Possible values are no_ownership() or acquire_ownership()
    shapethe shape of the adaptor
    lthe layout_type of the adaptor
    allocthe allocator used for allocating / deallocating the dynamic array
    +
    +
    + +
    +
    + +

    ◆ adapt() [6/9]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class P, class O, class A = detail::default_allocator_for_ptr_t<P>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< P >, O, A >, 1, L > xt::adapt (P && pointer,
    typename A::size_type size,
    O ownership,
    layout_type l = L,
    const A & alloc = A() )
    +
    +inline
    +
    + +

    Constructs a 1-D xtensor_adaptor of the given dynamically allocated C array, with the specified layout.

    +
    Parameters
    + + + + + + +
    pointerthe pointer to the beginning of the dynamic array
    sizethe size of the dynamic array
    ownershipindicates whether the adaptor takes ownership of the array. Possible values are no_ownership() or acquire_ownership()
    lthe layout_type of the xtensor_adaptor
    allocthe allocator used for allocating / deallocating the dynamic array
    +
    +
    + +
    +
    + +

    ◆ adapt() [7/9]

    + +
    +
    +
    +template<class P, class O, class SC, class SS, class A = detail::default_allocator_for_ptr_t<P>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::adapt (P && pointer,
    typename A::size_type size,
    O ownership,
    SC && shape,
    SS && strides,
    const A & alloc = A() )
    +
    +inline
    +
    + +

    Constructs:

    + +

    of the given dynamically allocated C array, with the specified shape and strides.

    +
    Parameters
    + + + + + + + +
    pointerthe pointer to the beginning of the dynamic array
    sizethe size of the dynamic array
    ownershipindicates whether the adaptor takes ownership of the array. Possible values are no_ownership() or acquire_ownership()
    shapethe shape of the adaptor
    stridesthe strides of the adaptor
    allocthe allocator used for allocating / deallocating the dynamic array
    +
    +
    + +
    +
    + +

    ◆ adapt() [8/9]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class T, std::size_t N, class SC>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::adapt (T(&) c_array[N],
    const SC & shape,
    layout_type l = L )
    +
    +inline
    +
    + +

    Constructs:

    + +

    of the given C array allocated on the stack, with the specified shape and layout.

    +
    Parameters
    + + + + +
    c_arraythe C array allocated on the stack
    shapethe shape of the adaptor
    lthe layout_type of the adaptor
    +
    +
    + +
    +
    + +

    ◆ adapt() [9/9]

    + +
    +
    +
    +template<class T, std::size_t N, class SC, class SS>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::adapt (T(&) c_array[N],
    SC && shape,
    SS && strides )
    +
    +inline
    +
    + +

    Constructs:

    + +

    of the given C array allocated on the stack, with the specified shape and strides.

    +
    Parameters
    + + + + +
    c_arraythe C array allocated on the stack
    shapethe shape of the adaptor
    stridesthe strides of the adaptor
    +
    +
    + +
    +
    + +

    ◆ adapt_smart_ptr() [1/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class P, class I, std::size_t N, class D, xtl::check_concept< detail::not_a_layout< std::decay_t< D > > > = 0>
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::adapt_smart_ptr (P && data_ptr,
    const I(&) shape[N],
    D && smart_ptr,
    layout_type l = L )
    +
    + +

    Adapt a smart pointer (shared_ptr or unique_ptr)

    +

    This function allows to automatically adapt a shared or unique pointer to a given shape and operate naturally on it. Memory will be automatically handled by the smart pointer implementation.

    +
    #include <xtensor/xadapt.hpp>
    +
    #include <xtensor/xio.hpp>
    +
    +
    struct Buffer {
    +
    Buffer(std::vector<double>& buf) : m_buf(buf) {}
    +
    ~Buffer() { std::cout << "deleted" << std::endl; }
    +
    std::vector<double> m_buf;
    +
    };
    +
    +
    auto data = std::vector<double>{1,2,3,4,5,6,7,8};
    +
    auto shared_buf = std::make_shared<Buffer>(data);
    +
    auto unique_buf = std::make_unique<Buffer>(data);
    +
    +
    std::cout << shared_buf.use_count() << std::endl;
    +
    {
    +
    auto obj = adapt_smart_ptr(shared_buf.get()->m_buf.data(),
    +
    {2, 4}, shared_buf);
    +
    // Use count increased to 2
    +
    std::cout << shared_buf.use_count() << std::endl;
    +
    std::cout << obj << std::endl;
    +
    }
    +
    // Use count reset to 1
    +
    std::cout << shared_buf.use_count() << std::endl;
    +
    +
    {
    +
    auto obj = adapt_smart_ptr(unique_buf.get()->m_buf.data(),
    +
    {2, 4}, std::move(unique_buf));
    +
    std::cout << obj << std::endl;
    +
    }
    +
    auto adapt_smart_ptr(P &&smart_ptr, const SC &shape, layout_type l=L)
    Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)
    Definition xadapt.hpp:687
    +
    Parameters
    + + + + + +
    data_ptrA pointer to a typed data block (e.g. double*)
    shapeThe desired shape
    smart_ptrA smart pointer to move or copy, in order to manage memory
    lThe desired memory layout
    +
    +
    +
    Returns
    xtensor_adaptor on the memory
    + +

    Definition at line 852 of file xadapt.hpp.

    + +
    +
    + +

    ◆ adapt_smart_ptr() [2/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class P, class SC, class D, xtl::check_concept< detail::not_an_array< std::decay_t< SC > >, detail::not_a_layout< std::decay_t< D > > > = 0>
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::adapt_smart_ptr (P && data_ptr,
    const SC & shape,
    D && smart_ptr,
    layout_type l = L )
    +
    + +

    Adapt a smart pointer (shared_ptr or unique_ptr)

    +

    This function allows to automatically adapt a shared or unique pointer to a given shape and operate naturally on it. Memory will be automatically handled by the smart pointer implementation.

    +
    #include <xtensor/xadapt.hpp>
    +
    #include <xtensor/xio.hpp>
    +
    +
    struct Buffer {
    +
    Buffer(std::vector<double>& buf) : m_buf(buf) {}
    +
    ~Buffer() { std::cout << "deleted" << std::endl; }
    +
    std::vector<double> m_buf;
    +
    };
    +
    +
    auto data = std::vector<double>{1,2,3,4,5,6,7,8};
    +
    auto shared_buf = std::make_shared<Buffer>(data);
    +
    auto unique_buf = std::make_unique<Buffer>(data);
    +
    +
    std::cout << shared_buf.use_count() << std::endl;
    +
    {
    +
    std::vector<size_t> shape = {2, 4};
    +
    auto obj = adapt_smart_ptr(shared_buf.get()->m_buf.data(),
    +
    shape, shared_buf);
    +
    // Use count increased to 2
    +
    std::cout << shared_buf.use_count() << std::endl;
    +
    std::cout << obj << std::endl;
    +
    }
    +
    // Use count reset to 1
    +
    std::cout << shared_buf.use_count() << std::endl;
    +
    +
    {
    +
    std::vector<size_t> shape = {2, 4};
    +
    auto obj = adapt_smart_ptr(unique_buf.get()->m_buf.data(),
    +
    shape, std::move(unique_buf));
    +
    std::cout << obj << std::endl;
    +
    }
    +
    Parameters
    + + + + + +
    data_ptrA pointer to a typed data block (e.g. double*)
    shapeThe desired shape
    smart_ptrA smart pointer to move or copy, in order to manage memory
    lThe desired memory layout
    +
    +
    +
    Returns
    xarray_adaptor on the memory
    + +

    Definition at line 752 of file xadapt.hpp.

    + +
    +
    + +

    ◆ adapt_smart_ptr() [3/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class P, class I, std::size_t N>
    + + + + + + + + + + + + + + + + +
    auto xt::adapt_smart_ptr (P && smart_ptr,
    const I(&) shape[N],
    layout_type l = L )
    +
    + +

    Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)

    +
    #include <xtensor/xadapt.hpp>
    +
    #include <xtensor/xio.hpp>
    +
    +
    std::shared_ptr<double> sptr(new double[8], std::default_delete<double[]>());
    +
    sptr.get()[2] = 321.;
    +
    auto xptr = adapt_smart_ptr(sptr, {4, 2});
    +
    xptr(1, 3) = 123.;
    +
    std::cout << xptr;
    +
    Parameters
    + + + + +
    smart_ptra smart pointer to a memory block of T[]
    shapeThe desired shape
    lThe desired memory layout
    +
    +
    +
    Returns
    xtensor_adaptor for memory
    + +

    Definition at line 785 of file xadapt.hpp.

    + +
    +
    + +

    ◆ adapt_smart_ptr() [4/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class P, class SC, xtl::check_concept< detail::not_an_array< std::decay_t< SC > > > = 0>
    + + + + + + + + + + + + + + + + +
    auto xt::adapt_smart_ptr (P && smart_ptr,
    const SC & shape,
    layout_type l = L )
    +
    + +

    Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)

    +
    #include <xtensor/xadapt.hpp>
    +
    #include <xtensor/xio.hpp>
    +
    +
    std::shared_ptr<double> sptr(new double[8], std::default_delete<double[]>());
    +
    sptr.get()[2] = 321.;
    +
    std::vector<size_t> shape = {4, 2};
    +
    auto xptr = adapt_smart_ptr(sptr, shape);
    +
    xptr(1, 3) = 123.;
    +
    std::cout << xptr;
    +
    Parameters
    + + + + +
    smart_ptra smart pointer to a memory block of T[]
    shapeThe desired shape
    lThe desired memory layout
    +
    +
    +
    Returns
    xarray_adaptor for memory
    + +

    Definition at line 687 of file xadapt.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xadapt.js b/group__xt__xadapt.js new file mode 100644 index 000000000..e4fd9dd8d --- /dev/null +++ b/group__xt__xadapt.js @@ -0,0 +1,18 @@ +var group__xt__xadapt = +[ + [ "xt::xarray_pointer", "group__xt__xadapt.html#ga78db42d1cb84bbada6dfa0c2795562c1", null ], + [ "xt::xtensor_pointer", "group__xt__xadapt.html#ga6cc895e9f88e46935a2a34dda7aac4e3", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga80782b35941520fa1d729ed6224cba72", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga2eeb31313c7f9661f62d8ae6a6005013", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga6d665539130b96871327cb7a4aa8b2e0", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga9481e907df524526bc4fd7b77a7c6dcc", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga5d6037b3273754077e434c1dd12d897c", null ], + [ "xt::adapt", "group__xt__xadapt.html#gad7037a00f2c9e7679805e3b0b3515299", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga4170776d38583fd9bedf66df77f3d328", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga7ce00acd98d8aa752d44779e68b0c97c", null ], + [ "xt::adapt", "group__xt__xadapt.html#ga4a46bac84f94e0d22a5000df7008e7da", null ], + [ "xt::adapt_smart_ptr", "group__xt__xadapt.html#ga4addfb25502247a072b944240b67fd3f", null ], + [ "xt::adapt_smart_ptr", "group__xt__xadapt.html#ga9b942dfcc4b69cd9883c99b803b003aa", null ], + [ "xt::adapt_smart_ptr", "group__xt__xadapt.html#gabe827f240de5a66f559ae57fadd19aad", null ], + [ "xt::adapt_smart_ptr", "group__xt__xadapt.html#ga399f6121a1ebe2bf8b338e731bdc2c4e", null ] +]; \ No newline at end of file diff --git a/group__xt__xchunked__array.html b/group__xt__xchunked__array.html new file mode 100644 index 000000000..494356f2e --- /dev/null +++ b/group__xt__xchunked__array.html @@ -0,0 +1,305 @@ + + + + + + + +xtensor: Chunked array + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Chunked array
    +
    +
    + +

    Chunked array container. +More...

    + + + + + + + + + + + + + + +

    +Functions

    template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    xchunked_array< xarray< xarray< T > > > xt::chunked_array (S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     Creates an in-memory chunked array.
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    xchunked_array< xarray< xarray< typename E::value_type > > > xt::chunked_array (const xexpression< E > &e, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     Creates an in-memory chunked array.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    xchunked_array< xarray< xarray< typename E::value_type > > > xt::chunked_array (const xexpression< E > &e, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     Creates an in-memory chunked array.
     
    +

    Detailed Description

    +

    Chunked array container.

    +

    Defined in xtensor/xchunked_array.hpp.

    +

    Function Documentation

    + +

    ◆ chunked_array() [1/3]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + + + + + +
    xchunked_array< xarray< xarray< typename E::value_type > > > xt::chunked_array (const xexpression< E > & e,
    layout_type chunk_memory_layout = ::xt::layout_type::row_major )
    +
    +inline
    +
    + +

    Creates an in-memory chunked array.

    +

    This function returns a xt::xchunked_array<xt::xarray<T>> initialized from an expression.

    +
    Template Parameters
    + + +
    LThe layout_type of the array
    +
    +
    +
    Parameters
    + + + +
    eThe expression to initialize the chunked array from
    chunk_memory_layoutThe layout of each chunk (default: XTENSOR_DEFAULT_LAYOUT)
    +
    +
    +
    Returns
    returns a xt::xchunked_array<xt::xarray<T>> from the given expression, with the expression's chunk shape and the given memory layout.
    + +

    Definition at line 378 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ chunked_array() [2/3]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xchunked_array< xarray< xarray< typename E::value_type > > > xt::chunked_array (const xexpression< E > & e,
    S && chunk_shape,
    layout_type chunk_memory_layout = ::xt::layout_type::row_major )
    +
    +inline
    +
    + +

    Creates an in-memory chunked array.

    +

    This function returns a xt::xchunked_array<xt::xarray<T>> initialized from an expression.

    +
    Template Parameters
    + + +
    LThe layout_type of the array
    +
    +
    +
    Parameters
    + + + + +
    eThe expression to initialize the chunked array from
    chunk_shapeThe shape of a chunk
    chunk_memory_layoutThe layout of each chunk (default: XTENSOR_DEFAULT_LAYOUT)
    +
    +
    +
    Returns
    returns a xt::xchunked_array<xt::xarray<T>> from the given expression, with the given chunk shape and memory layout.
    + +

    Definition at line 370 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ chunked_array() [3/3]

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xchunked_array< xarray< xarray< T > > > xt::chunked_array (S && shape,
    S && chunk_shape,
    layout_type chunk_memory_layout = ::xt::layout_type::row_major )
    +
    +inline
    +
    + +

    Creates an in-memory chunked array.

    +

    This function returns an uninitialized xt::xchunked_array<xt::xarray<T>>.

    +
    Template Parameters
    + + + +
    TThe type of the elements (e.g. double)
    LThe layout_type of the array
    +
    +
    +
    Parameters
    + + + + +
    shapeThe shape of the array
    chunk_shapeThe shape of a chunk
    chunk_memory_layoutThe layout of each chunk (default: XTENSOR_DEFAULT_LAYOUT)
    +
    +
    +
    Returns
    returns a xt::xchunked_array<xt::xarray<T>> with the given shape, chunk shape and memory layout.
    + +

    Definition at line 347 of file xchunked_array.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xchunked__array.js b/group__xt__xchunked__array.js new file mode 100644 index 000000000..eb1ded89a --- /dev/null +++ b/group__xt__xchunked__array.js @@ -0,0 +1,6 @@ +var group__xt__xchunked__array = +[ + [ "xt::chunked_array", "group__xt__xchunked__array.html#ga2dae3e469de3f3ec7b0d4fc49f82de5c", null ], + [ "xt::chunked_array", "group__xt__xchunked__array.html#ga7f77d42d689828b2d8e8cdd57c28ee9b", null ], + [ "xt::chunked_array", "group__xt__xchunked__array.html#ga8c408e717c7725211a42114adb4557b2", null ] +]; \ No newline at end of file diff --git a/group__xt__xcomplex.html b/group__xt__xcomplex.html new file mode 100644 index 000000000..d8f101223 --- /dev/null +++ b/group__xt__xcomplex.html @@ -0,0 +1,384 @@ + + + + + + + +xtensor: Complex numbers + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Complex numbers
    +
    +
    + +

    Defined in xtensor/xcomplex.hpp +More...

    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    decltype(auto) xt::real (E &&e) noexcept
     Return an xt::xexpression representing the real part of the given expression.
     
    template<class E>
    decltype(auto) xt::imag (E &&e) noexcept
     Return an xt::xexpression representing the imaginary part of the given expression.
     
    template<class E>
    auto xt::conj (E &&e) noexcept
     Return an xt::xfunction evaluating to the complex conjugate of the given expression.
     
    template<class E>
    auto xt::arg (E &&e) noexcept
     Calculates the phase angle (in radians) elementwise for the complex numbers in e.
     
    template<class E>
    auto xt::angle (E &&e, bool deg=false) noexcept
     Calculates the phase angle elementwise for the complex numbers in e.
     
    template<class E>
    auto xt::norm (E &&e) noexcept
     Calculates the squared magnitude elementwise for the complex numbers in e.
     
    +

    Detailed Description

    +

    Defined in xtensor/xcomplex.hpp

    +

    Function Documentation

    + +

    ◆ angle()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::angle (E && e,
    bool deg = false )
    +
    +inlinenoexcept
    +
    + +

    Calculates the phase angle elementwise for the complex numbers in e.

    +

    Note that this function might be slightly less performant than xt::arg.

    +
    Parameters
    + + + +
    ethe xt::xexpression
    degcalculate angle in degrees instead of radians
    +
    +
    + +

    Definition at line 238 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ arg()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::arg (E && e)
    +
    +inlinenoexcept
    +
    + +

    Calculates the phase angle (in radians) elementwise for the complex numbers in e.

    +
    Parameters
    + + +
    ethe xt::xexpression
    +
    +
    + +

    Definition at line 221 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ conj()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::conj (E && e)
    +
    +inlinenoexcept
    +
    + +

    Return an xt::xfunction evaluating to the complex conjugate of the given expression.

    +
    Parameters
    + + +
    ethe xt::xexpression
    +
    +
    + +

    Definition at line 207 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ imag()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    decltype(auto) xt::imag (E && e)
    +
    +inlinenoexcept
    +
    + +

    Return an xt::xexpression representing the imaginary part of the given expression.

    +

    The returned expression either hold a const reference to e or a copy depending on whether e is an lvalue or an rvalue.

    +
    Template Parameters
    + + +
    eThe xt::xexpression
    +
    +
    + +

    Definition at line 144 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ norm()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::norm (E && e)
    +
    +inlinenoexcept
    +
    + +

    Calculates the squared magnitude elementwise for the complex numbers in e.

    +

    Equivalent to xt::pow(xt::real(e), 2) + xt::pow(xt::imag(e), 2).

    +
    Parameters
    + + +
    ethe xt::xexpression
    +
    +
    + +

    Definition at line 257 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ real()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    decltype(auto) xt::real (E && e)
    +
    +inlinenoexcept
    +
    + +

    Return an xt::xexpression representing the real part of the given expression.

    +

    The returned expression either hold a const reference to e or a copy depending on whether e is an lvalue or an rvalue.

    +
    Template Parameters
    + + +
    eThe xt::xexpression
    +
    +
    + +

    Definition at line 128 of file xcomplex.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xcomplex.js b/group__xt__xcomplex.js new file mode 100644 index 000000000..e34f763df --- /dev/null +++ b/group__xt__xcomplex.js @@ -0,0 +1,9 @@ +var group__xt__xcomplex = +[ + [ "xt::angle", "group__xt__xcomplex.html#gad2d3e146e64f9cb63d1b66e7d0d43867", null ], + [ "xt::arg", "group__xt__xcomplex.html#ga79e6cc463f0aeee688d90dcd320cd672", null ], + [ "xt::conj", "group__xt__xcomplex.html#ga77874ddd5efaa90065d692ee4a6049a2", null ], + [ "xt::imag", "group__xt__xcomplex.html#ga155e369dcf03bd465609d279b82f6da8", null ], + [ "xt::norm", "group__xt__xcomplex.html#gad3afef5ff535998e5dd0d95a979c54bf", null ], + [ "xt::real", "group__xt__xcomplex.html#ga40dd460909cc5b81f23947646eebd543", null ] +]; \ No newline at end of file diff --git a/group__xt__xeval.html b/group__xt__xeval.html new file mode 100644 index 000000000..86ba45dec --- /dev/null +++ b/group__xt__xeval.html @@ -0,0 +1,228 @@ + + + + + + + +xtensor: Evaluation + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Evaluation
    +
    +
    + +

    Evaluation functions. +More...

    + + + + + + + + + + +

    +Functions

    template<class T>
    auto xt::eval (T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
     Force evaluation of xexpression.
     
    template<layout_type L = layout_type::any, class E>
    auto xt::as_strided (E &&e) -> std::enable_if_t< has_data_interface< std::decay_t< E > >::value &&detail::has_same_layout< L, E >(), E && >
     Force evaluation of xexpression not providing a data interface and convert to the required layout.
     
    +

    Detailed Description

    +

    Evaluation functions.

    +

    Defined in xtensor/xeval.hpp

    +

    Function Documentation

    + +

    ◆ as_strided()

    + +
    +
    +
    +template<layout_type L = layout_type::any, class E>
    + + + + + +
    + + + + + + + +
    auto xt::as_strided (E && e) -> std::enable_if_t<has_data_interface<std::decay_t<E>>::value && detail::has_same_layout<L, E>(), E&&> +
    +
    +inline
    +
    + +

    Force evaluation of xexpression not providing a data interface and convert to the required layout.

    +
    +
    +
    // take reference to a (no copy!)
    +
    auto&& b = xt::as_strided(a);
    +
    +
    // xarray<double> with the required layout
    + +
    +
    // xexpression
    +
    auto&& a_cast = xt::cast<int>(a);
    +
    +
    // xarray<int>, not an xexpression
    +
    auto&& d = xt::as_strided(a_cast);
    +
    +
    // xarray<int> with the required layout
    + +
    auto cast(E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
    Element-wise static_cast.
    +
    auto as_strided(E &&e) -> std::enable_if_t< has_data_interface< std::decay_t< E > >::value &&detail::has_same_layout< L, E >(), E && >
    Force evaluation of xexpression not providing a data interface and convert to the required layout.
    Definition xeval.hpp:149
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    Warning
    This function should be used in a local context only. Returning the value returned by this function could lead to a dangling reference.
    +
    Returns
    The expression when it already provides a data interface with the correct layout, an evaluated xt::xarray or xt::xtensor depending on shape type otherwise.
    + +

    Definition at line 149 of file xeval.hpp.

    + +
    +
    + +

    ◆ eval()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::eval (T && t) -> std::enable_if_t<detail::is_container<std::decay_t<T>>::value, T&&> +
    +
    +inline
    +
    + +

    Force evaluation of xexpression.

    +
    xt::xarray<double> a = {1, 2, 3, 4};
    +
    auto&& b = xt::eval(a); // b is a reference to a, no copy!
    +
    auto&& c = xt::eval(a + b); // c is xarray<double>, not an xexpression
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    Returns
    xt::xarray or xt::xtensor depending on shape type
    + +

    Definition at line 46 of file xeval.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xeval.js b/group__xt__xeval.js new file mode 100644 index 000000000..ec67871bf --- /dev/null +++ b/group__xt__xeval.js @@ -0,0 +1,5 @@ +var group__xt__xeval = +[ + [ "xt::as_strided", "group__xt__xeval.html#ga67df3a5e9f6d3f55dceea48706539b46", null ], + [ "xt::eval", "group__xt__xeval.html#ga60f1ff0460adb785f2d4055d0863551b", null ] +]; \ No newline at end of file diff --git a/group__xt__xfunctor__view.html b/group__xt__xfunctor__view.html new file mode 100644 index 000000000..d917bf212 --- /dev/null +++ b/group__xt__xfunctor__view.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Functor view + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Functor view
    +
    +
    + +

    Chunked array container. +More...

    + + + + + + + + +

    +Classes

    class  xt::xfunctor_view< F, CT >
     View of an xexpression . More...
     
    class  xt::xfunctor_adaptor< F, CT >
     Adapt a container with a functor, forwarding methods such as resize / reshape. More...
     
    +

    Detailed Description

    +

    Chunked array container.

    +

    Defined in xtensor/xfunctor_view.hpp

    +
    +
    + + + + diff --git a/group__xt__xfunctor__view.js b/group__xt__xfunctor__view.js new file mode 100644 index 000000000..432cb88ae --- /dev/null +++ b/group__xt__xfunctor__view.js @@ -0,0 +1,9 @@ +var group__xt__xfunctor__view = +[ + [ "xt::xfunctor_view< F, CT >", "classxt_1_1xfunctor__view.html", [ + [ "operator=", "classxt_1_1xfunctor__view.html#a9e41f726bcd647106ca9f420a045d228", null ] + ] ], + [ "xt::xfunctor_adaptor< F, CT >", "classxt_1_1xfunctor__adaptor.html", [ + [ "operator=", "classxt_1_1xfunctor__adaptor.html#a4eaf31a6089dc47d2e772fa6590514bd", null ] + ] ] +]; \ No newline at end of file diff --git a/group__xt__xmanipulation.html b/group__xt__xmanipulation.html new file mode 100644 index 000000000..e2cea7a59 --- /dev/null +++ b/group__xt__xmanipulation.html @@ -0,0 +1,1332 @@ + + + + + + + +xtensor: Array manipulation + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Array manipulation
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::transpose (E &&e) noexcept
     Returns a transpose view by reversing the dimensions of xexpression e.
     
    template<class E, class S, class Tag = check_policy::none>
    auto xt::transpose (E &&e, S &&permutation, Tag check_policy)
     Returns a transpose view by permuting the xexpression e with permutation.
     
    template<class E>
    auto xt::swapaxes (E &&e, std::ptrdiff_t axis1, std::ptrdiff_t axis2)
     Return a new expression with two axes interchanged.
     
    template<class E>
    auto xt::moveaxis (E &&e, std::ptrdiff_t src, std::ptrdiff_t dest)
     Return a new expression with an axis move to a new position.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto xt::ravel (E &&e)
     Return a flatten view of the given expression.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto xt::flatten (E &&e)
     Return a flatten view of the given expression.
     
    template<class E>
    auto xt::trim_zeros (E &&e, const std::string &direction)
     Trim zeros at beginning, end or both of 1D sequence.
     
    template<class E>
    auto xt::squeeze (E &&e)
     Returns a squeeze view of the given expression.
     
    template<class E, xtl::non_integral_concept S, class Tag = check_policy::none>
    auto xt::squeeze (E &&e, S &&axis, Tag check_policy)
     Remove single-dimensional entries from the shape of an xexpression.
     
    template<class E>
    auto xt::expand_dims (E &&e, std::size_t axis)
     Expand the shape of an xexpression.
     
    template<std::size_t N, class E>
    auto xt::atleast_Nd (E &&e)
     Expand dimensions of xexpression to at least N
     
    template<class E>
    auto xt::atleast_1d (E &&e)
     Expand to at least 1D.
     
    template<class E>
    auto xt::atleast_2d (E &&e)
     Expand to at least 2D.
     
    template<class E>
    auto xt::atleast_3d (E &&e)
     Expand to at least 3D.
     
    template<class E>
    auto xt::split (E &e, std::size_t n, std::size_t axis)
     Split xexpression along axis into subexpressions.
     
    template<class E>
    auto xt::hsplit (E &e, std::size_t n)
     Split an xexpression into subexpressions horizontally (column-wise)
     
    template<class E>
    auto xt::vsplit (E &e, std::size_t n)
     Split an xexpression into subexpressions vertically (row-wise)
     
    template<class E>
    auto xt::flip (E &&e)
     Reverse the order of elements in an xexpression along every axis.
     
    template<class E>
    auto xt::flip (E &&e, std::size_t axis)
     Reverse the order of elements in an xexpression along the given axis.
     
    template<std::ptrdiff_t N = 1, class E>
    auto xt::rot90 (E &&e, const std::array< std::ptrdiff_t, 2 > &axes)
     Rotate an array by 90 degrees in the plane specified by axes.
     
    template<class E>
    auto xt::roll (E &&e, std::ptrdiff_t shift)
     Roll an expression.
     
    template<class E>
    auto xt::roll (E &&e, std::ptrdiff_t shift, std::ptrdiff_t axis)
     Roll an expression along a given axis.
     
    template<class E>
    auto xt::repeat (E &&e, std::size_t repeats, std::size_t axis)
     Repeat elements of an expression along a given axis.
     
    template<class E>
    auto xt::repeat (E &&e, const std::vector< std::size_t > &repeats, std::size_t axis)
     Repeat elements of an expression along a given axis.
     
    template<class E>
    auto xt::repeat (E &&e, std::vector< std::size_t > &&repeats, std::size_t axis)
     Repeat elements of an expression along a given axis.
     
    +

    Detailed Description

    +

    Function Documentation

    + +

    ◆ atleast_1d()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::atleast_1d (E && e)
    +
    +inline
    +
    + +

    Expand to at least 1D.

    +
    See also
    atleast_Nd
    + +

    Definition at line 687 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ atleast_2d()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::atleast_2d (E && e)
    +
    +inline
    +
    + +

    Expand to at least 2D.

    +
    See also
    atleast_Nd
    + +

    Definition at line 699 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ atleast_3d()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::atleast_3d (E && e)
    +
    +inline
    +
    + +

    Expand to at least 3D.

    +
    See also
    atleast_Nd
    + +

    Definition at line 711 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ atleast_Nd()

    + +
    +
    +
    +template<std::size_t N, class E>
    + + + + + +
    + + + + + + + +
    auto xt::atleast_Nd (E && e)
    +
    +inline
    +
    + +

    Expand dimensions of xexpression to at least N

    +

    This adds newaxis() slices to a strided_view until the dimension of the view reaches at least N. Note: dimensions are added equally at the beginning and the end. For example, a 1-D array of shape (N,) becomes a view of shape (1, N, 1).

    +
    Parameters
    + + +
    einput xexpression
    +
    +
    +
    Template Parameters
    + + +
    Nthe number of requested dimensions
    +
    +
    +
    Returns
    strided_view with expanded dimensions
    + +

    Definition at line 660 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ expand_dims()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::expand_dims (E && e,
    std::size_t axis )
    +
    +inline
    +
    + +

    Expand the shape of an xexpression.

    +

    Insert a new axis that will appear at the axis position in the expanded array shape. This will return a strided_view with a xt::newaxis() at the indicated axis.

    +
    Parameters
    + + + +
    einput xexpression
    axisaxis to expand
    +
    +
    +
    Returns
    returns a strided_view with expanded dimension
    + +

    Definition at line 635 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ flatten()

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + +
    auto xt::flatten (E && e)
    +
    +inline
    +
    + +

    Return a flatten view of the given expression.

    +

    No copy is made. This method is equivalent to ravel and is provided for API sameness with NumPy.

    +
    Parameters
    + + +
    ethe input expression
    +
    +
    +
    Template Parameters
    + + + +
    Lthe layout used to read the elements of e. If no parameter is specified, XTENSOR_DEFAULT_TRAVERSAL is used.
    Ethe type of the expression
    +
    +
    +
    See also
    ravel
    + +

    Definition at line 444 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ flip() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::flip (E && e)
    +
    +inline
    +
    + +

    Reverse the order of elements in an xexpression along every axis.

    +
    Parameters
    + + +
    ethe input xexpression
    +
    +
    +
    Returns
    returns a view with the result of the flip.
    + +

    Definition at line 802 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ flip() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::flip (E && e,
    std::size_t axis )
    +
    +inline
    +
    + +

    Reverse the order of elements in an xexpression along the given axis.

    +

    Note: A NumPy/Matlab style flipud(arr) is equivalent to xt::flip(arr, 0), fliplr(arr) to xt::flip(arr, 1).

    +
    Parameters
    + + + +
    ethe input xexpression
    axisthe axis along which elements should be reversed
    +
    +
    +
    Returns
    returns a view with the result of the flip
    + +

    Definition at line 825 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ hsplit()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::hsplit (E & e,
    std::size_t n )
    +
    +inline
    +
    + +

    Split an xexpression into subexpressions horizontally (column-wise)

    +

    This method is equivalent to split(e, n, 1).

    +
    Parameters
    + + + +
    einput xexpression
    nnumber of elements to return
    +
    +
    + +

    Definition at line 770 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ moveaxis()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::moveaxis (E && e,
    std::ptrdiff_t src,
    std::ptrdiff_t dest )
    +
    +inline
    +
    + +

    Return a new expression with an axis move to a new position.

    +
    Parameters
    + + + + +
    eThe input expression
    srcOriginal position of the axis to move
    destDestination position for the original axis.
    +
    +
    + +

    Definition at line 370 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ ravel()

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + +
    auto xt::ravel (E && e)
    +
    +inline
    +
    + +

    Return a flatten view of the given expression.

    +

    No copy is made.

    +
    Parameters
    + + +
    ethe input expression
    +
    +
    +
    Template Parameters
    + + + +
    Lthe layout used to read the elements of e. If no parameter is specified, XTENSOR_DEFAULT_TRAVERSAL is used.
    Ethe type of the expression
    +
    +
    + +

    Definition at line 419 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ repeat() [1/3]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::repeat (E && e,
    const std::vector< std::size_t > & repeats,
    std::size_t axis )
    +
    +inline
    +
    + +

    Repeat elements of an expression along a given axis.

    +
    Parameters
    + + + + +
    ethe input xexpression
    repeatsThe number of repetition of each elements. The size of repeats must match the shape of the given axis.
    axisthe axis along which to repeat the value
    +
    +
    +
    Returns
    an expression with the same shape as e, except along the given axis
    + +

    Definition at line 1125 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ repeat() [2/3]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::repeat (E && e,
    std::size_t repeats,
    std::size_t axis )
    +
    +inline
    +
    + +

    Repeat elements of an expression along a given axis.

    +
    Parameters
    + + + + +
    ethe input xexpression
    repeatsThe number of repetition of each elements. repeats is broadcasted to fit the shape of the given axis.
    axisthe axis along which to repeat the value
    +
    +
    +
    Returns
    an expression with the same shape as e, except along the given axis
    + +

    Definition at line 1105 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ repeat() [3/3]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::repeat (E && e,
    std::vector< std::size_t > && repeats,
    std::size_t axis )
    +
    +inline
    +
    + +

    Repeat elements of an expression along a given axis.

    +
    Parameters
    + + + + +
    ethe input xexpression
    repeatsThe number of repetition of each elements. The size of repeats must match the shape of the given axis.
    axisthe axis along which to repeat the value
    +
    +
    +
    Returns
    an expression with the same shape as e, except along the given axis
    + +

    Definition at line 1141 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ roll() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::roll (E && e,
    std::ptrdiff_t shift )
    +
    +inline
    +
    + +

    Roll an expression.

    +

    The expression is flatten before shifting, after which the original shape is restore. Elements that roll beyond the last position are re-introduced at the first. This function does not change the input expression.

    +
    Parameters
    + + + +
    ethe input xexpression
    shiftthe number of places by which elements are shifted
    +
    +
    +
    Returns
    a roll of the input expression
    + +

    Definition at line 954 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ roll() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::roll (E && e,
    std::ptrdiff_t shift,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Roll an expression along a given axis.

    +

    Elements that roll beyond the last position are re-introduced at the first. This function does not change the input expression.

    +
    Parameters
    + + + + +
    ethe input xexpression
    shiftthe number of places by which elements are shifted
    axisthe axis along which elements are shifted.
    +
    +
    +
    Returns
    a roll of the input expression
    + +

    Definition at line 1051 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ rot90()

    + +
    +
    +
    +template<std::ptrdiff_t N = 1, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::rot90 (E && e,
    const std::array< std::ptrdiff_t, 2 > & axes )
    +
    +inline
    +
    + +

    Rotate an array by 90 degrees in the plane specified by axes.

    +

    Rotation direction is from the first towards the second axis.

    +
    Parameters
    + + + +
    ethe input xexpression
    axesthe array is rotated in the plane defined by the axes. Axes must be different.
    +
    +
    +
    Template Parameters
    + + +
    Nnumber of times the array is rotated by 90 degrees. Default is 1.
    +
    +
    +
    Returns
    returns a view with the result of the rotation
    + +

    Definition at line 921 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ split()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::split (E & e,
    std::size_t n,
    std::size_t axis )
    +
    +inline
    +
    + +

    Split xexpression along axis into subexpressions.

    +

    This splits an xexpression along the axis in n equal parts and returns a vector of strided_view. Calling split with axis > dimension of e or a n that does not result in an equal division of the xexpression will throw a runtime_error.

    +
    Parameters
    + + + + +
    einput xexpression
    nnumber of elements to return
    axisaxis along which to split the expression
    +
    +
    + +

    Definition at line 734 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ squeeze() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::squeeze (E && e)
    +
    +inline
    +
    + +

    Returns a squeeze view of the given expression.

    +

    No copy is made. Squeezing an expression removes dimensions of extent 1.

    +
    Parameters
    + + +
    ethe input expression
    +
    +
    +
    Template Parameters
    + + +
    Ethe type of the expression
    +
    +
    + +

    Definition at line 515 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ squeeze() [2/2]

    + +
    +
    +
    +template<class E, xtl::non_integral_concept S, class Tag = check_policy::none>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::squeeze (E && e,
    S && axis,
    Tag check_policy )
    +
    +inline
    +
    + +

    Remove single-dimensional entries from the shape of an xexpression.

    +
    Parameters
    + + + + +
    einput xexpression
    axisinteger or container of integers, select a subset of single-dimensional entries of the shape.
    check_policyselect check_policy. With check_policy::full(), selecting an axis which is greater than one will throw a runtime_error.
    +
    +
    + +

    Definition at line 594 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ swapaxes()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::swapaxes (E && e,
    std::ptrdiff_t axis1,
    std::ptrdiff_t axis2 )
    +
    +inline
    +
    + +

    Return a new expression with two axes interchanged.

    +

    The two axis parameter axis and axis2 are interchangable.

    +
    Parameters
    + + + + +
    eThe input expression
    axis1First axis to swap
    axis2Second axis to swap
    +
    +
    + +

    Definition at line 316 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ transpose() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::transpose (E && e)
    +
    +inlinenoexcept
    +
    + +

    Returns a transpose view by reversing the dimensions of xexpression e.

    +
    Parameters
    + + +
    ethe input expression
    +
    +
    + +

    Definition at line 239 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ transpose() [2/2]

    + +
    +
    +
    +template<class E, class S, class Tag = check_policy::none>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::transpose (E && e,
    S && permutation,
    Tag check_policy )
    +
    +inline
    +
    + +

    Returns a transpose view by permuting the xexpression e with permutation.

    +
    Parameters
    + + + + +
    ethe input expression
    permutationthe sequence containing permutation
    check_policythe check level (check_policy::full() or check_policy::none())
    +
    +
    +
    Template Parameters
    + + +
    Tagselects the level of error checking on permutation vector defaults to check_policy::none.
    +
    +
    + +

    Definition at line 271 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ trim_zeros()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::trim_zeros (E && e,
    const std::string & direction )
    +
    +inline
    +
    + +

    Trim zeros at beginning, end or both of 1D sequence.

    +
    Parameters
    + + + +
    einput xexpression
    directionstring of either 'f' for trim from beginning, 'b' for trim from end or 'fb' (default) for both.
    +
    +
    +
    Returns
    returns a view without zeros at the beginning and end
    + +

    Definition at line 477 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ vsplit()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::vsplit (E & e,
    std::size_t n )
    +
    +inline
    +
    + +

    Split an xexpression into subexpressions vertically (row-wise)

    +

    This method is equivalent to split(e, n, 0).

    +
    Parameters
    + + + +
    einput xexpression
    nnumber of elements to return
    +
    +
    + +

    Definition at line 785 of file xmanipulation.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xmanipulation.js b/group__xt__xmanipulation.js new file mode 100644 index 000000000..a69382c73 --- /dev/null +++ b/group__xt__xmanipulation.js @@ -0,0 +1,28 @@ +var group__xt__xmanipulation = +[ + [ "xt::atleast_1d", "group__xt__xmanipulation.html#ga220444924c684f9f2afbc3384a8ff09e", null ], + [ "xt::atleast_2d", "group__xt__xmanipulation.html#gae2392e470cec79a918e975987d431c54", null ], + [ "xt::atleast_3d", "group__xt__xmanipulation.html#gaf9edf6c754946e30b77d9617852ed15c", null ], + [ "xt::atleast_Nd", "group__xt__xmanipulation.html#ga66c613dc60a31ca07c28b45337ee59b7", null ], + [ "xt::expand_dims", "group__xt__xmanipulation.html#gabe8cb55041a20cb995a15c599b7a2bc2", null ], + [ "xt::flatten", "group__xt__xmanipulation.html#ga10a975d3b718bfaf8ecf1db8072a0a0c", null ], + [ "xt::flip", "group__xt__xmanipulation.html#gad4b24c51356470db0a22b0c6c7d7611d", null ], + [ "xt::flip", "group__xt__xmanipulation.html#ga4bf31ad3a5950024a3825118f9f6a4e7", null ], + [ "xt::hsplit", "group__xt__xmanipulation.html#gaf342a194380b6c7bbc7f2c89f4e88317", null ], + [ "xt::moveaxis", "group__xt__xmanipulation.html#ga2d8bcbb846f2efae57cf6fb4aa24625a", null ], + [ "xt::ravel", "group__xt__xmanipulation.html#ga52d3b08fa67fe8c498e4271fca338e28", null ], + [ "xt::repeat", "group__xt__xmanipulation.html#ga0061839371ca8e1f29c37e812dee9ad1", null ], + [ "xt::repeat", "group__xt__xmanipulation.html#ga86b343ba5d1f6150c418475a00e3d3c3", null ], + [ "xt::repeat", "group__xt__xmanipulation.html#ga7aba37875778e4c7a786cbe6ec909ef2", null ], + [ "xt::roll", "group__xt__xmanipulation.html#ga2211d25aea0f9a27855fb602419a365b", null ], + [ "xt::roll", "group__xt__xmanipulation.html#ga957635620a4f4c19c4ee0546c69fcb1d", null ], + [ "xt::rot90", "group__xt__xmanipulation.html#gab5a947902290cc80a26e8d091428497e", null ], + [ "xt::split", "group__xt__xmanipulation.html#gaad5c56f6a09fb0a6ebaa2ec6cf22cf5c", null ], + [ "xt::squeeze", "group__xt__xmanipulation.html#ga2734defabe45fcb86ed9545c1b033134", null ], + [ "xt::squeeze", "group__xt__xmanipulation.html#gafb20871153217193f33827b3b14e448a", null ], + [ "xt::swapaxes", "group__xt__xmanipulation.html#gaed086f2e402aa1e927f745fceae54018", null ], + [ "xt::transpose", "group__xt__xmanipulation.html#ga620b1159b15601a1fd9b2ddaa746225e", null ], + [ "xt::transpose", "group__xt__xmanipulation.html#gae8b37193755be9f7e4c0161a6d9f9b6b", null ], + [ "xt::trim_zeros", "group__xt__xmanipulation.html#ga938cc86961805cf29a1f68394922d9f7", null ], + [ "xt::vsplit", "group__xt__xmanipulation.html#gad25f3a38510304cf1e3489748a43812c", null ] +]; \ No newline at end of file diff --git a/group__xt__xshape.html b/group__xt__xshape.html new file mode 100644 index 000000000..4fd865d14 --- /dev/null +++ b/group__xt__xshape.html @@ -0,0 +1,362 @@ + + + + + + + +xtensor: Support functions to get/check a shape array. + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Support functions to get/check a shape array.
    +
    +
    + + + + + +

    +Classes

    struct  xt::select_layout< L, S >
     Compute a layout based on a layout and a shape type. More...
     
    + + + + + + + + + + + + + +

    +Typedefs

    template<class... S>
    using xt::promote_shape_t = typename promote_shape<S...>::type
     
    template<class... S>
    using xt::promote_strides_t = typename promote_strides<S...>::type
     
    template<class S>
    using xt::index_from_shape_t = typename index_from_shape<S>::type
     
    template<class S>
    using xt::filter_fixed_shape_t = typename filter_fixed_shape<S>::type
     
    + + + + + + + + + + + + + +

    +Functions

    template<class S1, class S2>
    bool xt::same_shape (const S1 &s1, const S2 &s2) noexcept
     Check if two objects have the same shape.
     
    template<class E, class S>
    bool xt::has_shape (const E &e, std::initializer_list< S > shape) noexcept
     Check if an object has a certain shape.
     
    template<class E, class S, class = typename std::enable_if_t<has_iterator_interface<S>::value>>
    bool xt::has_shape (const E &e, const S &shape)
     Check if an object has a certain shape.
     
    +

    Detailed Description

    +

    Typedef Documentation

    + +

    ◆ filter_fixed_shape_t

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::filter_fixed_shape_t = typename filter_fixed_shape<S>::type
    +
    + +

    Definition at line 575 of file xshape.hpp.

    + +
    +
    + +

    ◆ index_from_shape_t

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::index_from_shape_t = typename index_from_shape<S>::type
    +
    + +

    Definition at line 545 of file xshape.hpp.

    + +
    +
    + +

    ◆ promote_shape_t

    + +
    +
    +
    +template<class... S>
    + + + + +
    using xt::promote_shape_t = typename promote_shape<S...>::type
    +
    + +

    Definition at line 521 of file xshape.hpp.

    + +
    +
    + +

    ◆ promote_strides_t

    + +
    +
    +
    +template<class... S>
    + + + + +
    using xt::promote_strides_t = typename promote_strides<S...>::type
    +
    + +

    Definition at line 533 of file xshape.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ has_shape() [1/2]

    + +
    +
    +
    +template<class E, class S, class = typename std::enable_if_t<has_iterator_interface<S>::value>>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::has_shape (const E & e,
    const S & shape )
    +
    +inline
    +
    + +

    Check if an object has a certain shape.

    +
    Parameters
    + + + +
    ean array-like object
    shapethe shape to test
    +
    +
    +
    Returns
    bool
    + +

    Definition at line 142 of file xshape.hpp.

    + +
    +
    + +

    ◆ has_shape() [2/2]

    + +
    +
    +
    +template<class E, class S>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::has_shape (const E & e,
    std::initializer_list< S > shape )
    +
    +inlinenoexcept
    +
    + +

    Check if an object has a certain shape.

    +
    Parameters
    + + + +
    ean array-like object
    shapethe shape to test
    +
    +
    +
    Returns
    bool
    + +

    Definition at line 127 of file xshape.hpp.

    + +
    +
    + +

    ◆ same_shape()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::same_shape (const S1 & s1,
    const S2 & s2 )
    +
    +inlinenoexcept
    +
    + +

    Check if two objects have the same shape.

    +
    Parameters
    + + + +
    s1an array
    s2an array
    +
    +
    +
    Returns
    bool
    + +

    Definition at line 109 of file xshape.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xshape.js b/group__xt__xshape.js new file mode 100644 index 000000000..764d7e6a8 --- /dev/null +++ b/group__xt__xshape.js @@ -0,0 +1,7 @@ +var group__xt__xshape = +[ + [ "xt::select_layout< L, S >", "structxt_1_1select__layout.html", null ], + [ "xt::has_shape", "group__xt__xshape.html#ga4453a49484a5833cbf48e51eff2ed3df", null ], + [ "xt::has_shape", "group__xt__xshape.html#ga56d28aa1be818adaecee7803249dad7d", null ], + [ "xt::same_shape", "group__xt__xshape.html#ga3c10cfb8271fbf79932a98edc5491ac7", null ] +]; \ No newline at end of file diff --git a/group__xt__xsort.html b/group__xt__xsort.html new file mode 100644 index 000000000..5fa6872eb --- /dev/null +++ b/group__xt__xsort.html @@ -0,0 +1,831 @@ + + + + + + + +xtensor: Sorting functions. + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Sorting functions.
    +
    +
    + +

    Because sorting functions need to access the tensor data repeatedly, they evaluate their input and may allocate temporaries. +More...

    + + + + + +

    +Enumerations

    enum class  xt::quantile_method {
    +  xt::quantile_method::interpolated_inverted_cdf = 4 +, xt::quantile_method::hazen +, xt::quantile_method::weibull +, xt::quantile_method::linear +,
    +  xt::quantile_method::median_unbiased +, xt::quantile_method::normal_unbiased +
    + }
     Quantile interpolation method. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    auto xt::sort (const xexpression< E > &e, std::ptrdiff_t axis=-1)
     Sort xexpression (optionally along axis) The sort is performed using the std::sort functions.
     
    template<class E>
    auto xt::argsort (const xexpression< E > &e, std::ptrdiff_t axis=-1, sorting_method method=sorting_method::quick)
     Argsort xexpression (optionally along axis) Performs an indirect sort along the given axis.
     
    template<class E, xtl::non_integral_concept C, class R = detail::flatten_sort_result_type_t<E>>
    xt::partition (const xexpression< E > &e, C kth_container, placeholders::xtuph)
     Partially sort xexpression.
     
    template<class E, xtl::non_integral_concept C, class R = typename detail::linear_argsort_result_type<typename detail::sort_eval_type<E>::type>::type>
    xt::argpartition (const xexpression< E > &e, C kth_container, placeholders::xtuph)
     Partially sort arguments.
     
    template<class T = double, class E, class P>
    auto xt::quantile (E &&e, const P &probas, std::ptrdiff_t axis, T alpha, T beta)
     Compute quantiles over the given axis.
     
    template<class T = double, class E, class P>
    auto xt::quantile (E &&e, const P &probas, T alpha, T beta)
     Compute quantiles of the whole expression.
     
    template<class T = double, class E, class P>
    auto xt::quantile (E &&e, const P &probas, std::ptrdiff_t axis, quantile_method method=quantile_method::linear)
     Compute quantiles over the given axis.
     
    template<class T = double, class E, class P>
    auto xt::quantile (E &&e, const P &probas, quantile_method method=quantile_method::linear)
     Compute quantiles of the whole expression.
     
    template<class E>
    auto xt::median (E &&e, std::ptrdiff_t axis)
     Find the median along the specified axis.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto xt::argmax (const xexpression< E > &e, std::ptrdiff_t axis)
     Find position of maximal value in xexpression By default, the returned index is into the flattened array.
     
    template<class E>
    auto xt::unique (const xexpression< E > &e)
     Find unique elements of a xexpression.
     
    template<class E1, class E2>
    auto xt::setdiff1d (const xexpression< E1 > &ar1, const xexpression< E2 > &ar2)
     Find the set difference of two xexpressions.
     
    +

    Detailed Description

    +

    Because sorting functions need to access the tensor data repeatedly, they evaluate their input and may allocate temporaries.

    +

    Enumeration Type Documentation

    + +

    ◆ quantile_method

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::quantile_method
    +
    +strong
    +
    + +

    Quantile interpolation method.

    +

    Predefined methods for interpolating quantiles, as defined in (Hyndman and Fan, 1996).

    +
    See also
    (Hyndman and Fan, 1996) R. J. Hyndman and Y. Fan, "Sample quantiles in statistical packages", The American Statistician, 50(4), pp. 361-365, 1996
    +
    +xt::quantile(E&& e, P const& probas, std::ptrdiff_t axis, xt::quantile_method method)
    + + + + + + + +
    Enumerator
    interpolated_inverted_cdf 

    Method 4 of (Hyndman and Fan, 1996) with alpha=0 and beta=1.

    +
    hazen 

    Method 5 of (Hyndman and Fan, 1996) with alpha=1/2 and beta=1/2.

    +
    weibull 

    Method 6 of (Hyndman and Fan, 1996) with alpha=0 and beta=0.

    +
    linear 

    Method 7 of (Hyndman and Fan, 1996) with alpha=1 and beta=1.

    +
    median_unbiased 

    Method 8 of (Hyndman and Fan, 1996) with alpha=1/3 and beta=1/3.

    +
    normal_unbiased 

    Method 9 of (Hyndman and Fan, 1996) with alpha=3/8 and beta=3/8.

    +
    + +

    Definition at line 978 of file xsort.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ argmax()

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::argmax (const xexpression< E > & e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Find position of maximal value in xexpression By default, the returned index is into the flattened array.

    +

    If axis is specified, the indices are along the specified axis.

    +
    Parameters
    + + + +
    einput xexpression
    axisselect axis (optional)
    +
    +
    +
    Returns
    returns xarray with positions of maximal value
    + +

    Definition at line 1290 of file xsort.hpp.

    + +
    +
    + +

    ◆ argpartition()

    + +
    +
    +
    +template<class E, xtl::non_integral_concept C, class R = typename detail::linear_argsort_result_type<typename detail::sort_eval_type<E>::type>::type>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    R xt::argpartition (const xexpression< E > & e,
    C kth_container,
    placeholders::xtuph  )
    +
    +inline
    +
    + +

    Partially sort arguments.

    +

    Argpartition shuffles the indices to a xexpression in a way so that the index for the kth element in the returned xexpression is in the place it would appear in a sorted array and all elements smaller than this entry are placed (unsorted) before.

    +

    The optional third parameter can either be an axis or xnone() in which case the xexpression will be flattened.

    +

    This function uses std::nth_element internally.

    +
    xt::xarray<float> a = {1, 10, -10, 123};
    +
    std::cout << xt::argpartition(a, 0) << std::endl; // {2, 0, 3, 1} the correct entry at index 0
    +
    std::cout << xt::argpartition(a, 3) << std::endl; // {0, 1, 2, 3} the correct entry at index 3
    +
    std::cout << xt::argpartition(a, {0, 3}) << std::endl; // {2, 0, 1, 3} the correct entries at index 0
    +
    and 3
    +
    R argpartition(const xexpression< E > &e, C kth_container, placeholders::xtuph)
    Partially sort arguments.
    Definition xsort.hpp:659
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    Parameters
    + + + + +
    einput xexpression
    kth_containera container of indices that should contain the correctly sorted value
    axisplaceholder indicating that the input is flattened before sorting sorting
    +
    +
    +
    Returns
    xcontainer with indices of partial sort of input
    + +

    Definition at line 659 of file xsort.hpp.

    + +
    +
    + +

    ◆ argsort()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argsort (const xexpression< E > & e,
    std::ptrdiff_t axis = -1,
    sorting_method method = sorting_method::quick )
    +
    +inline
    +
    + +

    Argsort xexpression (optionally along axis) Performs an indirect sort along the given axis.

    +

    Returns an xarray of indices of the same shape as e that index data along the given axis in sorted order.

    +
    Parameters
    + + + + +
    exexpression to argsort
    axisaxis along which argsort is performed
    methodsorting algorithm to use
    +
    +
    +
    Returns
    argsorted index array
    +
    See also
    xt::sorting_method
    + +

    Definition at line 452 of file xsort.hpp.

    + +
    +
    + +

    ◆ median()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::median (E && e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Find the median along the specified axis.

    +

    Given a vector V of length N, the median of V is the middle value of a sorted copy of V, V_sorted - i e., V_sorted[(N-1)/2], when N is odd, and the average of the two middle values of V_sorted when N is even.

    +
    Parameters
    + + + +
    axisaxis along which the medians are computed. If not set, computes the median along a flattened version of the input.
    einput xexpression
    +
    +
    +
    Returns
    median value
    + +

    Definition at line 1121 of file xsort.hpp.

    + +
    +
    + +

    ◆ partition()

    + +
    +
    +
    +template<class E, xtl::non_integral_concept C, class R = detail::flatten_sort_result_type_t<E>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    R xt::partition (const xexpression< E > & e,
    C kth_container,
    placeholders::xtuph  )
    +
    +inline
    +
    + +

    Partially sort xexpression.

    +

    Partition shuffles the xexpression in a way so that the kth element in the returned xexpression is in the place it would appear in a sorted array and all elements smaller than this entry are placed (unsorted) before.

    +

    The optional third parameter can either be an axis or xnone() in which case the xexpression will be flattened.

    +

    This function uses std::nth_element internally.

    +
    xt::xarray<float> a = {1, 10, -10, 123};
    +
    std::cout << xt::partition(a, 0) << std::endl; // {-10, 1, 123, 10} the correct entry at index 0
    +
    std::cout << xt::partition(a, 3) << std::endl; // {1, 10, -10, 123} the correct entry at index 3
    +
    std::cout << xt::partition(a, {0, 3}) << std::endl; // {-10, 1, 10, 123} the correct entries at index 0
    +
    and 3
    +
    R partition(const xexpression< E > &e, C kth_container, placeholders::xtuph)
    Partially sort xexpression.
    Definition xsort.hpp:565
    +
    Parameters
    + + + + +
    einput xexpression
    kth_containera container of indices that should contain the correctly sorted value
    axplaceholder indicating that the input is flattened before sorting sorting
    +
    +
    +
    Returns
    partially sorted xcontainer
    + +

    Definition at line 565 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [1/4]

    + +
    +
    +
    +template<class T = double, class E, class P>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const P & probas,
    quantile_method method = quantile_method::linear )
    +
    +inline
    +
    + +

    Compute quantiles of the whole expression.

    +

    The quantiles are computed over the whole expression, as if flatten in a one-dimensional expression. The function takes the name of a predefined method to compute to interpolate between values.

    +
    See also
    xt::quantile_method
    +
    +xt::quantile(E&& e, P const& probas, std::ptrdiff_t axis, xt::quantile_method method)
    + +

    Definition at line 1071 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [2/4]

    + +
    +
    +
    +template<class T = double, class E, class P>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const P & probas,
    std::ptrdiff_t axis,
    quantile_method method = quantile_method::linear )
    +
    +inline
    +
    + +

    Compute quantiles over the given axis.

    +

    The function takes the name of a predefined method to compute to interpolate between values.

    +
    See also
    xt::quantile_method
    +
    +xt::quantile(E&& e, P const& probas, std::ptrdiff_t axis, T alpha, T beta)
    + +

    Definition at line 1005 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [3/4]

    + +
    +
    +
    +template<class T = double, class E, class P>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const P & probas,
    std::ptrdiff_t axis,
    T alpha,
    T beta )
    +
    +inline
    +
    + +

    Compute quantiles over the given axis.

    +

    In a sorted array represneting a distribution of numbers, the quantile of a probability p is the the cut value q such that a fraction p of the distribution is lesser or equal to q. When the cutpoint falls between two elemnts of the sample distribution, a interpolation is computed using the alpha and beta coefficients, as descripted in (Hyndman and Fan, 1996).

    +

    The algorithm partially sorts entries in a copy along the axis axis.

    +
    Parameters
    + + + + + + +
    eExpression containing the distribution over which the quantiles are computed.
    probasAn list of probability associated with each desired quantiles. All elements must be in the range [0, 1].
    axisThe dimension in which to compute the quantiles, i.e the axis representing the distribution.
    alphaInterpolation parameter. Must be in the range [0, 1]].
    betaInterpolation parameter. Must be in the range [0, 1]].
    +
    +
    +
    Template Parameters
    + + +
    TThe type in which the quantile are computed.
    +
    +
    +
    Returns
    An expression with as many dimensions as the input e. The first axis correspond to the quantiles. The other axes are the axes that remain after the reduction of e.
    +
    See also
    (Hyndman and Fan, 1996) R. J. Hyndman and Y. Fan, "Sample quantiles in statistical packages", The American Statistician, 50(4), pp. 361-365, 1996
    +
    +https://en.wikipedia.org/wiki/Quantile
    + +

    Definition at line 901 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [4/4]

    + +
    +
    +
    +template<class T = double, class E, class P>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const P & probas,
    T alpha,
    T beta )
    +
    +inline
    +
    + +

    Compute quantiles of the whole expression.

    +

    The quantiles are computed over the whole expression, as if flatten in a one-dimensional expression.

    +
    See also
    xt::quantile(E&& e, P const& probas, std::ptrdiff_t axis, T alpha, T beta)
    + +

    Definition at line 955 of file xsort.hpp.

    + +
    +
    + +

    ◆ setdiff1d()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::setdiff1d (const xexpression< E1 > & ar1,
    const xexpression< E2 > & ar2 )
    +
    +inline
    +
    + +

    Find the set difference of two xexpressions.

    +

    This returns a flattened xtensor with the sorted, unique values in ar1 that are not in ar2.

    +
    Parameters
    + + + +
    ar1input xexpression (will be flattened)
    ar2input xexpression
    +
    +
    + +

    Definition at line 1327 of file xsort.hpp.

    + +
    +
    + +

    ◆ sort()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::sort (const xexpression< E > & e,
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Sort xexpression (optionally along axis) The sort is performed using the std::sort functions.

    +

    A copy of the xexpression is created and returned.

    +
    Parameters
    + + + +
    exexpression to sort
    axisaxis along which sort is performed
    +
    +
    +
    Returns
    sorted array (copy)
    + +

    Definition at line 255 of file xsort.hpp.

    + +
    +
    + +

    ◆ unique()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::unique (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Find unique elements of a xexpression.

    +

    This returns a flattened xtensor with sorted, unique elements from the original expression.

    +
    Parameters
    + + +
    einput xexpression (will be flattened)
    +
    +
    + +

    Definition at line 1306 of file xsort.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xsort.js b/group__xt__xsort.js new file mode 100644 index 000000000..32763bf6e --- /dev/null +++ b/group__xt__xsort.js @@ -0,0 +1,23 @@ +var group__xt__xsort = +[ + [ "xt::quantile_method", "group__xt__xsort.html#ga2afe52f60aa76f33b0b883a78cabc1ed", [ + [ "xt::quantile_method::interpolated_inverted_cdf", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda7f20bc9a8cd4acd58c1d9b46821e9242", null ], + [ "xt::quantile_method::hazen", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaf4b08e7cc0a94bb8f4e9969eeb532039", null ], + [ "xt::quantile_method::weibull", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda17198fea0bd47a1170b57db7db9e6060", null ], + [ "xt::quantile_method::linear", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda9a932b3cb396238423eb2f33ec17d6aa", null ], + [ "xt::quantile_method::median_unbiased", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaeddf62d602ae684d91d6f586f5e5cbaf", null ], + [ "xt::quantile_method::normal_unbiased", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edad1056b777fd87429ccb7a8a55db32545", null ] + ] ], + [ "xt::argmax", "group__xt__xsort.html#ga258b6c4df6acf24de4bec48be87f0218", null ], + [ "xt::argpartition", "group__xt__xsort.html#gade27aa15bac807b65cd19bb13a23235e", null ], + [ "xt::argsort", "group__xt__xsort.html#gaa3ce074f31b6284b63b0d5240820e50a", null ], + [ "xt::median", "group__xt__xsort.html#gae6a650f8da9d0066e26ecda36ee293e4", null ], + [ "xt::partition", "group__xt__xsort.html#ga443845cd4d1992ae5e7ec155529b1636", null ], + [ "xt::quantile", "group__xt__xsort.html#gaa8159912f652b20d4477c0187dfb301f", null ], + [ "xt::quantile", "group__xt__xsort.html#ga632a72d1def84debe56b68d79a451f11", null ], + [ "xt::quantile", "group__xt__xsort.html#ga7dd83e71409830d5211608257f18e361", null ], + [ "xt::quantile", "group__xt__xsort.html#gae3b1b26f618ece7324455223330d5780", null ], + [ "xt::setdiff1d", "group__xt__xsort.html#gab6eedcadc051be2d6e3ad7890a5c2d90", null ], + [ "xt::sort", "group__xt__xsort.html#gae455f4aaacbc04bebc76451907003ee3", null ], + [ "xt::unique", "group__xt__xsort.html#ga2b46eaf022e2fcd9e82ae5223fdd3ed5", null ] +]; \ No newline at end of file diff --git a/group__xt__xstrides.html b/group__xt__xstrides.html new file mode 100644 index 000000000..f8e94183f --- /dev/null +++ b/group__xt__xstrides.html @@ -0,0 +1,430 @@ + + + + + + + +xtensor: Support functions swich between array indices and flat indices + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Support functions swich between array indices and flat indices
    +
    +
    + + + + + +

    +Enumerations

    enum class  xt::stride_type { xt::stride_type::internal = 0 +, xt::stride_type::normal = 1 +, xt::stride_type::bytes = 2 + }
     Choose stride type. More...
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class offset_type, class S, class Arg, class... Args>
    offset_type xt::data_offset (const S &strides, Arg arg, Args... args) noexcept
     Return the flat index for an array index.
     
    template<layout_type L = layout_type::dynamic, class shape_type, class strides_type>
    std::size_t xt::compute_strides (const shape_type &shape, layout_type l, strides_type &strides)
     Compute the strides given the shape and the layout of an array.
     
    template<class S, class... Args>
    void xt::normalize_periodic (const S &shape, Args &... args)
     Normalise an index of a periodic array.
     
    template<class E>
    auto xt::strides (const E &e, stride_type type=stride_type::normal) noexcept
     Get strides of an object.
     
    template<class E>
    auto xt::strides (const E &e, std::size_t axis, stride_type type=stride_type::normal) noexcept
     Get stride of an object along an axis.
     
    +

    Detailed Description

    +

    Enumeration Type Documentation

    + +

    ◆ stride_type

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::stride_type
    +
    +strong
    +
    + +

    Choose stride type.

    + + + + +
    Enumerator
    internal 

    As used internally (with stride(axis) == 0 if shape(axis) == 1)

    +
    normal 

    Normal stride corresponding to storage.

    +
    bytes 

    Normal stride in bytes.

    +
    + +

    Definition at line 234 of file xstrides.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ compute_strides()

    + +
    +
    +
    +template<layout_type L = layout_type::dynamic, class shape_type, class strides_type>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    std::size_t xt::compute_strides (const shape_type & shape,
    layout_type l,
    strides_type & strides )
    +
    +inline
    +
    + +

    Compute the strides given the shape and the layout of an array.

    +
    Parameters
    + + + + +
    shapeShape of the array.
    lLayout type, see xt::layout_type().
    strides(output) Strides of the array.
    +
    +
    +
    Returns
    The size: the product of the shape.
    + +

    Definition at line 570 of file xstrides.hpp.

    + +
    +
    + +

    ◆ data_offset()

    + +
    +
    +
    +template<class offset_type, class S, class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    offset_type xt::data_offset (const S & strides,
    Arg arg,
    Args... args )
    +
    +inlinenoexcept
    +
    + +

    Return the flat index for an array index.

    +

    Given m arguments, and dimension nof the array (n == strides.size()).

    +
      +
    • If m == n, the index is strides[0] * index[0] + ... + strides[n - 1] * index[n - 1].
    • +
    • If m < n and the last argument is xt::missing the indices are zero-padded at the end to match the dimension of the array. The index is then strides[0] * index[0] + ... + strides[m - 1] * index[m - 1].
    • +
    • If m < n (and the last argument is not xt::missing), the index is strides[n - m - 1] * index[0] + ... + strides[n - 1] * index[m - 1].
    • +
    • If m > n, then the first m - n arguments are ignored. The index is then strides[0] * index[m - n] + ... + strides[n - 1] * index[m - 1].
    • +
    +
    Parameters
    + + + + +
    stridesStrides of the array.
    argFirst array index.
    argsRemaining array indices.
    +
    +
    +
    Returns
    The flat index.
    + +

    Definition at line 457 of file xstrides.hpp.

    + +
    +
    + +

    ◆ normalize_periodic()

    + +
    +
    +
    +template<class S, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    void xt::normalize_periodic (const S & shape,
    Args &... args )
    +
    +inline
    +
    + +

    Normalise an index of a periodic array.

    +

    For example if the shape is (3, 4) and the index is (3, -4) the result is (0, 0).

    +
    Parameters
    + + + +
    shapeShape of the array.
    args(input/output) Array index.
    +
    +
    + +

    Definition at line 913 of file xstrides.hpp.

    + +
    +
    + +

    ◆ strides() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::strides (const E & e,
    std::size_t axis,
    stride_type type = stride_type::normal )
    +
    +inlinenoexcept
    +
    + +

    Get stride of an object along an axis.

    +
    Parameters
    + + + + +
    ean array
    axisaxis along which to query the stride
    typeoutput stride convention
    +
    +
    +
    Returns
    integer
    + +

    Definition at line 296 of file xstrides.hpp.

    + +
    +
    + +

    ◆ strides() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::strides (const E & e,
    stride_type type = stride_type::normal )
    +
    +inlinenoexcept
    +
    + +

    Get strides of an object.

    +
    Parameters
    + + + +
    ean array
    typeoutput stride convention
    +
    +
    +
    Returns
    array
    + +

    Definition at line 250 of file xstrides.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/group__xt__xstrides.js b/group__xt__xstrides.js new file mode 100644 index 000000000..03b91c3f7 --- /dev/null +++ b/group__xt__xstrides.js @@ -0,0 +1,13 @@ +var group__xt__xstrides = +[ + [ "xt::stride_type", "group__xt__xstrides.html#ga743568032eda84a9d0df401f20317b7d", [ + [ "xt::stride_type::internal", "group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dad1efad72dc5b17dc66a46767c32fff40", null ], + [ "xt::stride_type::normal", "group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dafea087517c26fadd409bd4b9dc642555", null ], + [ "xt::stride_type::bytes", "group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7da4b3a6218bb3e3a7303e8a171a60fcf92", null ] + ] ], + [ "xt::compute_strides", "group__xt__xstrides.html#ga3b03c8046a44a3bf2d4800c7296ecefd", null ], + [ "xt::data_offset", "group__xt__xstrides.html#ga3bcc575a1a2870d78b96ff674e700ec7", null ], + [ "xt::normalize_periodic", "group__xt__xstrides.html#gafa51177b0954ec061327dab5d8055ddb", null ], + [ "xt::strides", "group__xt__xstrides.html#ga1ddf9b85add66ccc98661073a78cd953", null ], + [ "xt::strides", "group__xt__xstrides.html#ga651f61121a205e14993c06c52c6d2503", null ] +]; \ No newline at end of file diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 000000000..d38dea87b --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,1250 @@ + + + + + + + +xtensor: Class Hierarchy + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Class Hierarchy
    +
    +
    +
    This inheritance list is sorted roughly, but not completely, alphabetically:
    +
    [detail level 12345]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     CA
     Cxt::math::abs_fun
     Cxt::math::acos_fun
     Cxt::math::acosh_fun
     Cxt::acquire_ownership
     Cxt_simd::aligned_allocator< T, A >
     Cxt::aligned_mode
     Cxt_simd::aligned_mode
     Cxt_simd::allocator_alignment< A >
     Cxt::math::arg_fun
     Cstd::array
     Cxt::math::asin_fun
     Cxt::math::asinh_fun
     Cxt::math::atan2_fun
     Cxt::math::atan_fun
     Cxt::math::atanh_fun
     Cxt::big_promote_value_type< E >
     Cxt::buffer_inner_types< D >
     Cxt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
     Cxt::buffer_inner_types< xiterator_adaptor< I, CI > >
     Cxt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
     Cdetail::buffer_storage_t
     Cxt::math::cbrt_fun
     Cxt::math::ceil_fun
     Cxt::strided_assign_detail::check_strides_functor< L, S >
     Cxt::check_strides_overlap< L >
     Cxt::check_strides_overlap< layout_type::column_major >
     Cxt::check_strides_overlap< layout_type::row_major >
     Cxt::math::clamp_fun
     Cxt::common_difference_type< Args >
     Cxt::common_difference_type<>
     Cxt::common_size_type< Args >
     Cxt::common_size_type<>
     Cxt::detail::common_tensor_type_impl< std::decay_t< C >... >
     Cxt::common_value_type< C >
     Cxt::conditional_cast_functor< condition, T >
     Cxt::conditional_cast_functor< true, T >
     Cstd::conditional_t
     Cxt::math::conj_fun
     Cxt::math::conj_impl_fun
     Cstd::conjunction
     Cxtl::conjunction< T >
     Cxt::const_array< T, N >A std::array like class with all member function (except reverse iterators) as constexpr
     Cxt::const_value< T >
     Cxt::const_xclosure< E, EN >
     Cxt::const_xclosure< E, disable_xexpression< std::decay_t< E > > >
     Cxt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >
     Cxt_simd::container_alignment< C >
     Cxt::math::cos_fun
     Cxt::math::cosh_fun
     Cxt::decay_all< S, X >
     Cxt::decay_all< S< X... > >
     Cxt::math::deg2rad
     Cxt::driven_align_mode< A1, A2 >
     Cxt::print_options::edge_itemsIo manipulator used to set the number of egde items if the summarization is triggered
     Cstd::enable_if
     Cxt::math::erf_fun
     Cxt::math::erfc_fun
     Cxt::math::exp2_fun
     Cxt::math::exp_fun
     Cxt::math::expm1_fun
     Cxt::extension::expression_tag_and< T >
     Cxt::extension::expression_tag_and< T >
     Cxt::extension::expression_tag_and< T, T >
     Cxt::extension::expression_tag_and< T1, expression_tag_and< T... >::type >
     Cxt::extension::expression_tag_and< xtensor_expression_tag, T >
     Cxt::extension::expression_tag_and< xtensor_expression_tag, xtensor_expression_tag >
     Cxt::extension::expression_tag_and<>
     Cxt::math::fabs_fun
     Cstd::false_type
     Cxt::math::fdim_fun
     Cxt::detail::filter_fixed_shape_impl< S >
     Cxt::fixed_shape< X >Fixed shape implementation for compile time defined arrays
     Cxt::fixed_xreducer_shape_type< S1, S2 >
     Cxt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >
     Cxt::math::floor_fun
     Cxt::math::fma_fun
     Cxt::math::fmax_fun
     Cxt::math::fmin_fun
     Cxt::math::fmod_fun
     Cxt::check_policy::full
     Cxt::convolve_mode::full
     Cxt::extension::get_expression_tag_impl< E, class >
     Cxt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >
     Cxt::get_init_type< V, S >
     Cxt::get_init_type< V, fixed_shape< X... > >
     Cxt::get_rank< E, typename >
     Cxt::get_rank< E, decltype((void) E::rank, void())>
     Cxt::get_strides_type< S >
     Cxt::get_strides_type< fixed_shape< I... > >
     Cxt::get_strides_type< xbuffer_adaptor< CP, O, A > >
     Cxt::get_value_type< T, class >
     Cxt::get_value_type< T, void_t< typename T::value_type > >
     Cxt::has_assign_conversion< FROM, TO >
     Cxt::has_fixed_rank< E >
     Cxt::has_rank< E, N >
     Cxt::has_sign_conversion< FROM, TO >
     Cdetail::has_simd_interface_impl< xtensor_view< EC, N, L, Tag >, typename std::decay_t< xtensor_view< EC, N, L, Tag > >::value_type >
     Cxt::math::hypot_fun
     Cxtl::identity
     Cxt::strided_assign_detail::idx_tools< layout >
     Cxt::strided_assign_detail::idx_tools< layout_type::column_major >
     Cxt::strided_assign_detail::idx_tools< layout_type::row_major >
     Cxt::index_from_shape< S >
     Cxt::index_mapper< UndefinedView >A helper class for mapping indices between views and their underlying containers
     Cxt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >
     Cxt::initializer_dimension< U >
     Cxt::inner_aligned_mode
     Cxt::inner_reference< ST >
     Cstd::integral_constant
     Cxt::invalid_type
     Cstd::is_assignable
     Cstd::is_base_of
     Cdetail::chunk_helper::is_chunked
     Cxt::is_indexed_stepper< T >
     Cxt::is_indexed_stepper< xindexed_stepper< T, B > >
     Cxt::is_narrowing_conversion< FROM, TO >
     Cstd::is_same
     Cxt::math::isfinite_fun
     Cxt::math::isinf_fun
     Cxt::math::isnan_fun
     Cxt::math::lgamma_fun
     Cxt::print_options::line_widthIo manipulator used to set the width of the lines when printing an expression
     Cxt::linear_assigner< simd_assign >
     Cxt::linear_assigner< false >
     Cxt::math::log10_fun
     Cxt::math::log1p_fun
     Cxt::math::log2_fun
     Cxt::math::log_fun
     Cxt::strided_assign_detail::loop_sizes_t
     Cxt::make_invalid_type< T >
     Cxt::make_void< T >
     Cxt::math::maximum< T >
     Cxt::memory_range
     Cxt::meta_identity< T >
     Cxt::math::minimum< T >
     Cxt::missing_type
     Cxt::math::nearbyint_fun
     Cstd::negation
     Cxt::nested_initializer_list< T, I >
     Cxt::nested_initializer_list< T, 0 >
     Cxt::no_ownership
     Cxt::noalias_proxy< A >
     Cxt::check_policy::none
     Cxt::math::norm_fun
     Cxt::traits_detail::norm_of_array_elements_impl< T, integral, floating >
     Cxt::traits_detail::norm_of_array_elements_impl< long double, false, true >
     Cxt::traits_detail::norm_of_array_elements_impl< T, false, false >
     Cxt::traits_detail::norm_of_array_elements_impl< T, false, true >
     Cxt::traits_detail::norm_of_array_elements_impl< T, true, false >
     Cxt::traits_detail::norm_of_array_elements_impl< void *, false, false >
     Cxt::traits_detail::norm_of_scalar_impl< T, scalar >
     Cxt::traits_detail::norm_of_scalar_impl< T, false >
     Cxt::traits_detail::norm_of_scalar_impl< T, true >
     Cxt::traits_detail::norm_of_vector_impl< ARRAY >
     Cxt::traits_detail::norm_type_base< U >
     Cxt::traits_detail::norm_type_base< T >
     Cxt::numeric_constants< T >
     Cxt::detail::option_base
     Cxt::overlapping_memory_checker_base
     Cxt::overlapping_memory_checker_traits< E, Enable >
     Cxt::overlapping_memory_checker_traits< E >
     Cxt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >
     Cxt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >
     Cxt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >
     Cxt::math::pow_fun
     Cxt::print_options::precisionIo manipulator used to set the precision of the floating point values when printing an expression
     Cxt::print_options::print_options_impl
     Cxt::promote_shape< S >
     Cxt::promote_strides< S >
     Cxt::math::rad2deg
     Cxt::placeholders::rangemaker< Args >
     Cxt::placeholders::rangemaker< A, B >
     Cxt::placeholders::rangemaker< A, B, C >
     Cxt::tracking_allocator< T, A, P >::rebind< U >
     Cxt::rebind_container< X, C >
     Cxt::rebind_container< X, C< T, A > >
     Cxt::rebind_container< X, C< T, N > >
     Cxt::rebind_container< X, svector< T, N, A, B > >
     Cxt::reducer_options< R, T >
     Cxt::math::remainder_fun
     Cxt::remove_class< T >
     Cxt::remove_class< R(C::*)(Args...) const >
     Cxt::remove_class< R(C::*)(Args...)>
     Cxt_simd::revert_simd_traits< T >
     Cxt::math::rint_fun
     Cxt::math::round_fun
     Cstd::runtime_error
     Cxt::select_dim_mapping_type< T >
     Cxt::select_dim_mapping_type< fixed_shape< I... > >
     Cselect_expression_base_t
     Cxt::select_iterable_base< L1, L2, T >
     Cselect_iterable_base_t
     Cxt::select_layout< L, S >Compute a layout based on a layout and a shape type
     Cxt::sequence_view< E, Start, End >
     Cxt::detail::shape_storage< S >
     Cxt::math::sign_fun
     Cxt::math::sign_impl< T >
     Cxt::math::sign_impl< xtl::xoptional< T, B > >
     Cxt_simd::simd_traits< T >
     Cxt::math::sin_fun
     Cxt::math::sinh_fun
     Cxt::math::sqrt_fun
     Cxt::static_dimension< S >
     Cxt::static_string
     Cxt::stepper_assigner< E1, E2, L >
     Cxt::stepper_tools< L >
     Cxt::strided_loop_assigner< simd >
     Cxt::svector< T, N, A, Init >
     Cxt::math::tan_fun
     Cxt::math::tanh_fun
     Ctypename traits::template rebind_alloc
     Cxt::temporary_container< C >
     Cxt::temporary_container< xbuffer_adaptor< CP, O, A > >
     Cxt::temporary_container< xiterator_adaptor< I, CI > >
     Cxt::temporary_container< xiterator_owner_adaptor< C, IG > >
     Cxt::temporary_type< T, class >
     Cxt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >
     Cxt::temporary_type_from_tag< Tag, T >
     Cxt::temporary_type_from_tag< xtensor_expression_tag, T >
     Cxt::math::tgamma_fun
     Cxt::print_options::thresholdIo manipulator used to set the threshold after which summarization is triggered
     Cstd::true_type
     Cxt::math::trunc_fun
     Cstd::tuple
     Cxt::tuple_idx_of< T, Tuple >
     Cxt::tuple_idx_of_impl< I, T, Tuple >
     Cxt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > >
     Cxt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > >
     Cxt::tuple_idx_of_impl< I, T, std::tuple<> >
     Cdetail::tensor_view_simd_helper::type
     Cxt::unaligned_mode
     Cxt_simd::unaligned_mode
     Cxt::uvector< T, A >
     Cxt::convolve_mode::valid
     Cxt::view_temporary_type< E, SL >
     Cxt::xall_tag
     Cxt::extension::xarray_adaptor_base< EC, L, SC, Tag >
     Cxt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >
     Cxt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >
     Cextension::xarray_adaptor_base_t
     Cxt::extension::xarray_container_base< EC, L, SC, Tag >
     Cxt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag >
     Cxt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag >
     Cextension::xarray_container_base_t
     Cxt::extension::xarray_optional_traits< EC, L, SC >
     Cxt::xassign_traits< E1, E2 >
     Cxt::xaxis_iterator< CT >Class for iteration over (N-1)-dimensional slices, where N is the dimension of the underlying expression
     Cxt::xaxis_slice_iterator< CT >Class for iteration over one-dimensional slices
     Cxt::xblockwise_reducer< CT, F, X, O >
     Cxt::extension::xbroadcast_base_impl< Tag, CT, X >
     Cxt::extension::xbroadcast_base_impl< xexpression_tag_t< CT >, CT, X >
     Cxt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X >
     Cxt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X >
     Cextension::xbroadcast_base_t
     Cxt::xbuffer_adaptor_base< D >
     Cxt::xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >
     Cxt::xbuffer_adaptor_base< xiterator_adaptor< I, CI > >
     Cxt::xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >
     Cxt::xchunked_assigner< T, chunk_storage >
     Cxt::xchunked_view< E >
     Cxt::xclosure< E, EN >
     Cxt::xclosure< E, disable_xexpression< std::decay_t< E > > >
     Cxt::xclosure< xshared_expression< E >, std::enable_if_t< true > >
     Cxt::xconst_accessible< D >Base class for implementation of common expression constant access methods
     Cxt::xconst_accessible< self_type >
     Cxt::xconst_accessible< xarray_adaptor< EC, L, SC, Tag > >
     Cxt::xconst_accessible< xarray_container< EC, L, SC, Tag > >
     Cxt::xconst_accessible< xbroadcast< CT, X > >
     Cxt::xconst_accessible< xchunked_array< chunk_storage > >
     Cxt::xconst_accessible< xfixed_adaptor< EC, S, L, SH, Tag > >
     Cxt::xconst_accessible< xfixed_container< ET, S, L, SH, Tag > >
     Cxt::xconst_accessible< xfunction< F, CT... > >
     Cxt::xconst_accessible< xfunctor_adaptor< F, CT > >
     Cxt::xconst_accessible< xfunctor_view< F, CT > >
     Cxt::xconst_accessible< xgenerator< F, R, S > >
     Cxt::xconst_accessible< xmasked_view< CTD, CTM > >
     Cxt::xconst_accessible< xreducer< F, CT, X, O > >
     Cxt::xconst_accessible< xrepeat< CT, R > >
     Cxt::xconst_accessible< xscalar< CT > >
     Cxt::xconst_accessible< xtensor_adaptor< EC, N, L, Tag > >
     Cxt::xconst_accessible< xtensor_container< EC, N, L, Tag > >
     Cxt::xconst_accessible< xtensor_view< EC, N, L, Tag > >
     Cxt::xconst_accessible< xview< CT, S... > >
     Cxt::xconst_iterable< D >Base class for multidimensional iterable constant expressions
     Cxt::xconst_iterable< self_type >
     Cxt::xconst_iterable< xarray_adaptor< EC, L, SC, Tag > >
     Cxt::xconst_iterable< xarray_container< EC, L, SC, Tag > >
     Cxt::xconst_iterable< xbroadcast< CT, X > >
     Cxt::xconst_iterable< xchunked_array< chunk_storage > >
     Cxt::xconst_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >
     Cxt::xconst_iterable< xfixed_container< ET, S, L, SH, Tag > >
     Cxt::xconst_iterable< xfunction< F, CT... > >
     Cxt::xconst_iterable< xgenerator< F, R, S > >
     Cxt::xconst_iterable< xindex_view< CT, I > >
     Cxt::xconst_iterable< xoptional_assembly< VE, FE > >
     Cxt::xconst_iterable< xoptional_assembly_adaptor< VEC, FEC > >
     Cxt::xconst_iterable< xreducer< F, CT, X, O > >
     Cxt::xconst_iterable< xrepeat< CT, R > >
     Cxt::xconst_iterable< xscalar< CT > >
     Cxt::xconst_iterable< xtensor_adaptor< EC, N, L, Tag > >
     Cxt::xconst_iterable< xtensor_container< EC, N, L, Tag > >
     Cxt::xconst_iterable< xtensor_view< EC, N, L, Tag > >
     Cxt::xcontainer_inner_types< D >
     Cxt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
     Cxt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
     Cxt::xcontainer_inner_types< xbroadcast< CT, X > >
     Cxt::xcontainer_inner_types< xchunked_array< chunk_storage > >
     Cxt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
     Cxt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
     Cxt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
     Cxt::xcontainer_inner_types< xfunction< F, CT... > >
     Cxt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >
     Cxt::xcontainer_inner_types< xfunctor_view< F, CT > >
     Cxt::xcontainer_inner_types< xgenerator< C, R, S > >
     Cxt::xcontainer_inner_types< xindex_view< CT, I > >
     Cxt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
     Cxt::xcontainer_inner_types< xoptional_assembly< VE, FE > >
     Cxt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >
     Cxt::xcontainer_inner_types< xreducer< F, CT, X, O > >
     Cxt::xcontainer_inner_types< xscalar< CT > >
     Cxt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
     Cxt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
     Cxt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
     Cxt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
     Cxt::xcontainer_inner_types< xview< CT, S... > >
     Cxt::xcontainer_iterable_types< D >
     Cxt::xcontainer_iterable_types< xarray_adaptor< EC, L, SC, Tag > >
     Cxt::xcontainer_iterable_types< xarray_container< EC, L, SC, Tag > >
     Cxt::xcontainer_iterable_types< xfixed_adaptor< EC, S, L, SH, Tag > >
     Cxt::xcontainer_iterable_types< xfixed_container< ET, S, L, SH, Tag > >
     Cxt::xcontainer_iterable_types< xtensor_adaptor< EC, N, L, Tag > >
     Cxt::xcontainer_iterable_types< xtensor_container< EC, N, L, Tag > >
     Cxt::xcontainer_iterable_types< xtensor_view< EC, N, L, Tag > >
     Cxt::xcsv_config
     Cxt::extension::xdynamic_view_base_impl< Tag, CT, S, L, FST >
     Cxt::extension::xdynamic_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >
     Cxt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >
     Cxt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >
     Cextension::xdynamic_view_base_t
     Cxt::xellipsis_tag
     Cxt::xexpression< D >Base class for xexpressions
     Cxt::xexpression< xbroadcast< CT, X > >
     Cxt::xexpression< xfunction< F, CT... > >
     Cxt::xexpression< xgenerator< F, R, S > >
     Cxt::xexpression< xreducer< F, CT, X, O > >
     Cxt::xexpression< xrepeat< CT, R > >
     Cxt::xexpression< xscalar< CT > >
     Cxt::xexpression< xshared_expression< E > >
     Cxt::xexpression_assigner_base< Tag >
     Cxt::xexpression_assigner_base< xoptional_expression_tag >
     Cxt::xexpression_assigner_base< xtensor_expression_tag >
     Cxt::xexpression_holder
     Cxt::xexpression_tag< T >
     Cxt::xfiltration< ECT, CCT >Filter of a xexpression for fast scalar assign
     Cxt::extension::xfunction_base_impl< Tag, F, CT >
     Cxt::extension::xfunction_base_impl< xexpression_tag_t< CT... >, F, CT... >
     Cxt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... >
     Cxt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... >
     Cextension::xfunction_base_t
     Cxt::detail::xfunction_cache_impl< promote::type, promote >
     Cxt::xfunction_stepper< F, CT >
     Cxt::xfunctor_stepper< F, ST >
     Cxt::extension::xfunctor_view_base_impl< Tag, F, CT >
     Cxt::extension::xfunctor_view_base_impl< xexpression_tag_t< CT >, F, CT >
     Cxt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT >
     Cxt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT >
     Cextension::xfunctor_view_base_t
     Cxt::xfunctor_view_temporary_type< F, E >
     Cxt::extension::xgenerator_base_impl< Tag, F, R, S >
     Cxt::extension::xgenerator_base_impl< xexpression_tag_t< R >, F, R, S >
     Cxt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S >
     Cxt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S >
     Cextension::xgenerator_base_t
     Cxt::extension::xindex_view_base_impl< Tag, CT, I >
     Cxt::extension::xindex_view_base_impl< xexpression_tag_t< CT >, CT, I >
     Cxt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I >
     Cxt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I >
     Cextension::xindex_view_base_t
     Cxt::xindexed_stepper< E, is_const >
     Cxt::xiterable_inner_types< D >
     Cxt::xiterable_inner_types< xbroadcast< CT, X > >
     Cxt::xiterable_inner_types< xchunked_array< chunk_storage > >
     Cxt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >
     Cxt::xiterable_inner_types< xfunction< F, CT... > >
     Cxt::xiterable_inner_types< xgenerator< C, R, S > >
     Cxt::xiterable_inner_types< xindex_view< CT, I > >
     Cxt::xiterable_inner_types< xmasked_view< CTD, CTM > >
     Cxt::xiterable_inner_types< xoptional_assembly< VE, FE > >
     Cxt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >
     Cxt::xiterable_inner_types< xreducer< F, CT, X, O > >
     Cxt::xiterable_inner_types< xrepeat< CT, R > >
     Cxt::xiterable_inner_types< xscalar< CT > >
     Cxt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >
     Cxt::xiterable_inner_types< xview< CT, S... > >
     Cxt::xmasked_value< T, B >
     Cxt::xmasked_view_stepper< D, is_const >
     Cxt::xmultiindex_iterator< S >
     Cxt::xnewaxis_tag
     Cxt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >
     Cxt::xoptional_assembly_stepper< D, is_const >
     Cxt::xoptional_assembly_storage< VE, FE >
     Cxt::extension::xoptional_empty_base< D >
     Cxt::extension::xoptional_empty_base< T::derived_type >
     Cxt::extension::xoptional_empty_base< xbroadcast< CT, X > >
     Cxt::extension::xoptional_empty_base< xdynamic_view< CT, S, L, FST > >
     Cxt::extension::xoptional_empty_base< xfunction< F, CT... > >
     Cxt::extension::xoptional_empty_base< xfunctor_view< F, CT > >
     Cxt::extension::xoptional_empty_base< xgenerator< F, R, S > >
     Cxt::extension::xoptional_empty_base< xindex_view< CT, I > >
     Cxt::extension::xoptional_empty_base< xreducer< F, CT, X, O > >
     Cxt::extension::xoptional_empty_base< xrepeat< CT, X > >
     Cxt::extension::xoptional_empty_base< xscalar< CT > >
     Cxt::extension::xoptional_empty_base< xstrided_view< CT, S, L, FST > >
     Cxt::extension::xoptional_empty_base< xview< CT, S... > >
     Cxt::xoptional_expression_tag
     Cxt::xproxy_inner_types< R >
     Cxtl::xrandom_access_iterator_base
     Cxtl::xrandom_access_iterator_base2
     Cxt::xrange_adaptor< A, B, C >
     Cxt::extension::xreducer_base_impl< Tag, F, CT, X, O >
     Cxt::extension::xreducer_base_impl< xexpression_tag_t< CT >, F, CT, X, O >
     Cxt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >
     Cxt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >
     Cextension::xreducer_base_t
     Cxt::xreducer_shape_type< ST, X, O >
     Cxt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >
     Cxt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >
     Cxt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >
     Cxt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >
     Cxt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >
     Cxt::xreducer_stepper< F, CT, X, O >
     Cxt::extension::xrepeat_base_impl< Tag, CT, X >
     Cxt::extension::xrepeat_base_impl< xexpression_tag_t< CT >, CT, X >
     Cxt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X >
     Cxt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X >
     Cextension::xrepeat_base_t
     Cxt::xrepeat_stepper< S, R >
     Cxt::extension::xscalar_base_impl< Tag, CT >
     Cxt::extension::xscalar_base_impl< get_expression_tag_t< std::decay_t< CT > >, CT >
     Cxt::extension::xscalar_base_impl< xoptional_expression_tag, CT >
     Cxt::extension::xscalar_base_impl< xtensor_expression_tag, CT >
     Cextension::xscalar_base_t
     Cxt::extension::xscalar_optional_traits< CT >
     Cxt::xscalar_stepper< is_const, CT >
     Cxt::xslice< D >
     Cxt::xslice< xall< T > >
     Cxt::xslice< xdrop_slice< T > >
     Cxt::xslice< xfake_slice< T > >
     Cxt::xslice< xkeep_slice< T > >
     Cxt::xslice< xnewaxis< T > >
     Cxt::xslice< xrange< T > >
     Cxt::xslice< xstepped_range< T > >
     Cxt::xstepper< C >
     Cxt::extension::xstrided_view_base_impl< Tag, CT, S, L, FST >
     Cxt::extension::xstrided_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >
     Cxt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >
     Cxt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >
     Cextension::xstrided_view_base_t
     Cxt::extension::xtensor_adaptor_base< EC, N, L, Tag >
     Cxt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >
     Cxt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >
     Cextension::xtensor_adaptor_base_t
     Cxt::extension::xtensor_container_base< EC, N, L, Tag >
     Cxt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag >
     Cxt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag >
     Cextension::xtensor_container_base_t
     Cxt::extension::xtensor_empty_base
     Cxt::xtensor_expression_tag
     Cxt::extension::xtensor_optional_traits< EC, N, L >
     Cxt::extension::xtensor_view_base< EC, N, L, Tag >
     Cxt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag >
     Cxt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag >
     Cextension::xtensor_view_base_t
     Cxt::placeholders::xtuph
     Cxt::xvectorizer< F, R >
     Cxt::extension::xview_base_impl< Tag, CT, S >
     Cxt::extension::xview_base_impl< xexpression_tag_t< CT >, CT, S... >
     Cxt::extension::xview_base_impl< xoptional_expression_tag, CT, S... >
     Cxt::extension::xview_base_impl< xtensor_expression_tag, CT, S... >
     Cextension::xview_base_t
     Cxt::xview_shape_type< ST, S >
     Cxt::xview_shape_type< fixed_shape< I... >, S... >
     Cxt::xview_shape_type< std::array< I, L >, S... >
     Cxt::xview_stepper< is_const, CT, S >
    +
    +
    +
    + + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 000000000..4c989d140 --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,1389 @@ +var hierarchy = +[ + [ "A", null, [ + [ "xt::tracking_allocator< T, A, P >", "structxt_1_1tracking__allocator.html", null ] + ] ], + [ "xt::math::abs_fun", "structxt_1_1math_1_1abs__fun.html", null ], + [ "xt::math::acos_fun", "structxt_1_1math_1_1acos__fun.html", null ], + [ "xt::math::acosh_fun", "structxt_1_1math_1_1acosh__fun.html", null ], + [ "xt::acquire_ownership", "structxt_1_1acquire__ownership.html", null ], + [ "xt_simd::aligned_allocator< T, A >", "classxt__simd_1_1aligned__allocator.html", null ], + [ "xt::aligned_mode", "structxt_1_1aligned__mode.html", null ], + [ "xt_simd::aligned_mode", "structxt__simd_1_1aligned__mode.html", null ], + [ "xt_simd::allocator_alignment< A >", "structxt__simd_1_1allocator__alignment.html", null ], + [ "xt::math::arg_fun", "structxt_1_1math_1_1arg__fun.html", null ], + [ "std::array", null, [ + [ "xt::aligned_array< T, N, Align >", "classxt_1_1aligned__array.html", null ] + ] ], + [ "xt::math::asin_fun", "structxt_1_1math_1_1asin__fun.html", null ], + [ "xt::math::asinh_fun", "structxt_1_1math_1_1asinh__fun.html", null ], + [ "xt::math::atan2_fun", "structxt_1_1math_1_1atan2__fun.html", null ], + [ "xt::math::atan_fun", "structxt_1_1math_1_1atan__fun.html", null ], + [ "xt::math::atanh_fun", "structxt_1_1math_1_1atanh__fun.html", null ], + [ "xt::big_promote_value_type< E >", "structxt_1_1big__promote__value__type.html", null ], + [ "xt::buffer_inner_types< D >", "structxt_1_1buffer__inner__types.html", null ], + [ "xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >", "structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "xt::buffer_inner_types< xiterator_adaptor< I, CI > >", "structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >", "structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "detail::buffer_storage_t", null, [ + [ "xt::xbuffer_adaptor< CP, O, A >", "classxt_1_1xbuffer__adaptor.html", null ] + ] ], + [ "xt::math::cbrt_fun", "structxt_1_1math_1_1cbrt__fun.html", null ], + [ "xt::math::ceil_fun", "structxt_1_1math_1_1ceil__fun.html", null ], + [ "xt::strided_assign_detail::check_strides_functor< L, S >", "structxt_1_1strided__assign__detail_1_1check__strides__functor.html", null ], + [ "xt::check_strides_overlap< L >", "structxt_1_1check__strides__overlap.html", null ], + [ "xt::check_strides_overlap< layout_type::column_major >", "structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html", null ], + [ "xt::check_strides_overlap< layout_type::row_major >", "structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html", null ], + [ "xt::math::clamp_fun", "structxt_1_1math_1_1clamp__fun.html", null ], + [ "xt::common_difference_type< Args >", "structxt_1_1common__difference__type.html", null ], + [ "xt::common_difference_type<>", "structxt_1_1common__difference__type_3_4.html", null ], + [ "xt::common_size_type< Args >", "structxt_1_1common__size__type.html", null ], + [ "xt::common_size_type<>", "structxt_1_1common__size__type_3_4.html", null ], + [ "xt::detail::common_tensor_type_impl< std::decay_t< C >... >", null, [ + [ "xt::common_tensor_type< C >", "structxt_1_1common__tensor__type.html", null ] + ] ], + [ "xt::common_value_type< C >", "structxt_1_1common__value__type.html", null ], + [ "xt::conditional_cast_functor< condition, T >", "structxt_1_1conditional__cast__functor.html", null ], + [ "xt::conditional_cast_functor< true, T >", "structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html", null ], + [ "std::conditional_t", null, [ + [ "xt::detail::xchunk_iterator_base< E >", null, [ + [ "xt::xchunk_iterator< E >", "classxt_1_1xchunk__iterator.html", null ] + ] ], + [ "xt::xview< uvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< uft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< UnderlyingContainer, Slices... >", "classxt_1_1xview.html", null ], + [ "xt::xview< CT, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< E, S... >", "classxt_1_1xview.html", null ], + [ "xt::detail::xchunk_iterator_base< T >", null, [ + [ "xt::xchunk_iterator< self_type >", "classxt_1_1xchunk__iterator.html", null ], + [ "xt::xchunk_iterator< const self_type >", "classxt_1_1xchunk__iterator.html", null ] + ] ], + [ "xt::xview< CT, S >", "classxt_1_1xview.html", null ] + ] ], + [ "xt::math::conj_fun", "structxt_1_1math_1_1conj__fun.html", null ], + [ "xt::math::conj_impl_fun", "structxt_1_1math_1_1conj__impl__fun.html", null ], + [ "std::conjunction", null, [ + [ "xt::has_simd_interface< xfunction< F, CT... >, T >", "structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html", null ], + [ "xt::has_simd_interface< xfunctor_applier_base< D >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html", null ], + [ "xt::xoptional_comparable< E >", "structxt_1_1xoptional__comparable.html", null ] + ] ], + [ "xtl::conjunction< T >", "structxtl_1_1conjunction.html", null ], + [ "xt::const_array< T, N >", "structxt_1_1const__array.html", null ], + [ "xt::const_value< T >", "structxt_1_1const__value.html", null ], + [ "xt::const_xclosure< E, EN >", "structxt_1_1const__xclosure.html", null ], + [ "xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > >", "structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html", null ], + [ "xt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >", "structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html", null ], + [ "xt_simd::container_alignment< C >", "structxt__simd_1_1container__alignment.html", null ], + [ "xt::math::cos_fun", "structxt_1_1math_1_1cos__fun.html", null ], + [ "xt::math::cosh_fun", "structxt_1_1math_1_1cosh__fun.html", null ], + [ "xt::decay_all< S, X >", "structxt_1_1decay__all.html", null ], + [ "xt::decay_all< S< X... > >", "structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "xt::math::deg2rad", "structxt_1_1math_1_1deg2rad.html", null ], + [ "xt::driven_align_mode< A1, A2 >", "structxt_1_1driven__align__mode.html", null ], + [ "xt::print_options::edge_items", "classxt_1_1print__options_1_1edge__items.html", null ], + [ "std::enable_if", null, [ + [ "xt::container_simd_return_type< C, T1, T2 >", "structxt_1_1container__simd__return__type.html", null ], + [ "xt::disable_indexed_stepper< T, R >", "structxt_1_1disable__indexed__stepper.html", null ], + [ "xt::enable_indexed_stepper< T, R >", "structxt_1_1enable__indexed__stepper.html", null ] + ] ], + [ "xt::math::erf_fun", "structxt_1_1math_1_1erf__fun.html", null ], + [ "xt::math::erfc_fun", "structxt_1_1math_1_1erfc__fun.html", null ], + [ "xt::math::exp2_fun", "structxt_1_1math_1_1exp2__fun.html", null ], + [ "xt::math::exp_fun", "structxt_1_1math_1_1exp__fun.html", null ], + [ "xt::math::expm1_fun", "structxt_1_1math_1_1expm1__fun.html", null ], + [ "xt::extension::expression_tag_and< T >", "structxt_1_1extension_1_1expression__tag__and.html", null ], + [ "xt::extension::expression_tag_and< T >", "structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html", null ], + [ "xt::extension::expression_tag_and< T, T >", "structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html", null ], + [ "xt::extension::expression_tag_and< T1, expression_tag_and< T... >::type >", "structxt_1_1extension_1_1expression__tag__and.html", [ + [ "xt::extension::expression_tag_and< T1, T... >", "structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html", null ] + ] ], + [ "xt::extension::expression_tag_and< xtensor_expression_tag, T >", "structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html", [ + [ "xt::extension::expression_tag_and< T, xtensor_expression_tag >", "structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html", null ] + ] ], + [ "xt::extension::expression_tag_and< xtensor_expression_tag, xtensor_expression_tag >", "structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html", null ], + [ "xt::extension::expression_tag_and<>", "structxt_1_1extension_1_1expression__tag__and_3_4.html", null ], + [ "xt::math::fabs_fun", "structxt_1_1math_1_1fabs__fun.html", null ], + [ "std::false_type", null, [ + [ "xt::detail::has_load_simd< xfunctor_applier_base< xfunctor_adaptor< F, CT > >, T >", null, [ + [ "xt::detail::has_simd_interface_impl< xfunctor_applier_base< xfunctor_adaptor< F, CT > >, T >", null, [ + [ "xt::has_simd_interface< xfunctor_applier_base< xfunctor_adaptor< F, CT > >, T >", "structxt_1_1has__simd__interface.html", [ + [ "xt::has_simd_interface< xfunctor_adaptor< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ] + ] ] + ] ] + ] ], + [ "xt::detail::has_load_simd< xfunctor_applier_base< xfunctor_view< F, CT > >, T >", null, [ + [ "xt::detail::has_simd_interface_impl< xfunctor_applier_base< xfunctor_view< F, CT > >, T >", null, [ + [ "xt::has_simd_interface< xfunctor_applier_base< xfunctor_view< F, CT > >, T >", "structxt_1_1has__simd__interface.html", [ + [ "xt::has_simd_interface< xfunctor_view< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ] + ] ] + ] ] + ] ], + [ "xt::forbid_simd< const std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "xt::forbid_simd< const xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "xt::forbid_simd< std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "xt::forbid_simd< xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "xt::has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >", "structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html", null ], + [ "xt::has_data_interface< E, void_t< decltype(std::declval< E >().data())> >", "structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html", null ], + [ "xt::has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >", "structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html", null ], + [ "xt::has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >", "structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html", null ], + [ "xt::has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >", "structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html", null ], + [ "xt::has_strides< E, void_t< decltype(std::declval< E >().strides())> >", "structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html", null ], + [ "xt::is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >", "structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html", null ], + [ "xt::is_reducer_options_impl< std::decay_t< T > >", "structxt_1_1is__reducer__options__impl.html", [ + [ "xt::is_reducer_options< T >", "structxt_1_1is__reducer__options.html", null ] + ] ], + [ "xt::is_reducer_options_impl< std::tuple< X... > >", "structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "xt::is_specialization_of< TT, TT< Ts... > >", "structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html", null ], + [ "xt::reducer_options< R, T >::initial_tester< const xinitial< X > >", "structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html", null ], + [ "xt::reducer_options< R, T >::initial_tester< xinitial< X > >", "structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html", null ], + [ "xt::detail::has_load_simd< E, T, class >", null, [ + [ "xt::detail::has_simd_interface_impl< E, T, B >", null, [ + [ "xt::has_simd_interface< xfunction< F, CT... >, T >", "structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html", null ], + [ "xt::has_simd_interface< xfunctor_adaptor< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ], + [ "xt::has_simd_interface< xfunctor_applier_base< D >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html", null ], + [ "xt::has_simd_interface< xfunctor_view< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ], + [ "xt::has_simd_interface< E, T >", "structxt_1_1has__simd__interface.html", null ] + ] ] + ] ], + [ "xt::detail::has_simd_apply_impl< F, B, class >", null, [ + [ "xt::has_simd_apply< F, B >", "structxt_1_1has__simd__apply.html", null ] + ] ], + [ "xt::forbid_simd< T >", "structxt_1_1forbid__simd.html", null ], + [ "xt::has_assign_to< E1, E2, class >", "structxt_1_1has__assign__to.html", null ], + [ "xt::has_data_interface< E, class >", "structxt_1_1has__data__interface.html", null ], + [ "xt::has_iterator_interface< E, class >", "structxt_1_1has__iterator__interface.html", null ], + [ "xt::has_memory_address< T, Enable >", "structxt_1_1has__memory__address.html", null ], + [ "xt::has_storage_type< T, class >", "structxt_1_1has__storage__type.html", null ], + [ "xt::has_strides< E, class >", "structxt_1_1has__strides.html", null ], + [ "xt::is_contiguous_container< xiterator< St, S, L > >", "structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html", null ], + [ "xt::is_iterator< E, class >", "structxt_1_1is__iterator.html", null ], + [ "xt::is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >", "structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html", null ], + [ "xt::is_reducer_options_impl< T >", "structxt_1_1is__reducer__options__impl.html", null ], + [ "xt::is_specialization_of< TT, T >", "structxt_1_1is__specialization__of.html", null ], + [ "xt::reducer_options< R, T >::initial_tester< X >", "structxt_1_1reducer__options_1_1initial__tester.html", null ], + [ "xt_simd::is_batch_bool< V >", "structxt__simd_1_1is__batch__bool.html", null ], + [ "xt_simd::is_batch_complex< V >", "structxt__simd_1_1is__batch__complex.html", null ] + ] ], + [ "xt::math::fdim_fun", "structxt_1_1math_1_1fdim__fun.html", null ], + [ "xt::detail::filter_fixed_shape_impl< S >", null, [ + [ "xt::filter_fixed_shape< S >", "structxt_1_1filter__fixed__shape.html", null ] + ] ], + [ "xt::fixed_shape< X >", "classxt_1_1fixed__shape.html", null ], + [ "xt::fixed_xreducer_shape_type< S1, S2 >", "structxt_1_1fixed__xreducer__shape__type.html", null ], + [ "xt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >", "structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html", null ], + [ "xt::math::floor_fun", "structxt_1_1math_1_1floor__fun.html", null ], + [ "xt::math::fma_fun", "structxt_1_1math_1_1fma__fun.html", null ], + [ "xt::math::fmax_fun", "structxt_1_1math_1_1fmax__fun.html", null ], + [ "xt::math::fmin_fun", "structxt_1_1math_1_1fmin__fun.html", null ], + [ "xt::math::fmod_fun", "structxt_1_1math_1_1fmod__fun.html", null ], + [ "xt::check_policy::full", "structxt_1_1check__policy_1_1full.html", null ], + [ "xt::convolve_mode::full", "structxt_1_1convolve__mode_1_1full.html", null ], + [ "xt::extension::get_expression_tag_impl< E, class >", "structxt_1_1extension_1_1get__expression__tag__impl.html", [ + [ "xt::extension::get_expression_tag< xtl::xoptional< T, B > >", "structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "xt::extension::get_expression_tag< E >", "structxt_1_1extension_1_1get__expression__tag.html", null ] + ] ], + [ "xt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >", "structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de048c22abe806a8cb61aa0c08ab63f2de.html", null ], + [ "xt::get_init_type< V, S >", "structxt_1_1get__init__type.html", null ], + [ "xt::get_init_type< V, fixed_shape< X... > >", "structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "xt::get_rank< E, typename >", "structxt_1_1get__rank.html", null ], + [ "xt::get_rank< E, decltype((void) E::rank, void())>", "structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html", null ], + [ "xt::get_strides_type< S >", "structxt_1_1get__strides__type.html", null ], + [ "xt::get_strides_type< fixed_shape< I... > >", "structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html", null ], + [ "xt::get_strides_type< xbuffer_adaptor< CP, O, A > >", "structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "xt::get_value_type< T, class >", "structxt_1_1get__value__type.html", null ], + [ "xt::get_value_type< T, void_t< typename T::value_type > >", "structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html", null ], + [ "xt::has_assign_conversion< FROM, TO >", "structxt_1_1has__assign__conversion.html", null ], + [ "xt::has_fixed_rank< E >", "structxt_1_1has__fixed__rank.html", null ], + [ "xt::has_rank< E, N >", "structxt_1_1has__rank.html", null ], + [ "xt::has_sign_conversion< FROM, TO >", "structxt_1_1has__sign__conversion.html", null ], + [ "detail::has_simd_interface_impl< xtensor_view< EC, N, L, Tag >, typename std::decay_t< xtensor_view< EC, N, L, Tag > >::value_type >", null, [ + [ "xt::has_simd_interface< xtensor_view< EC, N, L, Tag > >", "structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::math::hypot_fun", "structxt_1_1math_1_1hypot__fun.html", null ], + [ "xtl::identity", null, [ + [ "xt::conditional_cast_functor< false, T >", "structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html", null ] + ] ], + [ "xt::strided_assign_detail::idx_tools< layout >", "structxt_1_1strided__assign__detail_1_1idx__tools.html", null ], + [ "xt::strided_assign_detail::idx_tools< layout_type::column_major >", "structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html", null ], + [ "xt::strided_assign_detail::idx_tools< layout_type::row_major >", "structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html", null ], + [ "xt::index_from_shape< S >", "structxt_1_1index__from__shape.html", null ], + [ "xt::index_mapper< UndefinedView >", "structxt_1_1index__mapper.html", null ], + [ "xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html", null ], + [ "xt::initializer_dimension< U >", "structxt_1_1initializer__dimension.html", null ], + [ "xt::inner_aligned_mode", "structxt_1_1inner__aligned__mode.html", null ], + [ "xt::inner_reference< ST >", "structxt_1_1inner__reference.html", null ], + [ "std::integral_constant", null, [ + [ "std::tuple_size< xt::const_array< T, N > >", "classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html", null ], + [ "std::tuple_size< xt::fixed_shape< N... > >", "classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html", null ], + [ "std::tuple_size< xt::sequence_view< T, Start, End > >", "classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html", null ], + [ "xt::has_simd_type< T >", "structxt_1_1has__simd__type.html", null ] + ] ], + [ "xt::invalid_type", "structxt_1_1invalid__type.html", null ], + [ "std::is_assignable", null, [ + [ "xt::can_assign< CT, RHS >", "structxt_1_1can__assign.html", [ + [ "xt::can_assign< xstrided_view< CT, S, L, FST >, RHS >", "structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html", null ] + ] ], + [ "xt::can_assign< xstrided_view< CT, S, L, FST >, RHS >", "structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html", null ], + [ "xt::can_assign< LHS, RHS >", "structxt_1_1can__assign.html", null ] + ] ], + [ "std::is_base_of", null, [ + [ "xt::is_evaluation_strategy< T >", "structxt_1_1is__evaluation__strategy.html", null ] + ] ], + [ "detail::chunk_helper::is_chunked", null, [ + [ "xt::is_chunked_t< E >", "structxt_1_1is__chunked__t.html", null ] + ] ], + [ "xt::is_indexed_stepper< T >", "structxt_1_1is__indexed__stepper.html", null ], + [ "xt::is_indexed_stepper< xindexed_stepper< T, B > >", "structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "xt::is_narrowing_conversion< FROM, TO >", "structxt_1_1is__narrowing__conversion.html", null ], + [ "std::is_same", null, [ + [ "xt::is_xoptional_expression< E >", "structxt_1_1is__xoptional__expression.html", null ], + [ "xt::is_xtensor_expression< E >", "structxt_1_1is__xtensor__expression.html", null ] + ] ], + [ "xt::math::isfinite_fun", "structxt_1_1math_1_1isfinite__fun.html", null ], + [ "xt::math::isinf_fun", "structxt_1_1math_1_1isinf__fun.html", null ], + [ "xt::math::isnan_fun", "structxt_1_1math_1_1isnan__fun.html", null ], + [ "xt::math::lgamma_fun", "structxt_1_1math_1_1lgamma__fun.html", null ], + [ "xt::print_options::line_width", "classxt_1_1print__options_1_1line__width.html", null ], + [ "xt::linear_assigner< simd_assign >", "classxt_1_1linear__assigner.html", null ], + [ "xt::linear_assigner< false >", "classxt_1_1linear__assigner_3_01false_01_4.html", null ], + [ "xt::math::log10_fun", "structxt_1_1math_1_1log10__fun.html", null ], + [ "xt::math::log1p_fun", "structxt_1_1math_1_1log1p__fun.html", null ], + [ "xt::math::log2_fun", "structxt_1_1math_1_1log2__fun.html", null ], + [ "xt::math::log_fun", "structxt_1_1math_1_1log__fun.html", null ], + [ "xt::strided_assign_detail::loop_sizes_t", "structxt_1_1strided__assign__detail_1_1loop__sizes__t.html", null ], + [ "xt::make_invalid_type< T >", "structxt_1_1make__invalid__type.html", null ], + [ "xt::make_void< T >", "structxt_1_1make__void.html", null ], + [ "xt::math::maximum< T >", "structxt_1_1math_1_1maximum.html", null ], + [ "xt::memory_range", "structxt_1_1memory__range.html", null ], + [ "xt::meta_identity< T >", "structxt_1_1meta__identity.html", null ], + [ "xt::math::minimum< T >", "structxt_1_1math_1_1minimum.html", null ], + [ "xt::missing_type", "structxt_1_1missing__type.html", null ], + [ "xt::math::nearbyint_fun", "structxt_1_1math_1_1nearbyint__fun.html", null ], + [ "std::negation", null, [ + [ "xt::has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >", "structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html", null ] + ] ], + [ "xt::nested_initializer_list< T, I >", "structxt_1_1nested__initializer__list.html", null ], + [ "xt::nested_initializer_list< T, 0 >", "structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html", null ], + [ "xt::no_ownership", "structxt_1_1no__ownership.html", null ], + [ "xt::noalias_proxy< A >", "classxt_1_1noalias__proxy.html", null ], + [ "xt::check_policy::none", "structxt_1_1check__policy_1_1none.html", null ], + [ "xt::math::norm_fun", "structxt_1_1math_1_1norm__fun.html", null ], + [ "xt::traits_detail::norm_of_array_elements_impl< T, integral, floating >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html", null ], + [ "xt::traits_detail::norm_of_array_elements_impl< long double, false, true >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html", null ], + [ "xt::traits_detail::norm_of_array_elements_impl< T, false, false >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html", null ], + [ "xt::traits_detail::norm_of_array_elements_impl< T, false, true >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html", null ], + [ "xt::traits_detail::norm_of_array_elements_impl< T, true, false >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html", null ], + [ "xt::traits_detail::norm_of_array_elements_impl< void *, false, false >", "structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html", null ], + [ "xt::traits_detail::norm_of_scalar_impl< T, scalar >", "structxt_1_1traits__detail_1_1norm__of__scalar__impl.html", null ], + [ "xt::traits_detail::norm_of_scalar_impl< T, false >", "structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html", null ], + [ "xt::traits_detail::norm_of_scalar_impl< T, true >", "structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html", null ], + [ "xt::traits_detail::norm_of_vector_impl< ARRAY >", "structxt_1_1traits__detail_1_1norm__of__vector__impl.html", null ], + [ "xt::traits_detail::norm_type_base< U >", "structxt_1_1traits__detail_1_1norm__type__base.html", null ], + [ "xt::traits_detail::norm_type_base< T >", "structxt_1_1traits__detail_1_1norm__type__base.html", [ + [ "xt::norm_type< T >", "structxt_1_1norm__type.html", null ], + [ "xt::squared_norm_type< T >", "structxt_1_1squared__norm__type.html", null ] + ] ], + [ "xt::numeric_constants< T >", "structxt_1_1numeric__constants.html", null ], + [ "xt::detail::option_base", null, [ + [ "xt::evaluation_strategy::immediate_type", "structxt_1_1evaluation__strategy_1_1immediate__type.html", null ], + [ "xt::evaluation_strategy::lazy_type", "structxt_1_1evaluation__strategy_1_1lazy__type.html", null ], + [ "xt::keep_dims_type", "structxt_1_1keep__dims__type.html", null ], + [ "xt::xinitial< T >", "structxt_1_1xinitial.html", null ] + ] ], + [ "xt::overlapping_memory_checker_base", "structxt_1_1overlapping__memory__checker__base.html", [ + [ "xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >", "structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html", null ], + [ "xt::overlapping_memory_checker< Dst, Enable >", "structxt_1_1overlapping__memory__checker.html", null ], + [ "xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >", "structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html", null ] + ] ], + [ "xt::overlapping_memory_checker_traits< E, Enable >", "structxt_1_1overlapping__memory__checker__traits.html", null ], + [ "xt::overlapping_memory_checker_traits< E >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html", null ], + [ "xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html", null ], + [ "xt::overlapping_memory_checker_traits< E, std::enable_if_t::value &&is_crtp_base_of< xview_semantic, E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html", null ], + [ "xt::overlapping_memory_checker_traits< E, std::enable_if_t::value &&is_specialization_of< xfunction, E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html", null ], + [ "xt::math::pow_fun", "structxt_1_1math_1_1pow__fun.html", null ], + [ "xt::print_options::precision", "classxt_1_1print__options_1_1precision.html", null ], + [ "xt::print_options::print_options_impl", "structxt_1_1print__options_1_1print__options__impl.html", null ], + [ "xt::promote_shape< S >", "structxt_1_1promote__shape.html", null ], + [ "xt::promote_strides< S >", "structxt_1_1promote__strides.html", null ], + [ "xt::math::rad2deg", "structxt_1_1math_1_1rad2deg.html", null ], + [ "xt::placeholders::rangemaker< Args >", "structxt_1_1placeholders_1_1rangemaker.html", null ], + [ "xt::placeholders::rangemaker< A, B >", "structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html", null ], + [ "xt::placeholders::rangemaker< A, B, C >", "structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html", null ], + [ "xt::tracking_allocator< T, A, P >::rebind< U >", "structxt_1_1tracking__allocator_1_1rebind.html", null ], + [ "xt::rebind_container< X, C >", "structxt_1_1rebind__container.html", null ], + [ "xt::rebind_container< X, C< T, A > >", "structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html", null ], + [ "xt::rebind_container< X, C< T, N > >", "structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html", null ], + [ "xt::rebind_container< X, svector< T, N, A, B > >", "structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html", null ], + [ "xt::reducer_options< R, T >", "structxt_1_1reducer__options.html", null ], + [ "xt::math::remainder_fun", "structxt_1_1math_1_1remainder__fun.html", null ], + [ "xt::remove_class< T >", "structxt_1_1remove__class.html", null ], + [ "xt::remove_class< R(C::*)(Args...) const >", "structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html", null ], + [ "xt::remove_class< R(C::*)(Args...)>", "structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html", null ], + [ "xt_simd::revert_simd_traits< T >", "structxt__simd_1_1revert__simd__traits.html", null ], + [ "xt::math::rint_fun", "structxt_1_1math_1_1rint__fun.html", null ], + [ "xt::math::round_fun", "structxt_1_1math_1_1round__fun.html", null ], + [ "std::runtime_error", null, [ + [ "xt::broadcast_error", "classxt_1_1broadcast__error.html", null ], + [ "xt::concatenate_error", "classxt_1_1concatenate__error.html", null ], + [ "xt::transpose_error", "classxt_1_1transpose__error.html", null ] + ] ], + [ "xt::select_dim_mapping_type< T >", "structxt_1_1select__dim__mapping__type.html", null ], + [ "xt::select_dim_mapping_type< fixed_shape< I... > >", "structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html", null ], + [ "select_expression_base_t", null, [ + [ "xt::xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xarray_adaptor< EC, L, SC, Tag >", "classxt_1_1xarray__adaptor.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xarray_container< EC, L, SC, Tag >", "classxt_1_1xarray__container.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xchunked_array< chunk_storage > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xchunked_semantic< xchunked_array< chunk_storage > >", "classxt_1_1xchunked__semantic.html", [ + [ "xt::xchunked_array< chunk_storage >", "classxt_1_1xchunked__array.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xfixed_adaptor< EC, S, L, SH, Tag >", "classxt_1_1xfixed__adaptor.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xfixed_container< ET, S, L, SH, Tag >", "classxt_1_1xfixed__container.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xfunctor_adaptor< F, CT > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xfunctor_adaptor< F, CT > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xfunctor_adaptor< F, CT >", "classxt_1_1xfunctor__adaptor.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xfunctor_view< F, CT > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xview_semantic< xfunctor_view< F, CT > >", "classxt_1_1xview__semantic.html", [ + [ "xt::xfunctor_view< F, CT >", "classxt_1_1xfunctor__view.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xindex_view< CT, I > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xview_semantic< xindex_view< CT, I > >", "classxt_1_1xview__semantic.html", [ + [ "xt::xindex_view< CT, I >", "classxt_1_1xindex__view.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xoptional_assembly< VE, FE > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xoptional_assembly< VE, FE > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xoptional_assembly< VE, FE >", "classxt_1_1xoptional__assembly.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xoptional_assembly_adaptor< VEC, FEC >", "classxt_1_1xoptional__assembly__adaptor.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xtensor_adaptor< EC, N, L, Tag >", "classxt_1_1xtensor__adaptor.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xcontainer_semantic< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xtensor_container< EC, N, L, Tag >", "classxt_1_1xtensor__container.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xview_semantic< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xview__semantic.html", [ + [ "xt::xtensor_view< EC, N, L, Tag >", "classxt_1_1xtensor__view.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< xview< CT, S... > >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xview_semantic< xview< CT, S... > >", "classxt_1_1xview__semantic.html", [ + [ "xt::xview< CT, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< CT, S >", "classxt_1_1xview.html", null ] + ] ] + ] ], + [ "xt::xsemantic_base< D >", "classxt_1_1xsemantic__base.html", [ + [ "xt::xchunked_semantic< self_type >", "classxt_1_1xchunked__semantic.html", null ], + [ "xt::xcontainer_semantic< self_type >", "classxt_1_1xcontainer__semantic.html", null ], + [ "xt::xview_semantic< self_type >", "classxt_1_1xview__semantic.html", null ], + [ "xt::xview_semantic< xmasked_view< CTD, CTM > >", "classxt_1_1xview__semantic.html", [ + [ "xt::xmasked_view< CTD, CTM >", "classxt_1_1xmasked__view.html", null ] + ] ], + [ "xt::xchunked_semantic< D >", "classxt_1_1xchunked__semantic.html", null ], + [ "xt::xcontainer_semantic< D >", "classxt_1_1xcontainer__semantic.html", [ + [ "xt::xarray_adaptor< value_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< flag_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< const value_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< const flag_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< EC, L, SC, xoptional_expression_tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xfixed_container< typename storage_type::value_type, S, L, SH, Tag >", "classxt_1_1xfixed__container.html", null ], + [ "xt::xfixed_container< T, FSH, L, Sharable >", "classxt_1_1xfixed__container.html", null ], + [ "xt::xoptional_assembly< raw_value_expression, raw_flag_expression >", "classxt_1_1xoptional__assembly.html", null ], + [ "xt::xtensor_adaptor< value_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< flag_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< const value_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< const flag_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< uvector< T, A >, N, L >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__container.html", null ] + ] ], + [ "xt::xview_semantic< D >", "classxt_1_1xview__semantic.html", [ + [ "xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xfunctor_view< F, uvt >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_view< F, ucvt >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_view< F, E >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xindex_view< uvt, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< uft, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< ucvt, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< ucft, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< E, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, shape_type >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xtensor_view< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__view.html", null ], + [ "xt::xview< uvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< uft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< UnderlyingContainer, Slices... >", "classxt_1_1xview.html", null ], + [ "xt::xview< E, S... >", "classxt_1_1xview.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ] + ] ] + ] ] + ] ], + [ "xt::select_iterable_base< L1, L2, T >", "structxt_1_1select__iterable__base.html", null ], + [ "select_iterable_base_t", null, [ + [ "xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, shape_type >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ] + ] ], + [ "xt::select_layout< L, S >", "structxt_1_1select__layout.html", null ], + [ "xt::sequence_view< E, Start, End >", "classxt_1_1sequence__view.html", null ], + [ "xt::detail::shape_storage< S >", null, [ + [ "xt::xiterator< stepper, inner_shape_type *, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< const_stepper, inner_shape_type *, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< stepper, S, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< const_stepper, S, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< St, S, L >", "classxt_1_1xiterator.html", null ] + ] ], + [ "xt::math::sign_fun", "structxt_1_1math_1_1sign__fun.html", null ], + [ "xt::math::sign_impl< T >", "structxt_1_1math_1_1sign__impl.html", null ], + [ "xt::math::sign_impl< xtl::xoptional< T, B > >", "structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "xt_simd::simd_traits< T >", "structxt__simd_1_1simd__traits.html", null ], + [ "xt::math::sin_fun", "structxt_1_1math_1_1sin__fun.html", null ], + [ "xt::math::sinh_fun", "structxt_1_1math_1_1sinh__fun.html", null ], + [ "xt::math::sqrt_fun", "structxt_1_1math_1_1sqrt__fun.html", null ], + [ "xt::static_dimension< S >", "structxt_1_1static__dimension.html", null ], + [ "xt::static_string", "structxt_1_1static__string.html", null ], + [ "xt::stepper_assigner< E1, E2, L >", "classxt_1_1stepper__assigner.html", null ], + [ "xt::stepper_tools< L >", "structxt_1_1stepper__tools.html", null ], + [ "xt::strided_loop_assigner< simd >", "classxt_1_1strided__loop__assigner.html", null ], + [ "xt::svector< T, N, A, Init >", "classxt_1_1svector.html", null ], + [ "xt::math::tan_fun", "structxt_1_1math_1_1tan__fun.html", null ], + [ "xt::math::tanh_fun", "structxt_1_1math_1_1tanh__fun.html", null ], + [ "typename traits::template rebind_alloc", null, [ + [ "xt::tracking_allocator< U, typename traits::template rebind_alloc< U >, P >", "structxt_1_1tracking__allocator.html", null ] + ] ], + [ "xt::temporary_container< C >", "structxt_1_1temporary__container.html", null ], + [ "xt::temporary_container< xbuffer_adaptor< CP, O, A > >", "structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "xt::temporary_container< xiterator_adaptor< I, CI > >", "structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "xt::temporary_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "xt::temporary_type< T, class >", "structxt_1_1temporary__type.html", null ], + [ "xt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >", "structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html", null ], + [ "xt::temporary_type_from_tag< Tag, T >", "structxt_1_1temporary__type__from__tag.html", null ], + [ "xt::temporary_type_from_tag< xtensor_expression_tag, T >", "structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html", null ], + [ "xt::math::tgamma_fun", "structxt_1_1math_1_1tgamma__fun.html", null ], + [ "xt::print_options::threshold", "classxt_1_1print__options_1_1threshold.html", null ], + [ "std::true_type", null, [ + [ "xt::is_contiguous_container< I >", "structxt_1_1is__contiguous__container.html", [ + [ "xt::is_contiguous_container< xiterator_adaptor< I, CI > >", "structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ] + ] ], + [ "xt::is_contiguous_container< IG::iterator >", "structxt_1_1is__contiguous__container.html", [ + [ "xt::is_contiguous_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ] + ] ], + [ "xt::is_contiguous_container< xiterator< St, S, L > >", "structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html", null ], + [ "xt::is_contiguous_container< xiterator_adaptor< I, CI > >", "structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "xt::is_contiguous_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "xt::is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >", "structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html", null ], + [ "xt::forbid_simd< const std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "xt::forbid_simd< const xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "xt::forbid_simd< std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "xt::forbid_simd< xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "xt::has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >", "structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html", null ], + [ "xt::has_data_interface< E, void_t< decltype(std::declval< E >().data())> >", "structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html", null ], + [ "xt::has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >", "structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html", null ], + [ "xt::has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >", "structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html", null ], + [ "xt::has_strides< E, void_t< decltype(std::declval< E >().strides())> >", "structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html", null ], + [ "xt::is_contiguous_container< C >", "structxt_1_1is__contiguous__container.html", null ], + [ "xt::is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >", "structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html", null ], + [ "xt::is_not_xdummy_iterator< T >", "structxt_1_1is__not__xdummy__iterator.html", null ], + [ "xt::is_reducer_options_impl< std::tuple< X... > >", "structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "xt::is_specialization_of< TT, TT< Ts... > >", "structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html", null ], + [ "xt::reducer_options< R, T >::initial_tester< const xinitial< X > >", "structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html", null ], + [ "xt::reducer_options< R, T >::initial_tester< xinitial< X > >", "structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html", null ], + [ "xt_simd::simd_condition< T1, T2 >", "structxt__simd_1_1simd__condition.html", null ] + ] ], + [ "xt::math::trunc_fun", "structxt_1_1math_1_1trunc__fun.html", null ], + [ "std::tuple", null, [ + [ "xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >", "structxt_1_1xaccumulator__functor.html", null ], + [ "xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >", "structxt_1_1xreducer__functors.html", null ], + [ "xt::xreducer_functors< REDUCE_FUNC, const_value< NT >, MERGE_FUNC >", "structxt_1_1xreducer__functors.html", null ], + [ "xt::xreducer_functors< reduce_functor_type, init_functor_type, merge_functor_type >", "structxt_1_1xreducer__functors.html", null ], + [ "xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >", "structxt_1_1xaccumulator__functor.html", null ], + [ "xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >", "structxt_1_1xreducer__functors.html", null ] + ] ], + [ "xt::tuple_idx_of< T, Tuple >", "structxt_1_1tuple__idx__of.html", null ], + [ "xt::tuple_idx_of_impl< I, T, Tuple >", "structxt_1_1tuple__idx__of__impl.html", null ], + [ "xt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html", null ], + [ "xt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html", null ], + [ "xt::tuple_idx_of_impl< I, T, std::tuple<> >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html", null ], + [ "detail::tensor_view_simd_helper::type", null, [ + [ "xt::has_simd_interface< xtensor_view< EC, N, L, Tag > >", "structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::unaligned_mode", "structxt_1_1unaligned__mode.html", null ], + [ "xt_simd::unaligned_mode", "structxt__simd_1_1unaligned__mode.html", null ], + [ "xt::uvector< T, A >", "classxt_1_1uvector.html", null ], + [ "xt::convolve_mode::valid", "structxt_1_1convolve__mode_1_1valid.html", null ], + [ "xt::view_temporary_type< E, SL >", "structxt_1_1view__temporary__type.html", null ], + [ "xt::xall_tag", "structxt_1_1xall__tag.html", null ], + [ "xt::extension::xarray_adaptor_base< EC, L, SC, Tag >", "structxt_1_1extension_1_1xarray__adaptor__base.html", null ], + [ "xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >", "structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html", null ], + [ "xt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >", "structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html", null ], + [ "extension::xarray_adaptor_base_t", null, [ + [ "xt::xarray_adaptor< value_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< flag_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< const value_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< const flag_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< EC, L, SC, Tag >", "classxt_1_1xarray__adaptor.html", null ] + ] ], + [ "xt::extension::xarray_container_base< EC, L, SC, Tag >", "structxt_1_1extension_1_1xarray__container__base.html", null ], + [ "xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag >", "structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html", null ], + [ "xt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag >", "structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html", null ], + [ "extension::xarray_container_base_t", null, [ + [ "xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< EC, L, SC, xoptional_expression_tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< EC, L, SC, Tag >", "classxt_1_1xarray__container.html", null ] + ] ], + [ "xt::extension::xarray_optional_traits< EC, L, SC >", "structxt_1_1extension_1_1xarray__optional__traits.html", [ + [ "xt::extension::xarray_adaptor_optional_traits< EC, L, SC >", "structxt_1_1extension_1_1xarray__adaptor__optional__traits.html", null ], + [ "xt::extension::xarray_container_optional_traits< EC, L, SC >", "structxt_1_1extension_1_1xarray__container__optional__traits.html", null ] + ] ], + [ "xt::xassign_traits< E1, E2 >", "classxt_1_1xassign__traits.html", null ], + [ "xt::xaxis_iterator< CT >", "classxt_1_1xaxis__iterator.html", null ], + [ "xt::xaxis_slice_iterator< CT >", "classxt_1_1xaxis__slice__iterator.html", null ], + [ "xt::xblockwise_reducer< CT, F, X, O >", "classxt_1_1xblockwise__reducer.html", null ], + [ "xt::extension::xbroadcast_base_impl< Tag, CT, X >", "structxt_1_1extension_1_1xbroadcast__base__impl.html", null ], + [ "xt::extension::xbroadcast_base_impl< xexpression_tag_t< CT >, CT, X >", "structxt_1_1extension_1_1xbroadcast__base__impl.html", [ + [ "xt::extension::xbroadcast_base< CT, X >", "structxt_1_1extension_1_1xbroadcast__base.html", null ] + ] ], + [ "xt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X >", "structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "xt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X >", "structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "extension::xbroadcast_base_t", null, [ + [ "xt::xbroadcast< E, X >", "classxt_1_1xbroadcast.html", null ], + [ "xt::xbroadcast< CT, X >", "classxt_1_1xbroadcast.html", null ] + ] ], + [ "xt::xbuffer_adaptor_base< D >", "classxt_1_1xbuffer__adaptor__base.html", [ + [ "xt::xiterator_adaptor< iterator, const_iterator >", "classxt_1_1xiterator__adaptor.html", null ] + ] ], + [ "xt::xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >", "classxt_1_1xbuffer__adaptor__base.html", [ + [ "xt::xbuffer_adaptor< CP, O, A >", "classxt_1_1xbuffer__adaptor.html", null ] + ] ], + [ "xt::xbuffer_adaptor_base< xiterator_adaptor< I, CI > >", "classxt_1_1xbuffer__adaptor__base.html", [ + [ "xt::xiterator_adaptor< I, CI >", "classxt_1_1xiterator__adaptor.html", null ] + ] ], + [ "xt::xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >", "classxt_1_1xbuffer__adaptor__base.html", [ + [ "xt::xiterator_owner_adaptor< C, IG >", "classxt_1_1xiterator__owner__adaptor.html", null ] + ] ], + [ "xt::xchunked_assigner< T, chunk_storage >", "classxt_1_1xchunked__assigner.html", null ], + [ "xt::xchunked_view< E >", "classxt_1_1xchunked__view.html", null ], + [ "xt::xclosure< E, EN >", "structxt_1_1xclosure.html", null ], + [ "xt::xclosure< E, disable_xexpression< std::decay_t< E > > >", "structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html", null ], + [ "xt::xclosure< xshared_expression< E >, std::enable_if_t< true > >", "structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html", null ], + [ "xt::xconst_accessible< D >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xbroadcast< E, X >", "classxt_1_1xbroadcast.html", null ], + [ "xt::xgenerator< OF, OR, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< value_functor, value_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< flag_functor, flag_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xaccessible< D >", "classxt_1_1xaccessible.html", [ + [ "xt::xreducer< Func, E, X, Opts >", "classxt_1_1xreducer.html", null ], + [ "xt::xscalar< xtl::closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< xtl::const_closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< T >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< bool >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_value_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_flag_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xview< uvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< uft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< UnderlyingContainer, Slices... >", "classxt_1_1xview.html", null ], + [ "xt::xview< E, S... >", "classxt_1_1xview.html", null ], + [ "xt::xcontainer< D >", "classxt_1_1xcontainer.html", [ + [ "xt::xfixed_container< typename storage_type::value_type, S, L, SH, Tag >", "classxt_1_1xfixed__container.html", null ], + [ "xt::xfixed_container< T, FSH, L, Sharable >", "classxt_1_1xfixed__container.html", null ], + [ "xt::xstrided_container< D >", "classxt_1_1xstrided__container.html", [ + [ "xt::xarray_adaptor< value_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< flag_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< const value_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< const flag_container &, L, SC >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_adaptor< EC, L, SC, xoptional_expression_tag >", "classxt_1_1xarray__adaptor.html", null ], + [ "xt::xarray_container< temporary_container_t< storage_type >, L, SC, Tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xarray_container< EC, L, SC, xoptional_expression_tag >", "classxt_1_1xarray__container.html", null ], + [ "xt::xtensor_adaptor< value_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< flag_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< const value_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< const flag_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< uvector< T, A >, N, L >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_view< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__view.html", null ] + ] ] + ] ], + [ "xt::xfunctor_applier_base< D >", "classxt_1_1xfunctor__applier__base.html", [ + [ "xt::xfunctor_view< F, uvt >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_view< F, ucvt >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_view< F, E >", "classxt_1_1xfunctor__view.html", null ] + ] ], + [ "xt::xstrided_view_base< D >", "classxt_1_1xstrided__view__base.html", [ + [ "xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, shape_type >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< self_type >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< self_type >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< self_type >", "classxt_1_1xcontainer.html", [ + [ "xt::xstrided_container< self_type >", "classxt_1_1xstrided__container.html", null ] + ] ], + [ "xt::xfunctor_applier_base< self_type >", "classxt_1_1xfunctor__applier__base.html", null ], + [ "xt::xstrided_view_base< self_type >", "classxt_1_1xstrided__view__base.html", null ] + ] ] + ] ], + [ "xt::xconst_accessible< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xstrided_container< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xstrided__container.html", [ + [ "xt::xarray_adaptor< EC, L, SC, Tag >", "classxt_1_1xarray__adaptor.html", null ] + ] ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xstrided_container< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xstrided__container.html", [ + [ "xt::xarray_container< EC, L, SC, Tag >", "classxt_1_1xarray__container.html", null ] + ] ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xbroadcast< CT, X > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xbroadcast< CT, X >", "classxt_1_1xbroadcast.html", null ] + ] ], + [ "xt::xconst_accessible< xchunked_array< chunk_storage > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xchunked_array< chunk_storage > >", "classxt_1_1xaccessible.html", [ + [ "xt::xchunked_array< chunk_storage >", "classxt_1_1xchunked__array.html", null ] + ] ] + ] ], + [ "xt::xconst_accessible< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xfixed_adaptor< EC, S, L, SH, Tag >", "classxt_1_1xfixed__adaptor.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xfixed_container< ET, S, L, SH, Tag >", "classxt_1_1xfixed__container.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xfunction< F, CT... > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xfunction< F, CT... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, E... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, xclosure_t< E >... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, CT >", "classxt_1_1xfunction.html", null ] + ] ], + [ "xt::xconst_accessible< xfunctor_adaptor< F, CT > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xfunctor_adaptor< F, CT > >", "classxt_1_1xaccessible.html", [ + [ "xt::xfunctor_applier_base< xfunctor_adaptor< F, CT > >", "classxt_1_1xfunctor__applier__base.html", [ + [ "xt::xfunctor_adaptor< F, CT >", "classxt_1_1xfunctor__adaptor.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xfunctor_view< F, CT > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xfunctor_view< F, CT > >", "classxt_1_1xaccessible.html", [ + [ "xt::xfunctor_applier_base< xfunctor_view< F, CT > >", "classxt_1_1xfunctor__applier__base.html", [ + [ "xt::xfunctor_view< F, CT >", "classxt_1_1xfunctor__view.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xgenerator< F, R, S > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xgenerator< F, R, S >", "classxt_1_1xgenerator.html", null ] + ] ], + [ "xt::xconst_accessible< xmasked_view< CTD, CTM > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xmasked_view< CTD, CTM > >", "classxt_1_1xaccessible.html", [ + [ "xt::xmasked_view< CTD, CTM >", "classxt_1_1xmasked__view.html", null ] + ] ] + ] ], + [ "xt::xconst_accessible< xreducer< F, CT, X, O > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xreducer< F, CT, X, O > >", "classxt_1_1xaccessible.html", [ + [ "xt::xreducer< F, CT, X, O >", "classxt_1_1xreducer.html", null ] + ] ] + ] ], + [ "xt::xconst_accessible< xrepeat< CT, R > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xrepeat< CT, R >", "classxt_1_1xrepeat.html", null ] + ] ], + [ "xt::xconst_accessible< xscalar< CT > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xscalar< CT > >", "classxt_1_1xaccessible.html", [ + [ "xt::xscalar< CT >", "classxt_1_1xscalar.html", null ] + ] ] + ] ], + [ "xt::xconst_accessible< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xstrided_container< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xstrided__container.html", [ + [ "xt::xtensor_adaptor< EC, N, L, Tag >", "classxt_1_1xtensor__adaptor.html", null ] + ] ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xstrided_container< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xstrided__container.html", [ + [ "xt::xtensor_container< EC, N, L, Tag >", "classxt_1_1xtensor__container.html", null ] + ] ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xaccessible.html", [ + [ "xt::xcontainer< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xcontainer.html", [ + [ "xt::xstrided_container< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xstrided__container.html", [ + [ "xt::xtensor_view< EC, N, L, Tag >", "classxt_1_1xtensor__view.html", null ] + ] ] + ] ] + ] ] + ] ], + [ "xt::xconst_accessible< xview< CT, S... > >", "classxt_1_1xconst__accessible.html", [ + [ "xt::xaccessible< xview< CT, S... > >", "classxt_1_1xaccessible.html", [ + [ "xt::xview< CT, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< CT, S >", "classxt_1_1xview.html", null ] + ] ] + ] ], + [ "xt::xconst_iterable< D >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xbroadcast< E, X >", "classxt_1_1xbroadcast.html", null ], + [ "xt::xgenerator< OF, OR, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< value_functor, value_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< flag_functor, flag_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xiterable< xmasked_view< CTD, CTM > >", "classxt_1_1xiterable.html", [ + [ "xt::xmasked_view< CTD, CTM >", "classxt_1_1xmasked__view.html", null ] + ] ], + [ "xt::xreducer< Func, E, X, Opts >", "classxt_1_1xreducer.html", null ], + [ "xt::xiterable< D >", "classxt_1_1xiterable.html", [ + [ "xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xindex_view< uvt, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< uft, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< ucvt, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< ucft, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< E, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xscalar< xtl::closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< xtl::const_closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< T >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< bool >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_value_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_flag_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xcontiguous_iterable< D >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< self_type >", "classxt_1_1xcontainer.html", null ], + [ "xt::xcontainer< D >", "classxt_1_1xcontainer.html", null ] + ] ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xoptional_assembly_base< D >", "classxt_1_1xoptional__assembly__base.html", [ + [ "xt::xoptional_assembly< raw_value_expression, raw_flag_expression >", "classxt_1_1xoptional__assembly.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< self_type >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< self_type >", "classxt_1_1xiterable.html", [ + [ "xt::xoptional_assembly_base< self_type >", "classxt_1_1xoptional__assembly__base.html", null ] + ] ] + ] ], + [ "xt::xconst_iterable< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xarray_adaptor< EC, L, SC, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xarray_container< EC, L, SC, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xbroadcast< CT, X > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xbroadcast< CT, X >", "classxt_1_1xbroadcast.html", null ] + ] ], + [ "xt::xconst_iterable< xchunked_array< chunk_storage > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xchunked_array< chunk_storage > >", "classxt_1_1xiterable.html", [ + [ "xt::xchunked_array< chunk_storage >", "classxt_1_1xchunked__array.html", null ] + ] ] + ] ], + [ "xt::xconst_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xfixed_container< ET, S, L, SH, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xfunction< F, CT... > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xfunction< F, CT... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, E... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, xclosure_t< E >... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, CT >", "classxt_1_1xfunction.html", null ] + ] ], + [ "xt::xconst_iterable< xgenerator< F, R, S > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xgenerator< F, R, S >", "classxt_1_1xgenerator.html", null ] + ] ], + [ "xt::xconst_iterable< xindex_view< CT, I > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xindex_view< CT, I > >", "classxt_1_1xiterable.html", [ + [ "xt::xindex_view< CT, I >", "classxt_1_1xindex__view.html", null ] + ] ] + ] ], + [ "xt::xconst_iterable< xoptional_assembly< VE, FE > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xoptional_assembly< VE, FE > >", "classxt_1_1xiterable.html", [ + [ "xt::xoptional_assembly_base< xoptional_assembly< VE, FE > >", "classxt_1_1xoptional__assembly__base.html", [ + [ "xt::xoptional_assembly< VE, FE >", "classxt_1_1xoptional__assembly.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xoptional_assembly_adaptor< VEC, FEC > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xoptional_assembly_adaptor< VEC, FEC > >", "classxt_1_1xiterable.html", [ + [ "xt::xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >", "classxt_1_1xoptional__assembly__base.html", [ + [ "xt::xoptional_assembly_adaptor< VEC, FEC >", "classxt_1_1xoptional__assembly__adaptor.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xreducer< F, CT, X, O > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xreducer< F, CT, X, O >", "classxt_1_1xreducer.html", null ] + ] ], + [ "xt::xconst_iterable< xrepeat< CT, R > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xrepeat< CT, R > >", "classxt_1_1xiterable.html", null ], + [ "xt::xrepeat< CT, R >", "classxt_1_1xrepeat.html", null ] + ] ], + [ "xt::xconst_iterable< xscalar< CT > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xscalar< CT > >", "classxt_1_1xiterable.html", [ + [ "xt::xscalar< CT >", "classxt_1_1xscalar.html", null ] + ] ] + ] ], + [ "xt::xconst_iterable< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xtensor_adaptor< EC, N, L, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xtensor_container< EC, N, L, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xconst_iterable< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xconst__iterable.html", [ + [ "xt::xiterable< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xiterable.html", [ + [ "xt::xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xcontiguous__iterable.html", [ + [ "xt::xcontainer< xtensor_view< EC, N, L, Tag > >", "classxt_1_1xcontainer.html", null ] + ] ] + ] ] + ] ], + [ "xt::xcontainer_inner_types< D >", "structxt_1_1xcontainer__inner__types.html", null ], + [ "xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xbroadcast< CT, X > >", "structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xchunked_array< chunk_storage > >", "structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >", "structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xfunction< F, CT... > >", "structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >", "structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xfunctor_view< F, CT > >", "structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xgenerator< C, R, S > >", "structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xindex_view< CT, I > >", "structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >", "structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >", "structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >", "structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xreducer< F, CT, X, O > >", "structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xscalar< CT > >", "structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >", "structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xt::xcontainer_inner_types< xview< CT, S... > >", "structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html", null ], + [ "xt::xcontainer_iterable_types< D >", "structxt_1_1xcontainer__iterable__types.html", null ], + [ "xt::xcontainer_iterable_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcontainer_iterable_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcontainer_iterable_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcontainer_iterable_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcontainer_iterable_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcontainer_iterable_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcontainer_iterable_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xcontainer__iterable__types.html", [ + [ "xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ] + ] ], + [ "xt::xcsv_config", "structxt_1_1xcsv__config.html", null ], + [ "xt::extension::xdynamic_view_base_impl< Tag, CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base__impl.html", null ], + [ "xt::extension::xdynamic_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base__impl.html", [ + [ "xt::extension::xdynamic_view_base< CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base.html", null ] + ] ], + [ "xt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "xt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "extension::xdynamic_view_base_t", null, [ + [ "xt::xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xdynamic__view.html", null ], + [ "xt::xdynamic_view< CT, S, L, FST >", "classxt_1_1xdynamic__view.html", null ] + ] ], + [ "xt::xellipsis_tag", "structxt_1_1xellipsis__tag.html", null ], + [ "xt::xexpression< D >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< D >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xbroadcast< E, X >", "classxt_1_1xbroadcast.html", null ], + [ "xt::xgenerator< OF, OR, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< value_functor, value_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< flag_functor, flag_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xreducer< Func, E, X, Opts >", "classxt_1_1xreducer.html", null ], + [ "xt::xscalar< xtl::closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< xtl::const_closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< T >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< bool >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_value_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_flag_closure >", "classxt_1_1xscalar.html", null ] + ] ] + ] ], + [ "xt::xexpression< xbroadcast< CT, X > >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< xbroadcast< CT, X > >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xbroadcast< CT, X >", "classxt_1_1xbroadcast.html", null ] + ] ] + ] ], + [ "xt::xexpression< xfunction< F, CT... > >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< xfunction< F, CT... > >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xfunction< F, CT... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, E... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, xclosure_t< E >... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, CT >", "classxt_1_1xfunction.html", null ] + ] ] + ] ], + [ "xt::xexpression< xgenerator< F, R, S > >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< xgenerator< F, R, S > >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xgenerator< F, R, S >", "classxt_1_1xgenerator.html", null ] + ] ] + ] ], + [ "xt::xexpression< xreducer< F, CT, X, O > >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< xreducer< F, CT, X, O > >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xreducer< F, CT, X, O >", "classxt_1_1xreducer.html", null ] + ] ] + ] ], + [ "xt::xexpression< xrepeat< CT, R > >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< xrepeat< CT, R > >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xrepeat< CT, R >", "classxt_1_1xrepeat.html", null ] + ] ] + ] ], + [ "xt::xexpression< xscalar< CT > >", "classxt_1_1xexpression.html", [ + [ "xt::xsharable_expression< xscalar< CT > >", "classxt_1_1xsharable__expression.html", [ + [ "xt::xscalar< CT >", "classxt_1_1xscalar.html", null ] + ] ] + ] ], + [ "xt::xexpression< xshared_expression< E > >", "classxt_1_1xexpression.html", [ + [ "xt::xshared_expression< E >", "classxt_1_1xshared__expression.html", null ] + ] ], + [ "xt::xexpression_assigner_base< Tag >", "classxt_1_1xexpression__assigner__base.html", [ + [ "xt::xexpression_assigner< Tag >", "classxt_1_1xexpression__assigner.html", null ] + ] ], + [ "xt::xexpression_assigner_base< xoptional_expression_tag >", "classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html", null ], + [ "xt::xexpression_assigner_base< xtensor_expression_tag >", "classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html", null ], + [ "xt::xexpression_holder", "classxt_1_1xexpression__holder.html", null ], + [ "xt::xexpression_tag< T >", "structxt_1_1xexpression__tag.html", null ], + [ "xt::xfiltration< ECT, CCT >", "classxt_1_1xfiltration.html", null ], + [ "xt::extension::xfunction_base_impl< Tag, F, CT >", "structxt_1_1extension_1_1xfunction__base__impl.html", null ], + [ "xt::extension::xfunction_base_impl< xexpression_tag_t< CT... >, F, CT... >", "structxt_1_1extension_1_1xfunction__base__impl.html", [ + [ "xt::extension::xfunction_base< F, CT >", "structxt_1_1extension_1_1xfunction__base.html", null ] + ] ], + [ "xt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... >", "structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html", null ], + [ "xt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... >", "structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html", null ], + [ "extension::xfunction_base_t", null, [ + [ "xt::xfunction< F, CT... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, E... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, xclosure_t< E >... >", "classxt_1_1xfunction.html", null ], + [ "xt::xfunction< F, CT >", "classxt_1_1xfunction.html", null ] + ] ], + [ "xt::detail::xfunction_cache_impl< promote::type, promote >", null, [ + [ "xt::xfunction_cache< promote >", "structxt_1_1xfunction__cache.html", null ] + ] ], + [ "xt::xfunction_stepper< F, CT >", "classxt_1_1xfunction__stepper.html", null ], + [ "xt::xfunctor_stepper< F, ST >", "classxt_1_1xfunctor__stepper.html", null ], + [ "xt::extension::xfunctor_view_base_impl< Tag, F, CT >", "structxt_1_1extension_1_1xfunctor__view__base__impl.html", null ], + [ "xt::extension::xfunctor_view_base_impl< xexpression_tag_t< CT >, F, CT >", "structxt_1_1extension_1_1xfunctor__view__base__impl.html", [ + [ "xt::extension::xfunctor_view_base< F, CT >", "structxt_1_1extension_1_1xfunctor__view__base.html", null ] + ] ], + [ "xt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT >", "structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html", null ], + [ "xt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT >", "structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html", null ], + [ "extension::xfunctor_view_base_t", null, [ + [ "xt::xfunctor_view< F, uvt >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_view< F, ucvt >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_view< F, E >", "classxt_1_1xfunctor__view.html", null ], + [ "xt::xfunctor_adaptor< F, CT >", "classxt_1_1xfunctor__adaptor.html", null ], + [ "xt::xfunctor_view< F, CT >", "classxt_1_1xfunctor__view.html", null ] + ] ], + [ "xt::xfunctor_view_temporary_type< F, E >", "structxt_1_1xfunctor__view__temporary__type.html", null ], + [ "xt::extension::xgenerator_base_impl< Tag, F, R, S >", "structxt_1_1extension_1_1xgenerator__base__impl.html", null ], + [ "xt::extension::xgenerator_base_impl< xexpression_tag_t< R >, F, R, S >", "structxt_1_1extension_1_1xgenerator__base__impl.html", [ + [ "xt::extension::xgenerator_base< F, R, S >", "structxt_1_1extension_1_1xgenerator__base.html", null ] + ] ], + [ "xt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S >", "structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html", null ], + [ "xt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S >", "structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html", null ], + [ "extension::xgenerator_base_t", null, [ + [ "xt::xgenerator< OF, OR, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< value_functor, value_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< flag_functor, flag_closure, S >", "classxt_1_1xgenerator.html", null ], + [ "xt::xgenerator< F, R, S >", "classxt_1_1xgenerator.html", null ] + ] ], + [ "xt::extension::xindex_view_base_impl< Tag, CT, I >", "structxt_1_1extension_1_1xindex__view__base__impl.html", null ], + [ "xt::extension::xindex_view_base_impl< xexpression_tag_t< CT >, CT, I >", "structxt_1_1extension_1_1xindex__view__base__impl.html", [ + [ "xt::extension::xindex_view_base< CT, I >", "structxt_1_1extension_1_1xindex__view__base.html", null ] + ] ], + [ "xt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I >", "structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html", null ], + [ "xt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I >", "structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html", null ], + [ "extension::xindex_view_base_t", null, [ + [ "xt::xindex_view< uvt, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< uft, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< ucvt, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< ucft, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< E, I >", "classxt_1_1xindex__view.html", null ], + [ "xt::xindex_view< CT, I >", "classxt_1_1xindex__view.html", null ] + ] ], + [ "xt::xindexed_stepper< E, is_const >", "classxt_1_1xindexed__stepper.html", null ], + [ "xt::xiterable_inner_types< D >", "structxt_1_1xiterable__inner__types.html", null ], + [ "xt::xiterable_inner_types< xbroadcast< CT, X > >", "structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xchunked_array< chunk_storage > >", "structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >", "structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xfunction< F, CT... > >", "structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xgenerator< C, R, S > >", "structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xindex_view< CT, I > >", "structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xmasked_view< CTD, CTM > >", "structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xoptional_assembly< VE, FE > >", "structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >", "structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xreducer< F, CT, X, O > >", "structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xrepeat< CT, R > >", "structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xscalar< CT > >", "structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >", "structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xt::xiterable_inner_types< xview< CT, S... > >", "structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html", null ], + [ "xt::xmasked_value< T, B >", "classxt_1_1xmasked__value.html", null ], + [ "xt::xmasked_view_stepper< D, is_const >", "classxt_1_1xmasked__view__stepper.html", null ], + [ "xt::xmultiindex_iterator< S >", "classxt_1_1xmultiindex__iterator.html", null ], + [ "xt::xnewaxis_tag", "structxt_1_1xnewaxis__tag.html", null ], + [ "xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >", "structxt_1_1xoptional__assembly__linear__iterator__traits.html", null ], + [ "xt::xoptional_assembly_stepper< D, is_const >", "classxt_1_1xoptional__assembly__stepper.html", null ], + [ "xt::xoptional_assembly_storage< VE, FE >", "classxt_1_1xoptional__assembly__storage.html", null ], + [ "xt::extension::xoptional_empty_base< D >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xcontainer_optional_base< traits >", "classxt_1_1extension_1_1xcontainer__optional__base.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< T::derived_type >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xcontainer_optional_base< T >", "classxt_1_1extension_1_1xcontainer__optional__base.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xbroadcast< CT, X > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xbroadcast_optional< CT, X >", "classxt_1_1extension_1_1xbroadcast__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xdynamic_view< CT, S, L, FST > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xdynamic_view_optional< CT, S, L, FST >", "classxt_1_1extension_1_1xdynamic__view__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xfunction< F, CT... > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xfunction_optional_base< F, CT... >", "classxt_1_1extension_1_1xfunction__optional__base.html", null ], + [ "xt::extension::xfunction_optional_base< F, CT >", "classxt_1_1extension_1_1xfunction__optional__base.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xfunctor_view< F, CT > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xfunctor_view_optional< F, CT >", "classxt_1_1extension_1_1xfunctor__view__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xgenerator< F, R, S > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xgenerator_optional< F, R, S >", "classxt_1_1extension_1_1xgenerator__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xindex_view< CT, I > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xindex_view_optional< CT, I >", "classxt_1_1extension_1_1xindex__view__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xreducer< F, CT, X, O > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xreducer_optional< F, CT, X, O >", "classxt_1_1extension_1_1xreducer__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xrepeat< CT, X > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xrepeat_optional< CT, X >", "classxt_1_1extension_1_1xrepeat__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xscalar< CT > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xscalar_optional_base< CT >", "classxt_1_1extension_1_1xscalar__optional__base.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xstrided_view< CT, S, L, FST > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xstrided_view_optional< CT, S, L, FST >", "classxt_1_1extension_1_1xstrided__view__optional.html", null ] + ] ], + [ "xt::extension::xoptional_empty_base< xview< CT, S... > >", "classxt_1_1extension_1_1xoptional__empty__base.html", [ + [ "xt::extension::xview_optional< CT, S... >", "classxt_1_1extension_1_1xview__optional.html", null ], + [ "xt::extension::xview_optional< CT, S >", "classxt_1_1extension_1_1xview__optional.html", null ] + ] ], + [ "xt::xoptional_expression_tag", "structxt_1_1xoptional__expression__tag.html", null ], + [ "xt::xproxy_inner_types< R >", "structxt_1_1xproxy__inner__types.html", null ], + [ "xtl::xrandom_access_iterator_base", null, [ + [ "xt::xdummy_iterator< false, CT >", "classxt_1_1xdummy__iterator.html", null ], + [ "xt::xdummy_iterator< true, CT >", "classxt_1_1xdummy__iterator.html", null ], + [ "xt::xfunction_iterator< F, CT... >", "classxt_1_1xfunction__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::template layout_iterator< L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< const functor_type, typename xexpression_type::template const_layout_iterator< L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::template reverse_layout_iterator< L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< const functor_type, typename xexpression_type::template const_reverse_layout_iterator< L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, xiterator< typename xexpression_type::stepper, S, L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, xiterator< typename xexpression_type::const_stepper, S, L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::template reverse_broadcast_iterator< S, L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::template const_reverse_broadcast_iterator< S, L > >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::linear_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< const functor_type, typename xexpression_type::const_linear_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::reverse_linear_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< const functor_type, typename xexpression_type::const_reverse_linear_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< const functor_type, typename xexpression_type::const_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< functor_type, typename xexpression_type::reverse_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xfunctor_iterator< const functor_type, typename xexpression_type::const_reverse_iterator >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xiterator< stepper, inner_shape_type *, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< const_stepper, inner_shape_type *, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< stepper, S, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xiterator< const_stepper, S, L >", "classxt_1_1xiterator.html", null ], + [ "xt::xbounded_iterator< It, BIt >", "classxt_1_1xbounded__iterator.html", null ], + [ "xt::xdummy_iterator< is_const, CT >", "classxt_1_1xdummy__iterator.html", null ], + [ "xt::xfunction_iterator< F, CT >", "classxt_1_1xfunction__iterator.html", null ], + [ "xt::xfunctor_iterator< F, IT >", "classxt_1_1xfunctor__iterator.html", null ], + [ "xt::xiterator< St, S, L >", "classxt_1_1xiterator.html", null ] + ] ], + [ "xtl::xrandom_access_iterator_base2", null, [ + [ "xt::xoptional_assembly_linear_iterator< VE, FE, false >", "classxt_1_1xoptional__assembly__linear__iterator.html", null ], + [ "xt::xoptional_assembly_linear_iterator< VE, FE, true >", "classxt_1_1xoptional__assembly__linear__iterator.html", null ], + [ "xt::xoptional_assembly_linear_iterator< VE, FE, is_const >", "classxt_1_1xoptional__assembly__linear__iterator.html", null ] + ] ], + [ "xt::xrange_adaptor< A, B, C >", "structxt_1_1xrange__adaptor.html", null ], + [ "xt::extension::xreducer_base_impl< Tag, F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base__impl.html", null ], + [ "xt::extension::xreducer_base_impl< xexpression_tag_t< CT >, F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base__impl.html", [ + [ "xt::extension::xreducer_base< F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base.html", null ] + ] ], + [ "xt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html", null ], + [ "xt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >", "structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html", null ], + [ "extension::xreducer_base_t", null, [ + [ "xt::xreducer< Func, E, X, Opts >", "classxt_1_1xreducer.html", null ], + [ "xt::xreducer< F, CT, X, O >", "classxt_1_1xreducer.html", null ] + ] ], + [ "xt::xreducer_shape_type< ST, X, O >", "structxt_1_1xreducer__shape__type.html", null ], + [ "xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html", null ], + [ "xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html", null ], + [ "xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html", null ], + [ "xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >", "structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html", null ], + [ "xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >", "structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html", null ], + [ "xt::xreducer_stepper< F, CT, X, O >", "classxt_1_1xreducer__stepper.html", null ], + [ "xt::extension::xrepeat_base_impl< Tag, CT, X >", "structxt_1_1extension_1_1xrepeat__base__impl.html", null ], + [ "xt::extension::xrepeat_base_impl< xexpression_tag_t< CT >, CT, X >", "structxt_1_1extension_1_1xrepeat__base__impl.html", [ + [ "xt::extension::xrepeat_base< CT, X >", "structxt_1_1extension_1_1xrepeat__base.html", null ] + ] ], + [ "xt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X >", "structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "xt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X >", "structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html", null ], + [ "extension::xrepeat_base_t", null, [ + [ "xt::xrepeat< CT, R >", "classxt_1_1xrepeat.html", null ] + ] ], + [ "xt::xrepeat_stepper< S, R >", "classxt_1_1xrepeat__stepper.html", null ], + [ "xt::extension::xscalar_base_impl< Tag, CT >", "structxt_1_1extension_1_1xscalar__base__impl.html", null ], + [ "xt::extension::xscalar_base_impl< get_expression_tag_t< std::decay_t< CT > >, CT >", "structxt_1_1extension_1_1xscalar__base__impl.html", [ + [ "xt::extension::xscalar_base< CT >", "structxt_1_1extension_1_1xscalar__base.html", null ] + ] ], + [ "xt::extension::xscalar_base_impl< xoptional_expression_tag, CT >", "structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html", null ], + [ "xt::extension::xscalar_base_impl< xtensor_expression_tag, CT >", "structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html", null ], + [ "extension::xscalar_base_t", null, [ + [ "xt::xscalar< xtl::closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< xtl::const_closure_type_t< E > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< T >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< bool >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_value_closure, value_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_value_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< const_flag_closure >", "classxt_1_1xscalar.html", null ], + [ "xt::xscalar< CT >", "classxt_1_1xscalar.html", null ] + ] ], + [ "xt::extension::xscalar_optional_traits< CT >", "structxt_1_1extension_1_1xscalar__optional__traits.html", null ], + [ "xt::xscalar_stepper< is_const, CT >", "classxt_1_1xscalar__stepper.html", null ], + [ "xt::xslice< D >", "classxt_1_1xslice.html", [ + [ "xt::xall< typename E::size_type >", "classxt_1_1xall.html", null ], + [ "xt::xnewaxis< typename E::size_type >", "classxt_1_1xnewaxis.html", null ] + ] ], + [ "xt::xslice< xall< T > >", "classxt_1_1xslice.html", [ + [ "xt::xall< T >", "classxt_1_1xall.html", null ] + ] ], + [ "xt::xslice< xdrop_slice< T > >", "classxt_1_1xslice.html", [ + [ "xt::xdrop_slice< T >", "classxt_1_1xdrop__slice.html", null ] + ] ], + [ "xt::xslice< xfake_slice< T > >", "classxt_1_1xslice.html", null ], + [ "xt::xslice< xkeep_slice< T > >", "classxt_1_1xslice.html", [ + [ "xt::xkeep_slice< T >", "classxt_1_1xkeep__slice.html", null ] + ] ], + [ "xt::xslice< xnewaxis< T > >", "classxt_1_1xslice.html", [ + [ "xt::xnewaxis< T >", "classxt_1_1xnewaxis.html", null ] + ] ], + [ "xt::xslice< xrange< T > >", "classxt_1_1xslice.html", [ + [ "xt::xrange< T >", "classxt_1_1xrange.html", null ] + ] ], + [ "xt::xslice< xstepped_range< T > >", "classxt_1_1xslice.html", [ + [ "xt::xstepped_range< T >", "classxt_1_1xstepped__range.html", null ] + ] ], + [ "xt::xstepper< C >", "classxt_1_1xstepper.html", null ], + [ "xt::extension::xstrided_view_base_impl< Tag, CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base__impl.html", null ], + [ "xt::extension::xstrided_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base__impl.html", [ + [ "xt::extension::xstrided_view_base< CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base.html", null ] + ] ], + [ "xt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "xt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >", "structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html", null ], + [ "extension::xstrided_view_base_t", null, [ + [ "xt::xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< uft, S, L, typename FST::template rebind_t< uft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, shape_type >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< E, S, L, typename FST::template rebind_t< E > >", "classxt_1_1xstrided__view.html", null ], + [ "xt::xstrided_view< CT, S, L, FST >", "classxt_1_1xstrided__view.html", null ] + ] ], + [ "xt::extension::xtensor_adaptor_base< EC, N, L, Tag >", "structxt_1_1extension_1_1xtensor__adaptor__base.html", null ], + [ "xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >", "structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html", null ], + [ "xt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >", "structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html", null ], + [ "extension::xtensor_adaptor_base_t", null, [ + [ "xt::xtensor_adaptor< value_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< flag_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< const value_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< const flag_container &, N, L >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__adaptor.html", null ], + [ "xt::xtensor_adaptor< EC, N, L, Tag >", "classxt_1_1xtensor__adaptor.html", null ] + ] ], + [ "xt::extension::xtensor_container_base< EC, N, L, Tag >", "structxt_1_1extension_1_1xtensor__container__base.html", null ], + [ "xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag >", "structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html", null ], + [ "xt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag >", "structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html", null ], + [ "extension::xtensor_container_base_t", null, [ + [ "xt::xtensor_container< temporary_container_t< storage_type >, N, L, Tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< uvector< T, A >, N, L >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< std::vector< T, A >, 2, layout_type::row_major >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__container.html", null ], + [ "xt::xtensor_container< EC, N, L, Tag >", "classxt_1_1xtensor__container.html", null ] + ] ], + [ "xt::extension::xtensor_empty_base", "structxt_1_1extension_1_1xtensor__empty__base.html", null ], + [ "xt::xtensor_expression_tag", "structxt_1_1xtensor__expression__tag.html", null ], + [ "xt::extension::xtensor_optional_traits< EC, N, L >", "structxt_1_1extension_1_1xtensor__optional__traits.html", [ + [ "xt::extension::xtensor_adaptor_optional_traits< EC, N, L >", "structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html", null ], + [ "xt::extension::xtensor_container_optional_traits< EC, N, L >", "structxt_1_1extension_1_1xtensor__container__optional__traits.html", null ], + [ "xt::extension::xtensor_view_optional_traits< EC, N, L >", "structxt_1_1extension_1_1xtensor__view__optional__traits.html", null ] + ] ], + [ "xt::extension::xtensor_view_base< EC, N, L, Tag >", "structxt_1_1extension_1_1xtensor__view__base.html", null ], + [ "xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag >", "structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html", null ], + [ "xt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag >", "structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html", null ], + [ "extension::xtensor_view_base_t", null, [ + [ "xt::xtensor_view< EC, N, L, xoptional_expression_tag >", "classxt_1_1xtensor__view.html", null ], + [ "xt::xtensor_view< EC, N, L, Tag >", "classxt_1_1xtensor__view.html", null ] + ] ], + [ "xt::placeholders::xtuph", "structxt_1_1placeholders_1_1xtuph.html", null ], + [ "xt::xvectorizer< F, R >", "classxt_1_1xvectorizer.html", null ], + [ "xt::extension::xview_base_impl< Tag, CT, S >", "structxt_1_1extension_1_1xview__base__impl.html", null ], + [ "xt::extension::xview_base_impl< xexpression_tag_t< CT >, CT, S... >", "structxt_1_1extension_1_1xview__base__impl.html", [ + [ "xt::extension::xview_base< CT, S >", "structxt_1_1extension_1_1xview__base.html", null ] + ] ], + [ "xt::extension::xview_base_impl< xoptional_expression_tag, CT, S... >", "structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html", null ], + [ "xt::extension::xview_base_impl< xtensor_expression_tag, CT, S... >", "structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html", null ], + [ "extension::xview_base_t", null, [ + [ "xt::xview< uvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< uft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucvt, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< ucft, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< UnderlyingContainer, Slices... >", "classxt_1_1xview.html", null ], + [ "xt::xview< CT, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< E, S... >", "classxt_1_1xview.html", null ], + [ "xt::xview< CT, S >", "classxt_1_1xview.html", null ] + ] ], + [ "xt::xview_shape_type< ST, S >", "structxt_1_1xview__shape__type.html", null ], + [ "xt::xview_shape_type< fixed_shape< I... >, S... >", "structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html", null ], + [ "xt::xview_shape_type< std::array< I, L >, S... >", "structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html", null ], + [ "xt::xview_stepper< is_const, CT, S >", "classxt_1_1xview__stepper.html", null ] +]; \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..f84deb7db --- /dev/null +++ b/index.html @@ -0,0 +1,118 @@ + + + + + + + +xtensor: Main Page + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtensor Documentation
    +
    +
    + +
    +
    + + + + diff --git a/index__mapper_8hpp_source.html b/index__mapper_8hpp_source.html new file mode 100644 index 000000000..049291e6b --- /dev/null +++ b/index__mapper_8hpp_source.html @@ -0,0 +1,550 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    index_mapper.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_INDEX_MAPPER_HPP
    +
    11#define XTENSOR_INDEX_MAPPER_HPP
    +
    12
    +
    13#include <cassert>
    +
    14
    +
    15#include "xview.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19
    +
    20 template <class UndefinedView>
    + +
    22
    +
    +
    27 enum class access_t
    +
    28 {
    + + +
    31 };
    +
    +
    32
    +
    57 template <class UnderlyingContainer, class... Slices>
    +
    +
    58 class index_mapper<xt::xview<UnderlyingContainer, Slices...>>
    +
    59 {
    +
    60 public:
    +
    61
    +
    63 using view_type = xt::xview<UnderlyingContainer, Slices...>;
    +
    64
    +
    66 using reference = typename xt::xview<UnderlyingContainer, Slices...>::reference;
    +
    67
    +
    69 using const_reference = typename xt::xview<UnderlyingContainer, Slices...>::const_reference;
    +
    70
    +
    72 static constexpr size_t n_slices = sizeof...(Slices);
    +
    73
    +
    75 static constexpr size_t nb_integral_slices = (std::is_integral_v<Slices> + ...);
    +
    76
    +
    78 static constexpr size_t nb_new_axis_slices = (xt::detail::is_newaxis_v<Slices> + ...);
    +
    79
    +
    84 template <std::integral... Indices>
    +
    85 static constexpr size_t n_indices_full_v = size_t(sizeof...(Indices) + nb_integral_slices);
    +
    86
    +
    94 template <std::integral... Indices>
    +
    95 reference map(UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
    +
    96
    +
    104 template <std::integral... Indices>
    + +
    106 cmap(const UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
    +
    107
    +
    115 template <std::integral... Indices>
    +
    116 reference map_at(UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
    +
    117
    +
    125 template <std::integral... Indices>
    + +
    127 cmap_at(const UnderlyingContainer& container, const view_type& view, const Indices... indices) const;
    +
    128
    +
    130 size_t dimension(const UnderlyingContainer& container) const;
    +
    131
    +
    132 private:
    +
    133
    +
    135 template <bool IS_CONST>
    +
    136 using conditional_reference = std::conditional_t<IS_CONST, const_reference, reference>;
    +
    137
    +
    139 template <size_t I>
    +
    140 using slice_type = std::tuple_element_t<I, std::tuple<Slices...>>;
    +
    141
    +
    143 template <size_t I>
    +
    144 static consteval bool is_slice_integral();
    +
    145
    +
    147 template <size_t I>
    +
    148 static consteval bool is_slice_new_axis();
    +
    149
    +
    157 template <size_t first, size_t bound, size_t... indices>
    +
    158 struct indices_sequence_helper
    +
    159 {
    +
    160 // we add the current axis
    +
    161 using not_new_axis_type = typename indices_sequence_helper<first + 1, bound, indices..., first>::type;
    +
    162
    +
    163 // we skip the current axis
    +
    164 using new_axis_type = typename indices_sequence_helper<first + 1, bound, indices...>::type;
    +
    165
    +
    166 // NOTE: is_slice_new_axis works even if first >= sizeof...(Slices)
    +
    167 using type = std::conditional_t<is_slice_new_axis<first>(), new_axis_type, not_new_axis_type>;
    +
    168 };
    +
    169
    +
    171 template <size_t bound, size_t... indices>
    +
    172 struct indices_sequence_helper<bound, bound, indices...>
    +
    173 {
    +
    174 using type = std::index_sequence<indices...>;
    +
    175 };
    +
    176
    +
    178 template <size_t bound>
    +
    179 using indices_sequence = indices_sequence_helper<0, bound>::type;
    +
    180
    +
    196 template <size_t I, std::integral Index>
    +
    197 size_t map_ith_index(const view_type& view, const Index i) const;
    +
    198
    +
    212 template <bool IS_CONST, access_t ACCESS, std::integral FirstIndice, std::integral... OtherIndices>
    +
    213 conditional_reference<IS_CONST> map_main(
    +
    214 std::bool_constant<IS_CONST> /* is_const */,
    +
    215 std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
    +
    216 std::integral_constant<access_t, ACCESS> /* access */,
    +
    217 const view_type& view,
    +
    218 const FirstIndice firstIndice,
    +
    219 const OtherIndices... otherIndices
    +
    220 ) const;
    +
    221
    +
    232 template <bool IS_CONST, access_t ACCESS>
    +
    233 conditional_reference<IS_CONST> map_main(
    +
    234 std::bool_constant<IS_CONST> /* is_const */,
    +
    235 std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
    +
    236 std::integral_constant<access_t, ACCESS> /* access */,
    +
    237 const view_type& view
    +
    238 ) const;
    +
    239
    +
    254 template <bool IS_CONST, access_t ACCESS, size_t n_indices, size_t... Is>
    +
    255 conditional_reference<IS_CONST> map_all_indices(
    +
    256 std::bool_constant<IS_CONST> /* is_const */,
    +
    257 std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
    +
    258 std::integral_constant<access_t, ACCESS> /* access */,
    +
    259 const view_type& view,
    +
    260 std::index_sequence<Is...> /* is_seq */,
    +
    261 const std::array<size_t, n_indices>& indices
    +
    262 ) const;
    +
    263
    +
    265 template <std::integral... Indices>
    +
    266 std::array<size_t, n_indices_full_v<Indices...>> get_indices_full(const Indices... indices) const;
    +
    267 };
    +
    +
    268
    +
    269 /*******************************
    +
    270 * index_mapper implementation *
    +
    271 *******************************/
    +
    272
    +
    273 template <class UnderlyingContainer, class... Slices>
    +
    274 template <size_t I>
    +
    275 consteval bool index_mapper<xt::xview<UnderlyingContainer, Slices...>>::is_slice_integral()
    +
    276 {
    +
    277 if constexpr (I < sizeof...(Slices))
    +
    278 {
    +
    279 return std::is_integral_v<slice_type<I>>;
    +
    280 }
    +
    281 else
    +
    282 {
    +
    283 return false;
    +
    284 }
    +
    285 }
    +
    286
    +
    287 template <class UnderlyingContainer, class... Slices>
    +
    288 template <size_t I>
    +
    289 consteval bool index_mapper<xt::xview<UnderlyingContainer, Slices...>>::is_slice_new_axis()
    +
    290 {
    +
    291 if constexpr (I < sizeof...(Slices))
    +
    292 {
    +
    293 return xt::detail::is_newaxis_v<slice_type<I>>;
    +
    294 }
    +
    295 else
    +
    296 {
    +
    297 return false;
    +
    298 }
    +
    299 }
    +
    300
    +
    301 template <class UnderlyingContainer, class... Slices>
    +
    302 template <std::integral... Indices>
    +
    303 auto
    +
    304 index_mapper<xt::xview<UnderlyingContainer, Slices...>>::get_indices_full(const Indices... indices) const
    +
    305 -> std::array<size_t, n_indices_full_v<Indices...>>
    +
    306 {
    +
    307 constexpr size_t n_indices_full = n_indices_full_v<Indices...>;
    +
    308
    +
    309 std::array<size_t, sizeof...(indices)> args{size_t(indices)...};
    +
    310 std::array<size_t, n_indices_full> args_full;
    +
    311
    +
    312 const auto fill_args_full = [&args_full, &args]<size_t... Is>(std::index_sequence<Is...>)
    +
    313 {
    +
    314 auto it = std::cbegin(args);
    +
    315
    +
    316 ((args_full[Is] = (is_slice_integral<Is>()) ? size_t(0) : *it++), ...);
    +
    317 };
    +
    318
    +
    319 fill_args_full(std::make_index_sequence<n_indices_full>{});
    +
    320
    +
    321 return args_full;
    +
    322 }
    +
    323
    +
    324 template <class UnderlyingContainer, class... Slices>
    +
    325 template <std::integral... Indices>
    +
    326 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map(
    +
    327 UnderlyingContainer& container,
    +
    328 const view_type& view,
    +
    329 const Indices... indices
    +
    330 ) const -> reference
    +
    331 {
    +
    332 return map_main(
    +
    333 std::false_type{},
    +
    334 container,
    +
    335 std::integral_constant<access_t, access_t::UNSAFE>{},
    +
    336 view,
    +
    337 indices...
    +
    338 );
    +
    339 }
    +
    340
    +
    341 template <class UnderlyingContainer, class... Slices>
    +
    342 template <std::integral... Indices>
    +
    343 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::cmap(
    +
    344 const UnderlyingContainer& container,
    +
    345 const view_type& view,
    +
    346 const Indices... indices
    +
    347 ) const -> const_reference
    +
    348 {
    +
    349 return map_main(
    +
    350 std::true_type{},
    +
    351 container,
    +
    352 std::integral_constant<access_t, access_t::UNSAFE>{},
    +
    353 view,
    +
    354 indices...
    +
    355 );
    +
    356 }
    +
    357
    +
    358 template <class UnderlyingContainer, class... Slices>
    +
    359 template <std::integral... Indices>
    +
    360 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_at(
    +
    361 UnderlyingContainer& container,
    +
    362 const view_type& view,
    +
    363 const Indices... indices
    +
    364 ) const -> reference
    +
    365 {
    +
    366 return map_main(
    +
    367 std::false_type{},
    +
    368 container,
    +
    369 std::integral_constant<access_t, access_t::SAFE>{},
    +
    370 view,
    +
    371 indices...
    +
    372 );
    +
    373 }
    +
    374
    +
    375 template <class UnderlyingContainer, class... Slices>
    +
    376 template <std::integral... Indices>
    +
    377 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::cmap_at(
    +
    378 const UnderlyingContainer& container,
    +
    379 const view_type& view,
    +
    380 const Indices... indices
    +
    381 ) const -> const_reference
    +
    382 {
    +
    383 return map_main(
    +
    384 std::true_type{},
    +
    385 container,
    +
    386 std::integral_constant<access_t, access_t::SAFE>{},
    +
    387 view,
    +
    388 indices...
    +
    389 );
    +
    390 }
    +
    391
    +
    392 template <class UnderlyingContainer, class... Slices>
    +
    393 template <bool IS_CONST, access_t ACCESS, std::integral FirstIndice, std::integral... OtherIndices>
    +
    394 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_main(
    +
    395 std::bool_constant<IS_CONST> is_const,
    +
    396 std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
    +
    397 std::integral_constant<access_t, ACCESS> access,
    +
    398 const view_type& view,
    +
    399 const FirstIndice firstIndice,
    +
    400 const OtherIndices... otherIndices
    +
    401 ) const -> conditional_reference<IS_CONST>
    +
    402 {
    +
    403 constexpr size_t n_indices_full = n_indices_full_v<FirstIndice, OtherIndices...>;
    +
    404
    +
    405 constexpr size_t underlying_n_dimensions = xt::static_dimension<
    +
    406 typename std::decay_t<UnderlyingContainer>::shape_type>::value;
    +
    407
    +
    408 // If there is too many indices, we need to drop the first ones.
    +
    409 // If the number of dimensions of the underlying container is known at compile time we can drop them
    +
    410 // at compile time Else a runtime-test is requires, which, breaks vectorization.
    +
    411 // I don't know if we can do it in another way.
    +
    412
    +
    413 if constexpr (underlying_n_dimensions != size_t(-1))
    +
    414 {
    +
    415 // the number of dimensions of the underlying container is known at compile time.
    +
    416 constexpr size_t n_dimensions = underlying_n_dimensions - nb_integral_slices + nb_new_axis_slices;
    +
    417
    +
    418 // we can perform compile time checks
    +
    419 if constexpr (1 + sizeof...(OtherIndices) > n_dimensions)
    +
    420 {
    +
    421 return map_main(is_const, container, access, view, otherIndices...);
    +
    422 }
    +
    423 else
    +
    424 {
    +
    425 return map_all_indices(
    +
    426 is_const,
    +
    427 container,
    +
    428 access,
    +
    429 view,
    +
    430 indices_sequence<n_indices_full>{},
    +
    431 get_indices_full(firstIndice, otherIndices...)
    +
    432 );
    +
    433 }
    +
    434 }
    +
    435 else
    +
    436 {
    +
    437 // we need execution time checks
    +
    438 if (1 + sizeof...(OtherIndices) > dimension(container))
    +
    439 {
    +
    440 return map_main(is_const, container, access, view, otherIndices...);
    +
    441 }
    +
    442 else
    +
    443 {
    +
    444 return map_all_indices(
    +
    445 is_const,
    +
    446 container,
    +
    447 access,
    +
    448 view,
    +
    449 indices_sequence<n_indices_full>{},
    +
    450 get_indices_full(firstIndice, otherIndices...)
    +
    451 );
    +
    452 }
    +
    453 }
    +
    454 }
    +
    455
    +
    456 template <class UnderlyingContainer, class... Slices>
    +
    457 template <bool IS_CONST, access_t ACCESS>
    +
    458 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_main(
    +
    459 std::bool_constant<IS_CONST> is_const,
    +
    460 std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
    +
    461 std::integral_constant<access_t, ACCESS> access,
    +
    462 const view_type& view
    +
    463 ) const -> conditional_reference<IS_CONST>
    +
    464 {
    +
    465 constexpr size_t n_indices_full = n_indices_full_v<>;
    +
    466
    +
    467 return map_all_indices(
    +
    468 is_const,
    +
    469 container,
    +
    470 access,
    +
    471 view,
    +
    472 indices_sequence<n_indices_full>{},
    +
    473 get_indices_full()
    +
    474 );
    +
    475 }
    +
    476
    +
    477 template <class UnderlyingContainer, class... Slices>
    +
    478 template <bool IS_CONST, access_t ACCESS, size_t n_indices, size_t... Is>
    +
    479 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_all_indices(
    +
    480 std::bool_constant<IS_CONST> /* is_const */,
    +
    481 std::conditional_t<IS_CONST, const UnderlyingContainer&, UnderlyingContainer&> container,
    +
    482 std::integral_constant<access_t, ACCESS> /* access */,
    +
    483 const view_type& view,
    +
    484 std::index_sequence<Is...> /* is_seq */,
    +
    485 const std::array<size_t, n_indices>& indices
    +
    486 ) const -> conditional_reference<IS_CONST>
    +
    487 {
    +
    488 if constexpr (ACCESS == access_t::SAFE)
    +
    489 {
    +
    490 return container.at(map_ith_index<Is>(view, indices[Is])...);
    +
    491 }
    +
    492 else
    +
    493 {
    +
    494 return container(map_ith_index<Is>(view, indices[Is])...);
    +
    495 }
    +
    496 }
    +
    497
    +
    498 template <class UnderlyingContainer, class... Slices>
    +
    499 template <size_t I, std::integral Index>
    +
    500 auto
    +
    501 index_mapper<xt::xview<UnderlyingContainer, Slices...>>::map_ith_index(const view_type& view, const Index i) const
    +
    502 -> size_t
    +
    503 {
    +
    504 if constexpr (I < sizeof...(Slices))
    +
    505 {
    +
    506 // if the slice is explicitly specified, use it
    +
    507 using current_slice = std::tuple_element_t<I, std::tuple<Slices...>>;
    +
    508
    +
    509 static_assert(not xt::detail::is_newaxis_v<current_slice>);
    +
    510
    +
    511 const auto& slice = std::get<I>(view.slices());
    +
    512
    +
    513 if constexpr (std::is_integral_v<current_slice>)
    +
    514 {
    +
    515 assert(i == 0);
    +
    516 return size_t(slice);
    +
    517 }
    +
    518 else
    +
    519 {
    +
    520 assert(i < slice.size());
    +
    521 return size_t(slice(i));
    +
    522 }
    +
    523 }
    +
    524 else
    +
    525 {
    +
    526 // else assume xt::all
    +
    527 return i;
    +
    528 }
    +
    529 }
    +
    530
    +
    531 template <class UnderlyingContainer, class... Slices>
    +
    +
    532 auto index_mapper<xt::xview<UnderlyingContainer, Slices...>>::dimension(const UnderlyingContainer& container
    +
    533 ) const -> size_t
    +
    534 {
    +
    535 return container.dimension() - nb_integral_slices + nb_new_axis_slices;
    +
    536 }
    +
    +
    537
    +
    538} // namespace xt
    +
    539
    +
    540#endif // XTENSOR_INDEX_MAPPER_HPP
    +
    xt::xview< UnderlyingContainer, Slices... > view_type
    The view type this mapper works with.
    +
    static constexpr size_t nb_integral_slices
    Number of slices that are integral constants (fixed indices)
    +
    typename xt::xview< UnderlyingContainer, Slices... >::const_reference const_reference
    Const reference type of the underlying view.
    +
    const_reference cmap_at(const UnderlyingContainer &container, const view_type &view, const Indices... indices) const
    Map view indices to container const_reference using SAFE access.
    +
    typename xt::xview< UnderlyingContainer, Slices... >::reference reference
    Reference type of the underlying view.
    +
    size_t dimension(const UnderlyingContainer &container) const
    Return the dimensionality of the view.
    +
    const_reference cmap(const UnderlyingContainer &container, const view_type &view, const Indices... indices) const
    Map view indices to container const_reference using UNSAFE access.
    +
    static constexpr size_t nb_new_axis_slices
    Number of slices that are xt::newaxis (insert a dimension)
    +
    static constexpr size_t n_indices_full_v
    Compute how many indices are needed to address the underlying container when given N indices in the v...
    +
    static constexpr size_t n_slices
    Total number of explicitly passed slices in the view.
    +
    reference map_at(UnderlyingContainer &container, const view_type &view, const Indices... indices) const
    Map view indices to container reference using SAFE access.
    +
    reference map(UnderlyingContainer &container, const view_type &view, const Indices... indices) const
    Map view indices to container reference using UNSAFE access.
    +
    Multidimensional view with tensor semantic.
    Definition xview.hpp:365
    +
    standard mathematical functions for xexpressions
    +
    access_t
    Defines the access policy for the underlying container.
    +
    @ UNSAFE
    Use operator() accessor (no bounds checking).
    +
    @ SAFE
    Use .at() accessor (bounds checked).
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    +
    A helper class for mapping indices between views and their underlying containers.
    +
    +
    + + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 000000000..875ada738 --- /dev/null +++ b/jquery.js @@ -0,0 +1,204 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e} +var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp( +"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType +}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c +)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){ +return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll( +":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id") +)&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push( +"\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test( +a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null, +null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne +).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for( +var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n; +return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0, +r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r] +,C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each( +function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r, +"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})} +),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each( +"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t +){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t +]=y.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i}, +getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within, +s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})), +this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t +).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split( +","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add( +this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{ +width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(), +!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){ +this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height +,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e, +i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left +)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e +){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0), +i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth( +)-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e, +function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0 +]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){ +targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se", +"n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if( +session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)} +closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if( +session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE, +function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset); +tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList, +finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight())); +return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")} +function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(), +elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight, +viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b, +"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)), +mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend( +$.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy( +this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData( +"smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id" +).indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?( +this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for( +var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){ +return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if(( +!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&( +this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0 +]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass( +"highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){ +t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]" +)||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){ +t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"), +a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i, +downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2) +)&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t +)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0), +canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}}, +rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})} +return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1, +bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); diff --git a/minus.svg b/minus.svg new file mode 100644 index 000000000..f70d0c1a1 --- /dev/null +++ b/minus.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/minusd.svg b/minusd.svg new file mode 100644 index 000000000..5f8e87962 --- /dev/null +++ b/minusd.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 000000000..7f11da982 --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - a -

      +
    • abs() : xt
    • +
    • access_t : xt
    • +
    • accumulate() : xt
    • +
    • acos() : xt
    • +
    • acosh() : xt
    • +
    • adapt() : xt
    • +
    • adapt_smart_ptr() : xt
    • +
    • all() : xt
    • +
    • allclose() : xt
    • +
    • amax() : xt
    • +
    • amin() : xt
    • +
    • angle() : xt
    • +
    • any() : xt
    • +
    • arange() : xt
    • +
    • arg() : xt
    • +
    • argmax() : xt
    • +
    • argmin() : xt
    • +
    • argpartition() : xt
    • +
    • argsort() : xt
    • +
    • argwhere() : xt
    • +
    • as_strided() : xt
    • +
    • asin() : xt
    • +
    • asinh() : xt
    • +
    • atan() : xt
    • +
    • atan2() : xt
    • +
    • atanh() : xt
    • +
    • atleast_1d() : xt
    • +
    • atleast_2d() : xt
    • +
    • atleast_3d() : xt
    • +
    • atleast_Nd() : xt
    • +
    • average() : xt
    • +
    • axis_begin() : xt
    • +
    • axis_end() : xt
    • +
    • axis_slice_begin() : xt
    • +
    • axis_slice_end() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_b.html b/namespacemembers_b.html new file mode 100644 index 000000000..fbb8ead47 --- /dev/null +++ b/namespacemembers_b.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - b -

      +
    • bin_items() : xt
    • +
    • bincount() : xt
    • +
    • broadcast() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_c.html b/namespacemembers_c.html new file mode 100644 index 000000000..dec242e44 --- /dev/null +++ b/namespacemembers_c.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - c -

      +
    • cast() : xt
    • +
    • cbrt() : xt
    • +
    • ceil() : xt
    • +
    • chunked_array() : xt
    • +
    • clip() : xt
    • +
    • col() : xt
    • +
    • compute_layout() : xt
    • +
    • compute_strides() : xt
    • +
    • concatenate() : xt
    • +
    • conditional_cast() : xt
    • +
    • conj() : xt
    • +
    • cos() : xt
    • +
    • cosh() : xt
    • +
    • cov() : xt
    • +
    • cube() : xt
    • +
    • cumprod() : xt
    • +
    • cumsum() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_d.html b/namespacemembers_d.html new file mode 100644 index 000000000..a5ab1dbbc --- /dev/null +++ b/namespacemembers_d.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - d -

      +
    • data_offset() : xt
    • +
    • deg2rad() : xt
    • +
    • degrees() : xt
    • +
    • diag() : xt
    • +
    • diagonal() : xt
    • +
    • diff() : xt
    • +
    • digitize() : xt
    • +
    • drop() : xt
    • +
    • dump_csv() : xt
    • +
    • dump_npy() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_dup.js b/namespacemembers_dup.js new file mode 100644 index 000000000..eef6cf068 --- /dev/null +++ b/namespacemembers_dup.js @@ -0,0 +1,27 @@ +var namespacemembers_dup = +[ + [ "a", "namespacemembers.html", null ], + [ "b", "namespacemembers_b.html", null ], + [ "c", "namespacemembers_c.html", null ], + [ "d", "namespacemembers_d.html", null ], + [ "e", "namespacemembers_e.html", null ], + [ "f", "namespacemembers_f.html", null ], + [ "g", "namespacemembers_g.html", null ], + [ "h", "namespacemembers_h.html", null ], + [ "i", "namespacemembers_i.html", null ], + [ "k", "namespacemembers_k.html", null ], + [ "l", "namespacemembers_l.html", null ], + [ "m", "namespacemembers_m.html", null ], + [ "n", "namespacemembers_n.html", null ], + [ "o", "namespacemembers_o.html", null ], + [ "p", "namespacemembers_p.html", null ], + [ "q", "namespacemembers_q.html", null ], + [ "r", "namespacemembers_r.html", null ], + [ "s", "namespacemembers_s.html", null ], + [ "t", "namespacemembers_t.html", null ], + [ "u", "namespacemembers_u.html", null ], + [ "v", "namespacemembers_v.html", null ], + [ "w", "namespacemembers_w.html", null ], + [ "x", "namespacemembers_x.html", null ], + [ "z", "namespacemembers_z.html", null ] +]; \ No newline at end of file diff --git a/namespacemembers_e.html b/namespacemembers_e.html new file mode 100644 index 000000000..3db6d7cca --- /dev/null +++ b/namespacemembers_e.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - e -

      +
    • ellipsis() : xt
    • +
    • empty() : xt
    • +
    • empty_like() : xt
    • +
    • equal() : xt
    • +
    • erf() : xt
    • +
    • erfc() : xt
    • +
    • eval() : xt
    • +
    • exp() : xt
    • +
    • exp2() : xt
    • +
    • expand_dims() : xt
    • +
    • expm1() : xt
    • +
    • eye() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html new file mode 100644 index 000000000..fc6b54d67 --- /dev/null +++ b/namespacemembers_enum.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace enums with links to the namespaces they belong to:
      +
    • access_t : xt
    • +
    • histogram_algorithm : xt
    • +
    • layout_type : xt
    • +
    • pad_mode : xt
    • +
    • quantile_method : xt
    • +
    • sorting_method : xt
    • +
    • stride_type : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_f.html b/namespacemembers_f.html new file mode 100644 index 000000000..6beee67b3 --- /dev/null +++ b/namespacemembers_f.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - f -

      +
    • fabs() : xt
    • +
    • fdim() : xt
    • +
    • filter() : xt
    • +
    • filtration() : xt
    • +
    • flatnonzero() : xt
    • +
    • flatten() : xt
    • +
    • flatten_indices() : xt
    • +
    • flip() : xt
    • +
    • floor() : xt
    • +
    • fma() : xt
    • +
    • fmax() : xt
    • +
    • fmin() : xt
    • +
    • fmod() : xt
    • +
    • from_indices() : xt
    • +
    • from_json() : xt
    • +
    • full_like() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html new file mode 100644 index 000000000..ae29e1a70 --- /dev/null +++ b/namespacemembers_func.html @@ -0,0 +1,152 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - a -

      +
    • abs() : xt
    • +
    • accumulate() : xt
    • +
    • acos() : xt
    • +
    • acosh() : xt
    • +
    • adapt() : xt
    • +
    • adapt_smart_ptr() : xt
    • +
    • all() : xt
    • +
    • allclose() : xt
    • +
    • amax() : xt
    • +
    • amin() : xt
    • +
    • angle() : xt
    • +
    • any() : xt
    • +
    • arange() : xt
    • +
    • arg() : xt
    • +
    • argmax() : xt
    • +
    • argmin() : xt
    • +
    • argpartition() : xt
    • +
    • argsort() : xt
    • +
    • argwhere() : xt
    • +
    • as_strided() : xt
    • +
    • asin() : xt
    • +
    • asinh() : xt
    • +
    • atan() : xt
    • +
    • atan2() : xt
    • +
    • atanh() : xt
    • +
    • atleast_1d() : xt
    • +
    • atleast_2d() : xt
    • +
    • atleast_3d() : xt
    • +
    • atleast_Nd() : xt
    • +
    • average() : xt
    • +
    • axis_begin() : xt
    • +
    • axis_end() : xt
    • +
    • axis_slice_begin() : xt
    • +
    • axis_slice_end() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func.js b/namespacemembers_func.js new file mode 100644 index 000000000..1d1a2bb41 --- /dev/null +++ b/namespacemembers_func.js @@ -0,0 +1,27 @@ +var namespacemembers_func = +[ + [ "a", "namespacemembers_func.html", null ], + [ "b", "namespacemembers_func_b.html", null ], + [ "c", "namespacemembers_func_c.html", null ], + [ "d", "namespacemembers_func_d.html", null ], + [ "e", "namespacemembers_func_e.html", null ], + [ "f", "namespacemembers_func_f.html", null ], + [ "g", "namespacemembers_func_g.html", null ], + [ "h", "namespacemembers_func_h.html", null ], + [ "i", "namespacemembers_func_i.html", null ], + [ "k", "namespacemembers_func_k.html", null ], + [ "l", "namespacemembers_func_l.html", null ], + [ "m", "namespacemembers_func_m.html", null ], + [ "n", "namespacemembers_func_n.html", null ], + [ "o", "namespacemembers_func_o.html", null ], + [ "p", "namespacemembers_func_p.html", null ], + [ "q", "namespacemembers_func_q.html", null ], + [ "r", "namespacemembers_func_r.html", null ], + [ "s", "namespacemembers_func_s.html", null ], + [ "t", "namespacemembers_func_t.html", null ], + [ "u", "namespacemembers_func_u.html", null ], + [ "v", "namespacemembers_func_v.html", null ], + [ "w", "namespacemembers_func_w.html", null ], + [ "x", "namespacemembers_func_x.html", null ], + [ "z", "namespacemembers_func_z.html", null ] +]; \ No newline at end of file diff --git a/namespacemembers_func_b.html b/namespacemembers_func_b.html new file mode 100644 index 000000000..5df94d936 --- /dev/null +++ b/namespacemembers_func_b.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - b -

      +
    • bin_items() : xt
    • +
    • bincount() : xt
    • +
    • broadcast() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_c.html b/namespacemembers_func_c.html new file mode 100644 index 000000000..bf9dd975c --- /dev/null +++ b/namespacemembers_func_c.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - c -

      +
    • cast() : xt
    • +
    • cbrt() : xt
    • +
    • ceil() : xt
    • +
    • chunked_array() : xt
    • +
    • clip() : xt
    • +
    • col() : xt
    • +
    • compute_layout() : xt
    • +
    • compute_strides() : xt
    • +
    • concatenate() : xt
    • +
    • conditional_cast() : xt
    • +
    • conj() : xt
    • +
    • cos() : xt
    • +
    • cosh() : xt
    • +
    • cov() : xt
    • +
    • cube() : xt
    • +
    • cumprod() : xt
    • +
    • cumsum() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_d.html b/namespacemembers_func_d.html new file mode 100644 index 000000000..a0cad43a1 --- /dev/null +++ b/namespacemembers_func_d.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - d -

      +
    • data_offset() : xt
    • +
    • deg2rad() : xt
    • +
    • degrees() : xt
    • +
    • diag() : xt
    • +
    • diagonal() : xt
    • +
    • diff() : xt
    • +
    • digitize() : xt
    • +
    • drop() : xt
    • +
    • dump_csv() : xt
    • +
    • dump_npy() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_e.html b/namespacemembers_func_e.html new file mode 100644 index 000000000..6e9dc4dd4 --- /dev/null +++ b/namespacemembers_func_e.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - e -

      +
    • ellipsis() : xt
    • +
    • empty() : xt
    • +
    • empty_like() : xt
    • +
    • equal() : xt
    • +
    • erf() : xt
    • +
    • erfc() : xt
    • +
    • eval() : xt
    • +
    • exp() : xt
    • +
    • exp2() : xt
    • +
    • expand_dims() : xt
    • +
    • expm1() : xt
    • +
    • eye() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_f.html b/namespacemembers_func_f.html new file mode 100644 index 000000000..61d98f867 --- /dev/null +++ b/namespacemembers_func_f.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - f -

      +
    • fabs() : xt
    • +
    • fdim() : xt
    • +
    • filter() : xt
    • +
    • filtration() : xt
    • +
    • flatnonzero() : xt
    • +
    • flatten() : xt
    • +
    • flatten_indices() : xt
    • +
    • flip() : xt
    • +
    • floor() : xt
    • +
    • fma() : xt
    • +
    • fmax() : xt
    • +
    • fmin() : xt
    • +
    • fmod() : xt
    • +
    • from_indices() : xt
    • +
    • from_json() : xt
    • +
    • full_like() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_g.html b/namespacemembers_func_g.html new file mode 100644 index 000000000..2248dc84a --- /dev/null +++ b/namespacemembers_func_g.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - g -

      +
    • greater() : xt
    • +
    • greater_equal() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_h.html b/namespacemembers_func_h.html new file mode 100644 index 000000000..f501103a8 --- /dev/null +++ b/namespacemembers_func_h.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - h -

      +
    • has_shape() : xt
    • +
    • histogram() : xt
    • +
    • histogram_bin_edges() : xt
    • +
    • hsplit() : xt
    • +
    • hstack() : xt
    • +
    • hypot() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_i.html b/namespacemembers_func_i.html new file mode 100644 index 000000000..bcf10593e --- /dev/null +++ b/namespacemembers_func_i.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - i -

      +
    • imag() : xt
    • +
    • in1d() : xt
    • +
    • in_bounds() : xt
    • +
    • index_view() : xt
    • +
    • interp() : xt
    • +
    • isclose() : xt
    • +
    • isfinite() : xt
    • +
    • isin() : xt
    • +
    • isinf() : xt
    • +
    • isnan() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_k.html b/namespacemembers_func_k.html new file mode 100644 index 000000000..7d2a97c47 --- /dev/null +++ b/namespacemembers_func_k.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - k -

      +
    • keep() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_l.html b/namespacemembers_func_l.html new file mode 100644 index 000000000..ea097e60f --- /dev/null +++ b/namespacemembers_func_l.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - l -

      +
    • left_shift() : xt
    • +
    • less() : xt
    • +
    • less_equal() : xt
    • +
    • lgamma() : xt
    • +
    • linspace() : xt
    • +
    • load_csv() : xt
    • +
    • load_npy() : xt
    • +
    • log() : xt
    • +
    • log10() : xt
    • +
    • log1p() : xt
    • +
    • log2() : xt
    • +
    • logspace() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_m.html b/namespacemembers_func_m.html new file mode 100644 index 000000000..40427d9be --- /dev/null +++ b/namespacemembers_func_m.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - m -

      +
    • make_lambda_xfunction() : xt
    • +
    • make_xshared() : xt
    • +
    • maximum() : xt
    • +
    • mean() : xt
    • +
    • median() : xt
    • +
    • meshgrid() : xt
    • +
    • minimum() : xt
    • +
    • minmax() : xt
    • +
    • moveaxis() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_n.html b/namespacemembers_func_n.html new file mode 100644 index 000000000..cc2a7b082 --- /dev/null +++ b/namespacemembers_func_n.html @@ -0,0 +1,143 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - n -

      +
    • nan_to_num() : xt
    • +
    • nancumprod() : xt
    • +
    • nancumsum() : xt
    • +
    • nanmax() : xt
    • +
    • nanmean() : xt
    • +
    • nanmin() : xt
    • +
    • nanprod() : xt
    • +
    • nanstd() : xt
    • +
    • nansum() : xt
    • +
    • nanvar() : xt
    • +
    • nearbyint() : xt
    • +
    • newaxis() : xt
    • +
    • nonzero() : xt
    • +
    • norm() : xt
    • +
    • norm_induced_l1() : xt
    • +
    • norm_induced_linf() : xt
    • +
    • norm_l0() : xt
    • +
    • norm_l1() : xt
    • +
    • norm_l2() : xt
    • +
    • norm_linf() : xt
    • +
    • norm_lp() : xt
    • +
    • norm_lp_to_p() : xt
    • +
    • norm_sq() : xt
    • +
    • normalize_periodic() : xt
    • +
    • not_equal() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_o.html b/namespacemembers_func_o.html new file mode 100644 index 000000000..2ad5ffe18 --- /dev/null +++ b/namespacemembers_func_o.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - o -

      +
    • ones() : xt
    • +
    • ones_like() : xt
    • +
    • operator!() : xt
    • +
    • operator!=() : xt
    • +
    • operator%() : xt
    • +
    • operator&() : xt
    • +
    • operator&&() : xt
    • +
    • operator*() : xt
    • +
    • operator+() : xt
    • +
    • operator-() : xt
    • +
    • operator/() : xt
    • +
    • operator<() : xt
    • +
    • operator<<() : xt
    • +
    • operator<=() : xt
    • +
    • operator==() : xt
    • +
    • operator>() : xt
    • +
    • operator>=() : xt
    • +
    • operator>>() : xt
    • +
    • operator^() : xt
    • +
    • operator|() : xt
    • +
    • operator||() : xt
    • +
    • operator~() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_p.html b/namespacemembers_func_p.html new file mode 100644 index 000000000..34c20d633 --- /dev/null +++ b/namespacemembers_func_p.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - p -

      +
    • pad() : xt
    • +
    • partition() : xt
    • +
    • pow() : xt
    • +
    • prod() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_q.html b/namespacemembers_func_q.html new file mode 100644 index 000000000..1a4013269 --- /dev/null +++ b/namespacemembers_func_q.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - q -

      +
    • quantile() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_r.html b/namespacemembers_func_r.html new file mode 100644 index 000000000..64ff2aee0 --- /dev/null +++ b/namespacemembers_func_r.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - r -

      +
    • rad2deg() : xt
    • +
    • radians() : xt
    • +
    • range() : xt
    • +
    • ravel() : xt
    • +
    • ravel_indices() : xt
    • +
    • real() : xt
    • +
    • reduce() : xt
    • +
    • remainder() : xt
    • +
    • repeat() : xt
    • +
    • reshape_view() : xt
    • +
    • right_shift() : xt
    • +
    • rint() : xt
    • +
    • roll() : xt
    • +
    • rot90() : xt
    • +
    • round() : xt
    • +
    • row() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_s.html b/namespacemembers_func_s.html new file mode 100644 index 000000000..48cbfe5ac --- /dev/null +++ b/namespacemembers_func_s.html @@ -0,0 +1,137 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - s -

      +
    • same_shape() : xt
    • +
    • searchsorted() : xt
    • +
    • setdiff1d() : xt
    • +
    • shape() : xt
    • +
    • share() : xt
    • +
    • sign() : xt
    • +
    • sin() : xt
    • +
    • sinh() : xt
    • +
    • sort() : xt
    • +
    • split() : xt
    • +
    • sqrt() : xt
    • +
    • square() : xt
    • +
    • squeeze() : xt
    • +
    • stack() : xt
    • +
    • stddev() : xt
    • +
    • strided_view() : xt
    • +
    • strides() : xt
    • +
    • sum() : xt
    • +
    • swapaxes() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_t.html b/namespacemembers_func_t.html new file mode 100644 index 000000000..7b6365809 --- /dev/null +++ b/namespacemembers_func_t.html @@ -0,0 +1,129 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - t -

      +
    • tan() : xt
    • +
    • tanh() : xt
    • +
    • tgamma() : xt
    • +
    • tile() : xt
    • +
    • to_json() : xt
    • +
    • transpose() : xt
    • +
    • trapz() : xt
    • +
    • tril() : xt
    • +
    • trim_zeros() : xt
    • +
    • triu() : xt
    • +
    • trunc() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_u.html b/namespacemembers_func_u.html new file mode 100644 index 000000000..4cd551241 --- /dev/null +++ b/namespacemembers_func_u.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - u -

      +
    • unique() : xt
    • +
    • unwrap() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_v.html b/namespacemembers_func_v.html new file mode 100644 index 000000000..80a62fe1d --- /dev/null +++ b/namespacemembers_func_v.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - v -

      +
    • variance() : xt
    • +
    • view() : xt
    • +
    • vsplit() : xt
    • +
    • vstack() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_w.html b/namespacemembers_func_w.html new file mode 100644 index 000000000..22487f7b0 --- /dev/null +++ b/namespacemembers_func_w.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - w -

      +
    • where() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_x.html b/namespacemembers_func_x.html new file mode 100644 index 000000000..d6ac9734a --- /dev/null +++ b/namespacemembers_func_x.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - x -

      +
    • xtuple() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_func_z.html b/namespacemembers_func_z.html new file mode 100644 index 000000000..a2bf9b65b --- /dev/null +++ b/namespacemembers_func_z.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace functions with links to the namespaces they belong to:
    + +

    - z -

      +
    • zeros() : xt
    • +
    • zeros_like() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_g.html b/namespacemembers_g.html new file mode 100644 index 000000000..c7dc7083a --- /dev/null +++ b/namespacemembers_g.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - g -

      +
    • greater() : xt
    • +
    • greater_equal() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_h.html b/namespacemembers_h.html new file mode 100644 index 000000000..cb08baeda --- /dev/null +++ b/namespacemembers_h.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - h -

      +
    • has_shape() : xt
    • +
    • histogram() : xt
    • +
    • histogram_algorithm : xt
    • +
    • histogram_bin_edges() : xt
    • +
    • hsplit() : xt
    • +
    • hstack() : xt
    • +
    • hypot() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_i.html b/namespacemembers_i.html new file mode 100644 index 000000000..14989674a --- /dev/null +++ b/namespacemembers_i.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - i -

      +
    • imag() : xt
    • +
    • in1d() : xt
    • +
    • in_bounds() : xt
    • +
    • index_view() : xt
    • +
    • interp() : xt
    • +
    • isclose() : xt
    • +
    • isfinite() : xt
    • +
    • isin() : xt
    • +
    • isinf() : xt
    • +
    • isnan() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_k.html b/namespacemembers_k.html new file mode 100644 index 000000000..2c2800525 --- /dev/null +++ b/namespacemembers_k.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - k -

      +
    • keep() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_l.html b/namespacemembers_l.html new file mode 100644 index 000000000..4dad6227f --- /dev/null +++ b/namespacemembers_l.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - l -

      +
    • layout_type : xt
    • +
    • left_shift() : xt
    • +
    • less() : xt
    • +
    • less_equal() : xt
    • +
    • lgamma() : xt
    • +
    • linspace() : xt
    • +
    • load_csv() : xt
    • +
    • load_npy() : xt
    • +
    • log() : xt
    • +
    • log10() : xt
    • +
    • log1p() : xt
    • +
    • log2() : xt
    • +
    • logspace() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_m.html b/namespacemembers_m.html new file mode 100644 index 000000000..5fd68fc63 --- /dev/null +++ b/namespacemembers_m.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - m -

      +
    • make_lambda_xfunction() : xt
    • +
    • make_xshared() : xt
    • +
    • maximum() : xt
    • +
    • mean() : xt
    • +
    • median() : xt
    • +
    • meshgrid() : xt
    • +
    • minimum() : xt
    • +
    • minmax() : xt
    • +
    • moveaxis() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_n.html b/namespacemembers_n.html new file mode 100644 index 000000000..4245e1aef --- /dev/null +++ b/namespacemembers_n.html @@ -0,0 +1,144 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - n -

      +
    • nan_to_num() : xt
    • +
    • nancumprod() : xt
    • +
    • nancumsum() : xt
    • +
    • nanmax() : xt
    • +
    • nanmean() : xt
    • +
    • nanmin() : xt
    • +
    • nanprod() : xt
    • +
    • nanstd() : xt
    • +
    • nansum() : xt
    • +
    • nanvar() : xt
    • +
    • nearbyint() : xt
    • +
    • newaxis() : xt
    • +
    • nonzero() : xt
    • +
    • norm() : xt
    • +
    • norm_induced_l1() : xt
    • +
    • norm_induced_linf() : xt
    • +
    • norm_l0() : xt
    • +
    • norm_l1() : xt
    • +
    • norm_l2() : xt
    • +
    • norm_linf() : xt
    • +
    • norm_lp() : xt
    • +
    • norm_lp_to_p() : xt
    • +
    • norm_sq() : xt
    • +
    • norm_type_t : xt
    • +
    • normalize_periodic() : xt
    • +
    • not_equal() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_o.html b/namespacemembers_o.html new file mode 100644 index 000000000..ae30b2451 --- /dev/null +++ b/namespacemembers_o.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - o -

      +
    • ones() : xt
    • +
    • ones_like() : xt
    • +
    • operator!() : xt
    • +
    • operator!=() : xt
    • +
    • operator%() : xt
    • +
    • operator&() : xt
    • +
    • operator&&() : xt
    • +
    • operator*() : xt
    • +
    • operator+() : xt
    • +
    • operator-() : xt
    • +
    • operator/() : xt
    • +
    • operator<() : xt
    • +
    • operator<<() : xt
    • +
    • operator<=() : xt
    • +
    • operator==() : xt
    • +
    • operator>() : xt
    • +
    • operator>=() : xt
    • +
    • operator>>() : xt
    • +
    • operator^() : xt
    • +
    • operator|() : xt
    • +
    • operator||() : xt
    • +
    • operator~() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_p.html b/namespacemembers_p.html new file mode 100644 index 000000000..d260d6bef --- /dev/null +++ b/namespacemembers_p.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - p -

      +
    • pad() : xt
    • +
    • pad_mode : xt
    • +
    • partition() : xt
    • +
    • pow() : xt
    • +
    • prod() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_q.html b/namespacemembers_q.html new file mode 100644 index 000000000..e62cd4f3c --- /dev/null +++ b/namespacemembers_q.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - q -

      +
    • quantile() : xt
    • +
    • quantile_method : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_r.html b/namespacemembers_r.html new file mode 100644 index 000000000..1d3f793d2 --- /dev/null +++ b/namespacemembers_r.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - r -

      +
    • rad2deg() : xt
    • +
    • radians() : xt
    • +
    • range() : xt
    • +
    • ravel() : xt
    • +
    • ravel_indices() : xt
    • +
    • real() : xt
    • +
    • reduce() : xt
    • +
    • remainder() : xt
    • +
    • repeat() : xt
    • +
    • reshape_view() : xt
    • +
    • right_shift() : xt
    • +
    • rint() : xt
    • +
    • roll() : xt
    • +
    • rot90() : xt
    • +
    • round() : xt
    • +
    • row() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_s.html b/namespacemembers_s.html new file mode 100644 index 000000000..1c7d7a01f --- /dev/null +++ b/namespacemembers_s.html @@ -0,0 +1,140 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - s -

      +
    • same_shape() : xt
    • +
    • searchsorted() : xt
    • +
    • setdiff1d() : xt
    • +
    • shape() : xt
    • +
    • share() : xt
    • +
    • sign() : xt
    • +
    • sin() : xt
    • +
    • sinh() : xt
    • +
    • sort() : xt
    • +
    • sorting_method : xt
    • +
    • split() : xt
    • +
    • sqrt() : xt
    • +
    • square() : xt
    • +
    • squared_norm_type_t : xt
    • +
    • squeeze() : xt
    • +
    • stack() : xt
    • +
    • stddev() : xt
    • +
    • stride_type : xt
    • +
    • strided_view() : xt
    • +
    • strides() : xt
    • +
    • sum() : xt
    • +
    • swapaxes() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_t.html b/namespacemembers_t.html new file mode 100644 index 000000000..6a0106d41 --- /dev/null +++ b/namespacemembers_t.html @@ -0,0 +1,129 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - t -

      +
    • tan() : xt
    • +
    • tanh() : xt
    • +
    • tgamma() : xt
    • +
    • tile() : xt
    • +
    • to_json() : xt
    • +
    • transpose() : xt
    • +
    • trapz() : xt
    • +
    • tril() : xt
    • +
    • trim_zeros() : xt
    • +
    • triu() : xt
    • +
    • trunc() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_type.html b/namespacemembers_type.html new file mode 100644 index 000000000..4b001bffd --- /dev/null +++ b/namespacemembers_type.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace typedefs with links to the namespaces they belong to:
      +
    • norm_type_t : xt
    • +
    • squared_norm_type_t : xt
    • +
    • xarray : xt
    • +
    • xarray_optional : xt
    • +
    • xarray_pointer : xt
    • +
    • xshape : xt
    • +
    • xstrided_slice_vector : xt
    • +
    • xtensor : xt
    • +
    • xtensor_fixed : xt
    • +
    • xtensor_optional : xt
    • +
    • xtensor_pointer : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_u.html b/namespacemembers_u.html new file mode 100644 index 000000000..0cc5bf2e0 --- /dev/null +++ b/namespacemembers_u.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - u -

      +
    • unique() : xt
    • +
    • unwrap() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_v.html b/namespacemembers_v.html new file mode 100644 index 000000000..cd4f0ebab --- /dev/null +++ b/namespacemembers_v.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - v -

      +
    • variance() : xt
    • +
    • view() : xt
    • +
    • vsplit() : xt
    • +
    • vstack() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_w.html b/namespacemembers_w.html new file mode 100644 index 000000000..8de38efa2 --- /dev/null +++ b/namespacemembers_w.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - w -

      +
    • where() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_x.html b/namespacemembers_x.html new file mode 100644 index 000000000..c38f01d08 --- /dev/null +++ b/namespacemembers_x.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - x -

      +
    • xarray : xt
    • +
    • xarray_optional : xt
    • +
    • xarray_pointer : xt
    • +
    • xshape : xt
    • +
    • xstrided_slice_vector : xt
    • +
    • xtensor : xt
    • +
    • xtensor_fixed : xt
    • +
    • xtensor_optional : xt
    • +
    • xtensor_pointer : xt
    • +
    • xtuple() : xt
    • +
    +
    +
    + + + + diff --git a/namespacemembers_z.html b/namespacemembers_z.html new file mode 100644 index 000000000..02041c7a4 --- /dev/null +++ b/namespacemembers_z.html @@ -0,0 +1,120 @@ + + + + + + + +xtensor: Namespace Members + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Here is a list of all documented namespace members with links to the namespaces they belong to:
    + +

    - z -

      +
    • zeros() : xt
    • +
    • zeros_like() : xt
    • +
    +
    +
    + + + + diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 000000000..ddaddff89 --- /dev/null +++ b/namespaces.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Namespace List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Namespace List
    +
    +
    +
    Here is a list of all documented namespaces with brief descriptions:
    + + +
     NxtStandard mathematical functions for xexpressions
    +
    +
    +
    + + + + diff --git a/namespaces_dup.js b/namespaces_dup.js new file mode 100644 index 000000000..a6c4e3590 --- /dev/null +++ b/namespaces_dup.js @@ -0,0 +1,4 @@ +var namespaces_dup = +[ + [ "xt", "namespacext.html", "namespacext" ] +]; \ No newline at end of file diff --git a/namespacext.html b/namespacext.html new file mode 100644 index 000000000..35e7f68d5 --- /dev/null +++ b/namespacext.html @@ -0,0 +1,18375 @@ + + + + + + + +xtensor: xt Namespace Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt Namespace Reference
    +
    +
    + +

    standard mathematical functions for xexpressions +More...

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  acquire_ownership
     
    class  aligned_array
     This array class is modeled after std::array but adds optional alignment through a template parameter. More...
     
    struct  aligned_mode
     
    struct  big_promote_value_type
     
    class  broadcast_error
     
    struct  buffer_inner_types
     
    struct  buffer_inner_types< xbuffer_adaptor< CP, O, A > >
     
    struct  buffer_inner_types< xiterator_adaptor< I, CI > >
     
    struct  buffer_inner_types< xiterator_owner_adaptor< C, IG > >
     
    struct  can_assign
     
    struct  can_assign< xstrided_view< CT, S, L, FST >, RHS >
     
    struct  check_strides_overlap
     
    struct  check_strides_overlap< layout_type::column_major >
     
    struct  check_strides_overlap< layout_type::row_major >
     
    struct  common_difference_type
     
    struct  common_difference_type<>
     
    struct  common_size_type
     
    struct  common_size_type<>
     
    struct  common_tensor_type
     
    struct  common_value_type
     
    class  concatenate_error
     
    struct  conditional_cast_functor
     
    struct  conditional_cast_functor< false, T >
     
    struct  conditional_cast_functor< true, T >
     
    struct  const_array
     A std::array like class with all member function (except reverse iterators) as constexpr. More...
     
    struct  const_value
     
    struct  const_xclosure
     
    struct  const_xclosure< E, disable_xexpression< std::decay_t< E > > >
     
    struct  const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >
     
    struct  container_simd_return_type
     
    struct  decay_all
     
    struct  decay_all< S< X... > >
     
    struct  disable_indexed_stepper
     
    struct  driven_align_mode
     
    struct  enable_indexed_stepper
     
    struct  filter_fixed_shape
     
    class  fixed_shape
     Fixed shape implementation for compile time defined arrays. More...
     
    struct  fixed_xreducer_shape_type
     
    struct  fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >
     
    struct  forbid_simd
     
    struct  forbid_simd< const std::vector< bool, A > >
     
    struct  forbid_simd< const xtl::xdynamic_bitset< B, A > >
     
    struct  forbid_simd< std::vector< bool, A > >
     
    struct  forbid_simd< xtl::xdynamic_bitset< B, A > >
     
    struct  get_init_type
     
    struct  get_init_type< V, fixed_shape< X... > >
     
    struct  get_rank
     
    struct  get_rank< E, decltype((void) E::rank, void())>
     
    struct  get_strides_type
     
    struct  get_strides_type< fixed_shape< I... > >
     
    struct  get_strides_type< xbuffer_adaptor< CP, O, A > >
     
    struct  get_value_type
     
    struct  get_value_type< T, void_t< typename T::value_type > >
     
    struct  has_assign_conversion
     
    struct  has_assign_to
     
    struct  has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >
     
    struct  has_data_interface
     
    struct  has_data_interface< E, void_t< decltype(std::declval< E >().data())> >
     
    struct  has_fixed_rank
     
    struct  has_iterator_interface
     
    struct  has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >
     
    struct  has_memory_address
     
    struct  has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >
     
    struct  has_rank
     
    struct  has_sign_conversion
     
    struct  has_simd_apply
     
    struct  has_simd_interface
     
    struct  has_simd_interface< xfunction< F, CT... >, T >
     
    struct  has_simd_interface< xfunctor_adaptor< F, CT >, T >
     
    struct  has_simd_interface< xfunctor_applier_base< D >, T >
     
    struct  has_simd_interface< xfunctor_view< F, CT >, T >
     
    struct  has_simd_interface< xtensor_view< EC, N, L, Tag > >
     
    struct  has_simd_type
     
    struct  has_storage_type
     
    struct  has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >
     
    struct  has_strides
     
    struct  has_strides< E, void_t< decltype(std::declval< E >().strides())> >
     
    struct  index_from_shape
     
    class  index_mapper
     A helper class for mapping indices between views and their underlying containers. More...
     
    class  index_mapper< xt::xview< UnderlyingContainer, Slices... > >
     
    struct  initializer_dimension
     
    struct  inner_aligned_mode
     
    struct  inner_reference
     
    struct  invalid_type
     
    struct  is_chunked_t
     
    struct  is_contiguous_container
     
    struct  is_contiguous_container< xiterator< St, S, L > >
     
    struct  is_contiguous_container< xiterator_adaptor< I, CI > >
     
    struct  is_contiguous_container< xiterator_owner_adaptor< C, IG > >
     
    struct  is_evaluation_strategy
     
    struct  is_indexed_stepper
     
    struct  is_indexed_stepper< xindexed_stepper< T, B > >
     
    struct  is_iterator
     
    struct  is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >
     
    struct  is_narrowing_conversion
     
    struct  is_not_xdummy_iterator
     
    struct  is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >
     
    struct  is_reducer_options
     
    struct  is_reducer_options_impl
     
    struct  is_reducer_options_impl< std::tuple< X... > >
     
    struct  is_specialization_of
     
    struct  is_specialization_of< TT, TT< Ts... > >
     
    struct  is_xoptional_expression
     
    struct  is_xtensor_expression
     
    struct  keep_dims_type
     
    class  linear_assigner
     
    class  linear_assigner< false >
     
    struct  make_invalid_type
     
    struct  make_void
     
    struct  memory_range
     
    struct  meta_identity
     
    struct  missing_type
     
    struct  nested_initializer_list
     
    struct  nested_initializer_list< T, 0 >
     
    struct  no_ownership
     
    class  noalias_proxy
     
    struct  norm_type
     Traits class for the result type of the norm_l2() function. More...
     
    struct  numeric_constants
     
    struct  overlapping_memory_checker
     
    struct  overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >
     
    struct  overlapping_memory_checker_base
     
    struct  overlapping_memory_checker_traits
     
    struct  overlapping_memory_checker_traits< E >
     
    struct  overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >
     
    struct  overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >
     
    struct  overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >
     
    struct  promote_shape
     
    struct  promote_strides
     
    struct  rebind_container
     
    struct  rebind_container< X, C< T, A > >
     
    struct  rebind_container< X, C< T, N > >
     
    struct  rebind_container< X, svector< T, N, A, B > >
     
    struct  reducer_options
     
    struct  remove_class
     
    struct  remove_class< R(C::*)(Args...) const >
     
    struct  remove_class< R(C::*)(Args...)>
     
    struct  select_dim_mapping_type
     
    struct  select_dim_mapping_type< fixed_shape< I... > >
     
    struct  select_iterable_base
     
    struct  select_layout
     Compute a layout based on a layout and a shape type. More...
     
    class  sequence_view
     
    struct  squared_norm_type
     Traits class for the result type of the norm_sq() function. More...
     
    struct  static_dimension
     
    struct  static_string
     
    class  stepper_assigner
     
    struct  stepper_tools
     
    class  strided_loop_assigner
     
    class  svector
     
    struct  temporary_container
     
    struct  temporary_container< xbuffer_adaptor< CP, O, A > >
     
    struct  temporary_container< xiterator_adaptor< I, CI > >
     
    struct  temporary_container< xiterator_owner_adaptor< C, IG > >
     
    struct  temporary_type
     
    struct  temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >
     
    struct  temporary_type_from_tag
     
    struct  temporary_type_from_tag< xtensor_expression_tag, T >
     
    struct  tracking_allocator
     
    class  transpose_error
     
    struct  tuple_idx_of
     
    struct  tuple_idx_of_impl
     
    struct  tuple_idx_of_impl< I, T, std::tuple< T, Types... > >
     
    struct  tuple_idx_of_impl< I, T, std::tuple< U, Types... > >
     
    struct  tuple_idx_of_impl< I, T, std::tuple<> >
     
    struct  unaligned_mode
     
    class  uvector
     
    struct  view_temporary_type
     
    class  xaccessible
     Base class for implementation of common expression access methods. More...
     
    struct  xaccumulator_functor
     
    class  xall
     
    struct  xall_tag
     
    class  xarray_adaptor
     Dense multidimensional container adaptor with tensor semantic. More...
     
    class  xarray_container
     Dense multidimensional container with tensor semantic. More...
     
    class  xassign_traits
     
    class  xaxis_iterator
     Class for iteration over (N-1)-dimensional slices, where N is the dimension of the underlying expression. More...
     
    class  xaxis_slice_iterator
     Class for iteration over one-dimensional slices. More...
     
    class  xblockwise_reducer
     
    class  xbounded_iterator
     
    class  xbroadcast
     Broadcasted xexpression to a specified shape. More...
     
    class  xbuffer_adaptor
     
    class  xbuffer_adaptor_base
     
    class  xchunk_iterator
     
    class  xchunked_array
     
    class  xchunked_assigner
     
    class  xchunked_semantic
     
    class  xchunked_view
     
    struct  xclosure
     
    struct  xclosure< E, disable_xexpression< std::decay_t< E > > >
     
    struct  xclosure< xshared_expression< E >, std::enable_if_t< true > >
     
    class  xconst_accessible
     Base class for implementation of common expression constant access methods. More...
     
    class  xconst_iterable
     Base class for multidimensional iterable constant expressions. More...
     
    class  xcontainer
     Base class for dense multidimensional containers. More...
     
    struct  xcontainer_inner_types
     
    struct  xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
     
    struct  xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
     
    struct  xcontainer_inner_types< xbroadcast< CT, X > >
     
    struct  xcontainer_inner_types< xchunked_array< chunk_storage > >
     
    struct  xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
     
    struct  xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
     
    struct  xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
     
    struct  xcontainer_inner_types< xfunction< F, CT... > >
     
    struct  xcontainer_inner_types< xfunctor_adaptor< F, CT > >
     
    struct  xcontainer_inner_types< xfunctor_view< F, CT > >
     
    struct  xcontainer_inner_types< xgenerator< C, R, S > >
     
    struct  xcontainer_inner_types< xindex_view< CT, I > >
     
    struct  xcontainer_inner_types< xmasked_view< CTD, CTM > >
     
    struct  xcontainer_inner_types< xoptional_assembly< VE, FE > >
     
    struct  xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >
     
    struct  xcontainer_inner_types< xreducer< F, CT, X, O > >
     
    struct  xcontainer_inner_types< xrepeat< CT, R > >
     
    struct  xcontainer_inner_types< xscalar< CT > >
     
    struct  xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
     
    struct  xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
     
    struct  xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
     
    struct  xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
     
    struct  xcontainer_inner_types< xview< CT, S... > >
     
    struct  xcontainer_iterable_types
     
    class  xcontainer_semantic
     Implementation of the xsemantic_base interface for dense multidimensional containers. More...
     
    class  xcontiguous_iterable
     Base class for multidimensional iterable expressions with contiguous storage. More...
     
    struct  xcsv_config
     
    class  xdrop_slice
     
    class  xdummy_iterator
     
    class  xdynamic_view
     
    struct  xellipsis_tag
     
    class  xexpression
     Base class for xexpressions. More...
     
    class  xexpression_assigner
     
    class  xexpression_assigner_base
     
    class  xexpression_assigner_base< xoptional_expression_tag >
     
    class  xexpression_assigner_base< xtensor_expression_tag >
     
    class  xexpression_holder
     
    struct  xexpression_tag
     
    class  xfiltration
     Filter of a xexpression for fast scalar assign. More...
     
    class  xfixed_adaptor
     Dense multidimensional container adaptor with tensor semantic and fixed dimension. More...
     
    class  xfixed_container
     Dense multidimensional container with tensor semantic and fixed dimension. More...
     
    class  xfunction
     Multidimensional function operating on xtensor expressions. More...
     
    struct  xfunction_cache
     
    class  xfunction_iterator
     
    class  xfunction_stepper
     
    class  xfunctor_adaptor
     Adapt a container with a functor, forwarding methods such as resize / reshape. More...
     
    class  xfunctor_applier_base
     
    class  xfunctor_iterator
     
    class  xfunctor_stepper
     
    class  xfunctor_view
     View of an xexpression . More...
     
    struct  xfunctor_view_temporary_type
     
    class  xgenerator
     Multidimensional function operating on indices. More...
     
    class  xindex_view
     View of an xexpression from vector of indices. More...
     
    class  xindexed_stepper
     
    struct  xinitial
     
    class  xiterable
     Base class for multidimensional iterable expressions. More...
     
    struct  xiterable_inner_types
     
    struct  xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >
     
    struct  xiterable_inner_types< xarray_container< EC, L, SC, Tag > >
     
    struct  xiterable_inner_types< xbroadcast< CT, X > >
     
    struct  xiterable_inner_types< xchunked_array< chunk_storage > >
     
    struct  xiterable_inner_types< xdynamic_view< CT, S, L, FST > >
     
    struct  xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
     
    struct  xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >
     
    struct  xiterable_inner_types< xfunction< F, CT... > >
     
    struct  xiterable_inner_types< xgenerator< C, R, S > >
     
    struct  xiterable_inner_types< xindex_view< CT, I > >
     
    struct  xiterable_inner_types< xmasked_view< CTD, CTM > >
     
    struct  xiterable_inner_types< xoptional_assembly< VE, FE > >
     
    struct  xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >
     
    struct  xiterable_inner_types< xreducer< F, CT, X, O > >
     
    struct  xiterable_inner_types< xrepeat< CT, R > >
     
    struct  xiterable_inner_types< xscalar< CT > >
     
    struct  xiterable_inner_types< xstrided_view< CT, S, L, FST > >
     
    struct  xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >
     
    struct  xiterable_inner_types< xtensor_container< EC, N, L, Tag > >
     
    struct  xiterable_inner_types< xtensor_view< EC, N, L, Tag > >
     
    struct  xiterable_inner_types< xview< CT, S... > >
     
    class  xiterator
     
    class  xiterator_adaptor
     
    class  xiterator_owner_adaptor
     
    class  xkeep_slice
     
    class  xmasked_value
     
    class  xmasked_view
     View on an xoptional_assembly or xoptional_assembly_adaptor hiding values depending on a given mask. More...
     
    class  xmasked_view_stepper
     
    class  xmultiindex_iterator
     
    class  xnewaxis
     
    struct  xnewaxis_tag
     
    class  xoptional_assembly
     Dense multidimensional container holding optional values, optimized for tensor operations. More...
     
    class  xoptional_assembly_adaptor
     Dense multidimensional adaptor holding optional values, optimized for tensor operations. More...
     
    class  xoptional_assembly_base
     Base class for dense multidimensional optional assemblies. More...
     
    class  xoptional_assembly_linear_iterator
     
    struct  xoptional_assembly_linear_iterator_traits
     
    class  xoptional_assembly_stepper
     
    class  xoptional_assembly_storage
     
    struct  xoptional_comparable
     
    struct  xoptional_expression_tag
     
    struct  xproxy_inner_types
     
    class  xrange
     
    struct  xrange_adaptor
     
    class  xreducer
     Reducing function operating over specified axes. More...
     
    struct  xreducer_functors
     
    struct  xreducer_shape_type
     
    struct  xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >
     
    struct  xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >
     
    struct  xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >
     
    struct  xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >
     
    struct  xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >
     
    class  xreducer_stepper
     
    class  xrepeat
     Expression with repeated values along an axis. More...
     
    class  xrepeat_stepper
     
    class  xscalar
     
    class  xscalar_stepper
     
    class  xsemantic_base
     Base interface for assignable xexpressions. More...
     
    class  xsharable_expression
     
    class  xshared_expression
     Shared xexpressions. More...
     
    class  xslice
     
    class  xstepped_range
     
    class  xstepper
     
    class  xstrided_container
     Partial implementation of xcontainer that embeds the strides and the shape. More...
     
    class  xstrided_view
     View of an xexpression using strides. More...
     
    class  xstrided_view_base
     
    class  xtensor_adaptor
     Dense multidimensional container adaptor with tensor semantics and fixed dimension. More...
     
    class  xtensor_container
     Dense multidimensional container with tensor semantic and fixed dimension. More...
     
    struct  xtensor_expression_tag
     
    class  xtensor_view
     Dense multidimensional container adaptor with view semantics and fixed dimension. More...
     
    class  xvectorizer
     
    class  xview
     Multidimensional view with tensor semantic. More...
     
    class  xview_semantic
     Implementation of the xsemantic_base interface for multidimensional views. More...
     
    struct  xview_shape_type
     
    struct  xview_shape_type< fixed_shape< I... >, S... >
     
    struct  xview_shape_type< std::array< I, L >, S... >
     
    class  xview_stepper
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Concepts

    concept  xscalar_concept
     
    concept  xexpression_concept
     
    concept  fixed_shape_container_concept
     
    concept  xgenerator_concept
     
    concept  has_simd_interface_concept
     
    concept  has_data_interface_concept
     
    concept  has_iterator_interface_concept
     
    concept  iterator_concept
     
    concept  with_memory_address_concept
     
    concept  without_memory_address_concept
     
    concept  xbroadcast_concept
     
    concept  contiguous_view_concept
     
    concept  strided_view_concept
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major>
    using xtensor_pointer
     xtensor adaptor for a pointer.
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class SC = xt::svector<typename uvector<T, std::allocator<std::size_t>>::size_type, 4, std::allocator<std::size_t>, true>>
    using xarray_pointer
     xarray adaptor for a pointer.
     
    using smart_ownership = no_ownership
     
    template<class C>
    using temporary_container_t = typename temporary_container<C>::type
     
    template<class T>
    using allocator_type_t = typename detail::allocator_type_impl<T>::type
     
    template<class V, class S>
    using get_init_type_t = typename get_init_type<V, S>::type
     
    template<class E>
    using is_xscalar = detail::is_xscalar_impl<E>
     
    template<class... E>
    using all_xscalar = detail::all_xscalar<E...>
     
    template<class E>
    using xvalue_type = detail::xvalue_type_impl<E>
     
    template<class E>
    using xvalue_type_t = typename xvalue_type<E>::type
     
    template<class... C>
    using common_value_type_t = typename common_value_type<C...>::type
     
    template<class... Args>
    using common_size_type_t = typename common_size_type<Args...>::type
     
    template<class... Args>
    using common_difference_type_t = typename common_difference_type<Args...>::type
     
    template<class T>
    using temporary_type_t = typename temporary_type<T>::type
     
    template<class... C>
    using common_tensor_type_t = typename common_tensor_type<C...>::type
     
    template<class E>
    using big_promote_value_type_t = typename big_promote_value_type<E>::type
     
    template<class C>
    using get_stepper_iterator = typename detail::get_stepper_iterator_impl<C>::type
     
    template<class C>
    using xindex_type_t = typename detail::index_type_impl<C>::type
     
    template<class T, class R = T>
    using enable_indexed_stepper_t = typename enable_indexed_stepper<T, R>::type
     
    template<class T, class R = T>
    using disable_indexed_stepper_t = typename disable_indexed_stepper<T, R>::type
     
    template<class D>
    using select_expression_base_t
     
    template<class E>
    using is_assignable = is_crtp_base_of<xsemantic_base, E>
     
    template<class E, class R = void>
    using enable_assignable = typename std::enable_if<is_assignable<E>::value, R>::type
     
    template<class E, class R = void>
    using disable_assignable = typename std::enable_if<!is_assignable<E>::value, R>::type
     
    template<class E>
    using has_container_semantics = is_crtp_base_of<xcontainer_semantic, E>
     
    template<class E, class R = void>
    using enable_xcontainer_semantics = typename std::enable_if<has_container_semantics<E>::value, R>::type
     
    template<class E, class R = void>
    using disable_xcontainer_semantics = typename std::enable_if<!has_container_semantics<E>::value, R>::type
     
    template<class E>
    using has_view_semantics = is_crtp_base_of<xview_semantic, E>
     
    template<class E, class R = void>
    using enable_xview_semantics = typename std::enable_if<has_view_semantics<E>::value, R>::type
     
    template<class E, class R = void>
    using disable_xview_semantics = typename std::enable_if<!has_view_semantics<E>::value, R>::type
     
    template<class T>
    using dynamic_shape = svector<T, 4>
     
    template<class T, std::size_t N>
    using static_shape = std::array<T, N>
     
    using xindex = dynamic_shape<std::size_t>
     
    template<class... S>
    using promote_shape_t = typename promote_shape<S...>::type
     
    template<class... S>
    using promote_strides_t = typename promote_strides<S...>::type
     
    template<class S>
    using index_from_shape_t = typename index_from_shape<S>::type
     
    template<class S>
    using filter_fixed_shape_t = typename filter_fixed_shape<S>::type
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>, class SA = std::allocator<typename std::vector<T, A>::size_type>>
    using xarray = xarray_container< uvector<T, A> , L, xt::svector<typename uvector<T, A>::size_type, 4, SA, true>>
     Alias template on xarray_container with default parameters for data container type and shape / strides container type.
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>, class BC = xtl::xdynamic_bitset<std::size_t>, class SA = std::allocator<typename std::vector<T, A>::size_type>>
    using xarray_optional
     Alias template on xarray_container for handling missing values.
     
    template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>>
    using xtensor = xtensor_container< uvector<T, A> , N, L>
     Alias template on xtensor_container with default parameters for data container type.
     
    template<std::size_t... N>
    using xshape = fixed_shape<N...>
     Alias template for fixed_shape allows for a shorter template shape definition in xtensor_fixed.
     
    template<class T, class FSH, layout_type L = ::xt::layout_type::row_major, bool Sharable = true>
    using xtensor_fixed = xfixed_container<T, FSH, L, Sharable>
     Alias template on xfixed_container with default parameters for layout type.
     
    template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>, class BC = xtl::xdynamic_bitset<std::size_t>>
    using xtensor_optional = xtensor_container<xtl::xoptional_vector<T, A, BC>, N, L, xoptional_expression_tag>
     Alias template on xtensor_container for handling missing values.
     
    template<class T, class A = std::allocator<T>>
    using xcsv_tensor = xtensor_container<std::vector<T, A>, 2, layout_type::row_major>
     
    template<class T>
    using norm_type_t = typename norm_type<T>::type
     Abbreviation of 'typename norm_type<T>::type'.
     
    template<class T>
    using squared_norm_type_t = typename squared_norm_type<T>::type
     Abbreviation of 'typename squared_norm_type<T>::type'.
     
    template<class A1, class A2>
    using driven_align_mode_t = typename detail::driven_align_mode_impl<A1, A2>::type
     
    template<class T>
    using bool_load_type = std::conditional_t<std::is_same<T, bool>::value, uint8_t, T>
     
    template<class C, class T1, class T2>
    using container_simd_return_type_t = typename container_simd_return_type<C, T1, T2>::type
     
    template<class X, class C>
    using rebind_container_t = typename rebind_container<X, C>::type
     
    template<class... T>
    using void_t = typename make_void<T...>::type
     
    template<class T, class R>
    using disable_integral_t = std::enable_if_t<!xtl::is_integral<T>::value, R>
     
    template<class T>
    using remove_class_t = typename remove_class<T>::type
     
    template<class T, std::size_t I>
    using nested_initializer_list_t = typename nested_initializer_list<T, I>::type
     
    template<class T>
    using get_value_type_t = typename get_value_type<T>::type
     
    template<class T>
    using xtrivially_default_constructible = std::is_trivially_default_constructible<T>
     
    template<class C>
    using get_strides_t = typename get_strides_type<C>::type
     
    template<class ST>
    using inner_reference_t = typename inner_reference<ST>::type
     
    template<class E>
    using has_fixed_rank_t = typename has_fixed_rank<std::decay_t<E>>::type
     
    template<class E, size_t N>
    using has_rank_t = typename has_rank<std::decay_t<E>, N>::type
     
    template<class T>
    using xdynamic_slice
     
    using xdynamic_slice_vector = std::vector<xdynamic_slice<std::ptrdiff_t>>
     
    template<class CT, class M, std::size_t I>
    using xoffset_view = xfunctor_view<detail::offset_forwarder<M, I>, CT>
     
    template<class CT, class M, std::size_t I>
    using xoffset_adaptor = xfunctor_adaptor<detail::offset_forwarder<M, I>, CT>
     
    template<class S>
    using is_xslice = std::is_base_of<xslice<S>, S>
     
    template<class... E>
    using has_xslice = std::disjunction<is_xslice<E>...>
     
    template<class E, class SL>
    using get_slice_type = typename detail::get_slice_type_impl<E, std::remove_reference_t<SL>>::type
     
    template<layout_type L1, layout_type L2, class T>
    using select_iterable_base_t = typename select_iterable_base<L1, L2, T>::type
     
    template<class T>
    using xstrided_slice
     
    using xstrided_slice_vector = std::vector<xstrided_slice<std::ptrdiff_t>>
     vector of slices used to build a xstrided_view
     
    template<class V>
    using get_stepper = typename detail::get_stepper_impl<V>::type
     
    template<class E, class... SL>
    using view_temporary_type_t = typename view_temporary_type<E, SL...>::type
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Enumerations

    enum class  layout_type { dynamic = 0x00 +, any = 0xFF +, row_major = 0x01 +, column_major = 0x02 + }
     
    enum class  stride_type { stride_type::internal = 0 +, stride_type::normal = 1 +, stride_type::bytes = 2 + }
     Choose stride type. More...
     
    enum class  histogram_algorithm { automatic +, linspace +, logspace +, uniform + }
     Defines different algorithms to be used in "histogram_bin_edges". More...
     
    enum class  pad_mode {
    +  constant +, symmetric +, reflect +, wrap +,
    +  periodic +, edge +
    + }
     Defines different algorithms to be used in xt::pad: More...
     
    enum class  sorting_method { quick +, stable + }
     Sorting method. More...
     
    enum class  quantile_method {
    +  quantile_method::interpolated_inverted_cdf = 4 +, quantile_method::hazen +, quantile_method::weibull +, quantile_method::linear +,
    +  quantile_method::median_unbiased +, quantile_method::normal_unbiased +
    + }
     Quantile interpolation method. More...
     
    enum class  access_t { SAFE +, UNSAFE + }
     Defines the access policy for the underlying container. More...
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class E>
    constexpr bool is_chunked (const xexpression< E > &e)
     
    template<class E>
    constexpr bool is_chunked ()
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    xchunked_array< xarray< xarray< T > > > chunked_array (S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     Creates an in-memory chunked array.
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    xchunked_array< xarray< xarray< T > > > chunked_array (std::initializer_list< S > shape, std::initializer_list< S > chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    xchunked_array< xarray< xarray< typename E::value_type > > > chunked_array (const xexpression< E > &e, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     Creates an in-memory chunked array.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    xchunked_array< xarray< xarray< typename E::value_type > > > chunked_array (const xexpression< E > &e, layout_type chunk_memory_layout=::xt::layout_type::row_major)
     Creates an in-memory chunked array.
     
    template<class E, class S>
    xchunked_view< E > as_chunked (E &&e, S &&chunk_shape)
     
    template<class E>
    xchunked_view< E > as_chunked (E &&e)
     
    template<layout_type L = ::xt::layout_type::row_major, class C, class SC>
    auto adapt (C &&container, const SC &shape, layout_type l=L)
     Constructs:
     
    template<class C, class SC, class SS>
    auto adapt (C &&container, SC &&shape, SS &&strides)
     Constructs:
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class O, class SC, class A = detail::default_allocator_for_ptr_t<P>>
    auto adapt (P &&pointer, typename A::size_type size, O ownership, const SC &shape, layout_type l=L, const A &alloc=A())
     Constructs:
     
    template<class P, class O, class SC, class SS, class A = detail::default_allocator_for_ptr_t<P>>
    auto adapt (P &&pointer, typename A::size_type size, O ownership, SC &&shape, SS &&strides, const A &alloc=A())
     Constructs:
     
    template<layout_type L = ::xt::layout_type::row_major, class T, std::size_t N, class SC>
    auto adapt (T(&c_array)[N], const SC &shape, layout_type l=L)
     Constructs:
     
    template<class T, std::size_t N, class SC, class SS>
    auto adapt (T(&c_array)[N], SC &&shape, SS &&strides)
     Constructs:
     
    template<layout_type L = ::xt::layout_type::row_major, class C, std::size_t... X>
    auto adapt (C &&pointer, const fixed_shape< X... > &)
     Constructs an non-owning xtensor_fixed_adaptor from a pointer with the specified shape and layout.
     
    template<layout_type L = ::xt::layout_type::row_major, class C>
    xtensor_adaptor< C, 1, L > adapt (C &&container, layout_type l=L)
     Constructs a 1-D xtensor_adaptor of the given stl-like container, with the specified layout_type.
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class O, class A = detail::default_allocator_for_ptr_t<P>>
    xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< P >, O, A >, 1, L > adapt (P &&pointer, typename A::size_type size, O ownership, layout_type l=L, const A &alloc=A())
     Constructs a 1-D xtensor_adaptor of the given dynamically allocated C array, with the specified layout.
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class SC, xtl::check_concept< detail::not_an_array< std::decay_t< SC > > > = 0>
    auto adapt_smart_ptr (P &&smart_ptr, const SC &shape, layout_type l=L)
     Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class SC, class D, xtl::check_concept< detail::not_an_array< std::decay_t< SC > >, detail::not_a_layout< std::decay_t< D > > > = 0>
    auto adapt_smart_ptr (P &&data_ptr, const SC &shape, D &&smart_ptr, layout_type l=L)
     Adapt a smart pointer (shared_ptr or unique_ptr)
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class I, std::size_t N>
    auto adapt_smart_ptr (P &&smart_ptr, const I(&shape)[N], layout_type l=L)
     Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)
     
    template<layout_type L = ::xt::layout_type::row_major, class P, class I, std::size_t N, class D, xtl::check_concept< detail::not_a_layout< std::decay_t< D > > > = 0>
    auto adapt_smart_ptr (P &&data_ptr, const I(&shape)[N], D &&smart_ptr, layout_type l=L)
     Adapt a smart pointer (shared_ptr or unique_ptr)
     
    template<class D>
    bool operator== (const xbuffer_adaptor_base< D > &lhs, const xbuffer_adaptor_base< D > &rhs)
     
    template<class D>
    bool operator!= (const xbuffer_adaptor_base< D > &lhs, const xbuffer_adaptor_base< D > &rhs)
     
    template<class D>
    bool operator< (const xbuffer_adaptor_base< D > &lhs, const xbuffer_adaptor_base< D > &rhs)
     
    template<class D>
    bool operator<= (const xbuffer_adaptor_base< D > &lhs, const xbuffer_adaptor_base< D > &rhs)
     
    template<class D>
    bool operator> (const xbuffer_adaptor_base< D > &lhs, const xbuffer_adaptor_base< D > &rhs)
     
    template<class D>
    bool operator>= (const xbuffer_adaptor_base< D > &lhs, const xbuffer_adaptor_base< D > &rhs)
     
    template<class CP, class O, class A>
    void swap (xbuffer_adaptor< CP, O, A > &lhs, xbuffer_adaptor< CP, O, A > &rhs) noexcept
     
    template<class I, class CI>
    void swap (xiterator_adaptor< I, CI > &lhs, xiterator_adaptor< I, CI > &rhs) noexcept
     
    template<class C, class IG>
    void swap (xiterator_owner_adaptor< C, IG > &lhs, xiterator_owner_adaptor< C, IG > &rhs) noexcept
     
    template<class C, class IG>
    auto make_xiterator_adaptor (C &&container, IG iterator_getter)
     
    template<layout_type L, class R, std::size_t... X>
    constexpr R get_strides (const fixed_shape< X... > &shape) noexcept
     
    template<class S, class T>
    constexpr T get_backstrides (const S &shape, const T &strides) noexcept
     
    template<class T>
    xscalar< T & > xref (T &t)
     
    template<class T>
    xscalar< const T & > xcref (T &t)
     
    template<bool is_const, class CT>
    bool operator== (const xdummy_iterator< is_const, CT > &lhs, const xdummy_iterator< is_const, CT > &rhs) noexcept
     
    template<bool is_const, class CT>
    bool operator< (const xdummy_iterator< is_const, CT > &lhs, const xdummy_iterator< is_const, CT > &rhs) noexcept
     
    template<class CT>
    constexpr auto linear_begin (xscalar< CT > &c) noexcept -> decltype(c.dummy_begin())
     
    template<class CT>
    constexpr auto linear_end (xscalar< CT > &c) noexcept -> decltype(c.dummy_end())
     
    template<class CT>
    constexpr auto linear_begin (const xscalar< CT > &c) noexcept -> decltype(c.dummy_begin())
     
    template<class CT>
    constexpr auto linear_end (const xscalar< CT > &c) noexcept -> decltype(c.dummy_end())
     
    template<class T, class A>
    bool operator== (const uvector< T, A > &lhs, const uvector< T, A > &rhs)
     
    template<class T, class A>
    bool operator!= (const uvector< T, A > &lhs, const uvector< T, A > &rhs)
     
    template<class T, class A>
    bool operator< (const uvector< T, A > &lhs, const uvector< T, A > &rhs)
     
    template<class T, class A>
    bool operator<= (const uvector< T, A > &lhs, const uvector< T, A > &rhs)
     
    template<class T, class A>
    bool operator> (const uvector< T, A > &lhs, const uvector< T, A > &rhs)
     
    template<class T, class A>
    bool operator>= (const uvector< T, A > &lhs, const uvector< T, A > &rhs)
     
    template<class T, class A>
    void swap (uvector< T, A > &lhs, uvector< T, A > &rhs) noexcept
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator== (const std::vector< T > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator== (const svector< T, N, A, Init > &lhs, const std::vector< T > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator== (const svector< T, N, A, Init > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator!= (const svector< T, N, A, Init > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator< (const svector< T, N, A, Init > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator<= (const svector< T, N, A, Init > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator> (const svector< T, N, A, Init > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    bool operator>= (const svector< T, N, A, Init > &lhs, const svector< T, N, A, Init > &rhs)
     
    template<class T, std::size_t N, class A, bool Init>
    void swap (svector< T, N, A, Init > &lhs, svector< T, N, A, Init > &rhs) noexcept
     
    template<class T, std::size_t N>
    bool operator== (const const_array< T, N > &lhs, const const_array< T, N > &rhs)
     
    template<class T, std::size_t N>
    bool operator!= (const const_array< T, N > &lhs, const const_array< T, N > &rhs)
     
    template<class T, std::size_t N>
    bool operator< (const const_array< T, N > &lhs, const const_array< T, N > &rhs)
     
    template<class T, std::size_t N>
    bool operator<= (const const_array< T, N > &lhs, const const_array< T, N > &rhs)
     
    template<class T, std::size_t N>
    bool operator> (const const_array< T, N > &lhs, const const_array< T, N > &rhs)
     
    template<class T, std::size_t N>
    bool operator>= (const const_array< T, N > &lhs, const const_array< T, N > &rhs)
     
    template<class T, std::ptrdiff_t TB, std::ptrdiff_t TE>
    bool operator== (const sequence_view< T, TB, TE > &lhs, const sequence_view< T, TB, TE > &rhs)
     
    template<class T, std::ptrdiff_t TB, std::ptrdiff_t TE>
    bool operator!= (const sequence_view< T, TB, TE > &lhs, const sequence_view< T, TB, TE > &rhs)
     
    template<class E1, class E2>
    void assign_data (xexpression< E1 > &e1, const xexpression< E2 > &e2, bool trivial)
     
    template<class E1, class E2>
    void assign_xexpression (xexpression< E1 > &e1, const xexpression< E2 > &e2)
     
    template<class E1, class E2>
    void computed_assign (xexpression< E1 > &e1, const xexpression< E2 > &e2)
     
    template<class E1, class E2, class F>
    void scalar_computed_assign (xexpression< E1 > &e1, const E2 &e2, F &&f)
     
    template<class E1, class E2>
    void assert_compatible_shape (const xexpression< E1 > &e1, const xexpression< E2 > &e2)
     
    +template<class E1, class E2>
    void strided_assign (E1 &e1, const E2 &e2, std::false_type)
     
    +template<class E1, class E2>
    void strided_assign (E1 &e1, const E2 &e2, std::true_type)
     
    template<class T>
    auto eval (T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
     Force evaluation of xexpression.
     
    template<layout_type L = layout_type::any, class E>
    auto as_strided (E &&e) -> std::enable_if_t< has_data_interface< std::decay_t< E > >::value &&detail::has_same_layout< L, E >(), E && >
     Force evaluation of xexpression not providing a data interface and convert to the required layout.
     
    template<class St, class S, layout_type L>
    bool operator== (const xiterator< St, S, L > &lhs, const xiterator< St, S, L > &rhs)
     
    template<class St, class S, layout_type L>
    bool operator< (const xiterator< St, S, L > &lhs, const xiterator< St, S, L > &rhs)
     
    template<class It, class BIt>
    bool operator== (const xbounded_iterator< It, BIt > &lhs, const xbounded_iterator< It, BIt > &rhs)
     
    template<class It, class BIt>
    bool operator< (const xbounded_iterator< It, BIt > &lhs, const xbounded_iterator< It, BIt > &rhs)
     
    template<class C>
    constexpr auto linear_begin (C &c) noexcept
     
    template<class C>
    constexpr auto linear_end (C &c) noexcept
     
    template<class C>
    constexpr auto linear_begin (const C &c) noexcept
     
    template<class C>
    constexpr auto linear_end (const C &c) noexcept
     
    template<class... Args>
    constexpr layout_type compute_layout (Args... args) noexcept
     Implementation of the following logical table:
     
    constexpr layout_type default_assignable_layout (layout_type l) noexcept
     
    constexpr layout_type layout_remove_any (const layout_type layout) noexcept
     
    template<class E>
    auto abs (E &&e) noexcept -> detail::xfunction_type_t< math::abs_fun, E >
     Absolute value function.
     
    template<class E>
    auto fabs (E &&e) noexcept -> detail::xfunction_type_t< math::fabs_fun, E >
     Absolute value function.
     
    template<class E1, class E2>
    auto fmod (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmod_fun, E1, E2 >
     Remainder of the floating point division operation.
     
    template<class E1, class E2>
    auto remainder (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::remainder_fun, E1, E2 >
     Signed remainder of the division operation.
     
    template<class E1, class E2, class E3>
    auto fma (E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< math::fma_fun, E1, E2, E3 >
     Fused multiply-add operation.
     
    template<class E1, class E2>
    auto fmax (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmax_fun, E1, E2 >
     Maximum function.
     
    template<class E1, class E2>
    auto fmin (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmin_fun, E1, E2 >
     Minimum function.
     
    template<class E1, class E2>
    auto fdim (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fdim_fun, E1, E2 >
     Positive difference function.
     
    template<class E>
    auto deg2rad (E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >
     Convert angles from degrees to radians.
     
    template<class E>
    auto radians (E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >
     Convert angles from degrees to radians.
     
    template<class E>
    auto rad2deg (E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >
     Convert angles from radians to degrees.
     
    template<class E>
    auto degrees (E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >
     Convert angles from radians to degrees.
     
    template<class E1, class E2>
    auto maximum (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::maximum< void >, E1, E2 >
     Elementwise maximum.
     
    template<class E1, class E2>
    auto minimum (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::minimum< void >, E1, E2 >
     Elementwise minimum.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto amax (E &&e, X &&axes, EVS es=EVS())
     Maximum element along given axis.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto amax (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto amax (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto amax (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto amin (E &&e, X &&axes, EVS es=EVS())
     Minimum element along given axis.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto amin (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto amin (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto amin (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class E1, class E2, class E3>
    auto clip (E1 &&e1, E2 &&lo, E3 &&hi) noexcept -> detail::xfunction_type_t< math::clamp_fun, E1, E2, E3 >
     Clip values between hi and lo.
     
    template<class E>
    auto sign (E &&e) noexcept -> detail::xfunction_type_t< math::sign_fun, E >
     Returns an element-wise indication of the sign of a number.
     
    template<class E>
    auto exp (E &&e) noexcept -> detail::xfunction_type_t< math::exp_fun, E >
     Natural exponential function.
     
    template<class E>
    auto exp2 (E &&e) noexcept -> detail::xfunction_type_t< math::exp2_fun, E >
     Base 2 exponential function.
     
    template<class E>
    auto expm1 (E &&e) noexcept -> detail::xfunction_type_t< math::expm1_fun, E >
     Natural exponential minus one function.
     
    template<class E>
    auto log (E &&e) noexcept -> detail::xfunction_type_t< math::log_fun, E >
     Natural logarithm function.
     
    template<class E>
    auto log10 (E &&e) noexcept -> detail::xfunction_type_t< math::log10_fun, E >
     Base 10 logarithm function.
     
    template<class E>
    auto log2 (E &&e) noexcept -> detail::xfunction_type_t< math::log2_fun, E >
     Base 2 logarithm function.
     
    template<class E>
    auto log1p (E &&e) noexcept -> detail::xfunction_type_t< math::log1p_fun, E >
     Natural logarithm of one plus function.
     
    template<class E1, class E2>
    auto pow (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
     Power function.
     
    template<class F, class... E>
    auto make_lambda_xfunction (F &&lambda, E &&... args)
     Create a xfunction from a lambda.
     
    template<class E1>
    auto square (E1 &&e1) noexcept
     Square power function, equivalent to e1 * e1.
     
    template<class E1>
    auto cube (E1 &&e1) noexcept
     Cube power function, equivalent to e1 * e1 * e1.
     
    template<std::size_t N, class E>
    auto pow (E &&e) noexcept
     Integer power function.
     
    template<class E>
    auto sqrt (E &&e) noexcept -> detail::xfunction_type_t< math::sqrt_fun, E >
     Square root function.
     
    template<class E>
    auto cbrt (E &&e) noexcept -> detail::xfunction_type_t< math::cbrt_fun, E >
     Cubic root function.
     
    template<class E1, class E2>
    auto hypot (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::hypot_fun, E1, E2 >
     Hypotenuse function.
     
    template<class E>
    auto sin (E &&e) noexcept -> detail::xfunction_type_t< math::sin_fun, E >
     Sine function.
     
    template<class E>
    auto cos (E &&e) noexcept -> detail::xfunction_type_t< math::cos_fun, E >
     Cosine function.
     
    template<class E>
    auto tan (E &&e) noexcept -> detail::xfunction_type_t< math::tan_fun, E >
     Tangent function.
     
    template<class E>
    auto asin (E &&e) noexcept -> detail::xfunction_type_t< math::asin_fun, E >
     Arcsine function.
     
    template<class E>
    auto acos (E &&e) noexcept -> detail::xfunction_type_t< math::acos_fun, E >
     Arccosine function.
     
    template<class E>
    auto atan (E &&e) noexcept -> detail::xfunction_type_t< math::atan_fun, E >
     Arctangent function.
     
    template<class E1, class E2>
    auto atan2 (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::atan2_fun, E1, E2 >
     Artangent function, using signs to determine quadrants.
     
    template<class E>
    auto sinh (E &&e) noexcept -> detail::xfunction_type_t< math::sinh_fun, E >
     Hyperbolic sine function.
     
    template<class E>
    auto cosh (E &&e) noexcept -> detail::xfunction_type_t< math::cosh_fun, E >
     Hyperbolic cosine function.
     
    template<class E>
    auto tanh (E &&e) noexcept -> detail::xfunction_type_t< math::tanh_fun, E >
     Hyperbolic tangent function.
     
    template<class E>
    auto asinh (E &&e) noexcept -> detail::xfunction_type_t< math::asinh_fun, E >
     Inverse hyperbolic sine function.
     
    template<class E>
    auto acosh (E &&e) noexcept -> detail::xfunction_type_t< math::acosh_fun, E >
     Inverse hyperbolic cosine function.
     
    template<class E>
    auto atanh (E &&e) noexcept -> detail::xfunction_type_t< math::atanh_fun, E >
     Inverse hyperbolic tangent function.
     
    template<class E>
    auto erf (E &&e) noexcept -> detail::xfunction_type_t< math::erf_fun, E >
     Error function.
     
    template<class E>
    auto erfc (E &&e) noexcept -> detail::xfunction_type_t< math::erfc_fun, E >
     Complementary error function.
     
    template<class E>
    auto tgamma (E &&e) noexcept -> detail::xfunction_type_t< math::tgamma_fun, E >
     Gamma function.
     
    template<class E>
    auto lgamma (E &&e) noexcept -> detail::xfunction_type_t< math::lgamma_fun, E >
     Natural logarithm of the gamma function.
     
    template<class E>
    auto ceil (E &&e) noexcept -> detail::xfunction_type_t< math::ceil_fun, E >
     ceil function.
     
    template<class E>
    auto floor (E &&e) noexcept -> detail::xfunction_type_t< math::floor_fun, E >
     floor function.
     
    template<class E>
    auto trunc (E &&e) noexcept -> detail::xfunction_type_t< math::trunc_fun, E >
     trunc function.
     
    template<class E>
    auto round (E &&e) noexcept -> detail::xfunction_type_t< math::round_fun, E >
     round function.
     
    template<class E>
    auto nearbyint (E &&e) noexcept -> detail::xfunction_type_t< math::nearbyint_fun, E >
     nearbyint function.
     
    template<class E>
    auto rint (E &&e) noexcept -> detail::xfunction_type_t< math::rint_fun, E >
     rint function.
     
    template<class E>
    auto isfinite (E &&e) noexcept -> detail::xfunction_type_t< math::isfinite_fun, E >
     finite value check
     
    template<class E>
    auto isinf (E &&e) noexcept -> detail::xfunction_type_t< math::isinf_fun, E >
     infinity check
     
    template<class E>
    auto isnan (E &&e) noexcept -> detail::xfunction_type_t< math::isnan_fun, E >
     NaN check.
     
    template<class E1, class E2>
    auto isclose (E1 &&e1, E2 &&e2, double rtol=1e-05, double atol=1e-08, bool equal_nan=false) noexcept
     Element-wise closeness detection.
     
    template<class E1, class E2>
    auto allclose (E1 &&e1, E2 &&e2, double rtol=1e-05, double atol=1e-08) noexcept
     Check if all elements in e1 are close to the corresponding elements in e2.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto sum (E &&e, X &&axes, EVS es=EVS())
     Sum of elements over given axes.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto sum (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto sum (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto sum (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto prod (E &&e, X &&axes, EVS es=EVS())
     Product of elements over given axes.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto prod (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto prod (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto prod (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto mean (E &&e, X &&axes, EVS es=EVS())
     Mean of elements over given axes.
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto mean (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto mean (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class W, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, std::negation< xtl::is_integral< X > > > = 0>
    auto average (E &&e, W &&weights, X &&axes, EVS ev=EVS())
     Average of elements over given axes using weights.
     
    template<class T = void, class E, class W, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, xtl::is_integral< X > > = 0>
    auto average (E &&e, W &&weights, X axis, EVS ev=EVS())
     
    template<class T = void, class E, class W, class X, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto average (E &&e, W &&weights, const X(&axes)[N], EVS ev=EVS())
     
    template<class T = void, class E, class W, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto average (E &&e, W &&weights, EVS ev=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto average (E &&e, EVS ev=EVS())
     
    template<class T = void, class E, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, xtl::is_integral< D > > = 0>
    auto variance (E &&e, const D &ddof, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto variance (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto stddev (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class X, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< D > > = 0>
    auto variance (E &&e, X &&axes, const D &ddof, EVS es=EVS())
     Compute the variance along the specified axes.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > >, is_reducer_options< EVS > > = 0>
    auto variance (E &&e, X &&axes, EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto stddev (E &&e, X &&axes, EVS es=EVS())
     Compute the standard deviation along the specified axis.
     
    template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto stddev (E &&e, const A(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto variance (E &&e, const A(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class A, std::size_t N, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto variance (E &&e, const A(&axes)[N], const D &ddof, EVS es=EVS())
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto minmax (E &&e, EVS es=EVS())
     Minimum and maximum among the elements of an array or expression.
     
    template<class T = void, class E>
    auto cumsum (E &&e, std::ptrdiff_t axis)
     Cumulative sum.
     
    template<class T = void, class E>
    auto cumsum (E &&e)
     
    template<class T = void, class E>
    auto cumprod (E &&e, std::ptrdiff_t axis)
     Cumulative product.
     
    template<class T = void, class E>
    auto cumprod (E &&e)
     
    template<class E>
    auto nan_to_num (E &&e)
     Convert nan or +/- inf to numbers.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto nanmin (E &&e, X &&axes, EVS es=EVS())
     Minimum element over given axes, ignoring NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto nanmin (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nanmin (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nanmin (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto nanmax (E &&e, X &&axes, EVS es=EVS())
     Maximum element along given axes, ignoring NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto nanmax (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nanmax (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nanmax (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto nansum (E &&e, X &&axes, EVS es=EVS())
     Sum of elements over given axes, replacing NaN with 0.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto nansum (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nansum (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nansum (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > > > = 0>
    auto nanprod (E &&e, X &&axes, EVS es=EVS())
     Product of elements over given axes, replacing NaN with 1.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    auto nanprod (E &&e, X axis, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nanprod (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nanprod (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto count_nonzero (E &&e, EVS es=EVS())
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< X > > > = 0>
    auto count_nonzero (E &&e, X &&axes, EVS es=EVS())
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< X > > = 0>
    auto count_nonzero (E &&e, X axis, EVS es=EVS())
     
    template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto count_nonzero (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto count_nonnan (E &&e, EVS es=EVS())
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< X > > > = 0>
    auto count_nonnan (E &&e, X &&axes, EVS es=EVS())
     
    template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto count_nonnan (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E>
    auto nancumsum (E &&e, std::ptrdiff_t axis)
     Cumulative sum, replacing nan with 0.
     
    template<class T = void, class E>
    auto nancumsum (E &&e)
     
    template<class T = void, class E>
    auto nancumprod (E &&e, std::ptrdiff_t axis)
     Cumulative product, replacing nan with 1.
     
    template<class T = void, class E>
    auto nancumprod (E &&e)
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto nanmean (E &&e, X &&axes, EVS es=EVS())
     Mean of elements over given axes, excluding NaNs.
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nanmean (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nanmean (E &&e, const I(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nanvar (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    auto nanstd (E &&e, EVS es=EVS())
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto nanvar (E &&e, X &&axes, EVS es=EVS())
     Compute the variance along the specified axes, excluding NaNs.
     
    template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto nanstd (E &&e, X &&axes, EVS es=EVS())
     Compute the standard deviation along the specified axis, excluding nans.
     
    template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nanstd (E &&e, const A(&axes)[N], EVS es=EVS())
     
    template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto nanvar (E &&e, const A(&axes)[N], EVS es=EVS())
     
    template<class T>
    auto diff (const xexpression< T > &a, std::size_t n=1, std::ptrdiff_t axis=-1)
     Calculate the n-th discrete difference along the given axis.
     
    template<class T>
    auto trapz (const xexpression< T > &y, double dx=1.0, std::ptrdiff_t axis=-1)
     Integrate along the given axis using the composite trapezoidal rule.
     
    template<class T, class E>
    auto trapz (const xexpression< T > &y, const xexpression< E > &x, std::ptrdiff_t axis=-1)
     Integrate along the given axis using the composite trapezoidal rule.
     
    template<class E1, class E2, class E3, typename T>
    auto interp (const E1 &x, const E2 &xp, const E3 &fp, T left, T right)
     Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.
     
    template<class E1, class E2 = xt::placeholders::xtuph, class E3 = double>
    auto unwrap (E1 &&p, E2 discontinuity=xnone(), std::ptrdiff_t axis=-1, E3 period=2.0 *xt::numeric_constants< double >::PI)
     Unwrap by taking the complement of large deltas with respect to the period.
     
    template<class E1, class E2, class E3>
    auto interp (const E1 &x, const E2 &xp, const E3 &fp)
     Returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x.
     
    template<class E1>
    auto cov (const E1 &x, const E1 &y=E1())
     Returns the covariance matrix.
     
    template<class E1, class E2, class E3>
    auto convolve (E1 &&a, E2 &&v, E3 mode)
     
    template<class S, class B, class E>
    auto multiindex_iterator_begin (B &&roi_begin, E &&roi_end)
     
    template<class S, class B, class E>
    auto multiindex_iterator_end (B &&roi_begin, E &&roi_end)
     
    template<class A>
    noalias_proxy< xtl::closure_type_t< A > > noalias (A &&a) noexcept
     
    template<class E>
    auto operator+ (E &&e) noexcept -> detail::xfunction_type_t< detail::identity, E >
     Identity.
     
    template<class E>
    auto operator- (E &&e) noexcept -> detail::xfunction_type_t< detail::negate, E >
     Opposite.
     
    template<class E1, class E2>
    auto operator+ (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::plus, E1, E2 >
     Addition.
     
    template<class E1, class E2>
    auto operator- (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::minus, E1, E2 >
     Substraction.
     
    template<class E1, class E2>
    auto operator* (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
     Multiplication.
     
    template<class E1, class E2>
    auto operator/ (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::divides, E1, E2 >
     Division.
     
    template<class E1, class E2>
    auto operator% (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::modulus, E1, E2 >
     Modulus.
     
    template<class E1, class E2>
    auto operator|| (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::logical_or, E1, E2 >
     Or.
     
    template<class E1, class E2>
    auto operator&& (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::logical_and, E1, E2 >
     And.
     
    template<class E>
    auto operator! (E &&e) noexcept -> detail::xfunction_type_t< detail::logical_not, E >
     Not.
     
    template<class E1, class E2>
    auto operator& (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_and, E1, E2 >
     Bitwise and.
     
    template<class E1, class E2>
    auto operator| (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_or, E1, E2 >
     Bitwise or.
     
    template<class E1, class E2>
    auto operator^ (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_xor, E1, E2 >
     Bitwise xor.
     
    template<class E>
    auto operator~ (E &&e) noexcept -> detail::xfunction_type_t< detail::bitwise_not, E >
     Bitwise not.
     
    template<class E1, class E2>
    auto left_shift (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::left_shift, E1, E2 >
     Bitwise left shift.
     
    template<class E1, class E2>
    auto right_shift (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::right_shift, E1, E2 >
     Bitwise left shift.
     
    template<class E1, class E2>
    auto operator<< (E1 &&e1, E2 &&e2) noexcept -> detail::shift_return_type_t< detail::left_shift, E1, E2 >
     Bitwise left shift.
     
    template<class E1, class E2>
    auto operator>> (E1 &&e1, E2 &&e2) -> detail::shift_return_type_t< detail::right_shift, E1, E2 >
     Bitwise right shift.
     
    template<class E1, class E2>
    auto operator< (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::less, E1, E2 >
     Lesser than.
     
    template<class E1, class E2>
    auto operator<= (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::less_equal, E1, E2 >
     Lesser or equal.
     
    template<class E1, class E2>
    auto operator> (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::greater, E1, E2 >
     Greater than.
     
    template<class E1, class E2>
    auto operator>= (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::greater_equal, E1, E2 >
     Greater or equal.
     
    template<class E1, class E2>
    std::enable_if_t< xoptional_comparable< E1, E2 >::value, bool > operator== (const xexpression< E1 > &e1, const xexpression< E2 > &e2)
     Equality.
     
    template<class E1, class E2>
    bool operator!= (const xexpression< E1 > &e1, const xexpression< E2 > &e2)
     Inequality.
     
    template<class E1, class E2>
    auto equal (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >
     Element-wise equality.
     
    template<class E1, class E2>
    auto not_equal (E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::not_equal_to, E1, E2 >
     Element-wise inequality.
     
    template<class E1, class E2>
    auto less (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1)< std::forward< E2 >(e2))
     Lesser than.
     
    template<class E1, class E2>
    auto less_equal (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1)<=std::forward< E2 >(e2))
     Lesser or equal.
     
    template<class E1, class E2>
    auto greater (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) > std::forward< E2 >(e2))
     Greater than.
     
    template<class E1, class E2>
    auto greater_equal (E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) >=std::forward< E2 >(e2))
     Greater or equal.
     
    template<class E1, class E2, class E3>
    auto where (E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< detail::conditional_ternary, E1, E2, E3 >
     Ternary selection.
     
    template<class T>
    auto nonzero (const T &arr)
     return vector of indices where T is not zero
     
    template<class T>
    auto where (const T &condition)
     return vector of indices where condition is true (equivalent to nonzero(condition))
     
    template<layout_type L = ::xt::layout_type::row_major, class T>
    auto argwhere (const T &arr)
     return vector of indices where arr is not zero
     
    template<class E>
    bool any (E &&e)
     Any.
     
    template<class E>
    bool all (E &&e)
     Any.
     
    template<class R, class E>
    auto cast (E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
     Element-wise static_cast.
     
    template<class S1, class S2>
    bool same_shape (const S1 &s1, const S2 &s2) noexcept
     Check if two objects have the same shape.
     
    template<class R, class T>
    constexpr R shape (T t)
     
    template<class R = std::size_t, class T, std::size_t N>
    xt::static_shape< R, N > shape (const T(&list)[N])
     Generate an xt::static_shape of the given size.
     
    template<class E, class S>
    bool has_shape (const E &e, std::initializer_list< S > shape) noexcept
     Check if an object has a certain shape.
     
    template<class E, class S, class = typename std::enable_if_t<has_iterator_interface<S>::value>>
    bool has_shape (const E &e, const S &shape)
     Check if an object has a certain shape.
     
    template<class shape_type>
    std::size_t compute_size (const shape_type &shape) noexcept
     
    template<class offset_type, class S>
    offset_type data_offset (const S &strides) noexcept
     
    template<class offset_type, class S, class Arg, class... Args>
    offset_type data_offset (const S &strides, Arg arg, Args... args) noexcept
     Return the flat index for an array index.
     
    template<class offset_type, layout_type L = layout_type::dynamic, class S, class... Args>
    offset_type unchecked_data_offset (const S &strides, Args... args) noexcept
     
    template<class offset_type, class S, class It>
    offset_type element_offset (const S &strides, It first, It last) noexcept
     
    template<layout_type L = layout_type::dynamic, class shape_type, class strides_type>
    std::size_t compute_strides (const shape_type &shape, layout_type l, strides_type &strides)
     Compute the strides given the shape and the layout of an array.
     
    template<layout_type L = layout_type::dynamic, class shape_type, class strides_type, class backstrides_type>
    std::size_t compute_strides (const shape_type &shape, layout_type l, strides_type &strides, backstrides_type &backstrides)
     
    template<class shape_type, class strides_type>
    void adapt_strides (const shape_type &shape, strides_type &strides) noexcept
     
    template<class shape_type, class strides_type, class backstrides_type>
    void adapt_strides (const shape_type &shape, strides_type &strides, backstrides_type &backstrides) noexcept
     
    template<class S>
    unravel_from_strides (typename S::value_type index, const S &strides, layout_type l=layout_type::row_major)
     
    template<class S>
    get_strides_t< S > unravel_index (typename S::value_type index, const S &shape, layout_type l=layout_type::row_major)
     
    template<class S, class T>
    std::vector< get_strides_t< S > > unravel_indices (const T &indices, const S &shape, layout_type l=layout_type::row_major)
     
    +template<class S, class size_type>
    uninitialized_shape (size_type size)
     
    template<class S1, class S2>
    bool broadcast_shape (const S1 &input, S2 &output)
     
    +template<class S1, class S2>
    bool broadcastable (const S1 &s1, S2 &s2)
     
    template<class S, class... Args>
    bool in_bounds (const S &shape, Args &... args)
     Check if the index is within the bounds of the array.
     
    template<class S, class... Args>
    void normalize_periodic (const S &shape, Args &... args)
     Normalise an index of a periodic array.
     
    template<class C, class It, class size_type>
    It strided_data_end (const C &c, It begin, layout_type l, size_type offset)
     
    template<class E>
    auto strides (const E &e, stride_type type=stride_type::normal) noexcept
     Get strides of an object.
     
    template<class E>
    auto strides (const E &e, std::size_t axis, stride_type type=stride_type::normal) noexcept
     Get stride of an object along an axis.
     
    template<class T1, class T2>
    bool stride_match_condition (const T1 &stride, const T2 &shape, const T1 &data_size, bool zero_strides)
     
    template<class shape_type, class strides_type>
    bool do_strides_match (const shape_type &shape, const strides_type &strides, layout_type l, bool zero_strides)
     
    template<class S, class T>
    get_value_type_t< T > ravel_from_strides (const T &index, const S &strides)
     
    template<class S, class T>
    get_value_type_t< T > ravel_index (const T &index, const S &shape, layout_type l)
     
    template<class S, class stype>
    uninitialized_shape (stype size)
     
    template<class S1, class S2>
    bool broadcastable (const S1 &src_shape, const S2 &dst_shape)
     
    template<class S, class... Args>
    bool check_in_bounds (const S &shape, Args &... args)
     
    template<class R, class... Args>
    xvectorizer< R(*)(Args...), R > vectorize (R(*f)(Args...))
     
    template<class F, class R, class... Args>
    xvectorizer< F, R > vectorize (F &&f, R(*)(Args...))
     
    template<class F>
    auto vectorize (F &&f) -> decltype(vectorize(std::forward< F >(f), std::declval< detail::get_function_type< F > * >()))
     
    template<class T, class S>
    auto ones (S shape) noexcept
     Returns an xexpression containing ones of the specified shape.
     
    template<class T, class I, std::size_t L>
    auto ones (const I(&shape)[L]) noexcept
     
    template<class T, class S>
    auto zeros (S shape) noexcept
     Returns an xexpression containing zeros of the specified shape.
     
    template<class T, class I, std::size_t L>
    auto zeros (const I(&shape)[L]) noexcept
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    xarray< T, L > empty (const S &shape)
     Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of with value_type T and shape.
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class ST, std::size_t N>
    xtensor< T, N, L > empty (const std::array< ST, N > &shape)
     
    template<class T, layout_type L = ::xt::layout_type::row_major, class I, std::size_t N>
    xtensor< T, N, L > empty (const I(&shape)[N])
     
    template<class T, layout_type L = ::xt::layout_type::row_major, std::size_t... N>
    xtensor_fixed< T, fixed_shape< N... >, L > empty (const fixed_shape< N... > &)
     
    template<class E>
    auto empty_like (const xexpression< E > &e)
     Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of the same shape, value type and layout as the input xexpression e.
     
    template<class E>
    auto full_like (const xexpression< E > &e, typename E::value_type fill_value)
     Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with fill_value and of the same shape, value type and layout as the input xexpression e.
     
    template<class E>
    auto zeros_like (const xexpression< E > &e)
     Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with zeros and of the same shape, value type and layout as the input xexpression e.
     
    template<class E>
    auto ones_like (const xexpression< E > &e)
     Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with ones and of the same shape, value type and layout as the input xexpression e.
     
    template<class T = bool>
    auto eye (const std::vector< std::size_t > &shape, int k=0)
     Generates an array with ones on the diagonal.
     
    template<class T = bool>
    auto eye (std::size_t n, int k=0)
     Generates a (n x n) array with ones on the diagonal.
     
    template<class T, class S = T>
    auto arange (T start, T stop, S step=1) noexcept
     Generates numbers evenly spaced within given half-open interval [start, stop).
     
    template<class T>
    auto arange (T stop) noexcept
     Generate numbers evenly spaced within given half-open interval [0, stop) with a step size of 1.
     
    template<class T>
    auto linspace (T start, T stop, std::size_t num_samples=50, bool endpoint=true) noexcept
     Generates num_samples evenly spaced numbers over given interval.
     
    template<class T>
    auto logspace (T start, T stop, std::size_t num_samples, T base=10, bool endpoint=true) noexcept
     Generates num_samples numbers evenly spaced on a log scale over given interval.
     
    template<class... Types>
    auto xtuple (Types &&... args)
     Creates tuples from arguments for concatenate and stack.
     
    template<class... CT>
    auto concatenate (std::tuple< CT... > &&t, std::size_t axis=0)
     Concatenates xexpressions along axis.
     
    template<std::size_t axis, fixed_shape_container_concept... CT>
    auto concatenate (std::tuple< CT... > &&t)
     
    template<class... CT>
    auto stack (std::tuple< CT... > &&t, std::size_t axis=0)
     Stack xexpressions along axis.
     
    template<class... CT>
    auto hstack (std::tuple< CT... > &&t)
     Stack xexpressions in sequence horizontally (column wise).
     
    template<class... CT>
    auto vstack (std::tuple< CT... > &&t)
     Stack xexpressions in sequence vertically (row wise).
     
    template<class... E>
    auto meshgrid (E &&... e) noexcept
     Return coordinate tensors from coordinate vectors.
     
    template<class E>
    auto diagonal (E &&arr, int offset=0, std::size_t axis_1=0, std::size_t axis_2=1)
     Returns the elements on the diagonal of arr If arr has more than two dimensions, then the axes specified by axis_1 and axis_2 are used to determine the 2-D sub-array whose diagonal is returned.
     
    template<class E>
    auto diag (E &&arr, int k=0)
     xexpression with values of arr on the diagonal, zeroes otherwise
     
    template<class E>
    auto tril (E &&arr, int k=0)
     Extract lower triangular matrix from xexpression.
     
    template<class E>
    auto triu (E &&arr, int k=0)
     Extract upper triangular matrix from xexpression.
     
    template<class T, class A = std::allocator<T>>
    xcsv_tensor< T, A > load_csv (std::istream &stream, const char delimiter, const std::size_t skip_rows, const std::ptrdiff_t max_rows, const std::string comments)
     Load tensor from CSV.
     
    template<class E>
    void dump_csv (std::ostream &stream, const xexpression< E > &e)
     Dump tensor to CSV.
     
    template<class E>
    void load_file (std::istream &stream, xexpression< E > &e, const xcsv_config &config)
     
    template<class E>
    void dump_file (std::ostream &stream, const xexpression< E > &e, const xcsv_config &)
     
    template<class T>
    static_string type_name ()
     
    template<class T>
    std::string type_to_string ()
     
    template<class T>
    std::string info (const T &t)
     
    template<class E>
    std::ostream & operator<< (std::ostream &out, const xexpression< E > &e)
     
    print_options::print_options_impl get_print_options (std::ostream &out)
     
    template<class E, class F>
    std::ostream & pretty_print (const xexpression< E > &e, F &&func, std::ostream &out=std::cout)
     
    template<class E>
    std::ostream & pretty_print (const xexpression< E > &e, std::ostream &out=std::cout)
     
    template<template< typename U, typename V, typename... Args > class M, class E>
    enable_xexpression< E > to_json (nlohmann::basic_json< M > &j, const E &e)
     JSON serialization of an xtensor expression.
     
    template<template< typename U, typename V, typename... Args > class M, class E>
    enable_xcontainer_semantics< E > from_json (const nlohmann::basic_json< M > &j, E &e)
     JSON deserialization of a xtensor expression with a container or a view semantics.
     
    template<class P, class T>
    void compute_0d_table (std::stringstream &out, P &, const T &expr)
     
    template<class P>
    void compute_1d_row (std::stringstream &out, P &printer, const std::size_t &row_idx)
     
    template<class P, class T>
    void compute_1d_table (std::stringstream &out, P &printer, const T &expr, const std::size_t &edgeitems)
     
    template<class P>
    void compute_2d_element (std::stringstream &out, P &printer, const std::string &idx_str, const std::size_t &row_idx, const std::size_t &column_idx)
     
    template<class P, class T>
    void compute_2d_row (std::stringstream &out, P &printer, const T &expr, const std::size_t &edgeitems, const std::string &idx_str, const std::size_t &row_idx)
     
    template<class P, class T, class I>
    void compute_2d_table (std::stringstream &out, P &printer, const T &expr, const std::size_t &edgeitems, const std::vector< I > &idx)
     
    template<class P, class T, class I>
    void compute_nd_row (std::stringstream &out, P &printer, const T &expr, const std::size_t &edgeitems, const std::vector< I > &idx)
     
    template<class P, class T, class I>
    void compute_nd_table_impl (std::stringstream &out, P &printer, const T &expr, const std::size_t &edgeitems, const std::vector< I > &idx)
     
    template<class P, class T>
    void compute_nd_table (std::stringstream &out, P &printer, const T &expr, const std::size_t &edgeitems)
     
    template<class E>
    nlohmann::json mime_bundle_repr_impl (const E &expr)
     
    template<class F, class CT>
    nlohmann::json mime_bundle_repr (const xfunctor_view< F, CT > &expr)
     
    template<class F, class... CT>
    nlohmann::json mime_bundle_repr (const xfunction< F, CT... > &expr)
     
    template<class EC, layout_type L, class SC, class Tag>
    nlohmann::json mime_bundle_repr (const xarray_container< EC, L, SC, Tag > &expr)
     
    template<class EC, std::size_t N, layout_type L, class Tag>
    nlohmann::json mime_bundle_repr (const xtensor_container< EC, N, L, Tag > &expr)
     
    template<class ET, class S, layout_type L, bool SH, class Tag>
    nlohmann::json mime_bundle_repr (const xfixed_container< ET, S, L, SH, Tag > &expr)
     
    template<class F, class CT, class X, class O>
    nlohmann::json mime_bundle_repr (const xreducer< F, CT, X, O > &expr)
     
    template<class VE, class FE>
    nlohmann::json mime_bundle_repr (const xoptional_assembly< VE, FE > &expr)
     
    template<class VEC, class FEC>
    nlohmann::json mime_bundle_repr (const xoptional_assembly_adaptor< VEC, FEC > &expr)
     
    template<class CT>
    nlohmann::json mime_bundle_repr (const xscalar< CT > &expr)
     
    template<class CT, class X>
    nlohmann::json mime_bundle_repr (const xbroadcast< CT, X > &expr)
     
    template<class F, class R, class S>
    nlohmann::json mime_bundle_repr (const xgenerator< F, R, S > &expr)
     
    template<class CT, class... S>
    nlohmann::json mime_bundle_repr (const xview< CT, S... > &expr)
     
    template<class CT, class S, layout_type L, class FST>
    nlohmann::json mime_bundle_repr (const xstrided_view< CT, S, L, FST > &expr)
     
    template<class CTD, class CTM>
    nlohmann::json mime_bundle_repr (const xmasked_view< CTD, CTM > &expr)
     
    template<class T, class B>
    nlohmann::json mime_bundle_repr (const xmasked_value< T, B > &v)
     
    template<typename E>
    void dump_npy (const std::string &filename, const xexpression< E > &e)
     Save xexpression to NumPy npy format.
     
    template<typename E>
    std::string dump_npy (const xexpression< E > &e)
     Save xexpression to NumPy npy format in a string.
     
    template<typename T, layout_type L = layout_type::dynamic>
    auto load_npy (std::istream &stream)
     Loads a npy file (the NumPy storage format)
     
    template<typename T, layout_type L = layout_type::dynamic>
    auto load_npy (const std::string &filename)
     Loads a npy file (the NumPy storage format)
     
    template<class E>
    decltype(auto) real (E &&e) noexcept
     Return an xt::xexpression representing the real part of the given expression.
     
    template<class E>
    decltype(auto) imag (E &&e) noexcept
     Return an xt::xexpression representing the imaginary part of the given expression.
     
    template<class E>
    auto conj (E &&e) noexcept
     Return an xt::xfunction evaluating to the complex conjugate of the given expression.
     
    template<class E>
    auto arg (E &&e) noexcept
     Calculates the phase angle (in radians) elementwise for the complex numbers in e.
     
    template<class E>
    auto angle (E &&e, bool deg=false) noexcept
     Calculates the phase angle elementwise for the complex numbers in e.
     
    template<class E>
    auto norm (E &&e) noexcept
     Calculates the squared magnitude elementwise for the complex numbers in e.
     
    template<class E1, class E2>
    auto digitize (E1 &&data, E2 &&bin_edges, bool right=false)
     Return the indices of the bins to which each value in input array belongs.
     
    template<class R = double, class E1, class E2, class E3>
    auto histogram (E1 &&data, E2 &&bin_edges, E3 &&weights, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2>
    auto histogram (E1 &&data, E2 &&bin_edges, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1>
    auto histogram (E1 &&data, std::size_t bins=10, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2>
    auto histogram (E1 &&data, std::size_t bins, E2 left, E2 right, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2>
    auto histogram (E1 &&data, std::size_t bins, E2 &&weights, bool density=false)
     Compute the histogram of a set of data.
     
    template<class R = double, class E1, class E2, class E3>
    auto histogram (E1 &&data, std::size_t bins, E2 &&weights, E3 left, E3 right, bool density=false)
     Compute the histogram of a set of data.
     
    template<class E1, class E2, class E3>
    auto histogram_bin_edges (E1 &&data, E2 &&weights, E3 left, E3 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1, class E2>
    auto histogram_bin_edges (E1 &&data, E2 &&weights, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1>
    auto histogram_bin_edges (E1 &&data, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1, class E2>
    auto histogram_bin_edges (E1 &&data, E2 left, E2 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
     Compute the bin-edges of a histogram of a set of data using different algorithms.
     
    template<class E1, class E2, xtl::check_concept< is_xexpression< std::decay_t< E2 > > > = 0>
    auto bincount (E1 &&data, E2 &&weights, std::size_t minlength=0)
     Count number of occurrences of each value in array of non-negative ints.
     
    template<class E1>
    auto bincount (E1 &&data, std::size_t minlength=0)
     
    template<class E>
    xt::xtensor< size_t, 1 > bin_items (size_t N, E &&weights)
     Get the number of items in each bin, given the fraction of items per bin.
     
    xt::xtensor< size_t, 1 > bin_items (size_t N, size_t bins)
     Get the number of items in each bin, with each bin having approximately the same number of items in it,under the constraint that the total number of items of all bins is exactly "N".
     
    template<class E>
    auto transpose (E &&e) noexcept
     Returns a transpose view by reversing the dimensions of xexpression e.
     
    template<class E, class S, class Tag = check_policy::none>
    auto transpose (E &&e, S &&permutation, Tag check_policy)
     Returns a transpose view by permuting the xexpression e with permutation.
     
    template<class E>
    auto swapaxes (E &&e, std::ptrdiff_t axis1, std::ptrdiff_t axis2)
     Return a new expression with two axes interchanged.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto ravel (E &&e)
     Return a flatten view of the given expression.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto flatten (E &&e)
     Return a flatten view of the given expression.
     
    template<layout_type L, class T>
    auto flatnonzero (const T &arr)
     Return indices that are non-zero in the flattened version of arr.
     
    template<class E>
    auto trim_zeros (E &&e, const std::string &direction)
     Trim zeros at beginning, end or both of 1D sequence.
     
    template<class E>
    auto squeeze (E &&e)
     Returns a squeeze view of the given expression.
     
    template<class E, xtl::non_integral_concept S, class Tag = check_policy::none>
    auto squeeze (E &&e, S &&axis, Tag check_policy)
     Remove single-dimensional entries from the shape of an xexpression.
     
    template<class E>
    auto expand_dims (E &&e, std::size_t axis)
     Expand the shape of an xexpression.
     
    template<std::size_t N, class E>
    auto atleast_Nd (E &&e)
     Expand dimensions of xexpression to at least N
     
    template<class E>
    auto atleast_1d (E &&e)
     Expand to at least 1D.
     
    template<class E>
    auto atleast_2d (E &&e)
     Expand to at least 2D.
     
    template<class E>
    auto atleast_3d (E &&e)
     Expand to at least 3D.
     
    template<class E>
    auto split (E &e, std::size_t n, std::size_t axis)
     Split xexpression along axis into subexpressions.
     
    template<class E>
    auto hsplit (E &e, std::size_t n)
     Split an xexpression into subexpressions horizontally (column-wise)
     
    template<class E>
    auto vsplit (E &e, std::size_t n)
     Split an xexpression into subexpressions vertically (row-wise)
     
    template<class E>
    auto flip (E &&e)
     Reverse the order of elements in an xexpression along every axis.
     
    template<class E>
    auto flip (E &&e, std::size_t axis)
     Reverse the order of elements in an xexpression along the given axis.
     
    template<std::ptrdiff_t N = 1, class E>
    auto rot90 (E &&e, const std::array< std::ptrdiff_t, 2 > &axes)
     Rotate an array by 90 degrees in the plane specified by axes.
     
    template<class E>
    auto roll (E &&e, std::ptrdiff_t shift)
     Roll an expression.
     
    template<class E>
    auto roll (E &&e, std::ptrdiff_t shift, std::ptrdiff_t axis)
     Roll an expression along a given axis.
     
    template<class E>
    auto repeat (E &&e, std::size_t repeats, std::size_t axis)
     Repeat elements of an expression along a given axis.
     
    template<class E>
    auto repeat (E &&e, const std::vector< std::size_t > &repeats, std::size_t axis)
     Repeat elements of an expression along a given axis.
     
    template<class E>
    auto repeat (E &&e, std::vector< std::size_t > &&repeats, std::size_t axis)
     Repeat elements of an expression along a given axis.
     
    template<class E>
    auto moveaxis (E &&e, std::ptrdiff_t src, std::ptrdiff_t dest)
     Return a new expression with an axis move to a new position.
     
    template<class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    auto pad (E &&e, const std::vector< std::vector< S > > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)
     Pad an array.
     
    template<class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    auto pad (E &&e, const std::vector< S > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)
     Pad an array.
     
    template<class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    auto pad (E &&e, S pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)
     Pad an array.
     
    template<class E, class S = typename std::decay_t<E>::size_type>
    auto tile (E &&e, std::initializer_list< S > reps)
     Tile an array.
     
    template<class E, class C, xtl::check_concept< std::negation< xtl::is_integral< C > > > = 0>
    auto tile (E &&e, const C &reps)
     
    template<class E, class S = typename std::decay_t<E>::size_type, xtl::check_concept< xtl::is_integral< S > > = 0>
    auto tile (E &&e, S reps)
     Tile an array.
     
    template<class E, class T>
    auto isin (E &&element, std::initializer_list< T > test_elements) noexcept
     isin
     
    template<class E, class F>
    +requires (has_iterator_interface_concept<F>)
    auto isin (E &&element, F &&test_elements) noexcept
     isin
     
    template<class E, iterator_concept I>
    auto isin (E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept
     isin
     
    template<class E, class T>
    auto in1d (E &&element, std::initializer_list< T > test_elements) noexcept
     in1d
     
    template<class E, class F>
    +requires (has_iterator_interface_concept<F>)
    auto in1d (E &&element, F &&test_elements) noexcept
     in1d
     
    template<class E, iterator_concept I>
    auto in1d (E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept
     in1d
     
    template<class E1, class E2>
    auto searchsorted (E1 &&a, E2 &&v, bool right=true)
     Find indices where elements should be inserted to maintain order.
     
    template<class E>
    auto sort (const xexpression< E > &e, placeholders::xtuph)
     
    template<class E>
    auto sort (const xexpression< E > &e, std::ptrdiff_t axis=-1)
     Sort xexpression (optionally along axis) The sort is performed using the std::sort functions.
     
    template<class E>
    auto argsort (const xexpression< E > &e, placeholders::xtuph, sorting_method method=sorting_method::quick)
     
    template<class E>
    auto argsort (const xexpression< E > &e, std::ptrdiff_t axis=-1, sorting_method method=sorting_method::quick)
     Argsort xexpression (optionally along axis) Performs an indirect sort along the given axis.
     
    template<class E, xtl::non_integral_concept C, class R = detail::flatten_sort_result_type_t<E>>
    partition (const xexpression< E > &e, C kth_container, placeholders::xtuph)
     Partially sort xexpression.
     
    template<class E, class I, std::size_t N, class R = detail::flatten_sort_result_type_t<E>>
    partition (const xexpression< E > &e, const I(&kth_container)[N], placeholders::xtuph tag)
     
    template<class E, class R = detail::flatten_sort_result_type_t<E>>
    partition (const xexpression< E > &e, std::size_t kth, placeholders::xtuph tag)
     
    template<class E, xtl::non_integral_concept C>
    auto partition (const xexpression< E > &e, C kth_container, std::ptrdiff_t axis=-1)
     
    template<class E, class T, std::size_t N>
    auto partition (const xexpression< E > &e, const T(&kth_container)[N], std::ptrdiff_t axis=-1)
     
    template<class E>
    auto partition (const xexpression< E > &e, std::size_t kth, std::ptrdiff_t axis=-1)
     
    template<class E, xtl::non_integral_concept C, class R = typename detail::linear_argsort_result_type<typename detail::sort_eval_type<E>::type>::type>
    argpartition (const xexpression< E > &e, C kth_container, placeholders::xtuph)
     Partially sort arguments.
     
    template<class E, class I, std::size_t N>
    auto argpartition (const xexpression< E > &e, const I(&kth_container)[N], placeholders::xtuph tag)
     
    template<class E>
    auto argpartition (const xexpression< E > &e, std::size_t kth, placeholders::xtuph tag)
     
    template<class E, xtl::non_integral_concept C>
    auto argpartition (const xexpression< E > &e, C kth_container, std::ptrdiff_t axis=-1)
     
    template<class E, class I, std::size_t N>
    auto argpartition (const xexpression< E > &e, const I(&kth_container)[N], std::ptrdiff_t axis=-1)
     
    template<class E>
    auto argpartition (const xexpression< E > &e, std::size_t kth, std::ptrdiff_t axis=-1)
     
    template<class T = double, class E, class P>
    auto quantile (E &&e, const P &probas, std::ptrdiff_t axis, T alpha, T beta)
     Compute quantiles over the given axis.
     
    template<class T = double, class E, std::size_t N>
    auto quantile (E &&e, const T(&probas)[N], std::ptrdiff_t axis, T alpha, T beta)
     
    template<class T = double, class E, class P>
    auto quantile (E &&e, const P &probas, T alpha, T beta)
     Compute quantiles of the whole expression.
     
    template<class T = double, class E, std::size_t N>
    auto quantile (E &&e, const T(&probas)[N], T alpha, T beta)
     
    template<class T = double, class E, class P>
    auto quantile (E &&e, const P &probas, std::ptrdiff_t axis, quantile_method method=quantile_method::linear)
     Compute quantiles over the given axis.
     
    template<class T = double, class E, std::size_t N>
    auto quantile (E &&e, const T(&probas)[N], std::ptrdiff_t axis, quantile_method method=quantile_method::linear)
     
    template<class T = double, class E, class P>
    auto quantile (E &&e, const P &probas, quantile_method method=quantile_method::linear)
     Compute quantiles of the whole expression.
     
    template<class T = double, class E, std::size_t N>
    auto quantile (E &&e, const T(&probas)[N], quantile_method method=quantile_method::linear)
     
    template<class E>
    std::decay_t< E >::value_type median (E &&e)
     
    template<class E>
    auto median (E &&e, std::ptrdiff_t axis)
     Find the median along the specified axis.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto argmin (const xexpression< E > &e)
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto argmin (const xexpression< E > &e, std::ptrdiff_t axis)
     Find position of minimal value in xexpression.
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto argmax (const xexpression< E > &e)
     
    template<layout_type L = ::xt::layout_type::row_major, class E>
    auto argmax (const xexpression< E > &e, std::ptrdiff_t axis)
     Find position of maximal value in xexpression By default, the returned index is into the flattened array.
     
    template<class E>
    auto unique (const xexpression< E > &e)
     Find unique elements of a xexpression.
     
    template<class E1, class E2>
    auto setdiff1d (const xexpression< E1 > &ar1, const xexpression< E2 > &ar2)
     Find the set difference of two xexpressions.
     
    template<class T, class B>
    auto sign (const xtl::xoptional< T, B > &e)
     
    template<class E, xtl::check_concept< is_xexpression< E > > = 0>
    auto value (E &&e) -> detail::value_expression_t< E >
     
    template<class E, xtl::check_concept< is_xexpression< E > > = 0>
    auto has_value (E &&e) -> detail::flag_expression_t< E >
     
    template<class VE, class FE>
    bool operator== (const xoptional_assembly_storage< VE, FE > &lhs, const xoptional_assembly_storage< VE, FE > &rhs)
     
    template<class VE, class FE>
    bool operator!= (const xoptional_assembly_storage< VE, FE > &lhs, const xoptional_assembly_storage< VE, FE > &rhs)
     
    template<class VE, class FE>
    bool operator< (const xoptional_assembly_storage< VE, FE > &lhs, const xoptional_assembly_storage< VE, FE > &rhs)
     
    template<class VE, class FE>
    bool operator<= (const xoptional_assembly_storage< VE, FE > &lhs, const xoptional_assembly_storage< VE, FE > &rhs)
     
    template<class VE, class FE>
    bool operator> (const xoptional_assembly_storage< VE, FE > &lhs, const xoptional_assembly_storage< VE, FE > &rhs)
     
    template<class VE, class FE>
    bool operator>= (const xoptional_assembly_storage< VE, FE > &lhs, const xoptional_assembly_storage< VE, FE > &rhs)
     
    template<class VE, class FE>
    void swap (xoptional_assembly_storage< VE, FE > &lhs, xoptional_assembly_storage< VE, FE > &rhs) noexcept
     
    template<class VE, class FE>
    xoptional_assembly_storage< VE, FE > optional_assembly_storage (const VE &value, const FE &flag)
     
    template<class VE, class FE>
    xoptional_assembly_storage< VE, FE > optional_assembly_storage (VE &value, FE &flag)
     
    template<class RF>
    auto make_xaccumulator_functor (RF &&accumulate_func)
     
    template<class RF, class IF>
    auto make_xaccumulator_functor (RF &&accumulate_func, IF &&init_func)
     
    template<class F, class E, class EVS = evaluation_strategy::immediate_type, xtl::check_concept< is_evaluation_strategy< EVS > > = 0>
    auto accumulate (F &&f, E &&e, EVS evaluation_strategy=EVS())
     Accumulate and flatten array NOTE This function is not lazy!
     
    template<class F, class E, class EVS = evaluation_strategy::immediate_type>
    auto accumulate (F &&f, E &&e, std::ptrdiff_t axis, EVS evaluation_strategy=EVS())
     Accumulate over axis NOTE This function is not lazy!
     
    template<class E, class CS, class A, class O, class FF>
    auto blockwise_reducer (E &&e, CS &&chunk_shape, A &&axes, O &&raw_options, FF &&functor)
     
    template<class E, class X, class EVS, class>
    auto norm_l0 (E &&e, X &&axes, EVS es) noexcept
     L0 (count) pseudo-norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS, class>
    auto norm_l1 (E &&e, X &&axes, EVS es) noexcept
     L1 norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS, class>
    auto norm_sq (E &&e, X &&axes, EVS es) noexcept
     Squared L2 norm of an array-like argument over given axes.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto norm_l2 (E &&e, EVS es=EVS()) noexcept
     L2 norm of a scalar or array-like argument.
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E >, std::negation< is_reducer_options< X > > > = 0>
    auto norm_l2 (E &&e, X &&axes, EVS es=EVS()) noexcept
     L2 norm of an array-like argument over given axes.
     
    template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto norm_l2 (E &&e, const I(&axes)[N], EVS es=EVS()) noexcept
     
    template<class E, class X, class EVS, class>
    auto norm_linf (E &&e, X &&axes, EVS es) noexcept
     Infinity (maximum) norm of an array-like argument over given axes.
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto norm_lp_to_p (E &&e, double p, X &&axes, EVS es=EVS()) noexcept
     p-th power of the Lp norm of an array-like argument over given axes.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto norm_lp_to_p (E &&e, double p, EVS es=EVS()) noexcept
     
    template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto norm_lp_to_p (E &&e, double p, const I(&axes)[N], EVS es=EVS()) noexcept
     
    template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > > > = 0>
    auto norm_lp (E &&e, double p, X &&axes, EVS es=EVS())
     Lp norm of an array-like argument over given axes.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto norm_lp (E &&e, double p, EVS es=EVS())
     
    template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    auto norm_lp (E &&e, double p, const I(&axes)[N], EVS es=EVS())
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto norm_induced_l1 (E &&e, EVS es=EVS())
     Induced L1 norm of a matrix.
     
    template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    auto norm_induced_linf (E &&e, EVS es=EVS())
     Induced L-infinity norm of a matrix.
     
    template<template< class... > class A, class... AX, class X, xtl::check_concept< is_evaluation_strategy< AX >..., is_evaluation_strategy< X > > = 0>
    auto operator| (const A< AX... > &args, const A< X > &rhs)
     
    template<class T>
    constexpr auto initial (T val)
     
    template<class F, class E, class R, xtl::check_concept< std::is_convertible< typename E::value_type, typename R::value_type > > = 0>
    void copy_to_reduced (F &, const E &e, R &result)
     
    template<class F, class E, class X, class O>
    auto reduce_immediate (F &&f, E &&e, X &&axes, O &&raw_options)
     
    template<class RF>
    auto make_xreducer_functor (RF &&reduce_func)
     
    template<class RF, class IF>
    auto make_xreducer_functor (RF &&reduce_func, IF &&init_func)
     
    template<class RF, class IF, class MF>
    auto make_xreducer_functor (RF &&reduce_func, IF &&init_func, MF &&merge_func)
     
    template<class F, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, detail::is_xreducer_functors< F > > = 0>
    auto reduce (F &&f, E &&e, X &&axes, EVS &&options=EVS())
     Returns an xexpression applying the specified reducing function to an expression over the given axes.
     
    template<class F, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, detail::is_xreducer_functors< F > > = 0>
    auto reduce (F &&f, E &&e, EVS &&options=EVS())
     
    template<class F, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< detail::is_xreducer_functors< F > > = 0>
    auto reduce (F &&f, E &&e, const I(&axes)[N], EVS options=EVS())
     
    template<class S1, class S2>
    void throw_broadcast_error (const S1 &lhs, const S2 &rhs)
     
    template<class S1, class S2>
    void throw_concatenate_error (const S1 &lhs, const S2 &rhs)
     
    +template<class S, class... Args>
    void check_index (const S &shape, Args... args)
     
    template<class S, class It>
    void check_element_index (const S &shape, It first, It last)
     
    template<class S>
    void check_index (const S &)
     
    template<class S>
    void check_index (const S &, missing_type)
     
    template<class S, class Arg, class... Args>
    void check_index (const S &shape, Arg arg, Args... args)
     
    template<class S, class... Args>
    void check_dimension (const S &shape, Args...)
     
    template<class A, class D>
    void check_axis_in_dim (A axis, D dim, const char *subject="Axis")
     
    template<class S, class... Args>
    void check_access (const S &shape, Args... args)
     
    template<std::size_t I, class... Args>
    constexpr decltype(auto) argument (Args &&... args) noexcept
     
    template<class R, class F, class... S>
    apply (std::size_t index, F &&func, const std::tuple< S... > &s) noexcept(noexcept(func(std::get< 0 >(s))))
     
    template<class T, class S>
    void nested_copy (T &&iter, const S &s)
     
    template<class T, class S>
    void nested_copy (T &&iter, std::initializer_list< S > s)
     
    template<class C>
    bool resize_container (C &c, typename C::size_type size)
     
    template<class T, std::size_t N>
    bool resize_container (std::array< T, N > &a, typename std::array< T, N >::size_type size)
     
    template<std::size_t... I>
    bool resize_container (fixed_shape< I... > &a, std::size_t size)
     
    std::size_t normalize_axis (std::size_t dim, std::ptrdiff_t axis)
     
    template<class F, class... Ts>
    void for_each (F &&f, std::tuple< Ts... > &t) noexcept(noexcept(detail::for_each(std::forward< F >(f), t, std::make_index_sequence< sizeof...(Ts)>{})))
     
    template<class F, class... Ts>
    void for_each (F &&f, const std::tuple< Ts... > &t) noexcept(noexcept(detail::for_each(std::forward< F >(f), t, std::make_index_sequence< sizeof...(Ts)>{})))
     
    template<class E, class C>
    std::enable_if_t< !xtl::is_integral< std::decay_t< C > >::value &&xtl::is_signed< typename std::decay_t< C >::value_type >::value, rebind_container_t< std::size_t, std::decay_t< C > > > normalize_axis (E &expr, C &&axes)
     
    template<class C, class E>
    std::enable_if_t< !xtl::is_integral< std::decay_t< C > >::value &&std::is_unsigned< typename std::decay_t< C >::value_type >::value, C && > normalize_axis (E &expr, C &&axes)
     
    template<class R, class E, class C>
    auto forward_normalize (E &expr, C &&axes) -> std::enable_if_t< xtl::is_signed< std::decay_t< decltype(*std::begin(axes))> >::value, R >
     
    template<std::size_t I, template< typename... Args > class T, typename... Args>
    decltype(auto) get (T< Args... > &&v)
     
    template<std::size_t I, template< typename... Args > class T, typename... Args>
    decltype(auto) get (T< Args... > &v)
     
    template<std::size_t I, template< typename... Args > class T, typename... Args>
    decltype(auto) get (const T< Args... > &v)
     
    template<class T, std::size_t N>
    constexpr std::array< std::remove_cv_t< T >, N > to_array (T(&a)[N])
     
    template<bool condition, class T, class U>
    auto conditional_cast (U &&u)
     Perform a type cast when a condition is true.
     
    template<class T, class AT, alloc_tracking::policy PT, class U, class AU, alloc_tracking::policy PU>
    bool operator== (const tracking_allocator< T, AT, PT > &, const tracking_allocator< U, AU, PU > &)
     
    template<class T, class AT, alloc_tracking::policy PT, class U, class AU, alloc_tracking::policy PU>
    bool operator!= (const tracking_allocator< T, AT, PT > &a, const tracking_allocator< U, AU, PU > &b)
     
    template<class Dst>
    auto make_overlapping_memory_checker (const Dst &a_dst)
     
    +template<class E>
    auto xaxis_slice_begin (E &&e)
     
    +template<class E>
    auto xaxis_slice_begin (E &&e, typename std::decay_t< E >::size_type axis)
     
    +template<class E>
    auto xaxis_slice_end (E &&e)
     
    +template<class E>
    auto xaxis_slice_end (E &&e, typename std::decay_t< E >::size_type axis)
     
    template<class E, class S>
    auto broadcast (E &&e, const S &s)
     Returns an xexpression broadcasting the given expression to a specified shape.
     
    template<class E, class I, std::size_t L>
    auto broadcast (E &&e, const I(&s)[L])
     
    template<class CT, class X>
    constexpr auto linear_begin (xbroadcast< CT, X > &c) noexcept
     
    template<class CT, class X>
    constexpr auto linear_end (xbroadcast< CT, X > &c) noexcept
     
    template<class CT, class X>
    constexpr auto linear_begin (const xbroadcast< CT, X > &c) noexcept
     
    template<class CT, class X>
    constexpr auto linear_end (const xbroadcast< CT, X > &c) noexcept
     
    template<class E>
    auto dynamic_view (E &&e, const xdynamic_slice_vector &slices)
     
    auto all () noexcept
     Returns a slice representing a full dimension, to be used as an argument of view function.
     
    auto ellipsis () noexcept
     Returns a slice representing all remaining dimensions, and selecting all in these dimensions.
     
    auto newaxis () noexcept
     Returns a slice representing a new axis of length one, to be used as an argument of view function.
     
    template<class R = std::ptrdiff_t, class T>
    auto keep (T &&indices)
     Create a non-contigous slice from a container of indices to keep.
     
    template<class R = std::ptrdiff_t, class Arg0, class Arg1, class... Args>
    xkeep_slice< R > keep (Arg0 i0, Arg1 i1, Args... args)
     
    template<class R = std::ptrdiff_t, class T>
    auto drop (T &&indices)
     Create a non-contigous slice from a container of indices to drop.
     
    template<class R = std::ptrdiff_t, class Arg0, class Arg1, class... Args>
    xdrop_slice< R > drop (Arg0 i0, Arg1 i1, Args... args)
     
    auto xnone ()
     
    template<class A, class B>
    auto range (A start_val, B stop_val)
     Select a range from start_val to stop_val (excluded).
     
    template<class A, class B, class C>
    auto range (A start_val, B stop_val, C step)
     Select a range from start_val to stop_val (excluded) with step You can use the shorthand _ syntax to select from the start or until the end.
     
    template<class S>
    std::size_t get_size (const S &slice) noexcept
     
    template<class S>
    std::size_t step_size (const S &slice, std::size_t idx) noexcept
     
    template<class S>
    std::size_t step_size (const S &slice, std::size_t idx, std::size_t n) noexcept
     
    template<class S, class I>
    std::size_t value (const S &slice, I i) noexcept
     
    template<class E, class SL>
    auto get_slice_implementation (E &e, SL &&slice, std::size_t index)
     
    template<class... S>
    constexpr std::size_t integral_count ()
     
    template<class... S>
    constexpr std::size_t integral_count_before (std::size_t i)
     
    template<class... S>
    constexpr std::size_t integral_skip (std::size_t i)
     
    template<class... S>
    constexpr std::size_t newaxis_count ()
     
    template<class... S>
    constexpr std::size_t newaxis_count_before (std::size_t i)
     
    template<class... S>
    constexpr std::size_t newaxis_skip (std::size_t i)
     
    template<class S, class It>
    auto get_slice_value (const S &slice, It &it) noexcept
     
    Broadcasting
    template<class F, class... CT>
    bool operator== (const xfunction_iterator< F, CT... > &it1, const xfunction_iterator< F, CT... > &it2)
     
    template<class F, class... CT>
    bool operator< (const xfunction_iterator< F, CT... > &it1, const xfunction_iterator< F, CT... > &it2)
     
    template<class E, class... S>
    auto view (E &&e, S &&... slices)
     Constructs and returns a view on the specified xexpression.
     
    template<class E>
    auto row (E &&e, std::ptrdiff_t index)
     Constructs and returns a row (sliced view) on the specified expression.
     
    template<class E>
    auto col (E &&e, std::ptrdiff_t index)
     Constructs and returns a column (sliced view) on the specified expression.
     
    Reference
    template<class CT>
    bool operator== (const xaxis_iterator< CT > &lhs, const xaxis_iterator< CT > &rhs)
     Checks equality of the iterators.
     
    template<class CT>
    bool operator!= (const xaxis_iterator< CT > &lhs, const xaxis_iterator< CT > &rhs)
     Checks inequality of the iterators.
     
    template<class CT>
    bool operator== (const xaxis_slice_iterator< CT > &lhs, const xaxis_slice_iterator< CT > &rhs)
     Checks equality of the iterators.
     
    template<class CT>
    bool operator!= (const xaxis_slice_iterator< CT > &lhs, const xaxis_slice_iterator< CT > &rhs)
     Checks inequality of the iterators.
     
    Iterators
    template<class E>
    auto axis_begin (E &&e)
     Returns an iterator to the first element of the expression for axis 0.
     
    template<class E>
    auto axis_begin (E &&e, typename std::decay_t< E >::size_type axis)
     Returns an iterator to the first element of the expression for the specified axis.
     
    template<class E>
    auto axis_end (E &&e)
     Returns an iterator to the element following the last element of the expression for axis 0.
     
    template<class E>
    auto axis_end (E &&e, typename std::decay_t< E >::size_type axis)
     Returns an iterator to the element following the last element of the expression for the specified axis.
     
    template<class E>
    auto axis_slice_begin (E &&e)
     Returns an iterator to the first element of the expression for axis 0.
     
    template<class E>
    auto axis_slice_begin (E &&e, typename std::decay_t< E >::size_type axis)
     Returns an iterator to the first element of the expression for the specified axis.
     
    template<class E>
    auto axis_slice_end (E &&e)
     Returns an iterator to the element following the last element of the expression for axis 0.
     
    template<class E>
    auto axis_slice_end (E &&e, typename std::decay_t< E >::size_type axis)
     Returns an iterator to the element following the last element of the expression for the specified axis.
     
    Computed assignement
    template<class E, class I>
    auto index_view (E &&e, I &&indices) noexcept
     creates an indexview from a container of indices.
     
    template<class E, std::size_t L>
    auto index_view (E &&e, const xindex(&indices)[L]) noexcept
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class O>
    auto filter (E &&e, O &&condition) noexcept
     creates a view into e filtered by condition.
     
    template<class E, class C>
    auto filtration (E &&e, C &&condition) noexcept
     creates a filtration of e filtered by condition.
     
    Data
    template<class CTD, class CTM>
    xmasked_view< CTD, CTM > masked_view (CTD &&data, CTM &&mask)
     
    template<layout_type L = layout_type::dynamic, class E, class S, class X>
    auto strided_view (E &&e, S &&shape, X &&strides, std::size_t offset, layout_type layout) noexcept
     Construct a strided view from an xexpression, shape, strides and offset.
     
    template<class E>
    auto strided_view (E &&e, const xstrided_slice_vector &slices)
     Function to create a dynamic view from an xexpression and an xstrided_slice_vector.
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    auto reshape_view (E &&e, S &&shape)
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    auto reshape_view (E &&e, S &&shape, layout_type)
     Return a view on a container with a new shape.
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class I, std::size_t N>
    auto reshape_view (E &&e, const I(&shape)[N], layout_type order)
     
    template<layout_type L = ::xt::layout_type::row_major, class E, class I, std::size_t N>
    auto reshape_view (E &&e, const I(&shape)[N])
     
    + + + + + + +

    +Variables

    constexpr auto keep_dims = std::tuple<keep_dims_type>{}
     
    template<class E1, class E2>
    constexpr bool has_assign_to_v = has_assign_to<E1, E2>::value
     
    + + + + + + + + + + + + + + + + + + + + + + +

    Extended copy semantic

    template<class C, class Tag>
    using ravel_return_type_t = typename detail::ravel_return_type<C, Tag>::type
     
    template<class T>
    auto from_indices (const std::vector< T > &idx)
     Converts std::vector<index_type> (returned e.g.
     
    template<class T>
    auto flatten_indices (const std::vector< T > &idx)
     Converts std::vector<index_type> (returned e.g.
     
    template<class Tag = ravel_tensor_tag, class C, class S>
    ravel_return_type_t< C, Tag > ravel_indices (const C &idx, const S &shape, layout_type l=layout_type::row_major)
     Converts std::vector<index_type> (returned e.g.
     
    template<class F, class IT>
    bool operator== (const xfunctor_iterator< F, IT > &lhs, const xfunctor_iterator< F, IT > &rhs)
     
    template<class F, class IT>
    bool operator< (const xfunctor_iterator< F, IT > &lhs, const xfunctor_iterator< F, IT > &rhs)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Downcast functions

    template<template< class > class B, class E>
    using is_crtp_base_of = detail::is_crtp_base_of_impl<B, std::decay_t<E>>
     
    template<class E>
    using is_xexpression = is_crtp_base_of<xexpression, E>
     
    template<class E, class R = void>
    using enable_xexpression = typename std::enable_if<is_xexpression<E>::value, R>::type
     
    template<class E, class R = void>
    using disable_xexpression = typename std::enable_if<!is_xexpression<E>::value, R>::type
     
    template<class... E>
    using has_xexpression = std::disjunction<is_xexpression<E>...>
     
    template<class E>
    using is_xsharable_expression = is_crtp_base_of<xsharable_expression, E>
     
    template<class E, class R = void>
    using enable_xsharable_expression = typename std::enable_if<is_xsharable_expression<E>::value, R>::type
     
    template<class E, class R = void>
    using disable_xsharable_expression = typename std::enable_if<!is_xsharable_expression<E>::value, R>::type
     
    template<class LHS, class RHS, class R = void>
    using enable_assignable_expression = typename std::enable_if<can_assign<LHS, RHS>::value, R>::type
     
    template<class LHS, class RHS, class R = void>
    using enable_not_assignable_expression = typename std::enable_if<!can_assign<LHS, RHS>::value, R>::type
     
    template<class E>
    using xclosure_t = typename xclosure<E>::type
     
    template<class E>
    using const_xclosure_t = typename const_xclosure<E>::type
     
    template<class... T>
    using xexpression_tag_t = typename xexpression_tag<T...>::type
     
    template<class E>
    xshared_expression< E > make_xshared (xexpression< E > &&expr)
     Helper function to create shared expression from any xexpression.
     
    template<class E>
    auto share (xexpression< E > &expr)
     Helper function to create shared expression from any xexpression.
     
    template<class E>
    auto share (xexpression< E > &&expr)
     Helper function to create shared expression from any xexpression.
     
    +

    Detailed Description

    +

    standard mathematical functions for xexpressions

    +

    functions to obtain xgenerators generating random numbers with given shape

    +

    Typedef Documentation

    + +

    ◆ all_xscalar

    + +
    +
    +
    +template<class... E>
    + + + + +
    using xt::all_xscalar = detail::all_xscalar<E...>
    +
    + +

    Definition at line 336 of file xscalar.hpp.

    + +
    +
    + +

    ◆ allocator_type_t

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::allocator_type_t = typename detail::allocator_type_impl<T>::type
    +
    + +

    Definition at line 55 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ big_promote_value_type_t

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::big_promote_value_type_t = typename big_promote_value_type<E>::type
    +
    + +

    Definition at line 194 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ bool_load_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::bool_load_type = std::conditional_t<std::is_same<T, bool>::value, uint8_t, T>
    +
    + +

    Definition at line 299 of file xtensor_simd.hpp.

    + +
    +
    + +

    ◆ common_difference_type_t

    + +
    +
    +
    +template<class... Args>
    + + + + +
    using xt::common_difference_type_t = typename common_difference_type<Args...>::type
    +
    + +

    Definition at line 91 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ common_size_type_t

    + +
    +
    +
    +template<class... Args>
    + + + + +
    using xt::common_size_type_t = typename common_size_type<Args...>::type
    +
    + +

    Definition at line 72 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ common_tensor_type_t

    + +
    +
    +
    +template<class... C>
    + + + + +
    using xt::common_tensor_type_t = typename common_tensor_type<C...>::type
    +
    + +

    Definition at line 181 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ common_value_type_t

    + +
    +
    +
    +template<class... C>
    + + + + +
    using xt::common_value_type_t = typename common_value_type<C...>::type
    +
    + +

    Definition at line 53 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ const_xclosure_t

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::const_xclosure_t = typename const_xclosure<E>::type
    +
    + +

    Definition at line 295 of file xexpression.hpp.

    + +
    +
    + +

    ◆ container_simd_return_type_t

    + +
    +
    +
    +template<class C, class T1, class T2>
    + + + + +
    using xt::container_simd_return_type_t = typename container_simd_return_type<C, T1, T2>::type
    +
    + +

    Definition at line 333 of file xtensor_simd.hpp.

    + +
    +
    + +

    ◆ disable_assignable

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::disable_assignable = typename std::enable_if<!is_assignable<E>::value, R>::type
    +
    + +

    Definition at line 163 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ disable_indexed_stepper_t

    + +
    +
    +
    +template<class T, class R = T>
    + + + + +
    using xt::disable_indexed_stepper_t = typename disable_indexed_stepper<T, R>::type
    +
    + +

    Definition at line 240 of file xiterator.hpp.

    + +
    +
    + +

    ◆ disable_integral_t

    + +
    +
    +
    +template<class T, class R>
    + + + + +
    using xt::disable_integral_t = std::enable_if_t<!xtl::is_integral<T>::value, R>
    +
    + +

    Definition at line 108 of file xutils.hpp.

    + +
    +
    + +

    ◆ disable_xcontainer_semantics

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::disable_xcontainer_semantics = typename std::enable_if<!has_container_semantics<E>::value, R>::type
    +
    + +

    Definition at line 218 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ disable_xexpression

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::disable_xexpression = typename std::enable_if<!is_xexpression<E>::value, R>::type
    +
    + +

    Definition at line 187 of file xexpression.hpp.

    + +
    +
    + +

    ◆ disable_xsharable_expression

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::disable_xsharable_expression = typename std::enable_if<!is_xsharable_expression<E>::value, R>::type
    +
    + +

    Definition at line 199 of file xexpression.hpp.

    + +
    +
    + +

    ◆ disable_xview_semantics

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::disable_xview_semantics = typename std::enable_if<!has_view_semantics<E>::value, R>::type
    +
    + +

    Definition at line 295 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ driven_align_mode_t

    + +
    +
    +
    +template<class A1, class A2>
    + + + + +
    using xt::driven_align_mode_t = typename detail::driven_align_mode_impl<A1, A2>::type
    +
    + +

    Definition at line 238 of file xtensor_simd.hpp.

    + +
    +
    + +

    ◆ dynamic_shape

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::dynamic_shape = svector<T, 4>
    +
    + +

    Definition at line 26 of file xshape.hpp.

    + +
    +
    + +

    ◆ enable_assignable

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::enable_assignable = typename std::enable_if<is_assignable<E>::value, R>::type
    +
    + +

    Definition at line 160 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ enable_assignable_expression

    + +
    +
    +
    +template<class LHS, class RHS, class R = void>
    + + + + +
    using xt::enable_assignable_expression = typename std::enable_if<can_assign<LHS, RHS>::value, R>::type
    +
    + +

    Definition at line 207 of file xexpression.hpp.

    + +
    +
    + +

    ◆ enable_indexed_stepper_t

    + +
    +
    +
    +template<class T, class R = T>
    + + + + +
    using xt::enable_indexed_stepper_t = typename enable_indexed_stepper<T, R>::type
    +
    + +

    Definition at line 232 of file xiterator.hpp.

    + +
    +
    + +

    ◆ enable_not_assignable_expression

    + +
    +
    +
    +template<class LHS, class RHS, class R = void>
    + + + + +
    using xt::enable_not_assignable_expression = typename std::enable_if<!can_assign<LHS, RHS>::value, R>::type
    +
    + +

    Definition at line 210 of file xexpression.hpp.

    + +
    +
    + +

    ◆ enable_xcontainer_semantics

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::enable_xcontainer_semantics = typename std::enable_if<has_container_semantics<E>::value, R>::type
    +
    + +

    Definition at line 215 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ enable_xexpression

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::enable_xexpression = typename std::enable_if<is_xexpression<E>::value, R>::type
    +
    + +

    Definition at line 184 of file xexpression.hpp.

    + +
    +
    + +

    ◆ enable_xsharable_expression

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::enable_xsharable_expression = typename std::enable_if<is_xsharable_expression<E>::value, R>::type
    +
    + +

    Definition at line 196 of file xexpression.hpp.

    + +
    +
    + +

    ◆ enable_xview_semantics

    + +
    +
    +
    +template<class E, class R = void>
    + + + + +
    using xt::enable_xview_semantics = typename std::enable_if<has_view_semantics<E>::value, R>::type
    +
    + +

    Definition at line 292 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ get_init_type_t

    + +
    +
    +
    +template<class V, class S>
    + + + + +
    using xt::get_init_type_t = typename get_init_type<V, S>::type
    +
    + +

    Definition at line 246 of file xfixed.hpp.

    + +
    +
    + +

    ◆ get_slice_type

    + +
    +
    +
    +template<class E, class SL>
    + + + + +
    using xt::get_slice_type = typename detail::get_slice_type_impl<E, std::remove_reference_t<SL>>::type
    +
    + +

    Definition at line 967 of file xslice.hpp.

    + +
    +
    + +

    ◆ get_stepper

    + +
    +
    +
    +template<class V>
    + + + + +
    using xt::get_stepper = typename detail::get_stepper_impl<V>::type
    +
    + +

    Definition at line 779 of file xview.hpp.

    + +
    +
    + +

    ◆ get_stepper_iterator

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::get_stepper_iterator = typename detail::get_stepper_iterator_impl<C>::type
    +
    + +

    Definition at line 70 of file xiterator.hpp.

    + +
    +
    + +

    ◆ get_strides_t

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::get_strides_t = typename get_strides_type<C>::type
    +
    + +

    Definition at line 990 of file xutils.hpp.

    + +
    +
    + +

    ◆ get_value_type_t

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::get_value_type_t = typename get_value_type<T>::type
    +
    + +

    Definition at line 493 of file xutils.hpp.

    + +
    +
    + +

    ◆ has_container_semantics

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::has_container_semantics = is_crtp_base_of<xcontainer_semantic, E>
    +
    + +

    Definition at line 212 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ has_fixed_rank_t

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::has_fixed_rank_t = typename has_fixed_rank<std::decay_t<E>>::type
    +
    + +

    Definition at line 1036 of file xutils.hpp.

    + +
    +
    + +

    ◆ has_rank_t

    + +
    +
    +
    +template<class E, size_t N>
    + + + + +
    using xt::has_rank_t = typename has_rank<std::decay_t<E>, N>::type
    +
    + +

    Definition at line 1049 of file xutils.hpp.

    + +
    +
    + +

    ◆ has_view_semantics

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::has_view_semantics = is_crtp_base_of<xview_semantic, E>
    +
    + +

    Definition at line 289 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ has_xexpression

    + +
    +
    +
    +template<class... E>
    + + + + +
    using xt::has_xexpression = std::disjunction<is_xexpression<E>...>
    +
    + +

    Definition at line 190 of file xexpression.hpp.

    + +
    +
    + +

    ◆ has_xslice

    + +
    +
    +
    +template<class... E>
    + + + + +
    using xt::has_xslice = std::disjunction<is_xslice<E>...>
    +
    + +

    Definition at line 67 of file xslice.hpp.

    + +
    +
    + +

    ◆ inner_reference_t

    + +
    +
    +
    +template<class ST>
    + + + + +
    using xt::inner_reference_t = typename inner_reference<ST>::type
    +
    + +

    Definition at line 1007 of file xutils.hpp.

    + +
    +
    + +

    ◆ is_assignable

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::is_assignable = is_crtp_base_of<xsemantic_base, E>
    +
    + +

    Definition at line 157 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ is_crtp_base_of

    + +
    +
    +
    +template<template< class > class B, class E>
    + + + + +
    using xt::is_crtp_base_of = detail::is_crtp_base_of_impl<B, std::decay_t<E>>
    +
    + +

    Definition at line 175 of file xexpression.hpp.

    + +
    +
    + +

    ◆ is_xexpression

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::is_xexpression = is_crtp_base_of<xexpression, E>
    +
    + +

    Definition at line 178 of file xexpression.hpp.

    + +
    +
    + +

    ◆ is_xscalar

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::is_xscalar = detail::is_xscalar_impl<E>
    +
    + +

    Definition at line 317 of file xscalar.hpp.

    + +
    +
    + +

    ◆ is_xsharable_expression

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::is_xsharable_expression = is_crtp_base_of<xsharable_expression, E>
    +
    + +

    Definition at line 193 of file xexpression.hpp.

    + +
    +
    + +

    ◆ is_xslice

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::is_xslice = std::is_base_of<xslice<S>, S>
    +
    + +

    Definition at line 64 of file xslice.hpp.

    + +
    +
    + +

    ◆ nested_initializer_list_t

    + +
    +
    +
    +template<class T, std::size_t I>
    + + + + +
    using xt::nested_initializer_list_t = typename nested_initializer_list<T, I>::type
    +
    + +

    Definition at line 311 of file xutils.hpp.

    + +
    +
    + +

    ◆ norm_type_t

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::norm_type_t = typename norm_type<T>::type
    +
    + +

    Abbreviation of 'typename norm_type<T>::type'.

    + +

    Definition at line 167 of file xnorm.hpp.

    + +
    +
    + +

    ◆ ravel_return_type_t

    + +
    +
    +
    +template<class C, class Tag>
    + + + + +
    using xt::ravel_return_type_t = typename detail::ravel_return_type<C, Tag>::type
    +
    + +

    Definition at line 951 of file xtensor.hpp.

    + +
    +
    + +

    ◆ rebind_container_t

    + +
    +
    +
    +template<class X, class C>
    + + + + +
    using xt::rebind_container_t = typename rebind_container<X, C>::type
    +
    + +

    Definition at line 80 of file xutils.hpp.

    + +
    +
    + +

    ◆ remove_class_t

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::remove_class_t = typename remove_class<T>::type
    +
    + +

    Definition at line 156 of file xutils.hpp.

    + +
    +
    + +

    ◆ select_expression_base_t

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::select_expression_base_t
    +
    +Initial value:
    std::
    +
    conditional_t<detail::is_sharable<D>::value, xsharable_expression<D>, xexpression<D>>
    +
    Base class for xexpressions.
    + +
    +

    Definition at line 43 of file xsemantic.hpp.

    + +
    +
    + +

    ◆ select_iterable_base_t

    + +
    +
    +
    +template<layout_type L1, layout_type L2, class T>
    + + + + +
    using xt::select_iterable_base_t = typename select_iterable_base<L1, L2, T>::type
    +
    + +

    Definition at line 62 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ smart_ownership

    + +
    +
    + + + + +
    using xt::smart_ownership = no_ownership
    +
    + +

    Definition at line 31 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ squared_norm_type_t

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::squared_norm_type_t = typename squared_norm_type<T>::type
    +
    + +

    Abbreviation of 'typename squared_norm_type<T>::type'.

    + +

    Definition at line 200 of file xnorm.hpp.

    + +
    +
    + +

    ◆ static_shape

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::static_shape = std::array<T, N>
    +
    + +

    Definition at line 29 of file xshape.hpp.

    + +
    +
    + +

    ◆ temporary_container_t

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::temporary_container_t = typename temporary_container<C>::type
    +
    + +

    Definition at line 609 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ temporary_type_t

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::temporary_type_t = typename temporary_type<T>::type
    +
    + +

    Definition at line 157 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ view_temporary_type_t

    + +
    +
    +
    +template<class E, class... SL>
    + + + + +
    using xt::view_temporary_type_t = typename view_temporary_type<E, SL...>::type
    +
    + +

    Definition at line 93 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ void_t

    + +
    +
    +
    +template<class... T>
    + + + + +
    using xt::void_t = typename make_void<T...>::type
    +
    + +

    Definition at line 93 of file xutils.hpp.

    + +
    +
    + +

    ◆ xarray

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>, class SA = std::allocator<typename std::vector<T, A>::size_type>>
    + + + + +
    using xt::xarray = xarray_container< uvector<T, A> , L, xt::svector<typename uvector<T, A>::size_type, 4, SA, true>>
    +
    + +

    Alias template on xarray_container with default parameters for data container type and shape / strides container type.

    +

    This allows to write

    +
    xt::xarray<double> a = {{1., 2.}, {3., 4.}};
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +

    instead of the heavier syntax

    +
    xt::xarray_container<std::vector<double>, std::vector<std::size_t>> a = ...
    +
    Dense multidimensional container with tensor semantic.
    Definition xarray.hpp:84
    +
    Template Parameters
    + + + + + +
    TThe value type of the elements.
    LThe layout_type of the xarray_container (default: XTENSOR_DEFAULT_LAYOUT).
    AThe allocator of the container holding the elements.
    SAThe allocator of the containers holding the shape and the strides.
    +
    +
    + +

    Definition at line 82 of file xtensor_forward.hpp.

    + +
    +
    + +

    ◆ xarray_optional

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>, class BC = xtl::xdynamic_bitset<std::size_t>, class SA = std::allocator<typename std::vector<T, A>::size_type>>
    + + + + +
    using xt::xarray_optional
    +
    +Initial value: +

    Alias template on xarray_container for handling missing values.

    +
    Template Parameters
    + + + + + + +
    TThe value type of the elements.
    LThe layout_type of the container (default: XTENSOR_DEFAULT_LAYOUT).
    AThe allocator of the container holding the elements.
    BAThe allocator of the container holding the missing flags.
    SAThe allocator of the containers holding the shape and the strides.
    +
    +
    + +

    Definition at line 107 of file xtensor_forward.hpp.

    + +
    +
    + +

    ◆ xclosure_t

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xclosure_t = typename xclosure<E>::type
    +
    + +

    Definition at line 274 of file xexpression.hpp.

    + +
    +
    + +

    ◆ xcsv_tensor

    + +
    +
    +
    +template<class T, class A = std::allocator<T>>
    + + + + +
    using xt::xcsv_tensor = xtensor_container<std::vector<T, A>, 2, layout_type::row_major>
    +
    + +

    Definition at line 30 of file xcsv.hpp.

    + +
    +
    + +

    ◆ xdynamic_slice

    + + + +

    ◆ xdynamic_slice_vector

    + +
    +
    + + + + +
    using xt::xdynamic_slice_vector = std::vector<xdynamic_slice<std::ptrdiff_t>>
    +
    + +

    Definition at line 315 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ xexpression_tag_t

    + +
    +
    +
    +template<class... T>
    + + + + +
    using xt::xexpression_tag_t = typename xexpression_tag<T...>::type
    +
    + +

    Definition at line 391 of file xexpression.hpp.

    + +
    +
    + +

    ◆ xindex

    + +
    +
    + + + + +
    using xt::xindex = dynamic_shape<std::size_t>
    +
    + +

    Definition at line 34 of file xshape.hpp.

    + +
    +
    + +

    ◆ xindex_type_t

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::xindex_type_t = typename detail::index_type_impl<C>::type
    +
    + +

    Definition at line 98 of file xiterator.hpp.

    + +
    +
    + +

    ◆ xoffset_adaptor

    + +
    +
    +
    +template<class CT, class M, std::size_t I>
    + + + + +
    using xt::xoffset_adaptor = xfunctor_adaptor<detail::offset_forwarder<M, I>, CT>
    +
    + +

    Definition at line 79 of file xoffset_view.hpp.

    + +
    +
    + +

    ◆ xoffset_view

    + +
    +
    +
    +template<class CT, class M, std::size_t I>
    + + + + +
    using xt::xoffset_view = xfunctor_view<detail::offset_forwarder<M, I>, CT>
    +
    + +

    Definition at line 76 of file xoffset_view.hpp.

    + +
    +
    + +

    ◆ xshape

    + +
    +
    +
    +template<std::size_t... N>
    + + + + +
    using xt::xshape = fixed_shape<N...>
    +
    + +

    Alias template for fixed_shape allows for a shorter template shape definition in xtensor_fixed.

    + +

    Definition at line 153 of file xtensor_forward.hpp.

    + +
    +
    + +

    ◆ xstrided_slice

    + + + +

    ◆ xstrided_slice_vector

    + +
    +
    + + + + +
    using xt::xstrided_slice_vector = std::vector<xstrided_slice<std::ptrdiff_t>>
    +
    + +

    vector of slices used to build a xstrided_view

    + +

    Definition at line 341 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xtensor

    + +
    +
    +
    +template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>>
    + + + + +
    using xt::xtensor = xtensor_container< uvector<T, A> , N, L>
    +
    + +

    Alias template on xtensor_container with default parameters for data container type.

    +

    This allows to write

    +
    xt::xtensor<double, 2> a = {{1., 2.}, {3., 4.}};
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +

    instead of the heavier syntax

    +
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    Template Parameters
    + + + + + +
    TThe value type of the elements.
    NThe dimension of the tensor.
    LThe layout_type of the tensor (default: XTENSOR_DEFAULT_LAYOUT).
    AThe allocator of the containers holding the elements.
    +
    +
    + +

    Definition at line 137 of file xtensor_forward.hpp.

    + +
    +
    + +

    ◆ xtensor_fixed

    + +
    +
    +
    +template<class T, class FSH, layout_type L = ::xt::layout_type::row_major, bool Sharable = true>
    + + + + +
    using xt::xtensor_fixed = xfixed_container<T, FSH, L, Sharable>
    +
    + +

    Alias template on xfixed_container with default parameters for layout type.

    +

    This allows to write

    +
    +
    xfixed_container< T, FSH, L, Sharable > xtensor_fixed
    Alias template on xfixed_container with default parameters for layout type.
    +

    instead of the syntax

    +
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xfixed.hpp:297
    + +
    Template Parameters
    + + + + + +
    TThe value type of the elements.
    FSHA xshape template shape.
    LThe layout_type of the tensor (default: XTENSOR_DEFAULT_LAYOUT).
    SharableWhether the tensor can be used in a shared expression.
    +
    +
    + +

    Definition at line 182 of file xtensor_forward.hpp.

    + +
    +
    + +

    ◆ xtensor_optional

    + +
    +
    +
    +template<class T, std::size_t N, layout_type L = ::xt::layout_type::row_major, class A = std::allocator<T>, class BC = xtl::xdynamic_bitset<std::size_t>>
    + + + + +
    using xt::xtensor_optional = xtensor_container<xtl::xoptional_vector<T, A, BC>, N, L, xoptional_expression_tag>
    +
    + +

    Alias template on xtensor_container for handling missing values.

    +
    Template Parameters
    + + + + + + +
    TThe value type of the elements.
    NThe dimension of the tensor.
    LThe layout_type of the container (default: XTENSOR_DEFAULT_LAYOUT).
    AThe allocator of the containers holding the elements.
    BAThe allocator of the container holding the missing flags.
    +
    +
    + +

    Definition at line 200 of file xtensor_forward.hpp.

    + +
    +
    + +

    ◆ xtrivially_default_constructible

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::xtrivially_default_constructible = std::is_trivially_default_constructible<T>
    +
    + +

    Definition at line 636 of file xutils.hpp.

    + +
    +
    + +

    ◆ xvalue_type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xvalue_type = detail::xvalue_type_impl<E>
    +
    + +

    Definition at line 37 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ xvalue_type_t

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xvalue_type_t = typename xvalue_type<E>::type
    +
    + +

    Definition at line 40 of file xexpression_traits.hpp.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ access_t

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::access_t
    +
    +strong
    +
    + +

    Defines the access policy for the underlying container.

    + + + +
    Enumerator
    SAFE 

    Use .at() accessor (bounds checked).

    +
    UNSAFE 

    Use operator() accessor (no bounds checking).

    +
    +
    Examples
    /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp.
    +
    + +

    Definition at line 27 of file index_mapper.hpp.

    + +
    +
    + +

    ◆ layout_type

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::layout_type
    +
    +strong
    +
    +

    layout_type enum for xcontainer based xexpressions

    + + + + + +
    Enumerator
    dynamic 

    dynamic layout_type: you can resize to row major, column major, or use custom strides

    +
    any 

    layout_type compatible with all others

    +
    row_major 

    row major layout_type

    +
    column_major 

    column major layout_type

    +
    + +

    Definition at line 23 of file xlayout.hpp.

    + +
    +
    + +

    ◆ pad_mode

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::pad_mode
    +
    +strong
    +
    + +

    Defines different algorithms to be used in xt::pad:

    +
      +
    • constant: Pads with a constant value.
    • +
    • symmetric: Pads with the reflection of the vector mirrored along the edge of the array.
    • +
    • reflect: Pads with the reflection of the vector mirrored on the first and last values of the vector along each axis.
    • +
    • wrap: Pads with the wrap of the vector along the axis. The first values are used to pad the end and the end values are used to pad the beginning.
    • +
    • periodic : == wrap (pads with periodic repetitions of the vector).
    • +
    +

    OpenCV to xtensor:

      +
    • BORDER_CONSTANT == constant
    • +
    • BORDER_REFLECT == symmetric
    • +
    • BORDER_REFLECT_101 == reflect
    • +
    • BORDER_WRAP == wrap
    • +
    + +

    Definition at line 38 of file xpad.hpp.

    + +
    +
    + +

    ◆ sorting_method

    + +
    +
    + + + + + +
    + + + + +
    enum class xt::sorting_method
    +
    +strong
    +
    + +

    Sorting method.

    +

    Predefined methods for performing indirect sorting.

    See also
    argsort(const xexpression<E>&, std::ptrdiff_t, sorting_method)
    + + + +
    Enumerator
    quick 

    Faster method but with no guarantee on preservation of order of equal elements https://en.cppreference.com/w/cpp/algorithm/sort.

    +
    stable 

    Slower method but with guarantee on preservation of order of equal elements https://en.cppreference.com/w/cpp/algorithm/stable_sort.

    +
    + +

    Definition at line 278 of file xsort.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ accumulate() [1/2]

    + +
    +
    +
    +template<class F, class E, class EVS = evaluation_strategy::immediate_type, xtl::check_concept< is_evaluation_strategy< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::accumulate (F && f,
    E && e,
    EVS evaluation_strategy = EVS() )
    +
    +inline
    +
    + +

    Accumulate and flatten array NOTE This function is not lazy!

    +
    Parameters
    + + + + +
    ffunctor to use for accumulation
    exexpression to be accumulated
    evaluation_strategyevaluation strategy of the accumulation
    +
    +
    +
    Returns
    returns xarray<T> filled with accumulated values
    + +

    Definition at line 344 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ accumulate() [2/2]

    + +
    +
    +
    +template<class F, class E, class EVS = evaluation_strategy::immediate_type>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::accumulate (F && f,
    E && e,
    std::ptrdiff_t axis,
    EVS evaluation_strategy = EVS() )
    +
    +inline
    +
    + +

    Accumulate over axis NOTE This function is not lazy!

    +
    Parameters
    + + + + + +
    fFunctor to use for accumulation
    exexpression to accumulate
    axisAxis to perform accumulation over
    evaluation_strategyevaluation strategy of the accumulation
    +
    +
    +
    Returns
    returns xarray<T> filled with accumulated values
    + +

    Definition at line 363 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ adapt_strides() [1/2]

    + +
    +
    +
    +template<class shape_type, class strides_type>
    + + + + + +
    + + + + + + + + + + + +
    void xt::adapt_strides (const shape_type & shape,
    strides_type & strides )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 627 of file xstrides.hpp.

    + +
    +
    + +

    ◆ adapt_strides() [2/2]

    + +
    +
    +
    +template<class shape_type, class strides_type, class backstrides_type>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::adapt_strides (const shape_type & shape,
    strides_type & strides,
    backstrides_type & backstrides )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 637 of file xstrides.hpp.

    + +
    +
    + +

    ◆ all()

    + +
    +
    + + + + + +
    + + + + + + + +
    auto xt::all ()
    +
    +inlinenoexcept
    +
    + +

    Returns a slice representing a full dimension, to be used as an argument of view function.

    +
    See also
    view, strided_view
    + +

    Definition at line 231 of file xslice.hpp.

    + +
    +
    + +

    ◆ amax() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::amax (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 782 of file xmath.hpp.

    + +
    +
    + +

    ◆ amax() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::amax (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 782 of file xmath.hpp.

    + +
    +
    + +

    ◆ amax() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::amax (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 782 of file xmath.hpp.

    + +
    +
    + +

    ◆ amin() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::amin (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 800 of file xmath.hpp.

    + +
    +
    + +

    ◆ amin() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::amin (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 800 of file xmath.hpp.

    + +
    +
    + +

    ◆ amin() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::amin (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 800 of file xmath.hpp.

    + +
    +
    + +

    ◆ apply()

    + +
    +
    +
    +template<class R, class F, class... S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    R xt::apply (std::size_t index,
    F && func,
    const std::tuple< S... > & s )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 269 of file xutils.hpp.

    + +
    +
    + +

    ◆ arange() [1/2]

    + +
    +
    +
    +template<class T, class S = T>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::arange (T start,
    T stop,
    S step = 1 )
    +
    +inlinenoexcept
    +
    + +

    Generates numbers evenly spaced within given half-open interval [start, stop).

    +
    Parameters
    + + + + +
    startstart of the interval
    stopstop of the interval
    stepstepsize
    +
    +
    +
    Template Parameters
    + + +
    Tvalue_type of xexpression
    +
    +
    +
    Returns
    xgenerator that generates the values on access
    +
    Examples
    /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp.
    +
    + +

    Definition at line 432 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ arange() [2/2]

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::arange (T stop)
    +
    +inlinenoexcept
    +
    + +

    Generate numbers evenly spaced within given half-open interval [0, stop) with a step size of 1.

    +
    Parameters
    + + +
    stopstop of the interval
    +
    +
    +
    Template Parameters
    + + +
    Tvalue_type of xexpression
    +
    +
    +
    Returns
    xgenerator that generates the values on access
    + +

    Definition at line 445 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ argmax()

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + +
    auto xt::argmax (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Definition at line 1268 of file xsort.hpp.

    + +
    +
    + +

    ◆ argmin() [1/2]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + +
    auto xt::argmin (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Definition at line 1238 of file xsort.hpp.

    + +
    +
    + +

    ◆ argmin() [2/2]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::argmin (const xexpression< E > & e,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Find position of minimal value in xexpression.

    +

    By default, the returned index is into the flattened array. If axis is specified, the indices are along the specified axis.

    +
    Parameters
    + + + +
    einput xexpression
    axisselect axis (optional)
    +
    +
    +
    Returns
    returns xarray with positions of minimal value
    + +

    Definition at line 1259 of file xsort.hpp.

    + +
    +
    + +

    ◆ argpartition() [1/5]

    + +
    +
    +
    +template<class E, xtl::non_integral_concept C>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argpartition (const xexpression< E > & e,
    C kth_container,
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Definition at line 703 of file xsort.hpp.

    + +
    +
    + +

    ◆ argpartition() [2/5]

    + +
    +
    +
    +template<class E, class I, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argpartition (const xexpression< E > & e,
    const I(&) kth_container[N],
    placeholders::xtuph tag )
    +
    +inline
    +
    + +

    Definition at line 687 of file xsort.hpp.

    + +
    +
    + +

    ◆ argpartition() [3/5]

    + +
    +
    +
    +template<class E, class I, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argpartition (const xexpression< E > & e,
    const I(&) kth_container[N],
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Definition at line 750 of file xsort.hpp.

    + +
    +
    + +

    ◆ argpartition() [4/5]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argpartition (const xexpression< E > & e,
    std::size_t kth,
    placeholders::xtuph tag )
    +
    +inline
    +
    + +

    Definition at line 697 of file xsort.hpp.

    + +
    +
    + +

    ◆ argpartition() [5/5]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argpartition (const xexpression< E > & e,
    std::size_t kth,
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Definition at line 760 of file xsort.hpp.

    + +
    +
    + +

    ◆ argsort()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::argsort (const xexpression< E > & e,
    placeholders::xtuph ,
    sorting_method method = sorting_method::quick )
    +
    +inline
    +
    + +

    Definition at line 430 of file xsort.hpp.

    + +
    +
    + +

    ◆ argument()

    + +
    +
    +
    +template<std::size_t I, class... Args>
    + + + + + +
    + + + + + + + +
    decltype(auto) xt::argument (Args &&... args)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 258 of file xutils.hpp.

    + +
    +
    + +

    ◆ as_chunked() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    xchunked_view< E > xt::as_chunked (E && e)
    +
    +inline
    +
    + +

    Definition at line 289 of file xchunked_view.hpp.

    + +
    +
    + +

    ◆ as_chunked() [2/2]

    + +
    +
    +
    +template<class E, class S>
    + + + + + +
    + + + + + + + + + + + +
    xchunked_view< E > xt::as_chunked (E && e,
    S && chunk_shape )
    +
    +inline
    +
    + +

    Definition at line 283 of file xchunked_view.hpp.

    + +
    +
    + +

    ◆ assert_compatible_shape()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    void xt::assert_compatible_shape (const xexpression< E1 > & e1,
    const xexpression< E2 > & e2 )
    +
    +inline
    +
    + +

    Definition at line 243 of file xassign.hpp.

    + +
    +
    + +

    ◆ assign_data()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::assign_data (xexpression< E1 > & e1,
    const xexpression< E2 > & e2,
    bool trivial )
    +
    +inline
    +
    + +

    Definition at line 208 of file xassign.hpp.

    + +
    +
    + +

    ◆ assign_xexpression()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    void xt::assign_xexpression (xexpression< E1 > & e1,
    const xexpression< E2 > & e2 )
    +
    +inline
    +
    + +

    Definition at line 215 of file xassign.hpp.

    + +
    +
    + +

    ◆ average() [1/4]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::average (E && e,
    EVS ev = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2042 of file xmath.hpp.

    + +
    +
    + +

    ◆ average() [2/4]

    + +
    +
    +
    +template<class T = void, class E, class W, class X, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::average (E && e,
    W && weights,
    const X(&) axes[N],
    EVS ev = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2020 of file xmath.hpp.

    + +
    +
    + +

    ◆ average() [3/4]

    + +
    +
    +
    +template<class T = void, class E, class W, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::average (E && e,
    W && weights,
    EVS ev = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2028 of file xmath.hpp.

    + +
    +
    + +

    ◆ average() [4/4]

    + +
    +
    +
    +template<class T = void, class E, class W, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, xtl::is_integral< X > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::average (E && e,
    W && weights,
    X axis,
    EVS ev = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2014 of file xmath.hpp.

    + +
    +
    + +

    ◆ axis_begin() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::axis_begin (E && e)
    +
    +inline
    +
    + +

    Returns an iterator to the first element of the expression for axis 0.

    +
    Parameters
    + + +
    ethe expession to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_iterator
    + +

    Definition at line 282 of file xaxis_iterator.hpp.

    + +
    +
    + +

    ◆ axis_begin() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::axis_begin (E && e,
    typename std::decay_t< E >::size_type axis )
    +
    +inline
    +
    + +

    Returns an iterator to the first element of the expression for the specified axis.

    +
    Parameters
    + + + +
    ethe expession to iterate over
    axisthe axis to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_iterator
    + +

    Definition at line 296 of file xaxis_iterator.hpp.

    + +
    +
    + +

    ◆ axis_end() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::axis_end (E && e)
    +
    +inline
    +
    + +

    Returns an iterator to the element following the last element of the expression for axis 0.

    +
    Parameters
    + + +
    ethe expession to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_iterator
    + +

    Definition at line 310 of file xaxis_iterator.hpp.

    + +
    +
    + +

    ◆ axis_end() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::axis_end (E && e,
    typename std::decay_t< E >::size_type axis )
    +
    +inline
    +
    + +

    Returns an iterator to the element following the last element of the expression for the specified axis.

    +
    Parameters
    + + + +
    ethe expression to iterate over
    axisthe axis to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_iterator
    + +

    Definition at line 331 of file xaxis_iterator.hpp.

    + +
    +
    + +

    ◆ axis_slice_begin() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::axis_slice_begin (E && e)
    +
    +inline
    +
    + +

    Returns an iterator to the first element of the expression for axis 0.

    +
    Parameters
    + + +
    ethe expession to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_slice_iterator
    + +

    Definition at line 294 of file xaxis_slice_iterator.hpp.

    + +
    +
    + +

    ◆ axis_slice_begin() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::axis_slice_begin (E && e,
    typename std::decay_t< E >::size_type axis )
    +
    +inline
    +
    + +

    Returns an iterator to the first element of the expression for the specified axis.

    +
    Parameters
    + + + +
    ethe expession to iterate over
    axisthe axis to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_slice_iterator
    + +

    Definition at line 308 of file xaxis_slice_iterator.hpp.

    + +
    +
    + +

    ◆ axis_slice_end() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::axis_slice_end (E && e)
    +
    +inline
    +
    + +

    Returns an iterator to the element following the last element of the expression for axis 0.

    +
    Parameters
    + + +
    ethe expession to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_slice_iterator
    + +

    Definition at line 322 of file xaxis_slice_iterator.hpp.

    + +
    +
    + +

    ◆ axis_slice_end() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::axis_slice_end (E && e,
    typename std::decay_t< E >::size_type axis )
    +
    +inline
    +
    + +

    Returns an iterator to the element following the last element of the expression for the specified axis.

    +
    Parameters
    + + + +
    ethe expression to iterate over
    axisthe axis to iterate over
    +
    +
    +
    Returns
    an instance of xaxis_slice_iterator
    + +

    Definition at line 342 of file xaxis_slice_iterator.hpp.

    + +
    +
    + +

    ◆ bin_items() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    xt::xtensor< size_t, 1 > xt::bin_items (size_t N,
    E && weights )
    +
    +inline
    +
    + +

    Get the number of items in each bin, given the fraction of items per bin.

    +

    The output is such that the total number of items of all bins is exactly "N".

    +
    Parameters
    + + + +
    Nthe number of items to distribute
    weightsfraction of items per bin: a 1D container whose size is the number of bins
    +
    +
    +
    Returns
    1D container with the number of items per bin
    + +

    Definition at line 576 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ bin_items() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    xt::xtensor< size_t, 1 > xt::bin_items (size_t N,
    size_t bins )
    +
    +inline
    +
    + +

    Get the number of items in each bin, with each bin having approximately the same number of items in it,under the constraint that the total number of items of all bins is exactly "N".

    +
    Parameters
    + + + +
    Nthe number of items to distribute
    binsthe number of bins
    +
    +
    +
    Returns
    1D container with the number of items per bin
    + +

    Definition at line 618 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ bincount() [1/2]

    + +
    +
    +
    +template<class E1, class E2, xtl::check_concept< is_xexpression< std::decay_t< E2 > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::bincount (E1 && data,
    E2 && weights,
    std::size_t minlength = 0 )
    +
    +inline
    +
    + +

    Count number of occurrences of each value in array of non-negative ints.

    +

    The number of bins (of size 1) is one larger than the largest value in x. If minlength is specified, there will be at least this number of bins in the output array (though it will be longer if necessary, depending on the contents of x). Each bin gives the number of occurrences of its index value in x. If weights is specified the input array is weighted by it, i.e. if a value n is found at position i, out[n] += weight[i] instead of out[n] += 1.

    +
    Parameters
    + + + + +
    datathe 1D container with integers to count into bins
    weightsa 1D container with the same number of elements as data
    minlengthThe minlength
    +
    +
    +
    Returns
    1D container with the bincount
    + +

    Definition at line 523 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ bincount() [2/2]

    + +
    +
    +
    +template<class E1>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::bincount (E1 && data,
    std::size_t minlength = 0 )
    +
    +inline
    +
    + +

    Definition at line 557 of file xhistogram.hpp.

    + +
    +
    + +

    ◆ blockwise_reducer()

    + +
    +
    +
    +template<class E, class CS, class A, class O, class FF>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::blockwise_reducer (E && e,
    CS && chunk_shape,
    A && axes,
    O && raw_options,
    FF && functor )
    +
    +inline
    +
    + +

    Definition at line 269 of file xblockwise_reducer.hpp.

    + +
    +
    + +

    ◆ broadcast() [1/2]

    + +
    +
    +
    +template<class E, class I, std::size_t L>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::broadcast (E && e,
    const I(&) s[L] )
    +
    +inline
    +
    + +

    Definition at line 264 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ broadcast() [2/2]

    + +
    +
    +
    +template<class E, class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::broadcast (E && e,
    const S & s )
    +
    +inline
    +
    + +

    Returns an xexpression broadcasting the given expression to a specified shape.

    +
    Template Parameters
    + + + +
    ethe xexpression to broadcast
    sthe specified shape to broadcast.
    +
    +
    +

    The returned expression either hold a const reference to e or a copy depending on whether e is an lvalue or an rvalue.

    + +

    Definition at line 256 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ broadcast_shape()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::broadcast_shape (const S1 & input,
    S2 & output )
    +
    +inline
    +
    + +

    Definition at line 738 of file xstrides.hpp.

    + +
    +
    + +

    ◆ broadcastable()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::broadcastable (const S1 & src_shape,
    const S2 & dst_shape )
    +
    +inline
    +
    + +

    Definition at line 783 of file xstrides.hpp.

    + +
    +
    + +

    ◆ check_access()

    + +
    +
    +
    +template<class S, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    void xt::check_access (const S & shape,
    Args... args )
    +
    +inline
    +
    + +

    Definition at line 305 of file xexception.hpp.

    + +
    +
    + +

    ◆ check_axis_in_dim()

    + +
    +
    +
    +template<class A, class D>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::check_axis_in_dim (A axis,
    D dim,
    const char * subject = "Axis" )
    +
    +inline
    +
    + +

    Definition at line 287 of file xexception.hpp.

    + +
    +
    + +

    ◆ check_dimension()

    + +
    +
    +
    +template<class S, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    void xt::check_dimension (const S & shape,
    Args...  )
    +
    +inline
    +
    + +

    Definition at line 270 of file xexception.hpp.

    + +
    +
    + +

    ◆ check_element_index()

    + +
    +
    +
    +template<class S, class It>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::check_element_index (const S & shape,
    It first,
    It last )
    +
    +inline
    +
    + +

    Definition at line 243 of file xexception.hpp.

    + +
    +
    + +

    ◆ check_in_bounds()

    + +
    +
    +
    +template<class S, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::check_in_bounds (const S & shape,
    Args &... args )
    +
    +inline
    +
    + +

    Definition at line 879 of file xstrides.hpp.

    + +
    +
    + +

    ◆ check_index() [1/3]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    void xt::check_index (const S & )
    +
    +inline
    +
    + +

    Definition at line 207 of file xexception.hpp.

    + +
    +
    + +

    ◆ check_index() [2/3]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::check_index (const S & ,
    missing_type  )
    +
    +inline
    +
    + +

    Definition at line 212 of file xexception.hpp.

    + +
    +
    + +

    ◆ check_index() [3/3]

    + +
    +
    +
    +template<class S, class Arg, class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::check_index (const S & shape,
    Arg arg,
    Args... args )
    +
    +inline
    +
    + +

    Definition at line 217 of file xexception.hpp.

    + +
    +
    + +

    ◆ chunked_array()

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + + + + + + + + + + + + +
    xchunked_array< xarray< xarray< T > > > xt::chunked_array (std::initializer_list< S > shape,
    std::initializer_list< S > chunk_shape,
    layout_type chunk_memory_layout = ::xt::layout_type::row_major )
    +
    + +

    Definition at line 360 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ col()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::col (E && e,
    std::ptrdiff_t index )
    +
    +inline
    +
    + +

    Constructs and returns a column (sliced view) on the specified expression.

    +

    Users should not directly construct the slices but call helper functions instead. This function is only allowed on expressions with two dimensions.

    Parameters
    + + + +
    ethe xexpression to adapt
    index0-based index of the column, negative indices will return the last columns in reverse order.
    +
    +
    +
    Exceptions
    + + +
    std::invalid_argumentif the expression has more than 2 dimensions.
    +
    +
    + +

    Definition at line 1926 of file xview.hpp.

    + +
    +
    + +

    ◆ compute_0d_table()

    + +
    +
    +
    +template<class P, class T>
    + + + + + + + + + + + + + + + + +
    void xt::compute_0d_table (std::stringstream & out,
    P & ,
    const T & expr )
    +
    + +

    Definition at line 25 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_1d_row()

    + +
    +
    +
    +template<class P>
    + + + + + + + + + + + + + + + + +
    void xt::compute_1d_row (std::stringstream & out,
    P & printer,
    const std::size_t & row_idx )
    +
    + +

    Definition at line 35 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_1d_table()

    + +
    +
    +
    +template<class P, class T>
    + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_1d_table (std::stringstream & out,
    P & printer,
    const T & expr,
    const std::size_t & edgeitems )
    +
    + +

    Definition at line 43 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_2d_element()

    + +
    +
    +
    +template<class P>
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_2d_element (std::stringstream & out,
    P & printer,
    const std::string & idx_str,
    const std::size_t & row_idx,
    const std::size_t & column_idx )
    +
    + +

    Definition at line 71 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_2d_row()

    + +
    +
    +
    +template<class P, class T>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_2d_row (std::stringstream & out,
    P & printer,
    const T & expr,
    const std::size_t & edgeitems,
    const std::string & idx_str,
    const std::size_t & row_idx )
    +
    + +

    Definition at line 86 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_2d_table()

    + +
    +
    +
    +template<class P, class T, class I>
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_2d_table (std::stringstream & out,
    P & printer,
    const T & expr,
    const std::size_t & edgeitems,
    const std::vector< I > & idx )
    +
    + +

    Definition at line 121 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_layout()

    + +
    +
    +
    +template<class... Args>
    + + + + + +
    + + + + + + + +
    layout_type xt::compute_layout (Args... args)
    +
    +constexprnoexcept
    +
    + +

    Implementation of the following logical table:

    +
       | d | a | r | c |
    + --+---+---+---+---+
    + d | d | d | d | d |
    + a | d | a | r | c |
    + r | d | r | r | d |
    + c | d | c | d | c |
    + d = dynamic, a = any, r = row_major, c = column_major.
    +

    Using bitmasks to avoid nested if-else statements.

    +
    Parameters
    + + +
    argsthe input layouts.
    +
    +
    +
    Returns
    the output layout, computed with the previous logical table.
    + +

    Definition at line 88 of file xlayout.hpp.

    + +
    +
    + +

    ◆ compute_nd_row()

    + +
    +
    +
    +template<class P, class T, class I>
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_nd_row (std::stringstream & out,
    P & printer,
    const T & expr,
    const std::size_t & edgeitems,
    const std::vector< I > & idx )
    +
    + +

    Definition at line 183 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_nd_table()

    + +
    +
    +
    +template<class P, class T>
    + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_nd_table (std::stringstream & out,
    P & printer,
    const T & expr,
    const std::size_t & edgeitems )
    +
    + +

    Definition at line 244 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_nd_table_impl()

    + +
    +
    +
    +template<class P, class T, class I>
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void xt::compute_nd_table_impl (std::stringstream & out,
    P & printer,
    const T & expr,
    const std::size_t & edgeitems,
    const std::vector< I > & idx )
    +
    + +

    Definition at line 197 of file xmime.hpp.

    + +
    +
    + +

    ◆ compute_size()

    + +
    +
    +
    +template<class shape_type>
    + + + + + +
    + + + + + + + +
    std::size_t xt::compute_size (const shape_type & shape)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 351 of file xstrides.hpp.

    + +
    +
    + +

    ◆ compute_strides()

    + +
    +
    +
    +template<layout_type L = layout_type::dynamic, class shape_type, class strides_type, class backstrides_type>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    std::size_t xt::compute_strides (const shape_type & shape,
    layout_type l,
    strides_type & strides,
    backstrides_type & backstrides )
    +
    +inline
    +
    + +

    Definition at line 577 of file xstrides.hpp.

    + +
    +
    + +

    ◆ computed_assign()

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + + + + + + + + +
    void xt::computed_assign (xexpression< E1 > & e1,
    const xexpression< E2 > & e2 )
    +
    +inline
    +
    + +

    Definition at line 229 of file xassign.hpp.

    + +
    +
    + +

    ◆ concatenate() [1/2]

    + +
    +
    +
    +template<std::size_t axis, fixed_shape_container_concept... CT>
    + + + + + +
    + + + + + + + +
    auto xt::concatenate (std::tuple< CT... > && t)
    +
    +inline
    +
    + +

    Definition at line 837 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ concatenate() [2/2]

    + +
    +
    +
    +template<class... CT>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::concatenate (std::tuple< CT... > && t,
    std::size_t axis = 0 )
    +
    +inline
    +
    + +

    Concatenates xexpressions along axis.

    +
    Parameters
    + + + +
    txtuple of xexpressions to concatenate
    axisaxis along which elements are concatenated
    +
    +
    +
    Returns
    xgenerator evaluating to concatenated elements
    +
    xt::xarray<double> a = {{1, 2, 3}};
    +
    xt::xarray<double> b = {{2, 3, 4}};
    +
    xt::xarray<double> c = xt::concatenate(xt::xtuple(a, b)); // => {{1, 2, 3},
    +
    // {2, 3, 4}}
    +
    xt::xarray<double> d = xt::concatenate(xt::xtuple(a, b), 1); // => {{1, 2, 3, 2, 3, 4}}
    +
    auto concatenate(std::tuple< CT... > &&t, std::size_t axis=0)
    Concatenates xexpressions along axis.
    Definition xbuilder.hpp:830
    +
    auto xtuple(Types &&... args)
    Creates tuples from arguments for concatenate and stack.
    Definition xbuilder.hpp:707
    +
    +

    Definition at line 830 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ conditional_cast()

    + +
    +
    +
    +template<bool condition, class T, class U>
    + + + + + +
    + + + + + + + +
    auto xt::conditional_cast (U && u)
    +
    +inline
    +
    + +

    Perform a type cast when a condition is true.

    +

    If condition is true, return static_cast<T>(u), otherwise return u unchanged. This is useful when an unconditional static_cast would force undesired type conversions in some situations where an error or warning would be desired. The condition determines when the explicit cast is ok.

    + +

    Definition at line 677 of file xutils.hpp.

    + +
    +
    + +

    ◆ convolve()

    + +
    +
    +
    +template<class E1, class E2, class E3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::convolve (E1 && a,
    E2 && v,
    E3 mode )
    +
    +inline
    +
    + +

    Definition at line 3305 of file xmath.hpp.

    + +
    +
    + +

    ◆ copy_to_reduced()

    + +
    +
    +
    +template<class F, class E, class R, xtl::check_concept< std::is_convertible< typename E::value_type, typename R::value_type > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::copy_to_reduced (F & f,
    const E & e,
    R & result )
    +
    +inline
    +
    + +

    Definition at line 242 of file xreducer.hpp.

    + +
    +
    + +

    ◆ count_nonnan() [1/3]

    + +
    +
    +
    +template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::count_nonnan (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2607 of file xmath.hpp.

    + +
    +
    + +

    ◆ count_nonnan() [2/3]

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::count_nonnan (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2581 of file xmath.hpp.

    + +
    +
    + +

    ◆ count_nonnan() [3/3]

    + +
    +
    +
    +template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::count_nonnan (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2591 of file xmath.hpp.

    + +
    +
    + +

    ◆ count_nonzero() [1/4]

    + +
    +
    +
    +template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::count_nonzero (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2567 of file xmath.hpp.

    + +
    +
    + +

    ◆ count_nonzero() [2/4]

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::count_nonzero (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2530 of file xmath.hpp.

    + +
    +
    + +

    ◆ count_nonzero() [3/4]

    + +
    +
    +
    +template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::count_nonzero (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2545 of file xmath.hpp.

    + +
    +
    + +

    ◆ count_nonzero() [4/4]

    + +
    +
    +
    +template<class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< X > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::count_nonzero (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2561 of file xmath.hpp.

    + +
    +
    + +

    ◆ cov()

    + +
    +
    +
    +template<class E1>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::cov (const E1 & x,
    const E1 & y = E1() )
    +
    +inline
    +
    + +

    Returns the covariance matrix.

    +
    Parameters
    + + + +
    xone or two dimensional array
    yoptional one-dimensional array to build covariance to x
    +
    +
    + +

    Definition at line 3194 of file xmath.hpp.

    + +
    +
    + +

    ◆ cumprod()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + +
    auto xt::cumprod (E && e)
    +
    +inline
    +
    + +

    Definition at line 2329 of file xmath.hpp.

    + +
    +
    + +

    ◆ cumsum()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + +
    auto xt::cumsum (E && e)
    +
    +inline
    +
    + +

    Definition at line 2294 of file xmath.hpp.

    + +
    +
    + +

    ◆ data_offset()

    + +
    +
    +
    +template<class offset_type, class S>
    + + + + + +
    + + + + + + + +
    offset_type xt::data_offset (const S & strides)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 451 of file xstrides.hpp.

    + +
    +
    + +

    ◆ default_assignable_layout()

    + +
    +
    + + + + + +
    + + + + + + + +
    layout_type xt::default_assignable_layout (layout_type l)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 93 of file xlayout.hpp.

    + +
    +
    + +

    ◆ diag()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::diag (E && arr,
    int k = 0 )
    +
    +inline
    +
    + +

    xexpression with values of arr on the diagonal, zeroes otherwise

    +
    Parameters
    + + + +
    arrthe 1D input array of length n
    kthe offset of the considered diagonal
    +
    +
    +
    Returns
    xexpression function with shape n x n and arr on the diagonal
    +
    xt::xarray<double> a = {1, 5, 9};
    +
    auto b = xt::diag(a); // => {{1, 0, 0},
    +
    // {0, 5, 0},
    +
    // {0, 0, 9}}
    +
    auto diag(E &&arr, int k=0)
    xexpression with values of arr on the diagonal, zeroes otherwise
    +
    +

    Definition at line 1202 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ diagonal()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::diagonal (E && arr,
    int offset = 0,
    std::size_t axis_1 = 0,
    std::size_t axis_2 = 1 )
    +
    +inline
    +
    + +

    Returns the elements on the diagonal of arr If arr has more than two dimensions, then the axes specified by axis_1 and axis_2 are used to determine the 2-D sub-array whose diagonal is returned.

    +

    The shape of the resulting array can be determined by removing axis1 and axis2 and appending an index to the right equal to the size of the resulting diagonals.

    +
    Parameters
    + + + + + +
    arrthe input array
    offsetoffset of the diagonal from the main diagonal. Can be positive or negative.
    axis_1Axis to be used as the first axis of the 2-D sub-arrays from which the diagonals should be taken.
    axis_2Axis to be used as the second axis of the 2-D sub-arrays from which the diagonals should be taken.
    +
    +
    +
    Returns
    xexpression with values of the diagonal
    +
    xt::xarray<double> a = {{1, 2, 3},
    +
    {4, 5, 6}
    +
    {7, 8, 9}};
    +
    auto b = xt::diagonal(a); // => {1, 5, 9}
    +
    auto diagonal(E &&arr, int offset=0, std::size_t axis_1=0, std::size_t axis_2=1)
    Returns the elements on the diagonal of arr If arr has more than two dimensions, then the axes specif...
    +
    +

    Definition at line 1150 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ do_strides_match()

    + +
    +
    +
    +template<class shape_type, class strides_type>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    bool xt::do_strides_match (const shape_type & shape,
    const strides_type & strides,
    layout_type l,
    bool zero_strides )
    +
    +inline
    +
    + +

    Definition at line 592 of file xstrides.hpp.

    + +
    +
    + +

    ◆ drop() [1/2]

    + +
    +
    +
    +template<class R = std::ptrdiff_t, class Arg0, class Arg1, class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xdrop_slice< R > xt::drop (Arg0 i0,
    Arg1 i1,
    Args... args )
    +
    +inline
    +
    + +

    Definition at line 511 of file xslice.hpp.

    + +
    +
    + +

    ◆ drop() [2/2]

    + +
    +
    +
    +template<class R = std::ptrdiff_t, class T>
    + + + + + +
    + + + + + + + +
    auto xt::drop (T && indices)
    +
    +inline
    +
    + +

    Create a non-contigous slice from a container of indices to drop.

    +

    Note: this slice cannot be used in the xstrided_view!

    +
    +
    a.reshape({3, 3});
    +
    xt::view(a, xt::drop(0, 2); // => {{3, 4, 5}}
    +
    auto & reshape(S &&shape, layout_type layout=base_type::static_layout) &
    Reshapes the container and keeps old elements.
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    auto drop(T &&indices)
    Create a non-contigous slice from a container of indices to drop.
    Definition xslice.hpp:495
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    +
    Parameters
    + + +
    indicesThe container of indices to drop
    +
    +
    +
    Returns
    instance of xdrop_slice
    + +

    Definition at line 495 of file xslice.hpp.

    + +
    +
    + +

    ◆ dump_csv()

    + +
    +
    +
    +template<class E>
    + + + + + + + + + + + +
    void xt::dump_csv (std::ostream & stream,
    const xexpression< E > & e )
    +
    + +

    Dump tensor to CSV.

    +
    Parameters
    + + + +
    streamthe output stream to write the CSV encoded values
    ethe tensor expression to serialize
    +
    +
    + +

    Definition at line 209 of file xcsv.hpp.

    + +
    +
    + +

    ◆ dump_file()

    + +
    +
    +
    +template<class E>
    + + + + + + + + + + + + + + + + +
    void xt::dump_file (std::ostream & stream,
    const xexpression< E > & e,
    const xcsv_config &  )
    +
    + +

    Definition at line 278 of file xcsv.hpp.

    + +
    +
    + +

    ◆ dump_npy() [1/2]

    + +
    +
    +
    +template<typename E>
    + + + + + +
    + + + + + + + + + + + +
    void xt::dump_npy (const std::string & filename,
    const xexpression< E > & e )
    +
    +inline
    +
    + +

    Save xexpression to NumPy npy format.

    +
    Parameters
    + + + +
    filenameThe filename or path to dump the data
    ethe xexpression
    +
    +
    + +

    Definition at line 740 of file xnpy.hpp.

    + +
    +
    + +

    ◆ dump_npy() [2/2]

    + +
    +
    +
    +template<typename E>
    + + + + + +
    + + + + + + + +
    std::string xt::dump_npy (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Save xexpression to NumPy npy format in a string.

    +
    Parameters
    + + +
    ethe xexpression
    +
    +
    + +

    Definition at line 757 of file xnpy.hpp.

    + +
    +
    + +

    ◆ dynamic_view()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::dynamic_view (E && e,
    const xdynamic_slice_vector & slices )
    +
    +inline
    +
    + +

    Definition at line 784 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ element_offset()

    + +
    +
    +
    +template<class offset_type, class S, class It>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    offset_type xt::element_offset (const S & strides,
    It first,
    It last )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 492 of file xstrides.hpp.

    + +
    +
    + +

    ◆ ellipsis()

    + +
    +
    + + + + + +
    + + + + + + + +
    auto xt::ellipsis ()
    +
    +inlinenoexcept
    +
    + +

    Returns a slice representing all remaining dimensions, and selecting all in these dimensions.

    +

    Ellipsis will expand to a series of all() slices, until the number of slices is equal to the number of dimensions of the source array.

    +

    Note: ellipsis can only be used in strided_view!

    +
    xarray<double> a = xarray<double>::from_shape({5, 5, 1, 1, 5});
    +
    auto v = xt::strided_view(a, {2, xt::ellipsis(), 2});
    +
    // equivalent to using {2, xt::all(), xt::all(), xt::all(), 2};
    +
    auto ellipsis() noexcept
    Returns a slice representing all remaining dimensions, and selecting all in these dimensions.
    Definition xslice.hpp:252
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    See also
    strided_view
    + +

    Definition at line 252 of file xslice.hpp.

    + +
    +
    + +

    ◆ empty() [1/4]

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, std::size_t... N>
    + + + + + +
    + + + + + + + +
    xtensor_fixed< T, fixed_shape< N... >, L > xt::empty (const fixed_shape< N... > & )
    +
    +inline
    +
    + +

    Definition at line 109 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ empty() [2/4]

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class I, std::size_t N>
    + + + + + +
    + + + + + + + +
    xtensor< T, N, L > xt::empty (const I(&) shape[N])
    +
    +inline
    +
    + +

    Definition at line 102 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ empty() [3/4]

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class S>
    + + + + + +
    + + + + + + + +
    xarray< T, L > xt::empty (const S & shape)
    +
    +inline
    +
    + +

    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of with value_type T and shape.

    +

    Selects the best container match automatically from the supplied shape.

    +
      +
    • std::vectorxarray<T>
    • +
    • std::array or initializer_listxtensor<T, N>
    • +
    • xshape<N...>xtensor_fixed<T, xshape<N...>>
    • +
    +
    Parameters
    + + +
    shapeshape of the new xcontainer
    +
    +
    + +

    Definition at line 89 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ empty() [4/4]

    + +
    +
    +
    +template<class T, layout_type L = ::xt::layout_type::row_major, class ST, std::size_t N>
    + + + + + +
    + + + + + + + +
    xtensor< T, N, L > xt::empty (const std::array< ST, N > & shape)
    +
    +inline
    +
    + +

    Definition at line 95 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ empty_like()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::empty_like (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of the same shape, value type and layout as the input xexpression e.

    +
    Parameters
    + + +
    ethe xexpression from which to extract shape, value type and layout.
    +
    +
    + +

    Definition at line 121 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ eye() [1/2]

    + +
    +
    +
    +template<class T = bool>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::eye (const std::vector< std::size_t > & shape,
    int k = 0 )
    +
    +inline
    +
    + +

    Generates an array with ones on the diagonal.

    +
    Parameters
    + + + +
    shapeshape of the resulting expression
    kindex of the diagonal. 0 (default) refers to the main diagonal, a positive value refers to an upper diagonal, and a negative value to a lower diagonal.
    +
    +
    +
    Template Parameters
    + + +
    Tvalue_type of xexpression
    +
    +
    +
    Returns
    xgenerator that generates the values on access
    + +

    Definition at line 403 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ eye() [2/2]

    + +
    +
    +
    +template<class T = bool>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::eye (std::size_t n,
    int k = 0 )
    +
    +inline
    +
    + +

    Generates a (n x n) array with ones on the diagonal.

    +
    Parameters
    + + + +
    nlength of the diagonal.
    kindex of the diagonal. 0 (default) refers to the main diagonal, a positive value refers to an upper diagonal, and a negative value to a lower diagonal.
    +
    +
    +
    Template Parameters
    + + +
    Tvalue_type of xexpression
    +
    +
    +
    Returns
    xgenerator that generates the values on access
    + +

    Definition at line 418 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ filter()

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E, class O>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::filter (E && e,
    O && condition )
    +
    +inlinenoexcept
    +
    + +

    creates a view into e filtered by condition.

    +

    Returns a 1D view with the elements selected where condition evaluates to true. This is equivalent to

    {index_view(e, argwhere(condition));} 

    The returned view is not optimal if you just want to assign a scalar to the filtered elements. In that case, you should consider using the filtration function instead.

    +
    Template Parameters
    + + +
    Lthe traversal order
    +
    +
    +
    Parameters
    + + + +
    ethe underlying xexpression
    conditionxexpression with shape of e which selects indices
    +
    +
    +
    xarray<double> a = {{1,5,3}, {4,5,6}};
    +
    b = filter(a, a >= 5);
    +
    std::cout << b << std::endl; // {5, 5, 6}
    +
    auto filter(E &&e, O &&condition) noexcept
    creates a view into e filtered by condition.
    +
    See also
    filtration
    + +

    Definition at line 821 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ filtration()

    + +
    +
    +
    +template<class E, class C>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::filtration (E && e,
    C && condition )
    +
    +inlinenoexcept
    +
    + +

    creates a filtration of e filtered by condition.

    +

    Returns a lazy filtration optimized for scalar assignment. Actually, scalar assignment and computed scalar assignments are the only available methods of the filtration, the filtration IS NOT an xexpression.

    +
    Parameters
    + + + +
    ethe xexpression to filter
    conditionthe filtering xexpression
    +
    +
    +
    xarray<double> a = {{1,5,3}, {4,5,6}};
    +
    filtration(a, a >= 5) += 2;
    +
    std::cout << a << std::endl; // {{1, 7, 3}, {4, 7, 8}}
    +
    auto filtration(E &&e, C &&condition) noexcept
    creates a filtration of e filtered by condition.
    +
    +

    Definition at line 846 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ flatnonzero()

    + +
    +
    +
    +template<layout_type L, class T>
    + + + + + +
    + + + + + + + +
    auto xt::flatnonzero (const T & arr)
    +
    +inline
    +
    + +

    Return indices that are non-zero in the flattened version of arr.

    +

    Equivalent to nonzero(ravel<layout_type>(arr))[0];

    +
    Parameters
    + + +
    arrinput array
    +
    +
    +
    Returns
    indices that are non-zero in the flattened version of arr
    + +

    Definition at line 458 of file xmanipulation.hpp.

    + +
    +
    + +

    ◆ flatten_indices()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::flatten_indices (const std::vector< T > & idx)
    +
    +inline
    +
    + +

    Converts std::vector<index_type> (returned e.g.

    +

    from xt::argwhere) to a flattened xtensor.

    +
    Parameters
    + + +
    idxa vector of indices
    +
    +
    +
    Returns
    xt::xtensor<typename index_type::value_type, 1> (e.g. xt::xtensor<size_t, 1>)
    + +

    Definition at line 890 of file xtensor.hpp.

    + +
    +
    + +

    ◆ for_each() [1/2]

    + +
    +
    +
    +template<class F, class... Ts>
    + + + + + +
    + + + + + + + + + + + +
    void xt::for_each (F && f,
    const std::tuple< Ts... > & t )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 190 of file xutils.hpp.

    + +
    +
    + +

    ◆ for_each() [2/2]

    + +
    +
    +
    +template<class F, class... Ts>
    + + + + + +
    + + + + + + + + + + + +
    void xt::for_each (F && f,
    std::tuple< Ts... > & t )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 182 of file xutils.hpp.

    + +
    +
    + +

    ◆ forward_normalize()

    + +
    +
    +
    +template<class R, class E, class C>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::forward_normalize (E & expr,
    C && axes ) -> std::enable_if_t<xtl::is_signed<std::decay_t<decltype(*std::begin(axes))>>::value, R> +
    +
    +inline
    +
    + +

    Definition at line 410 of file xutils.hpp.

    + +
    +
    + +

    ◆ from_indices()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::from_indices (const std::vector< T > & idx)
    +
    +inline
    +
    + +

    Converts std::vector<index_type> (returned e.g.

    +

    from xt::argwhere) to xtensor.

    +
    Parameters
    + + +
    idxvector of indices
    +
    +
    +
    Returns
    xt::xtensor<typename index_type::value_type, 2> (e.g. xt::xtensor<size_t, 2>)
    + +

    Definition at line 858 of file xtensor.hpp.

    + +
    +
    + +

    ◆ from_json()

    + +
    +
    +
    +template<template< typename U, typename V, typename... Args > class M, class E>
    + + + + + +
    + + + + + + + + + + + +
    enable_xcontainer_semantics< E > xt::from_json (const nlohmann::basic_json< M > & j,
    E & e )
    +
    +inline
    +
    + +

    JSON deserialization of a xtensor expression with a container or a view semantics.

    +

    The from_json method is used by the nlohmann_json library for automatic serialization of user-defined types. The method is picked up by argument-dependent lookup.

    +

    Note: for converting a JSON object to a value, nlohmann_json requires the value type to be default constructible, which is typically not the case for expressions with a view semantics. In this case, from_json can be called directly.

    +
    Parameters
    + + + +
    ja const JSON object
    ean xexpression
    +
    +
    + +

    Definition at line 156 of file xjson.hpp.

    + +
    +
    + +

    ◆ full_like()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::full_like (const xexpression< E > & e,
    typename E::value_type fill_value )
    +
    +inline
    +
    + +

    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with fill_value and of the same shape, value type and layout as the input xexpression e.

    +
    Parameters
    + + + +
    ethe xexpression from which to extract shape, value type and layout.
    fill_valuethe value used to set each element of the returned xcontainer.
    +
    +
    + +

    Definition at line 136 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ get() [1/3]

    + +
    +
    +
    +template<std::size_t I, template< typename... Args > class T, typename... Args>
    + + + + + + + +
    decltype(auto) xt::get (const T< Args... > & v)
    +
    + +

    Definition at line 514 of file xutils.hpp.

    + +
    +
    + +

    ◆ get() [2/3]

    + +
    +
    +
    +template<std::size_t I, template< typename... Args > class T, typename... Args>
    + + + + + + + +
    decltype(auto) xt::get (T< Args... > && v)
    +
    + +

    Definition at line 502 of file xutils.hpp.

    + +
    +
    + +

    ◆ get() [3/3]

    + +
    +
    +
    +template<std::size_t I, template< typename... Args > class T, typename... Args>
    + + + + + + + +
    decltype(auto) xt::get (T< Args... > & v)
    +
    + +

    Definition at line 508 of file xutils.hpp.

    + +
    +
    + +

    ◆ get_backstrides()

    + +
    +
    +
    +template<class S, class T>
    + + + + + +
    + + + + + + + + + + + +
    T xt::get_backstrides (const S & shape,
    const T & strides )
    +
    +constexprnoexcept
    +
    + +

    Definition at line 231 of file xfixed.hpp.

    + +
    +
    + +

    ◆ get_print_options()

    + +
    +
    + + + + + +
    + + + + + + + +
    print_options::print_options_impl xt::get_print_options (std::ostream & out)
    +
    +inline
    +
    + +

    Definition at line 692 of file xio.hpp.

    + +
    +
    + +

    ◆ get_size()

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::get_size (const S & slice)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 779 of file xslice.hpp.

    + +
    +
    + +

    ◆ get_slice_implementation()

    + +
    +
    +
    +template<class E, class SL>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::get_slice_implementation (E & e,
    SL && slice,
    std::size_t index )
    +
    +inline
    +
    + +

    Definition at line 929 of file xslice.hpp.

    + +
    +
    + +

    ◆ get_slice_value()

    + +
    +
    +
    +template<class S, class It>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::get_slice_value (const S & slice,
    It & it )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 51 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ get_strides()

    + +
    +
    +
    +template<layout_type L, class R, std::size_t... X>
    + + + + + +
    + + + + + + + +
    R xt::get_strides (const fixed_shape< X... > & shape)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 225 of file xfixed.hpp.

    + +
    +
    + +

    ◆ has_value()

    + +
    +
    +
    +template<class E, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + +
    auto xt::has_value (E && e) -> detail::flag_expression_t<E> +
    +
    +inline
    +
    + +

    Definition at line 1272 of file xoptional.hpp.

    + +
    +
    + +

    ◆ hstack()

    + +
    +
    +
    +template<class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::hstack (std::tuple< CT... > && t)
    +
    +inline
    +
    + +

    Stack xexpressions in sequence horizontally (column wise).

    +

    This is equivalent to concatenation along the second axis, except for 1-D xexpressions where it concatenate along the first axis.

    +
    Parameters
    + + +
    txtuple of xexpressions to stack
    +
    +
    +
    Returns
    xgenerator evaluating to stacked elements
    + +

    Definition at line 904 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ in_bounds()

    + +
    +
    +
    +template<class S, class... Args>
    + + + + + + + + + + + +
    bool xt::in_bounds (const S & shape,
    Args &... args )
    +
    + +

    Check if the index is within the bounds of the array.

    +
    Parameters
    + + + +
    shapeShape of the array.
    argsArray index.
    +
    +
    +
    Returns
    true If the index is within the bounds of the array.
    +
    +false Otherwise.
    + +
    +
    + +

    ◆ index_view() [1/2]

    + +
    +
    +
    +template<class E, std::size_t L>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::index_view (E && e,
    const xindex(&) indices[L] )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 793 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ index_view() [2/2]

    + +
    +
    +
    +template<class E, class I>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::index_view (E && e,
    I && indices )
    +
    +inlinenoexcept
    +
    + +

    creates an indexview from a container of indices.

    +

    Returns a 1D view with the elements at indices selected.

    +
    Parameters
    + + + +
    ethe underlying xexpression
    indicesthe indices to select
    +
    +
    +
    xarray<double> a = {{1,5,3}, {4,5,6}};
    +
    b = index_view(a, {{0, 0}, {1, 0}, {1, 1}});
    +
    std::cout << b << std::endl; // {1, 4, 5}
    +
    b += 100;
    +
    std::cout << a << std::endl; // {{101, 5, 3}, {104, 105, 6}}
    +
    auto index_view(E &&e, I &&indices) noexcept
    creates an indexview from a container of indices.
    +
    +

    Definition at line 786 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ info()

    + +
    +
    +
    +template<class T>
    + + + + + + + +
    std::string xt::info (const T & t)
    +
    + +

    Definition at line 94 of file xinfo.hpp.

    + +
    +
    + +

    ◆ initial()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::initial (T val)
    +
    +constexpr
    +
    + +

    Definition at line 64 of file xreducer.hpp.

    + +
    +
    + +

    ◆ integral_count()

    + +
    +
    +
    +template<class... S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::integral_count ()
    +
    +constexpr
    +
    + +

    Definition at line 125 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ integral_count_before()

    + +
    +
    +
    +template<class... S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::integral_count_before (std::size_t i)
    +
    +constexpr
    +
    + +

    Definition at line 131 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ integral_skip()

    + +
    +
    +
    +template<class... S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::integral_skip (std::size_t i)
    +
    +constexpr
    +
    + +

    Definition at line 233 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ is_chunked() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    bool xt::is_chunked ()
    +
    +constexpr
    +
    + +

    Definition at line 339 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ is_chunked() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    bool xt::is_chunked (const xexpression< E > & e)
    +
    +constexpr
    +
    + +

    Definition at line 333 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ keep() [1/2]

    + +
    +
    +
    +template<class R = std::ptrdiff_t, class Arg0, class Arg1, class... Args>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xkeep_slice< R > xt::keep (Arg0 i0,
    Arg1 i1,
    Args... args )
    +
    +inline
    +
    + +

    Definition at line 402 of file xslice.hpp.

    + +
    +
    + +

    ◆ keep() [2/2]

    + +
    +
    +
    +template<class R = std::ptrdiff_t, class T>
    + + + + + +
    + + + + + + + +
    auto xt::keep (T && indices)
    +
    +inline
    +
    + +

    Create a non-contigous slice from a container of indices to keep.

    +

    Note: this slice cannot be used in the xstrided_view!

    +
    +
    a.reshape({3, 3});
    +
    xt::view(a, xt::keep(0, 2); // => {{0, 1, 2}, {6, 7, 8}}
    +
    xt::view(a, xt::keep(1, 1, 1); // => {{3, 4, 5}, {3, 4, 5}, {3, 4, 5}}
    +
    auto keep(T &&indices)
    Create a non-contigous slice from a container of indices to keep.
    Definition xslice.hpp:386
    +
    Parameters
    + + +
    indicesThe indices container
    +
    +
    +
    Returns
    instance of xkeep_slice
    + +

    Definition at line 386 of file xslice.hpp.

    + +
    +
    + +

    ◆ layout_remove_any()

    + +
    +
    + + + + + +
    + + + + + + + +
    layout_type xt::layout_remove_any (const layout_type layout)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 98 of file xlayout.hpp.

    + +
    +
    + +

    ◆ linear_begin() [1/6]

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    auto xt::linear_begin (C & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 420 of file xiterator.hpp.

    + +
    +
    + +

    ◆ linear_begin() [2/6]

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    auto xt::linear_begin (const C & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 446 of file xiterator.hpp.

    + +
    +
    + +

    ◆ linear_begin() [3/6]

    + +
    +
    +
    +template<class CT, class X>
    + + + + + +
    + + + + + + + +
    auto xt::linear_begin (const xbroadcast< CT, X > & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 111 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ linear_begin() [4/6]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::linear_begin (const xscalar< CT > & c) -> decltype(c.dummy_begin()) +
    +
    +constexprnoexcept
    +
    + +

    Definition at line 481 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_begin() [5/6]

    + +
    +
    +
    +template<class CT, class X>
    + + + + + +
    + + + + + + + +
    auto xt::linear_begin (xbroadcast< CT, X > & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 99 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ linear_begin() [6/6]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::linear_begin (xscalar< CT > & c) -> decltype(c.dummy_begin()) +
    +
    +constexprnoexcept
    +
    + +

    Definition at line 469 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_end() [1/6]

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    auto xt::linear_end (C & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 433 of file xiterator.hpp.

    + +
    +
    + +

    ◆ linear_end() [2/6]

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + +
    auto xt::linear_end (const C & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 459 of file xiterator.hpp.

    + +
    +
    + +

    ◆ linear_end() [3/6]

    + +
    +
    +
    +template<class CT, class X>
    + + + + + +
    + + + + + + + +
    auto xt::linear_end (const xbroadcast< CT, X > & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 117 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ linear_end() [4/6]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::linear_end (const xscalar< CT > & c) -> decltype(c.dummy_end()) +
    +
    +constexprnoexcept
    +
    + +

    Definition at line 487 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linear_end() [5/6]

    + +
    +
    +
    +template<class CT, class X>
    + + + + + +
    + + + + + + + +
    auto xt::linear_end (xbroadcast< CT, X > & c)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 105 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ linear_end() [6/6]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + +
    auto xt::linear_end (xscalar< CT > & c) -> decltype(c.dummy_end()) +
    +
    +constexprnoexcept
    +
    + +

    Definition at line 475 of file xscalar.hpp.

    + +
    +
    + +

    ◆ linspace()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::linspace (T start,
    T stop,
    std::size_t num_samples = 50,
    bool endpoint = true )
    +
    +inlinenoexcept
    +
    + +

    Generates num_samples evenly spaced numbers over given interval.

    +
    Parameters
    + + + + + +
    startstart of interval
    stopstop of interval
    num_samplesnumber of samples (defaults to 50)
    endpointif true, include endpoint (defaults to true)
    +
    +
    +
    Template Parameters
    + + +
    Tvalue_type of xexpression
    +
    +
    +
    Returns
    xgenerator that generates the values on access
    + +

    Definition at line 460 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ load_csv()

    + +
    +
    +
    +template<class T, class A = std::allocator<T>>
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xcsv_tensor< T, A > xt::load_csv (std::istream & stream,
    const char delimiter,
    const std::size_t skip_rows,
    const std::ptrdiff_t max_rows,
    const std::string comments )
    +
    + +

    Load tensor from CSV.

    +

    Returns an xexpression for the parsed CSV

    Parameters
    + + + + + + +
    streamthe input stream containing the CSV encoded values
    delimiterthe character used to separate values. [default: ',']
    skip_rowsthe number of lines to skip from the beginning. [default: 0]
    max_rowsthe number of lines to read after skip_rows lines; the default is to read all the lines. [default: -1]
    commentsthe string used to indicate the start of a comment. [default: "#"]
    +
    +
    + +

    Definition at line 151 of file xcsv.hpp.

    + +
    +
    + +

    ◆ load_file()

    + +
    +
    +
    +template<class E>
    + + + + + + + + + + + + + + + + +
    void xt::load_file (std::istream & stream,
    xexpression< E > & e,
    const xcsv_config & config )
    +
    + +

    Definition at line 266 of file xcsv.hpp.

    + +
    +
    + +

    ◆ load_npy() [1/2]

    + +
    +
    +
    +template<typename T, layout_type L = layout_type::dynamic>
    + + + + + +
    + + + + + + + +
    auto xt::load_npy (const std::string & filename)
    +
    +inline
    +
    + +

    Loads a npy file (the NumPy storage format)

    +
    Parameters
    + + +
    filenameThe filename or path to the file
    +
    +
    +
    Template Parameters
    + + + +
    Tselect the type of the npy file (note: currently there is no dynamic casting if types do not match)
    Lselect layout_type::column_major if you stored data in Fortran format
    +
    +
    +
    Returns
    xarray with contents from npy file
    + +

    Definition at line 792 of file xnpy.hpp.

    + +
    +
    + +

    ◆ load_npy() [2/2]

    + +
    +
    +
    +template<typename T, layout_type L = layout_type::dynamic>
    + + + + + +
    + + + + + + + +
    auto xt::load_npy (std::istream & stream)
    +
    +inline
    +
    + +

    Loads a npy file (the NumPy storage format)

    +
    Parameters
    + + +
    streamAn input stream from which to load the file
    +
    +
    +
    Template Parameters
    + + + +
    Tselect the type of the npy file (note: currently there is no dynamic casting if types do not match)
    Lselect layout_type::column_major if you stored data in Fortran format
    +
    +
    +
    Returns
    xarray with contents from npy file
    + +

    Definition at line 775 of file xnpy.hpp.

    + +
    +
    + +

    ◆ logspace()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::logspace (T start,
    T stop,
    std::size_t num_samples,
    T base = 10,
    bool endpoint = true )
    +
    +inlinenoexcept
    +
    + +

    Generates num_samples numbers evenly spaced on a log scale over given interval.

    +
    Parameters
    + + + + + + +
    startstart of interval (pow(base, start) is the first value).
    stopstop of interval (pow(base, stop) is the final value, except if endpoint = false)
    num_samplesnumber of samples (defaults to 50)
    basethe base of the log space.
    endpointif true, include endpoint (defaults to true)
    +
    +
    +
    Template Parameters
    + + +
    Tvalue_type of xexpression
    +
    +
    +
    Returns
    xgenerator that generates the values on access
    + +

    Definition at line 481 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ make_lambda_xfunction()

    + +
    +
    +
    +template<class F, class... E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::make_lambda_xfunction (F && lambda,
    E &&... args )
    +
    +inline
    +
    + +

    Create a xfunction from a lambda.

    +

    This function can be used to easily create performant xfunctions from lambdas:

    +
    template <class E1>
    +
    inline auto square(E1&& e1) noexcept
    +
    {
    +
    auto fnct = [](auto x) -> decltype(x * x) {
    +
    return x * x;
    +
    };
    +
    return make_lambda_xfunction(std::move(fnct), std::forward<E1>(e1));
    +
    }
    +
    auto square(E1 &&e1) noexcept
    Square power function, equivalent to e1 * e1.
    Definition xmath.hpp:1126
    +
    auto make_lambda_xfunction(F &&lambda, E &&... args)
    Create a xfunction from a lambda.
    Definition xmath.hpp:1085
    +

    Lambda function allow the reusal of a single arguments in multiple places (otherwise only correctly possible when using xshared_expressions). auto lambda functions are automatically vectorized with xsimd if possible (note that the trailing -> decltype(...) is mandatory for the feature detection to work).

    +
    Parameters
    + + + +
    lambdathe lambda to be vectorized
    argsforwarded arguments
    +
    +
    +
    Returns
    lazy xfunction
    + +

    Definition at line 1085 of file xmath.hpp.

    + +
    +
    + +

    ◆ make_overlapping_memory_checker()

    + +
    +
    +
    +template<class Dst>
    + + + + + + + +
    auto xt::make_overlapping_memory_checker (const Dst & a_dst)
    +
    + +

    Definition at line 923 of file xutils.hpp.

    + +
    +
    + +

    ◆ make_xaccumulator_functor() [1/2]

    + +
    +
    +
    +template<class RF>
    + + + + + + + +
    auto xt::make_xaccumulator_functor (RF && accumulate_func)
    +
    + +

    Definition at line 69 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ make_xaccumulator_functor() [2/2]

    + +
    +
    +
    +template<class RF, class IF>
    + + + + + + + + + + + +
    auto xt::make_xaccumulator_functor (RF && accumulate_func,
    IF && init_func )
    +
    + +

    Definition at line 76 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ make_xiterator_adaptor()

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::make_xiterator_adaptor (C && container,
    IG iterator_getter )
    +
    +inline
    +
    + +

    Definition at line 1275 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ make_xreducer_functor() [1/3]

    + +
    +
    +
    +template<class RF>
    + + + + + + + +
    auto xt::make_xreducer_functor (RF && reduce_func)
    +
    + +

    Definition at line 682 of file xreducer.hpp.

    + +
    +
    + +

    ◆ make_xreducer_functor() [2/3]

    + +
    +
    +
    +template<class RF, class IF>
    + + + + + + + + + + + +
    auto xt::make_xreducer_functor (RF && reduce_func,
    IF && init_func )
    +
    + +

    Definition at line 689 of file xreducer.hpp.

    + +
    +
    + +

    ◆ make_xreducer_functor() [3/3]

    + +
    +
    +
    +template<class RF, class IF, class MF>
    + + + + + + + + + + + + + + + + +
    auto xt::make_xreducer_functor (RF && reduce_func,
    IF && init_func,
    MF && merge_func )
    +
    + +

    Definition at line 696 of file xreducer.hpp.

    + +
    +
    + +

    ◆ make_xshared()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    xshared_expression< E > xt::make_xshared (xexpression< E > && expr)
    +
    +inline
    +
    + +

    Helper function to create shared expression from any xexpression.

    +
    Parameters
    + + +
    exprrvalue expression that will be shared
    +
    +
    +
    Returns
    xshared expression
    + +

    Definition at line 731 of file xexpression.hpp.

    + +
    +
    + +

    ◆ masked_view()

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + +
    + + + + + + + + + + + +
    xmasked_view< CTD, CTM > xt::masked_view (CTD && data,
    CTM && mask )
    +
    +inline
    +
    + +

    Definition at line 597 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mean() [1/2]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::mean (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1944 of file xmath.hpp.

    + +
    +
    + +

    ◆ mean() [2/2]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::mean (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1938 of file xmath.hpp.

    + +
    +
    + +

    ◆ median()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    std::decay_t< E >::value_type xt::median (E && e)
    +
    +inline
    +
    + +

    Definition at line 1088 of file xsort.hpp.

    + +
    +
    + +

    ◆ meshgrid()

    + +
    +
    +
    +template<class... E>
    + + + + + +
    + + + + + + + +
    auto xt::meshgrid (E &&... e)
    +
    +inlinenoexcept
    +
    + +

    Return coordinate tensors from coordinate vectors.

    +

    Make N-D coordinate tensor expressions for vectorized evaluations of N-D scalar/vector fields over N-D grids, given one-dimensional coordinate arrays x1, x2,..., xn.

    +
    Parameters
    + + +
    exexpressions to concatenate
    +
    +
    +
    Returns
    tuple of xgenerator expressions.
    + +

    Definition at line 980 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [1/15]

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xarray_container< EC, L, SC, Tag > & expr)
    +
    + +

    Definition at line 313 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [2/15]

    + +
    +
    +
    +template<class CT, class X>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xbroadcast< CT, X > & expr)
    +
    + +

    Definition at line 376 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [3/15]

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xfixed_container< ET, S, L, SH, Tag > & expr)
    +
    + +

    Definition at line 331 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [4/15]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xfunction< F, CT... > & expr)
    +
    + +

    Definition at line 304 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [5/15]

    + +
    +
    +
    +template<class F, class CT>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xfunctor_view< F, CT > & expr)
    +
    + +

    Definition at line 295 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [6/15]

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xgenerator< F, R, S > & expr)
    +
    + +

    Definition at line 385 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [7/15]

    + +
    +
    +
    +template<class T, class B>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xmasked_value< T, B > & v)
    +
    + +

    Definition at line 421 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [8/15]

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xmasked_view< CTD, CTM > & expr)
    +
    + +

    Definition at line 412 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [9/15]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xoptional_assembly< VE, FE > & expr)
    +
    + +

    Definition at line 349 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [10/15]

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xoptional_assembly_adaptor< VEC, FEC > & expr)
    +
    + +

    Definition at line 358 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [11/15]

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xreducer< F, CT, X, O > & expr)
    +
    + +

    Definition at line 340 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [12/15]

    + +
    +
    +
    +template<class CT>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xscalar< CT > & expr)
    +
    + +

    Definition at line 367 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [13/15]

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xstrided_view< CT, S, L, FST > & expr)
    +
    + +

    Definition at line 403 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [14/15]

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xtensor_container< EC, N, L, Tag > & expr)
    +
    + +

    Definition at line 322 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr() [15/15]

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr (const xview< CT, S... > & expr)
    +
    + +

    Definition at line 394 of file xmime.hpp.

    + +
    +
    + +

    ◆ mime_bundle_repr_impl()

    + +
    +
    +
    +template<class E>
    + + + + + + + +
    nlohmann::json xt::mime_bundle_repr_impl (const E & expr)
    +
    + +

    Definition at line 262 of file xmime.hpp.

    + +
    +
    + +

    ◆ multiindex_iterator_begin()

    + +
    +
    +
    +template<class S, class B, class E>
    + + + + + + + + + + + +
    auto xt::multiindex_iterator_begin (B && roi_begin,
    E && roi_end )
    +
    + +

    Definition at line 100 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ multiindex_iterator_end()

    + +
    +
    +
    +template<class S, class B, class E>
    + + + + + + + + + + + +
    auto xt::multiindex_iterator_end (B && roi_begin,
    E && roi_end )
    +
    + +

    Definition at line 109 of file xmultiindex_iterator.hpp.

    + +
    +
    + +

    ◆ nancumprod()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + +
    auto xt::nancumprod (E && e)
    +
    +inline
    +
    + +

    Definition at line 2673 of file xmath.hpp.

    + +
    +
    + +

    ◆ nancumsum()

    + +
    +
    +
    +template<class T = void, class E>
    + + + + + +
    + + + + + + + +
    auto xt::nancumsum (E && e)
    +
    +inline
    +
    + +

    Definition at line 2638 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmax() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmax (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2477 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmax() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nanmax (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2477 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmax() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmax (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2477 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmean() [1/2]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmean (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2775 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmean() [2/2]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nanmean (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2763 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmin() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmin (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2462 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmin() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nanmin (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2462 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanmin() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanmin (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2462 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanprod() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanprod (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2511 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanprod() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nanprod (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2511 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanprod() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanprod (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2511 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanstd() [1/2]

    + +
    +
    +
    +template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanstd (E && e,
    const A(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2877 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanstd() [2/2]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nanstd (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2792 of file xmath.hpp.

    + +
    +
    + +

    ◆ nansum() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nansum (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2494 of file xmath.hpp.

    + +
    +
    + +

    ◆ nansum() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nansum (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2494 of file xmath.hpp.

    + +
    +
    + +

    ◆ nansum() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nansum (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2494 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanvar() [1/2]

    + +
    +
    +
    +template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::nanvar (E && e,
    const A(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2887 of file xmath.hpp.

    + +
    +
    + +

    ◆ nanvar() [2/2]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::nanvar (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2785 of file xmath.hpp.

    + +
    +
    + +

    ◆ nested_copy() [1/2]

    + +
    +
    +
    +template<class T, class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::nested_copy (T && iter,
    const S & s )
    +
    +inline
    +
    + +

    Definition at line 318 of file xutils.hpp.

    + +
    +
    + +

    ◆ nested_copy() [2/2]

    + +
    +
    +
    +template<class T, class S>
    + + + + + +
    + + + + + + + + + + + +
    void xt::nested_copy (T && iter,
    std::initializer_list< S > s )
    +
    +inline
    +
    + +

    Definition at line 324 of file xutils.hpp.

    + +
    +
    + +

    ◆ newaxis()

    + +
    +
    + + + + + +
    + + + + + + + +
    auto xt::newaxis ()
    +
    +inlinenoexcept
    +
    + +

    Returns a slice representing a new axis of length one, to be used as an argument of view function.

    +
    See also
    view, strided_view
    + +

    Definition at line 297 of file xslice.hpp.

    + +
    +
    + +

    ◆ newaxis_count()

    + +
    +
    +
    +template<class... S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::newaxis_count ()
    +
    +constexpr
    +
    + +

    Definition at line 178 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ newaxis_count_before()

    + +
    +
    +
    +template<class... S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::newaxis_count_before (std::size_t i)
    +
    +constexpr
    +
    + +

    Definition at line 184 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ newaxis_skip()

    + +
    +
    +
    +template<class... S>
    + + + + + +
    + + + + + + + +
    std::size_t xt::newaxis_skip (std::size_t i)
    +
    +constexpr
    +
    + +

    Definition at line 281 of file xview_utils.hpp.

    + +
    +
    + +

    ◆ noalias()

    + +
    +
    +
    +template<class A>
    + + + + + +
    + + + + + + + +
    noalias_proxy< xtl::closure_type_t< A > > xt::noalias (A && a)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 224 of file xnoalias.hpp.

    + +
    +
    + +

    ◆ norm_l2()

    + +
    +
    +
    +template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_l2 (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 522 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_lp() [1/2]

    + +
    +
    +
    +template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::norm_lp (E && e,
    double p,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 614 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_lp() [2/2]

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_lp (E && e,
    double p,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 608 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_lp_to_p() [1/2]

    + +
    +
    +
    +template<class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::norm_lp_to_p (E && e,
    double p,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 581 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_lp_to_p() [2/2]

    + +
    +
    +
    +template<class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::norm_lp_to_p (E && e,
    double p,
    EVS es = EVS() )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 575 of file xnorm.hpp.

    + +
    +
    + +

    ◆ normalize_axis() [1/3]

    + +
    +
    +
    +template<class E, class C>
    + + + + + +
    + + + + + + + + + + + +
    std::enable_if_t< !xtl::is_integral< std::decay_t< C > >::value &&xtl::is_signed< typename std::decay_t< C >::value_type >::value, rebind_container_t< std::size_t, std::decay_t< C > > > xt::normalize_axis (E & expr,
    C && axes )
    +
    +inline
    +
    + +

    Definition at line 369 of file xutils.hpp.

    + +
    +
    + +

    ◆ normalize_axis() [2/3]

    + +
    +
    +
    +template<class C, class E>
    + + + + + +
    + + + + + + + + + + + +
    std::enable_if_t< !xtl::is_integral< std::decay_t< C > >::value &&std::is_unsigned< typename std::decay_t< C >::value_type >::value, C && > xt::normalize_axis (E & expr,
    C && axes )
    +
    +inline
    +
    + +

    Definition at line 395 of file xutils.hpp.

    + +
    +
    + +

    ◆ normalize_axis() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    std::size_t xt::normalize_axis (std::size_t dim,
    std::ptrdiff_t axis )
    +
    +inline
    +
    + +

    Definition at line 359 of file xutils.hpp.

    + +
    +
    + +

    ◆ ones() [1/2]

    + +
    +
    +
    +template<class T, class I, std::size_t L>
    + + + + + +
    + + + + + + + +
    auto xt::ones (const I(&) shape[L])
    +
    +inlinenoexcept
    +
    + +

    Definition at line 52 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ ones() [2/2]

    + +
    +
    +
    +template<class T, class S>
    + + + + + +
    + + + + + + + +
    auto xt::ones (S shape)
    +
    +inlinenoexcept
    +
    + +

    Returns an xexpression containing ones of the specified shape.

    +
    Template Parameters
    + + +
    shapethe shape of the returned expression.
    +
    +
    + +

    Definition at line 46 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ ones_like()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::ones_like (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with ones and of the same shape, value type and layout as the input xexpression e.

    +

    Note: contrary to ones(shape), this function returns a non-lazy, evaluated container! Use xt::ones<double>(e.shape()); for a lazy version.

    +
    Parameters
    + + +
    ethe xexpression from which to extract shape, value type and layout.
    +
    +
    + +

    Definition at line 169 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ operator!=() [1/9]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const const_array< T, N > & lhs,
    const const_array< T, N > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1607 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator!=() [2/9]

    + +
    +
    +
    +template<class T, std::ptrdiff_t TB, std::ptrdiff_t TE>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const sequence_view< T, TB, TE > & lhs,
    const sequence_view< T, TB, TE > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1921 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator!=() [3/9]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const svector< T, N, A, Init > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1375 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator!=() [4/9]

    + +
    +
    +
    +template<class T, class AT, alloc_tracking::policy PT, class U, class AU, alloc_tracking::policy PU>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const tracking_allocator< T, AT, PT > & a,
    const tracking_allocator< U, AU, PU > & b )
    +
    +inline
    +
    + +

    Definition at line 767 of file xutils.hpp.

    + +
    +
    + +

    ◆ operator!=() [5/9]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const uvector< T, A > & lhs,
    const uvector< T, A > & rhs )
    +
    +inline
    +
    + +

    Definition at line 578 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator!=() [6/9]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const xaxis_iterator< CT > & lhs,
    const xaxis_iterator< CT > & rhs )
    +
    +inline
    +
    + +

    Checks inequality of the iterators.

    +
    Returns
    true if the iterators are different, true otherwise
    + +

    Definition at line 264 of file xaxis_iterator.hpp.

    + +
    +
    + +

    ◆ operator!=() [7/9]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const xaxis_slice_iterator< CT > & lhs,
    const xaxis_slice_iterator< CT > & rhs )
    +
    +inline
    +
    + +

    Checks inequality of the iterators.

    +
    Returns
    true if the iterators are different, true otherwise
    + +

    Definition at line 276 of file xaxis_slice_iterator.hpp.

    + +
    +
    + +

    ◆ operator!=() [8/9]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator!= (const xbuffer_adaptor_base< D > & lhs,
    const xbuffer_adaptor_base< D > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1001 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator!=() [9/9]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + + + + + +
    bool xt::operator!= (const xoptional_assembly_storage< VE, FE > & lhs,
    const xoptional_assembly_storage< VE, FE > & rhs )
    +
    + +

    Definition at line 444 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator<() [1/10]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const const_array< T, N > & lhs,
    const const_array< T, N > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1613 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator<() [2/10]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const svector< T, N, A, Init > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1381 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator<() [3/10]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const uvector< T, A > & lhs,
    const uvector< T, A > & rhs )
    +
    +inline
    +
    + +

    Definition at line 584 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator<() [4/10]

    + +
    +
    +
    +template<class It, class BIt>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const xbounded_iterator< It, BIt > & lhs,
    const xbounded_iterator< It, BIt > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1284 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator<() [5/10]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const xbuffer_adaptor_base< D > & lhs,
    const xbuffer_adaptor_base< D > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1007 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator<() [6/10]

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const xdummy_iterator< is_const, CT > & lhs,
    const xdummy_iterator< is_const, CT > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1093 of file xscalar.hpp.

    + +
    +
    + +

    ◆ operator<() [7/10]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator< (const xfunction_iterator< F, CT... > & it1,
    const xfunction_iterator< F, CT... > & it2 )
    +
    +inline
    +
    + +

    Definition at line 1011 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator<() [8/10]

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + + + + + +
    bool xt::operator< (const xfunctor_iterator< F, IT > & lhs,
    const xfunctor_iterator< F, IT > & rhs )
    +
    + +

    Definition at line 1579 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator<() [9/10]

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + + + + + + + +
    bool xt::operator< (const xiterator< St, S, L > & lhs,
    const xiterator< St, S, L > & rhs )
    +
    + +

    Definition at line 1204 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator<() [10/10]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + + + + + +
    bool xt::operator< (const xoptional_assembly_storage< VE, FE > & lhs,
    const xoptional_assembly_storage< VE, FE > & rhs )
    +
    + +

    Definition at line 450 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator<<()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    std::ostream & xt::operator<< (std::ostream & out,
    const xexpression< E > & e )
    +
    +inline
    +
    + +

    Definition at line 820 of file xio.hpp.

    + +
    +
    + +

    ◆ operator<=() [1/5]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator<= (const const_array< T, N > & lhs,
    const const_array< T, N > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1619 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator<=() [2/5]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator<= (const svector< T, N, A, Init > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1387 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator<=() [3/5]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator<= (const uvector< T, A > & lhs,
    const uvector< T, A > & rhs )
    +
    +inline
    +
    + +

    Definition at line 590 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator<=() [4/5]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator<= (const xbuffer_adaptor_base< D > & lhs,
    const xbuffer_adaptor_base< D > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1019 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator<=() [5/5]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + + + + + +
    bool xt::operator<= (const xoptional_assembly_storage< VE, FE > & lhs,
    const xoptional_assembly_storage< VE, FE > & rhs )
    +
    + +

    Definition at line 456 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator==() [1/16]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const const_array< T, N > & lhs,
    const const_array< T, N > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1601 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator==() [2/16]

    + +
    +
    +
    +template<class T, std::ptrdiff_t TB, std::ptrdiff_t TE>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const sequence_view< T, TB, TE > & lhs,
    const sequence_view< T, TB, TE > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1915 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator==() [3/16]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const std::vector< T > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1357 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator==() [4/16]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const svector< T, N, A, Init > & lhs,
    const std::vector< T > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1363 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator==() [5/16]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const svector< T, N, A, Init > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1369 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator==() [6/16]

    + +
    +
    +
    +template<class T, class AT, alloc_tracking::policy PT, class U, class AU, alloc_tracking::policy PU>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const tracking_allocator< T, AT, PT > & ,
    const tracking_allocator< U, AU, PU > &  )
    +
    +inline
    +
    + +

    Definition at line 761 of file xutils.hpp.

    + +
    +
    + +

    ◆ operator==() [7/16]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const uvector< T, A > & lhs,
    const uvector< T, A > & rhs )
    +
    +inline
    +
    + +

    Definition at line 572 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator==() [8/16]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xaxis_iterator< CT > & lhs,
    const xaxis_iterator< CT > & rhs )
    +
    +inline
    +
    + +

    Checks equality of the iterators.

    +
    Returns
    true if the iterators are equivalent, false otherwise
    + +

    Definition at line 254 of file xaxis_iterator.hpp.

    + +
    +
    + +

    ◆ operator==() [9/16]

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xaxis_slice_iterator< CT > & lhs,
    const xaxis_slice_iterator< CT > & rhs )
    +
    +inline
    +
    + +

    Checks equality of the iterators.

    +
    Returns
    true if the iterators are equivalent, false otherwise
    + +

    Definition at line 266 of file xaxis_slice_iterator.hpp.

    + +
    +
    + +

    ◆ operator==() [10/16]

    + +
    +
    +
    +template<class It, class BIt>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xbounded_iterator< It, BIt > & lhs,
    const xbounded_iterator< It, BIt > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1278 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator==() [11/16]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xbuffer_adaptor_base< D > & lhs,
    const xbuffer_adaptor_base< D > & rhs )
    +
    +inline
    +
    + +

    Definition at line 994 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator==() [12/16]

    + +
    +
    +
    +template<bool is_const, class CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xdummy_iterator< is_const, CT > & lhs,
    const xdummy_iterator< is_const, CT > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1087 of file xscalar.hpp.

    + +
    +
    + +

    ◆ operator==() [13/16]

    + +
    +
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xfunction_iterator< F, CT... > & it1,
    const xfunction_iterator< F, CT... > & it2 )
    +
    +inline
    +
    + +

    Definition at line 1005 of file xfunction.hpp.

    + +
    +
    + +

    ◆ operator==() [14/16]

    + +
    +
    +
    +template<class F, class IT>
    + + + + + + + + + + + +
    bool xt::operator== (const xfunctor_iterator< F, IT > & lhs,
    const xfunctor_iterator< F, IT > & rhs )
    +
    + +

    Definition at line 1573 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ operator==() [15/16]

    + +
    +
    +
    +template<class St, class S, layout_type L>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator== (const xiterator< St, S, L > & lhs,
    const xiterator< St, S, L > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1198 of file xiterator.hpp.

    + +
    +
    + +

    ◆ operator==() [16/16]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + + + + + +
    bool xt::operator== (const xoptional_assembly_storage< VE, FE > & lhs,
    const xoptional_assembly_storage< VE, FE > & rhs )
    +
    + +

    Definition at line 437 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator>() [1/5]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator> (const const_array< T, N > & lhs,
    const const_array< T, N > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1625 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator>() [2/5]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator> (const svector< T, N, A, Init > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1393 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator>() [3/5]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator> (const uvector< T, A > & lhs,
    const uvector< T, A > & rhs )
    +
    +inline
    +
    + +

    Definition at line 596 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator>() [4/5]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator> (const xbuffer_adaptor_base< D > & lhs,
    const xbuffer_adaptor_base< D > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1031 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator>() [5/5]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + + + + + +
    bool xt::operator> (const xoptional_assembly_storage< VE, FE > & lhs,
    const xoptional_assembly_storage< VE, FE > & rhs )
    +
    + +

    Definition at line 463 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator>=() [1/5]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator>= (const const_array< T, N > & lhs,
    const const_array< T, N > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1631 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator>=() [2/5]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator>= (const svector< T, N, A, Init > & lhs,
    const svector< T, N, A, Init > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1399 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator>=() [3/5]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator>= (const uvector< T, A > & lhs,
    const uvector< T, A > & rhs )
    +
    +inline
    +
    + +

    Definition at line 602 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator>=() [4/5]

    + +
    +
    +
    +template<class D>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::operator>= (const xbuffer_adaptor_base< D > & lhs,
    const xbuffer_adaptor_base< D > & rhs )
    +
    +inline
    +
    + +

    Definition at line 1043 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ operator>=() [5/5]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + + + + + + + +
    bool xt::operator>= (const xoptional_assembly_storage< VE, FE > & lhs,
    const xoptional_assembly_storage< VE, FE > & rhs )
    +
    + +

    Definition at line 470 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ operator|()

    + +
    +
    +
    +template<template< class... > class A, class... AX, class X, xtl::check_concept< is_evaluation_strategy< AX >..., is_evaluation_strategy< X > > = 0>
    + + + + + + + + + + + +
    auto xt::operator| (const A< AX... > & args,
    const A< X > & rhs )
    +
    + +

    Definition at line 36 of file xreducer.hpp.

    + +
    +
    + +

    ◆ optional_assembly_storage() [1/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + +
    xoptional_assembly_storage< VE, FE > xt::optional_assembly_storage (const VE & value,
    const FE & flag )
    +
    +inline
    +
    + +

    Definition at line 559 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ optional_assembly_storage() [2/2]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + +
    xoptional_assembly_storage< VE, FE > xt::optional_assembly_storage (VE & value,
    FE & flag )
    +
    +inline
    +
    + +

    Definition at line 565 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ pad() [1/3]

    + +
    +
    +
    +template<class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::pad (E && e,
    const std::vector< S > & pad_width,
    pad_mode mode = pad_mode::constant,
    V constant_value = 0 )
    +
    +inline
    +
    + +

    Pad an array.

    +
    Parameters
    + + + + + +
    eThe array.
    pad_widthNumber of values padded to the edges of each axis: {before, after}.
    modeThe type of algorithm to use. [default: xt::pad_mode::constant].
    constant_valueThe value to set the padded values for each axis (used in xt::pad_mode::constant).
    +
    +
    +
    Returns
    The padded array.
    + +

    Definition at line 217 of file xpad.hpp.

    + +
    +
    + +

    ◆ pad() [2/3]

    + +
    +
    +
    +template<class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::pad (E && e,
    const std::vector< std::vector< S > > & pad_width,
    pad_mode mode = pad_mode::constant,
    V constant_value = 0 )
    +
    +inline
    +
    + +

    Pad an array.

    +
    Parameters
    + + + + + +
    eThe array.
    pad_widthNumber of values padded to the edges of each axis: {{before_1, after_1}, ..., {before_N, after_N}}.
    modeThe type of algorithm to use. [default: xt::pad_mode::constant].
    constant_valueThe value to set the padded values for each axis (used in xt::pad_mode::constant).
    +
    +
    +
    Returns
    The padded array.
    + +

    Definition at line 75 of file xpad.hpp.

    + +
    +
    + +

    ◆ pad() [3/3]

    + +
    +
    +
    +template<class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::pad (E && e,
    S pad_width,
    pad_mode mode = pad_mode::constant,
    V constant_value = 0 )
    +
    +inline
    +
    + +

    Pad an array.

    +
    Parameters
    + + + + + +
    eThe array.
    pad_widthNumber of values padded to the edges of each axis.
    modeThe type of algorithm to use. [default: xt::pad_mode::constant].
    constant_valueThe value to set the padded values for each axis (used in xt::pad_mode::constant).
    +
    +
    +
    Returns
    The padded array.
    + +

    Definition at line 235 of file xpad.hpp.

    + +
    +
    + +

    ◆ partition() [1/5]

    + +
    +
    +
    +template<class E, xtl::non_integral_concept C>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::partition (const xexpression< E > & e,
    C kth_container,
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Definition at line 596 of file xsort.hpp.

    + +
    +
    + +

    ◆ partition() [2/5]

    + +
    +
    +
    +template<class E, class I, std::size_t N, class R = detail::flatten_sort_result_type_t<E>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    R xt::partition (const xexpression< E > & e,
    const I(&) kth_container[N],
    placeholders::xtuph tag )
    +
    +inline
    +
    + +

    Definition at line 580 of file xsort.hpp.

    + +
    +
    + +

    ◆ partition() [3/5]

    + +
    +
    +
    +template<class E, class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::partition (const xexpression< E > & e,
    const T(&) kth_container[N],
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Definition at line 613 of file xsort.hpp.

    + +
    +
    + +

    ◆ partition() [4/5]

    + +
    +
    +
    +template<class E, class R = detail::flatten_sort_result_type_t<E>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    R xt::partition (const xexpression< E > & e,
    std::size_t kth,
    placeholders::xtuph tag )
    +
    +inline
    +
    + +

    Definition at line 590 of file xsort.hpp.

    + +
    +
    + +

    ◆ partition() [5/5]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::partition (const xexpression< E > & e,
    std::size_t kth,
    std::ptrdiff_t axis = -1 )
    +
    +inline
    +
    + +

    Definition at line 623 of file xsort.hpp.

    + +
    +
    + +

    ◆ pretty_print() [1/2]

    + +
    +
    +
    +template<class E, class F>
    + + + + + + + + + + + + + + + + +
    std::ostream & xt::pretty_print (const xexpression< E > & e,
    F && func,
    std::ostream & out = std::cout )
    +
    + +

    Definition at line 742 of file xio.hpp.

    + +
    +
    + +

    ◆ pretty_print() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + + + + + + + +
    std::ostream & xt::pretty_print (const xexpression< E > & e,
    std::ostream & out = std::cout )
    +
    + +

    Definition at line 777 of file xio.hpp.

    + +
    +
    + +

    ◆ prod() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::prod (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1858 of file xmath.hpp.

    + +
    +
    + +

    ◆ prod() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::prod (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1858 of file xmath.hpp.

    + +
    +
    + +

    ◆ prod() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::prod (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1858 of file xmath.hpp.

    + +
    +
    + +

    ◆ quantile() [1/4]

    + +
    +
    +
    +template<class T = double, class E, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const T(&) probas[N],
    quantile_method method = quantile_method::linear )
    +
    +inline
    +
    + +

    Definition at line 1078 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [2/4]

    + +
    +
    +
    +template<class T = double, class E, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const T(&) probas[N],
    std::ptrdiff_t axis,
    quantile_method method = quantile_method::linear )
    +
    +inline
    +
    + +

    Definition at line 1054 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [3/4]

    + +
    +
    +
    +template<class T = double, class E, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const T(&) probas[N],
    std::ptrdiff_t axis,
    T alpha,
    T beta )
    +
    +inline
    +
    + +

    Definition at line 940 of file xsort.hpp.

    + +
    +
    + +

    ◆ quantile() [4/4]

    + +
    +
    +
    +template<class T = double, class E, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::quantile (E && e,
    const T(&) probas[N],
    T alpha,
    T beta )
    +
    +inline
    +
    + +

    Definition at line 962 of file xsort.hpp.

    + +
    +
    + +

    ◆ range() [1/2]

    + +
    +
    +
    +template<class A, class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::range (A start_val,
    B stop_val )
    +
    +inline
    +
    + +

    Select a range from start_val to stop_val (excluded).

    +

    You can use the shorthand _ syntax to select from the start or until the end.

    +
    using namespace xt::placeholders; // to enable _ syntax
    +
    +
    range(3, _) // select from index 3 to the end
    +
    range(_, 5) // select from index 0 to 5 (excluded)
    +
    range(_, _) // equivalent to `all()`
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    See also
    view, strided_view
    + +

    Definition at line 744 of file xslice.hpp.

    + +
    +
    + +

    ◆ range() [2/2]

    + +
    +
    +
    +template<class A, class B, class C>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::range (A start_val,
    B stop_val,
    C step )
    +
    +inline
    +
    + +

    Select a range from start_val to stop_val (excluded) with step You can use the shorthand _ syntax to select from the start or until the end.

    +
    using namespace xt::placeholders; // to enable _ syntax
    +
    range(3, _, 5) // select from index 3 to the end with stepsize 5
    +
    See also
    view, strided_view
    + +

    Definition at line 765 of file xslice.hpp.

    + +
    +
    + +

    ◆ ravel_from_strides()

    + +
    +
    +
    +template<class S, class T>
    + + + + + +
    + + + + + + + + + + + +
    get_value_type_t< T > xt::ravel_from_strides (const T & index,
    const S & strides )
    +
    +inline
    +
    + +

    Definition at line 688 of file xstrides.hpp.

    + +
    +
    + +

    ◆ ravel_index()

    + +
    +
    +
    +template<class S, class T>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    get_value_type_t< T > xt::ravel_index (const T & index,
    const S & shape,
    layout_type l )
    +
    +inline
    +
    + +

    Definition at line 721 of file xstrides.hpp.

    + +
    +
    + +

    ◆ ravel_indices()

    + +
    +
    +
    +template<class Tag = ravel_tensor_tag, class C, class S>
    + + + + + + + + + + + + + + + + +
    ravel_return_type_t< C, Tag > xt::ravel_indices (const C & idx,
    const S & shape,
    layout_type l = layout_type::row_major )
    +
    + +

    Converts std::vector<index_type> (returned e.g.

    +

    from xt::argwhere) to xtensor whereby the indices are ravelled. For 1-d input there is no conversion.

    +
    Parameters
    + + + + +
    idxvector of indices
    shapethe shape of the original array
    lthe layout type (row-major or column-major)
    +
    +
    +
    Returns
    xt::xtensor<typename index_type::value_type, 1> (e.g. xt::xtensor<size_t, 1>)
    + +

    Definition at line 965 of file xtensor.hpp.

    + +
    +
    + +

    ◆ reduce() [1/3]

    + +
    +
    +
    +template<class F, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< detail::is_xreducer_functors< F > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::reduce (F && f,
    E && e,
    const I(&) axes[N],
    EVS options = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1056 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reduce() [2/3]

    + +
    +
    +
    +template<class F, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, detail::is_xreducer_functors< F > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::reduce (F && f,
    E && e,
    EVS && options = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1025 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reduce() [3/3]

    + +
    +
    +
    +template<class F, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, detail::is_xreducer_functors< F > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::reduce (F && f,
    E && e,
    X && axes,
    EVS && options = EVS() )
    +
    +inline
    +
    + +

    Returns an xexpression applying the specified reducing function to an expression over the given axes.

    +
    Parameters
    + + + + + +
    fthe reducing function to apply.
    ethe xexpression to reduce.
    axesthe list of axes.
    optionsevaluation strategy to use (lazy (default), or immediate)
    +
    +
    +

    The returned expression either hold a const reference to e or a copy depending on whether e is an lvalue or an rvalue.

    + +

    Definition at line 993 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reduce_immediate()

    + +
    +
    +
    +template<class F, class E, class X, class O>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::reduce_immediate (F && f,
    E && e,
    X && axes,
    O && raw_options )
    +
    +inline
    +
    + +

    Definition at line 290 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reshape_view() [1/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E, class I, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::reshape_view (E && e,
    const I(&) shape[N] )
    +
    +inline
    +
    + +

    Definition at line 906 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ reshape_view() [2/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E, class I, std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::reshape_view (E && e,
    const I(&) shape[N],
    layout_type order )
    +
    +inline
    +
    + +

    Definition at line 899 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ reshape_view() [3/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::reshape_view (E && e,
    S && shape )
    +
    +inline
    +
    + +

    Definition at line 850 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ reshape_view() [4/4]

    + +
    +
    +
    +template<layout_type L = ::xt::layout_type::row_major, class E, class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::reshape_view (E && e,
    S && shape,
    layout_type  )
    +
    +inline
    +
    + +

    Return a view on a container with a new shape.

    +
    Deprecated
    +

    Note: if you resize the underlying container, this view becomes invalidated.

    +
    Parameters
    + + + + +
    exexpression to reshape
    shapenew shape
    ordertraversal order (optional)
    +
    +
    +
    Returns
    view on xexpression with new shape
    + +

    Definition at line 893 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ resize_container() [1/3]

    + +
    +
    +
    +template<class C>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::resize_container (C & c,
    typename C::size_type size )
    +
    +inline
    +
    + +

    Definition at line 336 of file xutils.hpp.

    + +
    +
    + +

    ◆ resize_container() [2/3]

    + +
    +
    +
    +template<std::size_t... I>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::resize_container (xt::fixed_shape< I... > & a,
    std::size_t size )
    +
    +inline
    +
    + +

    Definition at line 349 of file xutils.hpp.

    + +
    +
    + +

    ◆ resize_container() [3/3]

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::resize_container (std::array< T, N > & a,
    typename std::array< T, N >::size_type size )
    +
    +inline
    +
    + +

    Definition at line 343 of file xutils.hpp.

    + +
    +
    + +

    ◆ row()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::row (E && e,
    std::ptrdiff_t index )
    +
    +inline
    +
    + +

    Constructs and returns a row (sliced view) on the specified expression.

    +

    Users should not directly construct the slices but call helper functions instead. This function is only allowed on expressions with two dimensions.

    Parameters
    + + + +
    ethe xexpression to adapt
    index0-based index of the row, negative indices will return the last rows in reverse order.
    +
    +
    +
    Exceptions
    + + +
    std::invalid_argumentif the expression has more than 2 dimensions.
    +
    +
    + +

    Definition at line 1911 of file xview.hpp.

    + +
    +
    + +

    ◆ scalar_computed_assign()

    + +
    +
    +
    +template<class E1, class E2, class F>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    void xt::scalar_computed_assign (xexpression< E1 > & e1,
    const E2 & e2,
    F && f )
    +
    +inline
    +
    + +

    Definition at line 236 of file xassign.hpp.

    + +
    +
    + +

    ◆ shape() [1/2]

    + +
    +
    +
    +template<class R = std::size_t, class T, std::size_t N>
    + + + + + + + +
    xt::static_shape< R, N > xt::shape (const T(&) aList[N])
    +
    + +

    Generate an xt::static_shape of the given size.

    + +

    Definition at line 218 of file xshape.hpp.

    + +
    +
    + +

    ◆ shape() [2/2]

    + +
    +
    +
    +template<class R, class T>
    + + + + + +
    + + + + + + + +
    R xt::shape (T t)
    +
    +constexpr
    +
    + +

    Definition at line 208 of file xshape.hpp.

    + +
    +
    + +

    ◆ share() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::share (xexpression< E > && expr)
    +
    +inline
    +
    + +

    Helper function to create shared expression from any xexpression.

    +
    Parameters
    + + +
    exprrvalue expression that will be shared
    +
    +
    +
    Returns
    xshared expression
    +
    See also
    make_xshared
    + +

    Definition at line 761 of file xexpression.hpp.

    + +
    +
    + +

    ◆ share() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::share (xexpression< E > & expr)
    +
    +inline
    +
    + +

    Helper function to create shared expression from any xexpression.

    +
    Parameters
    + + +
    exprrvalue expression that will be shared
    +
    +
    +
    Returns
    xshared expression
    +
    See also
    make_xshared
    + +

    Definition at line 748 of file xexpression.hpp.

    + +
    +
    + +

    ◆ sign()

    + +
    +
    +
    +template<class T, class B>
    + + + + + +
    + + + + + + + +
    auto xt::sign (const xtl::xoptional< T, B > & e)
    +
    +inline
    +
    + +

    Definition at line 1255 of file xoptional.hpp.

    + +
    +
    + +

    ◆ sort()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::sort (const xexpression< E > & e,
    placeholders::xtuph  )
    +
    +inline
    +
    + +

    Definition at line 223 of file xsort.hpp.

    + +
    +
    + +

    ◆ stack()

    + +
    +
    +
    +template<class... CT>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::stack (std::tuple< CT... > && t,
    std::size_t axis = 0 )
    +
    +inline
    +
    + +

    Stack xexpressions along axis.

    +

    Stacking always creates a new dimension along which elements are stacked.

    +
    Parameters
    + + + +
    txtuple of xexpressions to concatenate
    axisaxis along which elements are stacked
    +
    +
    +
    Returns
    xgenerator evaluating to stacked elements
    +
    xt::xarray<double> a = {1, 2, 3};
    +
    xt::xarray<double> b = {5, 6, 7};
    +
    xt::xarray<double> s = xt::stack(xt::xtuple(a, b)); // => {{1, 2, 3},
    +
    // {5, 6, 7}}
    +
    xt::xarray<double> t = xt::stack(xt::xtuple(a, b), 1); // => {{1, 5},
    +
    // {2, 6},
    +
    // {3, 7}}
    +
    auto stack(std::tuple< CT... > &&t, std::size_t axis=0)
    Stack xexpressions along axis.
    Definition xbuilder.hpp:883
    +
    +

    Definition at line 883 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ stddev() [1/2]

    + +
    +
    +
    +template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::stddev (E && e,
    const A(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2184 of file xmath.hpp.

    + +
    +
    + +

    ◆ stddev() [2/2]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::stddev (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2081 of file xmath.hpp.

    + +
    +
    + +

    ◆ step_size() [1/2]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + +
    std::size_t xt::step_size (const S & slice,
    std::size_t idx )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 796 of file xslice.hpp.

    + +
    +
    + +

    ◆ step_size() [2/2]

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    std::size_t xt::step_size (const S & slice,
    std::size_t idx,
    std::size_t n )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 809 of file xslice.hpp.

    + +
    +
    + +

    ◆ stride_match_condition()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    bool xt::stride_match_condition (const T1 & stride,
    const T2 & shape,
    const T1 & data_size,
    bool zero_strides )
    +
    +inline
    +
    + +

    Definition at line 584 of file xstrides.hpp.

    + +
    +
    + +

    ◆ strided_data_end()

    + +
    +
    +
    +template<class C, class It, class size_type>
    + + + + + + + + + + + + + + + + + + + + + +
    It xt::strided_data_end (const C & c,
    It begin,
    layout_type l,
    size_type offset )
    +
    + +

    Definition at line 171 of file xstrides.hpp.

    + +
    +
    + +

    ◆ strided_view() [1/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::strided_view (E && e,
    const xstrided_slice_vector & slices )
    +
    +inline
    +
    + +

    Function to create a dynamic view from an xexpression and an xstrided_slice_vector.

    +
    Parameters
    + + + +
    exexpression
    slicesthe slice vector
    +
    +
    +
    Returns
    initialized strided_view according to slices
    +
    xt::xarray<double> a = {{1, 2, 3}, {4, 5, 6}};
    + +
    sv.push_back(xt::range(0, 3, 2));
    +
    auto v = xt::strided_view(a, sv);
    +
    // ==> {{1, 3}}
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +

    You can also achieve the same with the following short-hand syntax:

    +
    xt::xarray<double> a = {{1, 2, 3}, {4, 5, 6}};
    +
    auto v = xt::strided_view(a, {xt::range(0, 1), xt::range(0, 3, 2)});
    +
    // ==> {{1, 3}}
    +
    +

    Definition at line 788 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ strided_view() [2/2]

    + +
    +
    +
    +template<layout_type L = layout_type::dynamic, class E, class S, class X>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto xt::strided_view (E && e,
    S && shape,
    X && strides,
    std::size_t offset,
    layout_type layout )
    +
    +inlinenoexcept
    +
    + +

    Construct a strided view from an xexpression, shape, strides and offset.

    +
    Parameters
    + + + + + + +
    exexpression
    shapethe shape of the view
    stridesthe new strides of the view
    offsetthe offset of the first element in the underlying container
    layoutthe new layout of the expression
    +
    +
    +
    Template Parameters
    + + + + + +
    Lthe static layout type of the view (default: dynamic)
    Etype of xexpression
    Sstrides type
    Xstrides type
    +
    +
    +
    Returns
    the view
    + +

    Definition at line 726 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ sum() [1/3]

    + +
    +
    +
    +template<class T = void, class E, class I, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::sum (E && e,
    const I(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1838 of file xmath.hpp.

    + +
    +
    + +

    ◆ sum() [2/3]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::sum (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1838 of file xmath.hpp.

    + +
    +
    + +

    ◆ sum() [3/3]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, xtl::is_integral< std::decay_t< X > > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::sum (E && e,
    X axis,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 1838 of file xmath.hpp.

    + +
    +
    + +

    ◆ swap() [1/6]

    + +
    +
    +
    +template<class T, std::size_t N, class A, bool Init>
    + + + + + +
    + + + + + + + + + + + +
    void xt::swap (svector< T, N, A, Init > & lhs,
    svector< T, N, A, Init > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1405 of file xstorage.hpp.

    + +
    +
    + +

    ◆ swap() [2/6]

    + +
    +
    +
    +template<class T, class A>
    + + + + + +
    + + + + + + + + + + + +
    void xt::swap (uvector< T, A > & lhs,
    uvector< T, A > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 608 of file xstorage.hpp.

    + +
    +
    + +

    ◆ swap() [3/6]

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + + +
    + + + + + + + + + + + +
    void xt::swap (xbuffer_adaptor< CP, O, A > & lhs,
    xbuffer_adaptor< CP, O, A > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1067 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ swap() [4/6]

    + +
    +
    +
    +template<class I, class CI>
    + + + + + +
    + + + + + + + + + + + +
    void xt::swap (xiterator_adaptor< I, CI > & lhs,
    xiterator_adaptor< I, CI > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1135 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ swap() [5/6]

    + +
    +
    +
    +template<class C, class IG>
    + + + + + +
    + + + + + + + + + + + +
    void xt::swap (xiterator_owner_adaptor< C, IG > & lhs,
    xiterator_owner_adaptor< C, IG > & rhs )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1238 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ swap() [6/6]

    + +
    +
    +
    +template<class VE, class FE>
    + + + + + +
    + + + + + + + + + + + +
    void xt::swap (xoptional_assembly_storage< VE, FE > & lhs,
    xoptional_assembly_storage< VE, FE > & rhs )
    +
    +noexcept
    +
    + +

    Definition at line 476 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ throw_broadcast_error()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + + + + + + + +
    void xt::throw_broadcast_error (const S1 & lhs,
    const S2 & rhs )
    +
    + +

    Definition at line 128 of file xexception.hpp.

    + +
    +
    + +

    ◆ throw_concatenate_error()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + + + + + + + +
    void xt::throw_concatenate_error (const S1 & lhs,
    const S2 & rhs )
    +
    + +

    Definition at line 148 of file xexception.hpp.

    + +
    +
    + +

    ◆ tile() [1/3]

    + +
    +
    +
    +template<class E, class C, xtl::check_concept< std::negation< xtl::is_integral< C > > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::tile (E && e,
    const C & reps )
    +
    +inline
    +
    + +

    Definition at line 302 of file xpad.hpp.

    + +
    +
    + +

    ◆ tile() [2/3]

    + +
    +
    +
    +template<class E, class S = typename std::decay_t<E>::size_type, xtl::check_concept< xtl::is_integral< S > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::tile (E && e,
    S reps )
    +
    +inline
    +
    + +

    Tile an array.

    +
    Parameters
    + + + +
    eThe array.
    repsThe number of repetitions of A along the first axis.
    +
    +
    +
    Returns
    The tiled array.
    + +

    Definition at line 315 of file xpad.hpp.

    + +
    +
    + +

    ◆ tile() [3/3]

    + +
    +
    +
    +template<class E, class S = typename std::decay_t<E>::size_type>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::tile (E && e,
    std::initializer_list< S > reps )
    +
    +inline
    +
    + +

    Tile an array.

    +
    Parameters
    + + + +
    eThe array.
    repsThe number of repetitions of A along each axis.
    +
    +
    +
    Returns
    The tiled array.
    + +

    Definition at line 296 of file xpad.hpp.

    + +
    +
    + +

    ◆ to_array()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    std::array< std::remove_cv_t< T >, N > xt::to_array (T(&) a[N])
    +
    +constexpr
    +
    + +

    Definition at line 533 of file xutils.hpp.

    + +
    +
    + +

    ◆ to_json()

    + +
    +
    +
    +template<template< typename U, typename V, typename... Args > class M, class E>
    + + + + + +
    + + + + + + + + + + + +
    enable_xexpression< E > xt::to_json (nlohmann::basic_json< M > & j,
    const E & e )
    +
    +inline
    +
    + +

    JSON serialization of an xtensor expression.

    +

    The to_json method is used by the nlohmann_json package for automatic serialization of user-defined types. The method is picked up by argument-dependent lookup.

    +
    Parameters
    + + + +
    ja JSON object
    ea const xexpression
    +
    +
    + +

    Definition at line 133 of file xjson.hpp.

    + +
    +
    + +

    ◆ tril()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::tril (E && arr,
    int k = 0 )
    +
    +inline
    +
    + +

    Extract lower triangular matrix from xexpression.

    +

    The parameter k selects the offset of the diagonal.

    +
    Parameters
    + + + +
    arrthe input array
    kthe diagonal above which to zero elements. 0 (default) selects the main diagonal, k < 0 is below the main diagonal, k > 0 above.
    +
    +
    +
    Returns
    xexpression containing lower triangle from arr, 0 otherwise
    + +

    Definition at line 1223 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ triu()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::triu (E && arr,
    int k = 0 )
    +
    +inline
    +
    + +

    Extract upper triangular matrix from xexpression.

    +

    The parameter k selects the offset of the diagonal.

    +
    Parameters
    + + + +
    arrthe input array
    kthe diagonal below which to zero elements. 0 (default) selects the main diagonal, k < 0 is below the main diagonal, k > 0 above.
    +
    +
    +
    Returns
    xexpression containing lower triangle from arr, 0 otherwise
    + +

    Definition at line 1249 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ type_name()

    + +
    +
    +
    +template<class T>
    + + + + + + + +
    static_string xt::type_name ()
    +
    + +

    Definition at line 68 of file xinfo.hpp.

    + +
    +
    + +

    ◆ type_to_string()

    + +
    +
    +
    +template<class T>
    + + + + + + + +
    std::string xt::type_to_string ()
    +
    + +

    Definition at line 87 of file xinfo.hpp.

    + +
    +
    + +

    ◆ unchecked_data_offset()

    + +
    +
    +
    +template<class offset_type, layout_type L = layout_type::dynamic, class S, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    offset_type xt::unchecked_data_offset (const S & strides,
    Args... args )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 484 of file xstrides.hpp.

    + +
    +
    + +

    ◆ uninitialized_shape()

    + +
    +
    +
    +template<class S, class stype>
    + + + + + +
    + + + + + + + +
    S xt::uninitialized_shape (stype size)
    +
    +inline
    +
    + +

    Definition at line 730 of file xstrides.hpp.

    + +
    +
    + +

    ◆ unravel_from_strides()

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    S xt::unravel_from_strides (typename S::value_type index,
    const S & strides,
    layout_type l = layout_type::row_major )
    +
    +inline
    +
    + +

    Definition at line 678 of file xstrides.hpp.

    + +
    +
    + +

    ◆ unravel_index()

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    get_strides_t< S > xt::unravel_index (typename S::value_type index,
    const S & shape,
    layout_type l = layout_type::row_major )
    +
    +inline
    +
    + +

    Definition at line 694 of file xstrides.hpp.

    + +
    +
    + +

    ◆ unravel_indices()

    + +
    +
    +
    +template<class S, class T>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    std::vector< get_strides_t< S > > xt::unravel_indices (const T & indices,
    const S & shape,
    layout_type l = layout_type::row_major )
    +
    +inline
    +
    + +

    Definition at line 704 of file xstrides.hpp.

    + +
    +
    + +

    ◆ value() [1/2]

    + +
    +
    +
    +template<class S, class I>
    + + + + + +
    + + + + + + + + + + + +
    std::size_t xt::value (const S & slice,
    I i )
    +
    +inlinenoexcept
    +
    + +

    Definition at line 826 of file xslice.hpp.

    + +
    +
    + +

    ◆ value() [2/2]

    + +
    +
    +
    +template<class E, xtl::check_concept< is_xexpression< E > > = 0>
    + + + + + +
    + + + + + + + +
    auto xt::value (E && e) -> detail::value_expression_t<E> +
    +
    +inline
    +
    + +

    Definition at line 1266 of file xoptional.hpp.

    + +
    +
    + +

    ◆ variance() [1/5]

    + +
    +
    +
    +template<class T = void, class E, class A, std::size_t N, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    auto xt::variance (E && e,
    const A(&) axes[N],
    const D & ddof,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2210 of file xmath.hpp.

    + +
    +
    + +

    ◆ variance() [2/5]

    + +
    +
    +
    +template<class T = void, class E, class A, std::size_t N, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::variance (E && e,
    const A(&) axes[N],
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2200 of file xmath.hpp.

    + +
    +
    + +

    ◆ variance() [3/5]

    + +
    +
    +
    +template<class T = void, class E, class D, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS >, xtl::is_integral< D > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::variance (E && e,
    const D & ddof,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2068 of file xmath.hpp.

    + +
    +
    + +

    ◆ variance() [4/5]

    + +
    +
    +
    +template<class T = void, class E, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::variance (E && e,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2075 of file xmath.hpp.

    + +
    +
    + +

    ◆ variance() [5/5]

    + +
    +
    +
    +template<class T = void, class E, class X, class EVS = std::tuple<evaluation_strategy::lazy_type>, xtl::check_concept< std::negation< is_reducer_options< X > >, std::negation< xtl::is_integral< std::decay_t< X > > >, is_reducer_options< EVS > > = 0>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::variance (E && e,
    X && axes,
    EVS es = EVS() )
    +
    +inline
    +
    + +

    Definition at line 2146 of file xmath.hpp.

    + +
    +
    + +

    ◆ vectorize() [1/3]

    + +
    +
    +
    +template<class F>
    + + + + + +
    + + + + + + + +
    auto xt::vectorize (F && f) -> decltype(vectorize(std::forward<F>(f), std::declval<detail::get_function_type<F>*>()))
    +
    +inline
    +
    + +

    Definition at line 97 of file xvectorize.hpp.

    + +
    +
    + +

    ◆ vectorize() [2/3]

    + +
    +
    +
    +template<class F, class R, class... Args>
    + + + + + +
    + + + + + + + + + + + +
    xvectorizer< F, R > xt::vectorize (F && f,
    R(*  )(Args...) )
    +
    +inline
    +
    + +

    Definition at line 91 of file xvectorize.hpp.

    + +
    +
    + +

    ◆ vectorize() [3/3]

    + +
    +
    +
    +template<class R, class... Args>
    + + + + + +
    + + + + + + + +
    xvectorizer< R(*)(Args...), R > xt::vectorize (R(* )(Args...))
    +
    +inline
    +
    + +

    Definition at line 85 of file xvectorize.hpp.

    + +
    +
    + +

    ◆ view()

    + +
    +
    +
    +template<class E, class... S>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::view (E && e,
    S &&... slices )
    +
    +inline
    +
    + +

    Constructs and returns a view on the specified xexpression.

    +

    Users should not directly construct the slices but call helper functions instead.

    Parameters
    + + + +
    ethe xexpression to adapt
    slicesthe slices list describing the view. view accepts negative indices, in that case indexing is done in reverse order.
    +
    +
    +
    See also
    range, all, newaxis
    +
    Examples
    /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp.
    +
    + +

    Definition at line 1823 of file xview.hpp.

    + +
    +
    + +

    ◆ vstack()

    + +
    +
    +
    +template<class... CT>
    + + + + + +
    + + + + + + + +
    auto xt::vstack (std::tuple< CT... > && t)
    +
    +inline
    +
    + +

    Stack xexpressions in sequence vertically (row wise).

    +

    This is equivalent to concatenation along the first axis after 1-D arrays of shape (N) have been reshape to (1, N).

    +
    Parameters
    + + +
    txtuple of xexpressions to stack
    +
    +
    +
    Returns
    xgenerator evaluating to stacked elements
    + +

    Definition at line 940 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ xcref()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xscalar< const T & > xt::xcref (T & t)
    +
    +inline
    +
    + +

    Definition at line 964 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xnone()

    + +
    +
    + + + + + +
    + + + + + + + +
    auto xt::xnone ()
    +
    +inline
    +
    + +

    Definition at line 707 of file xslice.hpp.

    + +
    +
    + +

    ◆ xref()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xscalar< T & > xt::xref (T & t)
    +
    +inline
    +
    + +

    Definition at line 958 of file xscalar.hpp.

    + +
    +
    + +

    ◆ xtuple()

    + +
    +
    +
    +template<class... Types>
    + + + + + +
    + + + + + + + +
    auto xt::xtuple (Types &&... args)
    +
    +inline
    +
    + +

    Creates tuples from arguments for concatenate and stack.

    +

    Very similar to std::make_tuple.

    + +

    Definition at line 707 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ zeros() [1/2]

    + +
    +
    +
    +template<class T, class I, std::size_t L>
    + + + + + +
    + + + + + + + +
    auto xt::zeros (const I(&) shape[L])
    +
    +inlinenoexcept
    +
    + +

    Definition at line 72 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ zeros() [2/2]

    + +
    +
    +
    +template<class T, class S>
    + + + + + +
    + + + + + + + +
    auto xt::zeros (S shape)
    +
    +inlinenoexcept
    +
    + +

    Returns an xexpression containing zeros of the specified shape.

    +
    Template Parameters
    + + +
    shapethe shape of the returned expression.
    +
    +
    + +

    Definition at line 66 of file xbuilder.hpp.

    + +
    +
    + +

    ◆ zeros_like()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    auto xt::zeros_like (const xexpression< E > & e)
    +
    +inline
    +
    + +

    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with zeros and of the same shape, value type and layout as the input xexpression e.

    +

    Note: contrary to zeros(shape), this function returns a non-lazy, allocated container! Use xt::zeros<double>(e.shape()); for a lazy version.

    +
    Parameters
    + + +
    ethe xexpression from which to extract shape, value type and layout.
    +
    +
    + +

    Definition at line 154 of file xbuilder.hpp.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ has_assign_to_v

    + +
    +
    +
    +template<class E1, class E2>
    + + + + + +
    + + + + +
    bool xt::has_assign_to_v = has_assign_to<E1, E2>::value
    +
    +constexpr
    +
    + +

    Definition at line 788 of file xutils.hpp.

    + +
    +
    + +

    ◆ keep_dims

    + +
    +
    + + + + + +
    + + + + +
    auto xt::keep_dims = std::tuple<keep_dims_type>{}
    +
    +constexpr
    +
    + +

    Definition at line 45 of file xreducer.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/namespacext.js b/namespacext.js new file mode 100644 index 000000000..1a39020a7 --- /dev/null +++ b/namespacext.js @@ -0,0 +1,696 @@ +var namespacext = +[ + [ "acquire_ownership", "structxt_1_1acquire__ownership.html", null ], + [ "aligned_array", "classxt_1_1aligned__array.html", null ], + [ "aligned_mode", "structxt_1_1aligned__mode.html", null ], + [ "big_promote_value_type", "structxt_1_1big__promote__value__type.html", null ], + [ "broadcast_error", "classxt_1_1broadcast__error.html", null ], + [ "buffer_inner_types", "structxt_1_1buffer__inner__types.html", null ], + [ "buffer_inner_types< xbuffer_adaptor< CP, O, A > >", "structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "buffer_inner_types< xiterator_adaptor< I, CI > >", "structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "buffer_inner_types< xiterator_owner_adaptor< C, IG > >", "structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "can_assign", "structxt_1_1can__assign.html", null ], + [ "can_assign< xstrided_view< CT, S, L, FST >, RHS >", "structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html", null ], + [ "check_strides_overlap", "structxt_1_1check__strides__overlap.html", null ], + [ "check_strides_overlap< layout_type::column_major >", "structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html", null ], + [ "check_strides_overlap< layout_type::row_major >", "structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html", null ], + [ "common_difference_type", "structxt_1_1common__difference__type.html", null ], + [ "common_difference_type<>", "structxt_1_1common__difference__type_3_4.html", null ], + [ "common_size_type", "structxt_1_1common__size__type.html", null ], + [ "common_size_type<>", "structxt_1_1common__size__type_3_4.html", null ], + [ "common_tensor_type", "structxt_1_1common__tensor__type.html", null ], + [ "common_value_type", "structxt_1_1common__value__type.html", null ], + [ "concatenate_error", "classxt_1_1concatenate__error.html", null ], + [ "conditional_cast_functor", "structxt_1_1conditional__cast__functor.html", null ], + [ "conditional_cast_functor< false, T >", "structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html", null ], + [ "conditional_cast_functor< true, T >", "structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html", null ], + [ "const_array", "structxt_1_1const__array.html", null ], + [ "const_value", "structxt_1_1const__value.html", null ], + [ "const_xclosure", "structxt_1_1const__xclosure.html", null ], + [ "const_xclosure< E, disable_xexpression< std::decay_t< E > > >", "structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html", null ], + [ "const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >", "structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html", null ], + [ "container_simd_return_type", "structxt_1_1container__simd__return__type.html", null ], + [ "decay_all", "structxt_1_1decay__all.html", null ], + [ "decay_all< S< X... > >", "structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "disable_indexed_stepper", "structxt_1_1disable__indexed__stepper.html", null ], + [ "driven_align_mode", "structxt_1_1driven__align__mode.html", null ], + [ "enable_indexed_stepper", "structxt_1_1enable__indexed__stepper.html", null ], + [ "filter_fixed_shape", "structxt_1_1filter__fixed__shape.html", null ], + [ "fixed_shape", "classxt_1_1fixed__shape.html", null ], + [ "fixed_xreducer_shape_type", "structxt_1_1fixed__xreducer__shape__type.html", null ], + [ "fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >", "structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html", null ], + [ "forbid_simd", "structxt_1_1forbid__simd.html", null ], + [ "forbid_simd< const std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "forbid_simd< const xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "forbid_simd< std::vector< bool, A > >", "structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html", null ], + [ "forbid_simd< xtl::xdynamic_bitset< B, A > >", "structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html", null ], + [ "get_init_type", "structxt_1_1get__init__type.html", null ], + [ "get_init_type< V, fixed_shape< X... > >", "structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "get_rank", "structxt_1_1get__rank.html", null ], + [ "get_rank< E, decltype((void) E::rank, void())>", "structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html", null ], + [ "get_strides_type", "structxt_1_1get__strides__type.html", null ], + [ "get_strides_type< fixed_shape< I... > >", "structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html", null ], + [ "get_strides_type< xbuffer_adaptor< CP, O, A > >", "structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "get_value_type", "structxt_1_1get__value__type.html", null ], + [ "get_value_type< T, void_t< typename T::value_type > >", "structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html", null ], + [ "has_assign_conversion", "structxt_1_1has__assign__conversion.html", null ], + [ "has_assign_to", "structxt_1_1has__assign__to.html", null ], + [ "has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >", "structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html", null ], + [ "has_data_interface", "structxt_1_1has__data__interface.html", null ], + [ "has_data_interface< E, void_t< decltype(std::declval< E >().data())> >", "structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html", null ], + [ "has_fixed_rank", "structxt_1_1has__fixed__rank.html", null ], + [ "has_iterator_interface", "structxt_1_1has__iterator__interface.html", null ], + [ "has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >", "structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html", null ], + [ "has_memory_address", "structxt_1_1has__memory__address.html", null ], + [ "has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >", "structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html", null ], + [ "has_rank", "structxt_1_1has__rank.html", null ], + [ "has_sign_conversion", "structxt_1_1has__sign__conversion.html", null ], + [ "has_simd_apply", "structxt_1_1has__simd__apply.html", null ], + [ "has_simd_interface", "structxt_1_1has__simd__interface.html", null ], + [ "has_simd_interface< xfunction< F, CT... >, T >", "structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xfunctor_adaptor< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xfunctor_applier_base< D >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xfunctor_view< F, CT >, T >", "structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html", null ], + [ "has_simd_interface< xtensor_view< EC, N, L, Tag > >", "structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "has_simd_type", "structxt_1_1has__simd__type.html", null ], + [ "has_storage_type", "structxt_1_1has__storage__type.html", null ], + [ "has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >", "structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html", null ], + [ "has_strides", "structxt_1_1has__strides.html", null ], + [ "has_strides< E, void_t< decltype(std::declval< E >().strides())> >", "structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html", null ], + [ "index_from_shape", "structxt_1_1index__from__shape.html", null ], + [ "index_mapper", "structxt_1_1index__mapper.html", null ], + [ "index_mapper< xt::xview< UnderlyingContainer, Slices... > >", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html", "classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4" ], + [ "initializer_dimension", "structxt_1_1initializer__dimension.html", null ], + [ "inner_aligned_mode", "structxt_1_1inner__aligned__mode.html", null ], + [ "inner_reference", "structxt_1_1inner__reference.html", null ], + [ "invalid_type", "structxt_1_1invalid__type.html", null ], + [ "is_chunked_t", "structxt_1_1is__chunked__t.html", null ], + [ "is_contiguous_container", "structxt_1_1is__contiguous__container.html", null ], + [ "is_contiguous_container< xiterator< St, S, L > >", "structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html", null ], + [ "is_contiguous_container< xiterator_adaptor< I, CI > >", "structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "is_contiguous_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "is_evaluation_strategy", "structxt_1_1is__evaluation__strategy.html", null ], + [ "is_indexed_stepper", "structxt_1_1is__indexed__stepper.html", null ], + [ "is_indexed_stepper< xindexed_stepper< T, B > >", "structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html", null ], + [ "is_iterator", "structxt_1_1is__iterator.html", null ], + [ "is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >", "structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html", null ], + [ "is_narrowing_conversion", "structxt_1_1is__narrowing__conversion.html", null ], + [ "is_not_xdummy_iterator", "structxt_1_1is__not__xdummy__iterator.html", null ], + [ "is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >", "structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html", null ], + [ "is_reducer_options", "structxt_1_1is__reducer__options.html", null ], + [ "is_reducer_options_impl", "structxt_1_1is__reducer__options__impl.html", null ], + [ "is_reducer_options_impl< std::tuple< X... > >", "structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html", null ], + [ "is_specialization_of", "structxt_1_1is__specialization__of.html", null ], + [ "is_specialization_of< TT, TT< Ts... > >", "structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html", null ], + [ "is_xoptional_expression", "structxt_1_1is__xoptional__expression.html", null ], + [ "is_xtensor_expression", "structxt_1_1is__xtensor__expression.html", null ], + [ "keep_dims_type", "structxt_1_1keep__dims__type.html", null ], + [ "linear_assigner", "classxt_1_1linear__assigner.html", null ], + [ "linear_assigner< false >", "classxt_1_1linear__assigner_3_01false_01_4.html", null ], + [ "make_invalid_type", "structxt_1_1make__invalid__type.html", null ], + [ "make_void", "structxt_1_1make__void.html", null ], + [ "memory_range", "structxt_1_1memory__range.html", null ], + [ "meta_identity", "structxt_1_1meta__identity.html", null ], + [ "missing_type", "structxt_1_1missing__type.html", null ], + [ "nested_initializer_list", "structxt_1_1nested__initializer__list.html", null ], + [ "nested_initializer_list< T, 0 >", "structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html", null ], + [ "no_ownership", "structxt_1_1no__ownership.html", null ], + [ "noalias_proxy", "classxt_1_1noalias__proxy.html", null ], + [ "norm_type", "structxt_1_1norm__type.html", null ], + [ "numeric_constants", "structxt_1_1numeric__constants.html", null ], + [ "overlapping_memory_checker", "structxt_1_1overlapping__memory__checker.html", null ], + [ "overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >", "structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html", null ], + [ "overlapping_memory_checker_base", "structxt_1_1overlapping__memory__checker__base.html", null ], + [ "overlapping_memory_checker_traits", "structxt_1_1overlapping__memory__checker__traits.html", null ], + [ "overlapping_memory_checker_traits< E >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html", null ], + [ "overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html", null ], + [ "overlapping_memory_checker_traits< E, std::enable_if_t::value &&is_crtp_base_of< xview_semantic, E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html", null ], + [ "overlapping_memory_checker_traits< E, std::enable_if_t::value &&is_specialization_of< xfunction, E >::value > >", "structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html", null ], + [ "promote_shape", "structxt_1_1promote__shape.html", null ], + [ "promote_strides", "structxt_1_1promote__strides.html", null ], + [ "rebind_container", "structxt_1_1rebind__container.html", null ], + [ "rebind_container< X, C< T, A > >", "structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html", null ], + [ "rebind_container< X, C< T, N > >", "structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html", null ], + [ "rebind_container< X, svector< T, N, A, B > >", "structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html", null ], + [ "reducer_options", "structxt_1_1reducer__options.html", "structxt_1_1reducer__options" ], + [ "remove_class", "structxt_1_1remove__class.html", null ], + [ "remove_class< R(C::*)(Args...) const >", "structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html", null ], + [ "remove_class< R(C::*)(Args...)>", "structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html", null ], + [ "select_dim_mapping_type", "structxt_1_1select__dim__mapping__type.html", null ], + [ "select_dim_mapping_type< fixed_shape< I... > >", "structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html", null ], + [ "select_iterable_base", "structxt_1_1select__iterable__base.html", null ], + [ "select_layout", "structxt_1_1select__layout.html", null ], + [ "sequence_view", "classxt_1_1sequence__view.html", null ], + [ "squared_norm_type", "structxt_1_1squared__norm__type.html", null ], + [ "static_dimension", "structxt_1_1static__dimension.html", null ], + [ "static_string", "structxt_1_1static__string.html", null ], + [ "stepper_assigner", "classxt_1_1stepper__assigner.html", null ], + [ "stepper_tools", "structxt_1_1stepper__tools.html", null ], + [ "strided_loop_assigner", "classxt_1_1strided__loop__assigner.html", null ], + [ "svector", "classxt_1_1svector.html", null ], + [ "temporary_container", "structxt_1_1temporary__container.html", null ], + [ "temporary_container< xbuffer_adaptor< CP, O, A > >", "structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html", null ], + [ "temporary_container< xiterator_adaptor< I, CI > >", "structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html", null ], + [ "temporary_container< xiterator_owner_adaptor< C, IG > >", "structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html", null ], + [ "temporary_type", "structxt_1_1temporary__type.html", null ], + [ "temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >", "structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html", null ], + [ "temporary_type_from_tag", "structxt_1_1temporary__type__from__tag.html", null ], + [ "temporary_type_from_tag< xtensor_expression_tag, T >", "structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html", null ], + [ "tracking_allocator", "structxt_1_1tracking__allocator.html", "structxt_1_1tracking__allocator" ], + [ "transpose_error", "classxt_1_1transpose__error.html", null ], + [ "tuple_idx_of", "structxt_1_1tuple__idx__of.html", null ], + [ "tuple_idx_of_impl", "structxt_1_1tuple__idx__of__impl.html", null ], + [ "tuple_idx_of_impl< I, T, std::tuple< T, Types... > >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html", null ], + [ "tuple_idx_of_impl< I, T, std::tuple< U, Types... > >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html", null ], + [ "tuple_idx_of_impl< I, T, std::tuple<> >", "structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html", null ], + [ "unaligned_mode", "structxt_1_1unaligned__mode.html", null ], + [ "uvector", "classxt_1_1uvector.html", null ], + [ "view_temporary_type", "structxt_1_1view__temporary__type.html", null ], + [ "xaccessible", "classxt_1_1xaccessible.html", "classxt_1_1xaccessible" ], + [ "xaccumulator_functor", "structxt_1_1xaccumulator__functor.html", null ], + [ "xall", "classxt_1_1xall.html", null ], + [ "xall_tag", "structxt_1_1xall__tag.html", null ], + [ "xarray_adaptor", "classxt_1_1xarray__adaptor.html", "classxt_1_1xarray__adaptor" ], + [ "xarray_container", "classxt_1_1xarray__container.html", "classxt_1_1xarray__container" ], + [ "xassign_traits", "classxt_1_1xassign__traits.html", null ], + [ "xaxis_iterator", "classxt_1_1xaxis__iterator.html", "classxt_1_1xaxis__iterator" ], + [ "xaxis_slice_iterator", "classxt_1_1xaxis__slice__iterator.html", "classxt_1_1xaxis__slice__iterator" ], + [ "xblockwise_reducer", "classxt_1_1xblockwise__reducer.html", null ], + [ "xbounded_iterator", "classxt_1_1xbounded__iterator.html", null ], + [ "xbroadcast", "classxt_1_1xbroadcast.html", "classxt_1_1xbroadcast" ], + [ "xbuffer_adaptor", "classxt_1_1xbuffer__adaptor.html", null ], + [ "xbuffer_adaptor_base", "classxt_1_1xbuffer__adaptor__base.html", null ], + [ "xchunk_iterator", "classxt_1_1xchunk__iterator.html", null ], + [ "xchunked_array", "classxt_1_1xchunked__array.html", null ], + [ "xchunked_assigner", "classxt_1_1xchunked__assigner.html", null ], + [ "xchunked_semantic", "classxt_1_1xchunked__semantic.html", null ], + [ "xchunked_view", "classxt_1_1xchunked__view.html", null ], + [ "xclosure", "structxt_1_1xclosure.html", null ], + [ "xclosure< E, disable_xexpression< std::decay_t< E > > >", "structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html", null ], + [ "xclosure< xshared_expression< E >, std::enable_if_t< true > >", "structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html", null ], + [ "xconst_accessible", "classxt_1_1xconst__accessible.html", "classxt_1_1xconst__accessible" ], + [ "xconst_iterable", "classxt_1_1xconst__iterable.html", "classxt_1_1xconst__iterable" ], + [ "xcontainer", "classxt_1_1xcontainer.html", "classxt_1_1xcontainer" ], + [ "xcontainer_inner_types", "structxt_1_1xcontainer__inner__types.html", null ], + [ "xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xbroadcast< CT, X > >", "structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xchunked_array< chunk_storage > >", "structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >", "structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfunction< F, CT... > >", "structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfunctor_adaptor< F, CT > >", "structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xfunctor_view< F, CT > >", "structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xgenerator< C, R, S > >", "structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xindex_view< CT, I > >", "structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xmasked_view< CTD, CTM > >", "structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xoptional_assembly< VE, FE > >", "structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >", "structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xreducer< F, CT, X, O > >", "structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xscalar< CT > >", "structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xstrided_view< CT, S, L, FST > >", "structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xcontainer_inner_types< xview< CT, S... > >", "structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html", null ], + [ "xcontainer_iterable_types", "structxt_1_1xcontainer__iterable__types.html", null ], + [ "xcontainer_semantic", "classxt_1_1xcontainer__semantic.html", "classxt_1_1xcontainer__semantic" ], + [ "xcontiguous_iterable", "classxt_1_1xcontiguous__iterable.html", "classxt_1_1xcontiguous__iterable" ], + [ "xcsv_config", "structxt_1_1xcsv__config.html", null ], + [ "xdrop_slice", "classxt_1_1xdrop__slice.html", null ], + [ "xdummy_iterator", "classxt_1_1xdummy__iterator.html", null ], + [ "xdynamic_view", "classxt_1_1xdynamic__view.html", "classxt_1_1xdynamic__view" ], + [ "xellipsis_tag", "structxt_1_1xellipsis__tag.html", null ], + [ "xexpression", "classxt_1_1xexpression.html", "classxt_1_1xexpression" ], + [ "xexpression_assigner", "classxt_1_1xexpression__assigner.html", null ], + [ "xexpression_assigner_base", "classxt_1_1xexpression__assigner__base.html", null ], + [ "xexpression_assigner_base< xoptional_expression_tag >", "classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html", null ], + [ "xexpression_assigner_base< xtensor_expression_tag >", "classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html", null ], + [ "xexpression_holder", "classxt_1_1xexpression__holder.html", null ], + [ "xexpression_tag", "structxt_1_1xexpression__tag.html", null ], + [ "xfiltration", "classxt_1_1xfiltration.html", "classxt_1_1xfiltration" ], + [ "xfixed_adaptor", "classxt_1_1xfixed__adaptor.html", "classxt_1_1xfixed__adaptor" ], + [ "xfixed_container", "classxt_1_1xfixed__container.html", "classxt_1_1xfixed__container" ], + [ "xfunction", "classxt_1_1xfunction.html", "classxt_1_1xfunction" ], + [ "xfunction_cache", "structxt_1_1xfunction__cache.html", null ], + [ "xfunction_iterator", "classxt_1_1xfunction__iterator.html", null ], + [ "xfunction_stepper", "classxt_1_1xfunction__stepper.html", null ], + [ "xfunctor_adaptor", "classxt_1_1xfunctor__adaptor.html", "classxt_1_1xfunctor__adaptor" ], + [ "xfunctor_applier_base", "classxt_1_1xfunctor__applier__base.html", "classxt_1_1xfunctor__applier__base" ], + [ "xfunctor_iterator", "classxt_1_1xfunctor__iterator.html", null ], + [ "xfunctor_stepper", "classxt_1_1xfunctor__stepper.html", null ], + [ "xfunctor_view", "classxt_1_1xfunctor__view.html", "classxt_1_1xfunctor__view" ], + [ "xfunctor_view_temporary_type", "structxt_1_1xfunctor__view__temporary__type.html", null ], + [ "xgenerator", "classxt_1_1xgenerator.html", "classxt_1_1xgenerator" ], + [ "xindex_view", "classxt_1_1xindex__view.html", "classxt_1_1xindex__view" ], + [ "xindexed_stepper", "classxt_1_1xindexed__stepper.html", null ], + [ "xinitial", "structxt_1_1xinitial.html", null ], + [ "xiterable", "classxt_1_1xiterable.html", "classxt_1_1xiterable" ], + [ "xiterable_inner_types", "structxt_1_1xiterable__inner__types.html", null ], + [ "xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >", "structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xarray_container< EC, L, SC, Tag > >", "structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xbroadcast< CT, X > >", "structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html", null ], + [ "xiterable_inner_types< xchunked_array< chunk_storage > >", "structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html", null ], + [ "xiterable_inner_types< xdynamic_view< CT, S, L, FST > >", "structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >", "structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >", "structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xfunction< F, CT... > >", "structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html", null ], + [ "xiterable_inner_types< xgenerator< C, R, S > >", "structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html", null ], + [ "xiterable_inner_types< xindex_view< CT, I > >", "structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html", null ], + [ "xiterable_inner_types< xmasked_view< CTD, CTM > >", "structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html", null ], + [ "xiterable_inner_types< xoptional_assembly< VE, FE > >", "structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html", null ], + [ "xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >", "structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html", null ], + [ "xiterable_inner_types< xreducer< F, CT, X, O > >", "structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html", null ], + [ "xiterable_inner_types< xrepeat< CT, R > >", "structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html", null ], + [ "xiterable_inner_types< xscalar< CT > >", "structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html", null ], + [ "xiterable_inner_types< xstrided_view< CT, S, L, FST > >", "structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html", null ], + [ "xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xtensor_container< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xtensor_view< EC, N, L, Tag > >", "structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html", null ], + [ "xiterable_inner_types< xview< CT, S... > >", "structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html", null ], + [ "xiterator", "classxt_1_1xiterator.html", null ], + [ "xiterator_adaptor", "classxt_1_1xiterator__adaptor.html", null ], + [ "xiterator_owner_adaptor", "classxt_1_1xiterator__owner__adaptor.html", null ], + [ "xkeep_slice", "classxt_1_1xkeep__slice.html", null ], + [ "xmasked_value", "classxt_1_1xmasked__value.html", null ], + [ "xmasked_view", "classxt_1_1xmasked__view.html", "classxt_1_1xmasked__view" ], + [ "xmasked_view_stepper", "classxt_1_1xmasked__view__stepper.html", null ], + [ "xmultiindex_iterator", "classxt_1_1xmultiindex__iterator.html", null ], + [ "xnewaxis", "classxt_1_1xnewaxis.html", null ], + [ "xnewaxis_tag", "structxt_1_1xnewaxis__tag.html", null ], + [ "xoptional_assembly", "classxt_1_1xoptional__assembly.html", "classxt_1_1xoptional__assembly" ], + [ "xoptional_assembly_adaptor", "classxt_1_1xoptional__assembly__adaptor.html", "classxt_1_1xoptional__assembly__adaptor" ], + [ "xoptional_assembly_base", "classxt_1_1xoptional__assembly__base.html", "classxt_1_1xoptional__assembly__base" ], + [ "xoptional_assembly_linear_iterator", "classxt_1_1xoptional__assembly__linear__iterator.html", null ], + [ "xoptional_assembly_linear_iterator_traits", "structxt_1_1xoptional__assembly__linear__iterator__traits.html", null ], + [ "xoptional_assembly_stepper", "classxt_1_1xoptional__assembly__stepper.html", null ], + [ "xoptional_assembly_storage", "classxt_1_1xoptional__assembly__storage.html", null ], + [ "xoptional_comparable", "structxt_1_1xoptional__comparable.html", null ], + [ "xoptional_expression_tag", "structxt_1_1xoptional__expression__tag.html", null ], + [ "xproxy_inner_types", "structxt_1_1xproxy__inner__types.html", null ], + [ "xrange", "classxt_1_1xrange.html", null ], + [ "xrange_adaptor", "structxt_1_1xrange__adaptor.html", null ], + [ "xreducer", "classxt_1_1xreducer.html", "classxt_1_1xreducer" ], + [ "xreducer_functors", "structxt_1_1xreducer__functors.html", null ], + [ "xreducer_shape_type", "structxt_1_1xreducer__shape__type.html", null ], + [ "xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html", null ], + [ "xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html", null ], + [ "xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >", "structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html", null ], + [ "xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >", "structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html", null ], + [ "xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >", "structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html", null ], + [ "xreducer_stepper", "classxt_1_1xreducer__stepper.html", null ], + [ "xrepeat", "classxt_1_1xrepeat.html", "classxt_1_1xrepeat" ], + [ "xrepeat_stepper", "classxt_1_1xrepeat__stepper.html", null ], + [ "xscalar", "classxt_1_1xscalar.html", "classxt_1_1xscalar" ], + [ "xscalar_stepper", "classxt_1_1xscalar__stepper.html", null ], + [ "xsemantic_base", "classxt_1_1xsemantic__base.html", "classxt_1_1xsemantic__base" ], + [ "xsharable_expression", "classxt_1_1xsharable__expression.html", null ], + [ "xshared_expression", "classxt_1_1xshared__expression.html", "classxt_1_1xshared__expression" ], + [ "xslice", "classxt_1_1xslice.html", null ], + [ "xstepped_range", "classxt_1_1xstepped__range.html", null ], + [ "xstepper", "classxt_1_1xstepper.html", null ], + [ "xstrided_container", "classxt_1_1xstrided__container.html", "classxt_1_1xstrided__container" ], + [ "xstrided_view", "classxt_1_1xstrided__view.html", "classxt_1_1xstrided__view" ], + [ "xstrided_view_base", "classxt_1_1xstrided__view__base.html", "classxt_1_1xstrided__view__base" ], + [ "xtensor_adaptor", "classxt_1_1xtensor__adaptor.html", "classxt_1_1xtensor__adaptor" ], + [ "xtensor_container", "classxt_1_1xtensor__container.html", "classxt_1_1xtensor__container" ], + [ "xtensor_expression_tag", "structxt_1_1xtensor__expression__tag.html", null ], + [ "xtensor_view", "classxt_1_1xtensor__view.html", "classxt_1_1xtensor__view" ], + [ "xvectorizer", "classxt_1_1xvectorizer.html", null ], + [ "xview", "classxt_1_1xview.html", "classxt_1_1xview" ], + [ "xview_semantic", "classxt_1_1xview__semantic.html", "classxt_1_1xview__semantic" ], + [ "xview_shape_type", "structxt_1_1xview__shape__type.html", null ], + [ "xview_shape_type< fixed_shape< I... >, S... >", "structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html", null ], + [ "xview_shape_type< std::array< I, L >, S... >", "structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html", null ], + [ "xview_stepper", "classxt_1_1xview__stepper.html", null ], + [ "xscalar_concept", "conceptxt_1_1xscalar__concept.html", null ], + [ "xexpression_concept", "conceptxt_1_1xexpression__concept.html", null ], + [ "fixed_shape_container_concept", "conceptxt_1_1fixed__shape__container__concept.html", null ], + [ "xgenerator_concept", "conceptxt_1_1xgenerator__concept.html", null ], + [ "has_simd_interface_concept", "conceptxt_1_1has__simd__interface__concept.html", null ], + [ "has_data_interface_concept", "conceptxt_1_1has__data__interface__concept.html", null ], + [ "has_iterator_interface_concept", "conceptxt_1_1has__iterator__interface__concept.html", null ], + [ "iterator_concept", "conceptxt_1_1iterator__concept.html", null ], + [ "with_memory_address_concept", "conceptxt_1_1with__memory__address__concept.html", null ], + [ "without_memory_address_concept", "conceptxt_1_1without__memory__address__concept.html", null ], + [ "xbroadcast_concept", "conceptxt_1_1xbroadcast__concept.html", null ], + [ "contiguous_view_concept", "conceptxt_1_1contiguous__view__concept.html", null ], + [ "strided_view_concept", "conceptxt_1_1strided__view__concept.html", null ], + [ "norm_type_t", "namespacext.html#ab4c44845df13e51e13c5e2a379c20681", null ], + [ "squared_norm_type_t", "namespacext.html#a2cfcd9d1752e2ebfe143b47fae965adf", null ], + [ "xarray", "namespacext.html#a1e2f42d1adc56f72842f8dc4fc3ec7a1", null ], + [ "xarray_optional", "namespacext.html#ab500ef7fbb97df1f945655bd9869612c", null ], + [ "xarray_pointer", "group__xt__xadapt.html#ga78db42d1cb84bbada6dfa0c2795562c1", null ], + [ "xshape", "namespacext.html#ae27fda097300ac8f3a51b454ca2a15cf", null ], + [ "xstrided_slice_vector", "namespacext.html#a182405eeb0d1323fc7320a853bc60708", null ], + [ "xtensor", "namespacext.html#a8f2a3a1999f9572fea8ee6b50ca083eb", null ], + [ "xtensor_fixed", "namespacext.html#a675d189919a15dd28e7194394d3a0ad7", null ], + [ "xtensor_optional", "namespacext.html#a31d3bc86529364db995ee61162e8adf7", null ], + [ "xtensor_pointer", "group__xt__xadapt.html#ga6cc895e9f88e46935a2a34dda7aac4e3", null ], + [ "access_t", "namespacext.html#a1390f61ac19aea31030f7065ec3a738f", [ + [ "SAFE", "namespacext.html#a1390f61ac19aea31030f7065ec3a738fab18288babd4636cff34b15e0d1340fc2", null ], + [ "UNSAFE", "namespacext.html#a1390f61ac19aea31030f7065ec3a738fa2c7b3a8b9acd296488c69fb8f57587cf", null ] + ] ], + [ "histogram_algorithm", "group__histogram.html#gaaa63c71a8935d44bbec1aa9af4cb61b8", [ + [ "automatic", "group__histogram.html#ggaaa63c71a8935d44bbec1aa9af4cb61b8a2bd9c0ed00116be1258e0cc66617d7c8", null ], + [ "linspace", "group__histogram.html#ggaaa63c71a8935d44bbec1aa9af4cb61b8aa79a06c0a0ee0d16a811e8a6e684e7a9", null ], + [ "logspace", "group__histogram.html#ggaaa63c71a8935d44bbec1aa9af4cb61b8a384f804929e6c2bc2bd9f74b83e66438", null ], + [ "uniform", "group__histogram.html#ggaaa63c71a8935d44bbec1aa9af4cb61b8aa489ffed938ef1b9e86889bc413501ee", null ] + ] ], + [ "layout_type", "namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6", [ + [ "dynamic", "namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6ab72f3bd391ba731a35708bfd8cd8a68f", null ], + [ "any", "namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a100b8cad7cf2a56f6df78f171f97a1ec", null ], + [ "row_major", "namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a641fabb8e5e7d1d0333e2c9c384f959c", null ], + [ "column_major", "namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a8c23f260f0ec1479d3bfaf3a1305a347", null ] + ] ], + [ "pad_mode", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7", [ + [ "constant", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7a617ac08757d38a5a7ed91c224f0e90a0", null ], + [ "symmetric", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7afeca3c730601be7fd57f1f0b668b4637", null ], + [ "reflect", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7ac361ee72f1559105051ffb9bac309c5a", null ], + [ "wrap", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7accfc59a528a109fa4204e8ea06e8b68b", null ], + [ "periodic", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7ae6ffdec5e14fce371eb7ae99edebbbee", null ], + [ "edge", "namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7a09039bd1628a3c1b25fda3134a4fe050", null ] + ] ], + [ "quantile_method", "group__xt__xsort.html#ga2afe52f60aa76f33b0b883a78cabc1ed", [ + [ "interpolated_inverted_cdf", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda7f20bc9a8cd4acd58c1d9b46821e9242", null ], + [ "hazen", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaf4b08e7cc0a94bb8f4e9969eeb532039", null ], + [ "weibull", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda17198fea0bd47a1170b57db7db9e6060", null ], + [ "linear", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda9a932b3cb396238423eb2f33ec17d6aa", null ], + [ "median_unbiased", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaeddf62d602ae684d91d6f586f5e5cbaf", null ], + [ "normal_unbiased", "group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edad1056b777fd87429ccb7a8a55db32545", null ] + ] ], + [ "sorting_method", "namespacext.html#ac4aea058f50a232746da4591e8956623", [ + [ "quick", "namespacext.html#ac4aea058f50a232746da4591e8956623a1df3746a4728276afdc24f828186f73a", null ], + [ "stable", "namespacext.html#ac4aea058f50a232746da4591e8956623af40faf6384fc85a33d3b05a9d41c012b", null ] + ] ], + [ "stride_type", "group__xt__xstrides.html#ga743568032eda84a9d0df401f20317b7d", [ + [ "internal", "group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dad1efad72dc5b17dc66a46767c32fff40", null ], + [ "normal", "group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dafea087517c26fadd409bd4b9dc642555", null ], + [ "bytes", "group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7da4b3a6218bb3e3a7303e8a171a60fcf92", null ] + ] ], + [ "abs", "group__basic__functions.html#ga5a8df8c0823f064b710b90fdc73384f7", null ], + [ "accumulate", "namespacext.html#a75bd621231562feb074486e7213ee86f", null ], + [ "accumulate", "namespacext.html#a89df2e50fff4b65f615aacfcdbb9ff74", null ], + [ "acos", "group__trigo__functions.html#gaef1a134c51ccdb072964383887b838c7", null ], + [ "acosh", "group__hyper__functions.html#ga982a251110da20b8dae705367b3ddd7e", null ], + [ "adapt", "group__xt__xadapt.html#ga80782b35941520fa1d729ed6224cba72", null ], + [ "adapt", "group__xt__xadapt.html#ga2eeb31313c7f9661f62d8ae6a6005013", null ], + [ "adapt", "group__xt__xadapt.html#ga6d665539130b96871327cb7a4aa8b2e0", null ], + [ "adapt", "group__xt__xadapt.html#ga9481e907df524526bc4fd7b77a7c6dcc", null ], + [ "adapt", "group__xt__xadapt.html#ga5d6037b3273754077e434c1dd12d897c", null ], + [ "adapt", "group__xt__xadapt.html#gad7037a00f2c9e7679805e3b0b3515299", null ], + [ "adapt", "group__xt__xadapt.html#ga4170776d38583fd9bedf66df77f3d328", null ], + [ "adapt", "group__xt__xadapt.html#ga7ce00acd98d8aa752d44779e68b0c97c", null ], + [ "adapt", "group__xt__xadapt.html#ga4a46bac84f94e0d22a5000df7008e7da", null ], + [ "adapt_smart_ptr", "group__xt__xadapt.html#ga4addfb25502247a072b944240b67fd3f", null ], + [ "adapt_smart_ptr", "group__xt__xadapt.html#ga9b942dfcc4b69cd9883c99b803b003aa", null ], + [ "adapt_smart_ptr", "group__xt__xadapt.html#gabe827f240de5a66f559ae57fadd19aad", null ], + [ "adapt_smart_ptr", "group__xt__xadapt.html#ga399f6121a1ebe2bf8b338e731bdc2c4e", null ], + [ "all", "namespacext.html#a1607ba0be938e3d0a9acecee22eb2efe", null ], + [ "all", "group__logical__operators.html#ga8da84f179efb13f3d860c5950b5c626e", null ], + [ "allclose", "group__classif__functions.html#ga07beaa8c1b5c159ac3f6c0c09ab1e05c", null ], + [ "amax", "group__basic__functions.html#ga2087e1dd9e331edc470b4b78343f33af", null ], + [ "amin", "group__basic__functions.html#gaab0c337a9aefb746fb8a8b6cfcb511ed", null ], + [ "angle", "group__xt__xcomplex.html#gad2d3e146e64f9cb63d1b66e7d0d43867", null ], + [ "any", "group__logical__operators.html#gadf5680cca336e22d483b0bfa188db592", null ], + [ "arange", "namespacext.html#a156656dea2a291a2b0978a2b02d7f0f7", null ], + [ "arange", "namespacext.html#ab7170425dd9da8585aefbd0eb79af4ec", null ], + [ "arg", "group__xt__xcomplex.html#ga79e6cc463f0aeee688d90dcd320cd672", null ], + [ "argmax", "group__xt__xsort.html#ga258b6c4df6acf24de4bec48be87f0218", null ], + [ "argmin", "namespacext.html#af262fae4388b98687913a18fe321f88d", null ], + [ "argpartition", "group__xt__xsort.html#gade27aa15bac807b65cd19bb13a23235e", null ], + [ "argsort", "group__xt__xsort.html#gaa3ce074f31b6284b63b0d5240820e50a", null ], + [ "argwhere", "group__logical__operators.html#ga8e8213a0ec55abe31dc046b6a03379d7", null ], + [ "as_strided", "group__xt__xeval.html#ga67df3a5e9f6d3f55dceea48706539b46", null ], + [ "asin", "group__trigo__functions.html#gabdab214ece01511604c914f91b81fdb1", null ], + [ "asinh", "group__hyper__functions.html#ga0893b951ad8fb1b23b97f0dae14651de", null ], + [ "atan", "group__trigo__functions.html#gab62818bfe16f2dd284b39bea1a345383", null ], + [ "atan2", "group__trigo__functions.html#gaba0008974d39d88ec21dff058a642ca0", null ], + [ "atanh", "group__hyper__functions.html#gaf99552b5a0d06bfd92f42f272e7af623", null ], + [ "atleast_1d", "group__xt__xmanipulation.html#ga220444924c684f9f2afbc3384a8ff09e", null ], + [ "atleast_2d", "group__xt__xmanipulation.html#gae2392e470cec79a918e975987d431c54", null ], + [ "atleast_3d", "group__xt__xmanipulation.html#gaf9edf6c754946e30b77d9617852ed15c", null ], + [ "atleast_Nd", "group__xt__xmanipulation.html#ga66c613dc60a31ca07c28b45337ee59b7", null ], + [ "average", "group__red__functions.html#gac71fc60e960526979d68aece67232f82", null ], + [ "axis_begin", "namespacext.html#a10d6b6dddf20a721f48bec57deee85c1", null ], + [ "axis_begin", "namespacext.html#aeff80d8045ec5b2276cb70d3171890ef", null ], + [ "axis_end", "namespacext.html#a8febb08b64e215650861f319845e0ba8", null ], + [ "axis_end", "namespacext.html#a6a9d61065999823b0947aac4741a5255", null ], + [ "axis_slice_begin", "namespacext.html#ac347d148c68881cdf4f5dbc488dc02bf", null ], + [ "axis_slice_begin", "namespacext.html#a2a64b30629191a33452d47762e67386b", null ], + [ "axis_slice_end", "namespacext.html#af214429c748c24ec2f26271be60ff9ea", null ], + [ "axis_slice_end", "namespacext.html#a79a091d187f0ba564daabc12be1725ca", null ], + [ "bin_items", "namespacext.html#a79e3638cd1a9a294abe0d95b9425049d", null ], + [ "bin_items", "namespacext.html#a17da83b8f903ed63f70997ff399b70a3", null ], + [ "bincount", "namespacext.html#aed5ac7b9e3af63f34daf465b902d0108", null ], + [ "broadcast", "namespacext.html#a0879929fad639a3a4256a702b9beba62", null ], + [ "cast", "group__casting__operators.html#ga8d57e20151af53f5ffec3afa6f834cf4", null ], + [ "cbrt", "group__pow__functions.html#gad5ff49e786eca533425d6f230c945184", null ], + [ "ceil", "group__nearint__functions.html#ga06d485029e29f092e60af3afabd0d154", null ], + [ "chunked_array", "group__xt__xchunked__array.html#ga2dae3e469de3f3ec7b0d4fc49f82de5c", null ], + [ "chunked_array", "group__xt__xchunked__array.html#ga7f77d42d689828b2d8e8cdd57c28ee9b", null ], + [ "chunked_array", "group__xt__xchunked__array.html#ga8c408e717c7725211a42114adb4557b2", null ], + [ "clip", "group__basic__functions.html#ga951c830ac7329af2e6de1194821c09c4", null ], + [ "col", "namespacext.html#a5772db4fd8ebf31bc242dd1c2d2ddd1b", null ], + [ "compute_layout", "namespacext.html#a27b28c7951a0991e2e8d39422c2b46b2", null ], + [ "compute_strides", "group__xt__xstrides.html#ga3b03c8046a44a3bf2d4800c7296ecefd", null ], + [ "concatenate", "namespacext.html#a28c746e1a420f706892d9aff3ad0dd30", null ], + [ "conditional_cast", "namespacext.html#af155a86146879d345b8acaa16d48c748", null ], + [ "conj", "group__xt__xcomplex.html#ga77874ddd5efaa90065d692ee4a6049a2", null ], + [ "cos", "group__trigo__functions.html#gabf9e140b22bb15dc6add351a7dc06d58", null ], + [ "cosh", "group__hyper__functions.html#ga4073cdc98201789ff723069156b4d34b", null ], + [ "cov", "namespacext.html#af462add746658517456f484f2e80f609", null ], + [ "cube", "group__pow__functions.html#ga0d98743e330f7ef3474bd706e186ac44", null ], + [ "cumprod", "group__acc__functions.html#ga17f752dbaca06608f974c3514509fa7b", null ], + [ "cumsum", "group__acc__functions.html#gaae1630a06b4975a5a759f2215e738123", null ], + [ "data_offset", "group__xt__xstrides.html#ga3bcc575a1a2870d78b96ff674e700ec7", null ], + [ "deg2rad", "group__basic__functions.html#ga1bc991dd9cc5f66575ab91f87b140577", null ], + [ "degrees", "group__basic__functions.html#ga4450fb9262604f2ed230e479092e7fdb", null ], + [ "diag", "namespacext.html#ad848dae0258c3e5755ff7ee55e7c7b30", null ], + [ "diagonal", "namespacext.html#a96ad98d837a74211cc0e5f07b85c2414", null ], + [ "diff", "group__red__functions.html#gab421eb4d3565597848ec53dad1b0d6c6", null ], + [ "digitize", "group__digitize.html#ga80fb5a6e58dafe175544508ea913cff0", null ], + [ "drop", "namespacext.html#aaa0bb50983d32a17a7ccd3e8fab9c9d5", null ], + [ "dump_csv", "namespacext.html#a809a1475d6c06e6209878b293ca0aa4d", null ], + [ "dump_npy", "namespacext.html#abbb704b012b5b4a60523e183342660a8", null ], + [ "dump_npy", "namespacext.html#a6d48f3428b263994fcfb707ca476847e", null ], + [ "ellipsis", "namespacext.html#a7674e27693c74603e341cbf7beb91e7b", null ], + [ "empty", "namespacext.html#af6f56a2111bfe2e7898ddb56dcdedc0e", null ], + [ "empty_like", "namespacext.html#abda9d7634e3a60172e626271a0e50bae", null ], + [ "equal", "group__comparison__operators.html#ga4c778acba0a9407a9093505fad0506d2", null ], + [ "erf", "group__err__functions.html#ga996f61e9186110b7daa859da0a8d2755", null ], + [ "erfc", "group__err__functions.html#ga6af9a81a9ca2bab66e744167c9683920", null ], + [ "eval", "group__xt__xeval.html#ga60f1ff0460adb785f2d4055d0863551b", null ], + [ "exp", "group__exp__functions.html#gae0c736d69056d124184aada09007e70b", null ], + [ "exp2", "group__exp__functions.html#ga212886f718828e83aaf07cdabf60aeab", null ], + [ "expand_dims", "group__xt__xmanipulation.html#gabe8cb55041a20cb995a15c599b7a2bc2", null ], + [ "expm1", "group__exp__functions.html#ga1646ca23b54f4a72d4bbe46f1182921c", null ], + [ "eye", "namespacext.html#a3702c94500428b6c0c24a493ea020606", null ], + [ "eye", "namespacext.html#af1633ad856dcd79570c229d95b09cf19", null ], + [ "fabs", "group__basic__functions.html#ga6548f786920ac988f0e655576b3a3c82", null ], + [ "fdim", "group__basic__functions.html#gaa68f33844e1bb457b87880b7433506d3", null ], + [ "filter", "namespacext.html#ae36e1cf727c1a3ea6c7889f149c0737b", null ], + [ "filtration", "namespacext.html#a588bc1e3b2c1f7c9b8238dddaf05a9df", null ], + [ "flatnonzero", "namespacext.html#afe8bacc1aed492dc936c80bc58730463", null ], + [ "flatten", "group__xt__xmanipulation.html#ga10a975d3b718bfaf8ecf1db8072a0a0c", null ], + [ "flatten_indices", "namespacext.html#a5c1acf7068270be8ab0ef904dd0f5a54", null ], + [ "flip", "group__xt__xmanipulation.html#gad4b24c51356470db0a22b0c6c7d7611d", null ], + [ "flip", "group__xt__xmanipulation.html#ga4bf31ad3a5950024a3825118f9f6a4e7", null ], + [ "floor", "group__nearint__functions.html#ga651ff45bf2ffda746e6602773925ca5c", null ], + [ "fma", "group__basic__functions.html#ga0f88cbfba7ddc6b5e8a1c74e422a0409", null ], + [ "fmax", "group__basic__functions.html#ga782cdb54181f69e99679e1045cb53323", null ], + [ "fmin", "group__basic__functions.html#gab8eb77690d6d7b651f61a961b0b4e472", null ], + [ "fmod", "group__basic__functions.html#ga51fa6991b9bc8878a763212346d6449b", null ], + [ "from_indices", "namespacext.html#ade2d67c70b0ec6af8294f4b7f201a722", null ], + [ "from_json", "namespacext.html#a3d553d1a9a0e27ad8c9054389c1e2c59", null ], + [ "full_like", "namespacext.html#a682f65e5eb55b03cbef5fbd25bbdc349", null ], + [ "greater", "group__comparison__operators.html#ga7c7efdc8246d1ae40ab7f6a8cffe0958", null ], + [ "greater_equal", "group__comparison__operators.html#ga68a359635b6a5d0940f97c7586a61ea3", null ], + [ "has_shape", "group__xt__xshape.html#ga4453a49484a5833cbf48e51eff2ed3df", null ], + [ "has_shape", "group__xt__xshape.html#ga56d28aa1be818adaecee7803249dad7d", null ], + [ "histogram", "group__histogram.html#ga0a5ba67f2a11ee24ccf629105d12e407", null ], + [ "histogram", "group__histogram.html#ga95e9ea74b2e3f62bb682798bd5d7414d", null ], + [ "histogram", "group__histogram.html#ga8545490885a4a8466344d954bd5326c1", null ], + [ "histogram", "group__histogram.html#gaaadf08c80728a3d2ace5739f3350f908", null ], + [ "histogram", "group__histogram.html#ga60449f18cbf62c0a104cf72e53f7948d", null ], + [ "histogram", "group__histogram.html#gad8379adac71c1af9b9bc50f835d9536f", null ], + [ "histogram_bin_edges", "group__histogram.html#ga53ca89b6c48fc35c9a293c2d81f66288", null ], + [ "histogram_bin_edges", "group__histogram.html#gaa3d16282168b4675fdc93c5563eb5324", null ], + [ "histogram_bin_edges", "group__histogram.html#ga5abbd094554988573b2c3cce9e521aab", null ], + [ "histogram_bin_edges", "group__histogram.html#ga49105a6754699f6ab1073e9868782ec8", null ], + [ "hsplit", "group__xt__xmanipulation.html#gaf342a194380b6c7bbc7f2c89f4e88317", null ], + [ "hstack", "namespacext.html#aacc647d8af519da1d2126ec96a97849f", null ], + [ "hypot", "group__pow__functions.html#ga9b55bcc865f0dd82fd679e01c3838526", null ], + [ "imag", "group__xt__xcomplex.html#ga155e369dcf03bd465609d279b82f6da8", null ], + [ "in1d", "group__logical__operators.html#gad8d2b8d4816486e29169f211636d9c97", null ], + [ "in1d", "group__logical__operators.html#ga3f5912e0cd902bfd8c36037167001c73", null ], + [ "in1d", "group__logical__operators.html#gab1bbf85dbe7bc76561321466d657bed4", null ], + [ "in_bounds", "namespacext.html#a42f9ded8fbe013b13c186ae66474912d", null ], + [ "index_view", "namespacext.html#abb28cb642ab427195ca6120d59f34f76", null ], + [ "interp", "group__basic__functions.html#gaa909fc5959dbb290c47c9698d5076ed3", null ], + [ "interp", "group__basic__functions.html#ga47e1576710edcbb14d2ccf4df7d62ec3", null ], + [ "isclose", "group__classif__functions.html#ga94330518c2d0f78691dc8bb4b27eb72a", null ], + [ "isfinite", "group__classif__functions.html#ga177a09c77ac16a253588403fe7cbeaec", null ], + [ "isin", "group__logical__operators.html#gaf0995facdc63eee30636804c8296bb67", null ], + [ "isin", "group__logical__operators.html#gae16e50a10ea871ad6bf8a42905db4b48", null ], + [ "isin", "group__logical__operators.html#gac71ec22119ac398c4c737d48197e5399", null ], + [ "isinf", "group__classif__functions.html#ga94db88dbac47fd2e3cce71c568332554", null ], + [ "isnan", "group__classif__functions.html#ga41ec7bcedb794bccf3535bac9c3142ab", null ], + [ "keep", "namespacext.html#ab6dcd225400d75a98e0b048d7ed9b5c9", null ], + [ "left_shift", "group__bitwise__operators.html#ga2cd49affcc3745f02fbb43f1bed16ed1", null ], + [ "less", "group__comparison__operators.html#ga2c830ecb583258f639e710642dbf0d7c", null ], + [ "less_equal", "group__comparison__operators.html#ga9e84bf652cf6e810f974a8bcb51f1511", null ], + [ "lgamma", "group__err__functions.html#ga5216029cd6e56b81f5145041540d043e", null ], + [ "linspace", "namespacext.html#a84b4f2192981c30e7ee35fba2b164cb2", null ], + [ "load_csv", "namespacext.html#a1a7ff9a44466a0de5525ac507db04e6a", null ], + [ "load_npy", "namespacext.html#a2466a03b0fed69ae73a2e01490af1fec", null ], + [ "load_npy", "namespacext.html#a09f40ac64487910bfee944c044c9739c", null ], + [ "log", "group__exp__functions.html#gaaeb73f780e08001206f1f9ed9db161e1", null ], + [ "log10", "group__exp__functions.html#gae6585ff00a0cf0fdcdf659639e8d1ca0", null ], + [ "log1p", "group__exp__functions.html#ga08b8fa80ab57f38bb87e8c01b943d7f7", null ], + [ "log2", "group__exp__functions.html#gae08fcbd5914db4f5b2649f5333375d95", null ], + [ "logspace", "namespacext.html#ae448d7eb5de30ef12ca38ca7d6d15356", null ], + [ "make_lambda_xfunction", "namespacext.html#a259a5c38335a33c4a6f8aff517494efb", null ], + [ "make_xshared", "namespacext.html#ab3cc0ff08a76f5d91bcb294a06f8c784", null ], + [ "maximum", "group__basic__functions.html#ga72354e9ca3d4446608c32d77d78fc721", null ], + [ "mean", "group__red__functions.html#gad0919b7cd9e5d8907363a2a146c1ec09", null ], + [ "median", "group__xt__xsort.html#gae6a650f8da9d0066e26ecda36ee293e4", null ], + [ "meshgrid", "namespacext.html#a513e9f91fb23575e3e35eff04c628e19", null ], + [ "minimum", "group__basic__functions.html#ga6ba20f491bf0a014df5a219461ac8c98", null ], + [ "minmax", "group__red__functions.html#gab752be31d54ec7e45daef9a5d3868030", null ], + [ "moveaxis", "group__xt__xmanipulation.html#ga2d8bcbb846f2efae57cf6fb4aa24625a", null ], + [ "nan_to_num", "group__nan__functions.html#gae82e0b56454b586ec1ffbf57d6d2122f", null ], + [ "nancumprod", "group__nan__functions.html#ga4fb43a2f434821dfec8464e84ad05de7", null ], + [ "nancumsum", "group__nan__functions.html#ga48eab6816103340e288db50e05f00e60", null ], + [ "nanmax", "group__nan__functions.html#ga0e300ce1d00beec93e45d7aa0e308ceb", null ], + [ "nanmean", "group__nan__functions.html#ga5ff43d5bf500e85b384c2c08d2ababe9", null ], + [ "nanmin", "group__nan__functions.html#gaaade983a5b6b9406608d54f3ba37a264", null ], + [ "nanprod", "group__nan__functions.html#gad63669d7342cc68dae7b15f3c49ca1c2", null ], + [ "nanstd", "group__nan__functions.html#ga21421ea090897548b9199c1fdb3049be", null ], + [ "nansum", "group__nan__functions.html#gadbfe228ebc452fabfdbf4067274a471a", null ], + [ "nanvar", "group__nan__functions.html#ga3c3fdce46c4143d595e11db1646f7d89", null ], + [ "nearbyint", "group__nearint__functions.html#ga297d1cfd2029ec779f3b2caf20cae56f", null ], + [ "newaxis", "namespacext.html#a534914903c805a597a5fac60e60e7c43", null ], + [ "nonzero", "group__logical__operators.html#ga9f570271ba6f20a0d6a5880fa4ae83cb", null ], + [ "norm", "group__xt__xcomplex.html#gad3afef5ff535998e5dd0d95a979c54bf", null ], + [ "norm_induced_l1", "group__red__functions.html#ga6756e0125ea6eaf41da4d72c863222ad", null ], + [ "norm_induced_linf", "group__red__functions.html#ga32553e96de228c6a760ea1e7eac51dbd", null ], + [ "norm_l0", "group__red__functions.html#gad29e1eba5e05138bd5db7bfc577215f1", null ], + [ "norm_l1", "group__red__functions.html#ga75c1f16a4c45c0ded05f6a50f8245385", null ], + [ "norm_l2", "group__red__functions.html#ga612264ac7b3ed369ebe6da569e2bf7f5", null ], + [ "norm_l2", "group__red__functions.html#gad8d838a048615ed661350fcd7af66d06", null ], + [ "norm_linf", "group__red__functions.html#gad3987362169c6b7f82dc4acaa012c65f", null ], + [ "norm_lp", "group__red__functions.html#ga4f5622197f95e83dafec8394265fd750", null ], + [ "norm_lp_to_p", "group__red__functions.html#gaa1062bcc8bc659e9a09a5816626d5575", null ], + [ "norm_sq", "group__red__functions.html#ga243ff01254cf5c1bcfe3ef6b6b67331d", null ], + [ "normalize_periodic", "group__xt__xstrides.html#gafa51177b0954ec061327dab5d8055ddb", null ], + [ "not_equal", "group__comparison__operators.html#ga014ea335af4e1334f9d95ca6f9b9f6ce", null ], + [ "ones", "namespacext.html#a498ae15885758184e0ee9def889b6bfb", null ], + [ "ones_like", "namespacext.html#a40664e859ef008b427ea6d8a013ebb96", null ], + [ "operator!", "group__logical__operators.html#ga669c5968e594e618cd199674074c32e4", null ], + [ "operator!=", "namespacext.html#aafb4918c6aea49e7968e4ed024a70a99", null ], + [ "operator!=", "namespacext.html#a1e99b6c54f3a5fca29006d1b114e356d", null ], + [ "operator!=", "group__comparison__operators.html#gaae699c5c8cda32f45372da2daee9a9b4", null ], + [ "operator%", "group__arithmetic__operators.html#gaa3c78e8ff8a284881563ccbdd64bf145", null ], + [ "operator&", "group__bitwise__operators.html#ga0084d8f6f0f513d35a35e79f7fffc2fb", null ], + [ "operator&&", "group__logical__operators.html#ga95f7645635520ba70e7d0d9b0e989205", null ], + [ "operator*", "group__arithmetic__operators.html#gaee209a211df9c1fdd671fe786c01eca6", null ], + [ "operator+", "group__arithmetic__operators.html#ga4f6fda1324731f7d8c7bedfd786fd711", null ], + [ "operator+", "group__arithmetic__operators.html#ga3a0012dd54e6eddb1dc1499bda3835fc", null ], + [ "operator-", "group__arithmetic__operators.html#gae9984fddddb53d90fcef38c017ebb5c9", null ], + [ "operator-", "group__arithmetic__operators.html#gadcc7da6c96325690024067869af4e3bf", null ], + [ "operator/", "group__arithmetic__operators.html#ga5c9e3cca169a86ea0974e67d562f7f8c", null ], + [ "operator<", "group__comparison__operators.html#ga2adbdc9609fe51aa3e50955fe039ba67", null ], + [ "operator<<", "group__bitwise__operators.html#gaa7b48fdbaa2c12656338470eb3cc5c8e", null ], + [ "operator<=", "group__comparison__operators.html#gaf7b3cb0fe146e5a95a750a1291bfdcca", null ], + [ "operator==", "namespacext.html#a49dd71cabe349f77ec771f01fc46aeb3", null ], + [ "operator==", "namespacext.html#aa8afbf971ca9887515e974de1775cf03", null ], + [ "operator==", "group__comparison__operators.html#gaa82e19b7daac1f55388a62f89cd5f9c7", null ], + [ "operator>", "group__comparison__operators.html#ga3addaced4bd7bdacea4a842d9d6c850a", null ], + [ "operator>=", "group__comparison__operators.html#gaa40baca1e4f53789261cd3e8736a98ef", null ], + [ "operator>>", "group__bitwise__operators.html#gace6ce969d4a7bdee37e410309448df92", null ], + [ "operator^", "group__bitwise__operators.html#ga85c9a2b613116854aa104a4005f2a0f4", null ], + [ "operator|", "group__bitwise__operators.html#gac1e3650f1eae70c7ab951cce7df0b7ac", null ], + [ "operator||", "group__logical__operators.html#gab0fb5db8b5da410253c08053a1c9c518", null ], + [ "operator~", "group__bitwise__operators.html#ga61f9831f1f2da86982f23d8e4e45e3db", null ], + [ "pad", "namespacext.html#abd5658ce24f2035e2175546c9ca6ec59", null ], + [ "pad", "namespacext.html#a030cc6fd43c1f7a452a4ed069881a4fa", null ], + [ "pad", "namespacext.html#ad10c047180a5ce9129d25c180369ad00", null ], + [ "partition", "group__xt__xsort.html#ga443845cd4d1992ae5e7ec155529b1636", null ], + [ "pow", "group__pow__functions.html#ga9cf15362f1892675576f2298c01e2b6b", null ], + [ "pow", "group__pow__functions.html#ga726d449a0411dabbe7451c38cec235ae", null ], + [ "prod", "group__red__functions.html#ga90d729a5dc08b66740997ad3e7fdb0c1", null ], + [ "quantile", "group__xt__xsort.html#gaa8159912f652b20d4477c0187dfb301f", null ], + [ "quantile", "group__xt__xsort.html#ga632a72d1def84debe56b68d79a451f11", null ], + [ "quantile", "group__xt__xsort.html#ga7dd83e71409830d5211608257f18e361", null ], + [ "quantile", "group__xt__xsort.html#gae3b1b26f618ece7324455223330d5780", null ], + [ "rad2deg", "group__basic__functions.html#gab8884e81107ab3012f7604fa1826bca3", null ], + [ "radians", "group__basic__functions.html#ga9bdbff83a3137d687d749c710fa466fb", null ], + [ "range", "namespacext.html#a12df38a6d4e688b6df1a4641930c6181", null ], + [ "range", "namespacext.html#ad1605028ad21316d7118d9c2c56b93a4", null ], + [ "ravel", "group__xt__xmanipulation.html#ga52d3b08fa67fe8c498e4271fca338e28", null ], + [ "ravel_indices", "namespacext.html#ab42ce054ae7c59ee974c25680a09218d", null ], + [ "real", "group__xt__xcomplex.html#ga40dd460909cc5b81f23947646eebd543", null ], + [ "reduce", "namespacext.html#a2bf61f96fdc4316d3eefa8dff6174ece", null ], + [ "remainder", "group__basic__functions.html#ga2322bc87a5871e26173db4b2383e1db8", null ], + [ "repeat", "group__xt__xmanipulation.html#ga0061839371ca8e1f29c37e812dee9ad1", null ], + [ "repeat", "group__xt__xmanipulation.html#ga86b343ba5d1f6150c418475a00e3d3c3", null ], + [ "repeat", "group__xt__xmanipulation.html#ga7aba37875778e4c7a786cbe6ec909ef2", null ], + [ "reshape_view", "namespacext.html#a7bda1677287d8bee76befd8c427e3898", null ], + [ "right_shift", "group__bitwise__operators.html#ga2eab76876895cd0cae2a667e513c9f92", null ], + [ "rint", "group__nearint__functions.html#gaad503e7c9ee485a6b623770c8f43bde0", null ], + [ "roll", "group__xt__xmanipulation.html#ga2211d25aea0f9a27855fb602419a365b", null ], + [ "roll", "group__xt__xmanipulation.html#ga957635620a4f4c19c4ee0546c69fcb1d", null ], + [ "rot90", "group__xt__xmanipulation.html#gab5a947902290cc80a26e8d091428497e", null ], + [ "round", "group__nearint__functions.html#gaa8b6a7ec9f215261ace43466d4ae6f0b", null ], + [ "row", "namespacext.html#a445fa98828eab51048b87fc29d8e88ad", null ], + [ "same_shape", "group__xt__xshape.html#ga3c10cfb8271fbf79932a98edc5491ac7", null ], + [ "searchsorted", "group__searchsorted.html#ga7f2dbcb81b8a765fe3972a7490d62618", null ], + [ "setdiff1d", "group__xt__xsort.html#gab6eedcadc051be2d6e3ad7890a5c2d90", null ], + [ "shape", "namespacext.html#ad761751bf328e1bedb307676ab8e7c8f", null ], + [ "share", "namespacext.html#ad90d6213ecfc3ae99eba87429935a38a", null ], + [ "share", "namespacext.html#a39563f02e935d00d2df74796f2e19fb0", null ], + [ "sign", "group__basic__functions.html#gad678caa2e599d095ad40e2b32bf4eb37", null ], + [ "sin", "group__trigo__functions.html#gad8638d83d6874334a912c892b9d8a9c5", null ], + [ "sinh", "group__hyper__functions.html#ga43507ff72c11c17061fd4ae7716c11d5", null ], + [ "sort", "group__xt__xsort.html#gae455f4aaacbc04bebc76451907003ee3", null ], + [ "split", "group__xt__xmanipulation.html#gaad5c56f6a09fb0a6ebaa2ec6cf22cf5c", null ], + [ "sqrt", "group__pow__functions.html#ga2ac4c9ab16cee0b95b444191419c2802", null ], + [ "square", "group__pow__functions.html#ga6e5fca6d456f46a946b4a9707e1d442f", null ], + [ "squeeze", "group__xt__xmanipulation.html#ga2734defabe45fcb86ed9545c1b033134", null ], + [ "squeeze", "group__xt__xmanipulation.html#gafb20871153217193f33827b3b14e448a", null ], + [ "stack", "namespacext.html#a120ce2e841c6d13c8688cd12128fe942", null ], + [ "stddev", "group__red__functions.html#ga0c8291754c7c050cbfac3f6eeeaa1f77", null ], + [ "strided_view", "namespacext.html#ae5c7088d2beee486998238fbc29ee7b9", null ], + [ "strided_view", "namespacext.html#aca6714111810062b91a1c9e31bd69b26", null ], + [ "strides", "group__xt__xstrides.html#ga1ddf9b85add66ccc98661073a78cd953", null ], + [ "strides", "group__xt__xstrides.html#ga651f61121a205e14993c06c52c6d2503", null ], + [ "sum", "group__red__functions.html#ga018d66d27aae0df9558107d684380436", null ], + [ "swapaxes", "group__xt__xmanipulation.html#gaed086f2e402aa1e927f745fceae54018", null ], + [ "tan", "group__trigo__functions.html#gae6d7aef2bb82c074da4a500ca5eadc7b", null ], + [ "tanh", "group__hyper__functions.html#ga1b22c94cc8d9750ca8153d9b5bbb6c86", null ], + [ "tgamma", "group__err__functions.html#gabe9c5e1fc33af3db795c8b3655321f02", null ], + [ "tile", "namespacext.html#ad5270a2924bb17bc641c5846355149bc", null ], + [ "tile", "namespacext.html#a65ddcadd66cb7d479944b1da073f2ce9", null ], + [ "to_json", "namespacext.html#aafd7842df1c7034546b2a84bff7fd97b", null ], + [ "transpose", "group__xt__xmanipulation.html#ga620b1159b15601a1fd9b2ddaa746225e", null ], + [ "transpose", "group__xt__xmanipulation.html#gae8b37193755be9f7e4c0161a6d9f9b6b", null ], + [ "trapz", "group__red__functions.html#ga681c9cbfe336a5a7892633f189098c3d", null ], + [ "trapz", "group__red__functions.html#ga99e0a7ad0979b3ceeaf99d75fd30af9d", null ], + [ "tril", "namespacext.html#ab524d3db6722f5d0e09347aedcf63837", null ], + [ "trim_zeros", "group__xt__xmanipulation.html#ga938cc86961805cf29a1f68394922d9f7", null ], + [ "triu", "namespacext.html#a5ca4a423657a4a9c4ec4852dd344164b", null ], + [ "trunc", "group__nearint__functions.html#ga1bf2a5edfa5f687938657e37064ddc74", null ], + [ "unique", "group__xt__xsort.html#ga2b46eaf022e2fcd9e82ae5223fdd3ed5", null ], + [ "unwrap", "group__basic__functions.html#gaeb6f80a96d7a1da033b737b34acaeb74", null ], + [ "variance", "group__red__functions.html#ga7001a4fe6acde5968aa526166659a5fa", null ], + [ "view", "namespacext.html#aedc2027ff309134dff5b0720699c5ffa", null ], + [ "vsplit", "group__xt__xmanipulation.html#gad25f3a38510304cf1e3489748a43812c", null ], + [ "vstack", "namespacext.html#a87a9e875318fc87aba41154dddee7c60", null ], + [ "where", "group__logical__operators.html#gad36802fb44a519f60e8c2d20ab5b6ef8", null ], + [ "where", "group__logical__operators.html#gabe2a59ff19cc1341bdaf0f833793cbd5", null ], + [ "xtuple", "namespacext.html#ae0a17e1fea8041f69a66d80928359150", null ], + [ "zeros", "namespacext.html#a700dc20edb5a81d66d5f89d350dca46f", null ], + [ "zeros_like", "namespacext.html#a68f9dd4af039df60663af606046a3b73", null ] +]; \ No newline at end of file diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..032fbdd4c54f54fa9a2e6423b94ef4b2ebdfaceb GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQU#tajv*C{Z|C~*H7f|XvG1G8 zt7aS*L7xwMeS}!z6R#{C5tIw-s~AJ==F^i}x3XyJseHR@yF& zerFf(Zf;Dd{+(0lDIROL@Sj-Ju2JQ8&-n%4%q?>|^bShc&lR?}7HeMo@BDl5N(aHY Uj$gdr1MOz;boFyt=akR{0D!zeaR2}S literal 0 HcmV?d00001 diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL6W-eg#Jd_@e6*DPn)w;=|1H}Zvm9l6xXXB%>yL=NQU;mg M>FVdQ&MBb@0Bdt1Qvd(} literal 0 HcmV?d00001 diff --git a/navtree.css b/navtree.css new file mode 100644 index 000000000..69211d4a7 --- /dev/null +++ b/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 000000000..2d4fa84a5 --- /dev/null +++ b/navtree.js @@ -0,0 +1,483 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initNavTree(toroot,relpath) { + let navTreeSubIndices = []; + const ARROW_DOWN = '▼'; + const ARROW_RIGHT = '►'; + const NAVPATH_COOKIE_NAME = ''+'navpath'; + + const getData = function(varName) { + const i = varName.lastIndexOf('/'); + const n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/-/g,'_')); + } + + const stripPath = function(uri) { + return uri.substring(uri.lastIndexOf('/')+1); + } + + const stripPath2 = function(uri) { + const i = uri.lastIndexOf('/'); + const s = uri.substring(i+1); + const m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; + } + + const hashValue = function() { + return $(location).attr('hash').substring(1).replace(/[^\w-]/g,''); + } + + const hashUrl = function() { + return '#'+hashValue(); + } + + const pathName = function() { + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;()]/g, ''); + } + + const storeLink = function(link) { + if (!$("#nav-sync").hasClass('sync')) { + Cookie.writeSetting(NAVPATH_COOKIE_NAME,link,0); + } + } + + const deleteLink = function() { + Cookie.eraseSetting(NAVPATH_COOKIE_NAME); + } + + const cachedLink = function() { + return Cookie.readSetting(NAVPATH_COOKIE_NAME,''); + } + + const getScript = function(scriptName,func) { + const head = document.getElementsByTagName("head")[0]; + const script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); + } + + const createIndent = function(o,domNode,node) { + let level=-1; + let n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + const imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=ARROW_RIGHT; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=ARROW_RIGHT; + node.expanded = false; + } else { + expandNode(o, node, false, true); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + let span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } + } + + let animationInProgress = false; + + const gotoAnchor = function(anchor,aname) { + let pos, docContent = $('#doc-content'); + let ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || ancParent.hasClass('fieldtype') || + ancParent.is(':header')) { + pos = ancParent.offset().top; + } else if (anchor.position()) { + pos = anchor.offset().top; + } + if (pos) { + const dcOffset = docContent.offset().top; + const dcHeight = docContent.height(); + const dcScrHeight = docContent[0].scrollHeight + const dcScrTop = docContent.scrollTop(); + let dist = Math.abs(Math.min(pos-dcOffset,dcScrHeight-dcHeight-dcScrTop)); + animationInProgress = true; + docContent.animate({ + scrollTop: pos + dcScrTop - dcOffset + },Math.max(50,Math.min(500,dist)),function() { + animationInProgress=false; + if (anchor.parent().attr('class')=='memItemLeft') { + let rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname') { + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype') { + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + }); + } + } + + const newNode = function(o, po, text, link, childrenData, lastNode) { + const node = { + children : [], + childrenData : childrenData, + depth : po.depth + 1, + relpath : po.relpath, + isLast : lastNode, + li : document.createElement("li"), + parentNode : po, + itemDiv : document.createElement("div"), + labelSpan : document.createElement("span"), + label : document.createTextNode(text), + expanded : false, + childrenUL : null, + getChildrenUL : function() { + if (!this.childrenUL) { + this.childrenUL = document.createElement("ul"); + this.childrenUL.className = "children_ul"; + this.childrenUL.style.display = "none"; + this.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }, + }; + + node.itemDiv.className = "item"; + node.labelSpan.className = "label"; + createIndent(o,node.itemDiv,node); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + const a = document.createElement("a"); + node.labelSpan.appendChild(a); + po.getChildrenUL().appendChild(node.li); + a.appendChild(node.label); + if (link) { + let url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + const aname = '#'+link.split('#')[1]; + const srcPage = stripPath(pathName()); + const targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : aname; + a.onclick = function() { + storeLink(link); + aPPar = $(a).parent().parent(); + if (!aPPar.hasClass('selected')) { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + aPPar.addClass('selected'); + aPPar.attr('id','selected'); + } + const anchor = $(aname); + gotoAnchor(anchor,aname); + }; + } else { + a.href = url; + a.onclick = () => storeLink(link); + } + } else if (childrenData != null) { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + return node; + } + + const showRoot = function() { + const headerHeight = $("#top").height(); + const footerHeight = $("#nav-path").height(); + const windowHeight = $(window).height() - headerHeight - footerHeight; + (function() { // retry until we can scroll to the selected item + try { + const navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); + } + + const expandNode = function(o, node, imm, setFocus) { + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + expandNode(o, node, imm, setFocus); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + if (setFocus) { + $(node.expandToggle).focus(); + } + } + } + } + + const glowEffect = function(n,duration) { + n.addClass('glow').delay(duration).queue(function(next) { + $(this).removeClass('glow');next(); + }); + } + + const highlightAnchor = function() { + const aname = hashUrl(); + const anchor = $(aname); + gotoAnchor(anchor,aname); + } + + const selectAndHighlight = function(hash,n) { + let a; + if (hash) { + const link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + let topOffset=5; + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); + } + + const showNode = function(o, node, index, hash) { + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + const varName = node.childrenData; + getScript(node.relpath+varName,function() { + node.childrenData = getData(varName); + showNode(o,node,index,hash); + }); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = ARROW_DOWN; + node.expanded = true; + const n = node.children[o.breadcrumbs[index]]; + if (index+11 ? '#'+parts[1].replace(/[^\w-]/g,'') : ''; + } + if (hash.match(/^#l\d+$/)) { + const anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + const url=root+hash; + let i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function() { + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + }); + } + } + + const showSyncOff = function(n,relpath) { + n.html(''); + } + + const showSyncOn = function(n,relpath) { + n.html(''); + } + + const o = { + toroot : toroot, + node : { + childrenData : NAVTREE, + children : [], + childrenUL : document.createElement("ul"), + getChildrenUL : function() { return this.childrenUL }, + li : document.getElementById("nav-tree-contents"), + depth : 0, + relpath : relpath, + expanded : false, + isLast : true, + plus_img : document.createElement("span"), + }, + }; + o.node.li.appendChild(o.node.childrenUL); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = ARROW_RIGHT; + + const navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + + navSync.click(() => { + const navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } + }); + + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + + $(window).bind('hashchange', () => { + if (!animationInProgress) { + if (window.location.hash && window.location.hash.length>1) { + let a; + if ($(location).attr('hash')) { + const clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +xtensor: Related Pages + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    + + +
     Deprecated List
    +
    +
    +
    + + + + diff --git a/plus.svg b/plus.svg new file mode 100644 index 000000000..075201655 --- /dev/null +++ b/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 000000000..0c65bfe94 --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 000000000..178d03bcb --- /dev/null +++ b/resize.js @@ -0,0 +1,147 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable(treeview) { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight(treeview) { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + if (treeview) + { + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + } + else + { + contentHeight = windowHeight - headerHeight; + } + content.css({height:contentHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (!treeview) { +// title = $("#titlearea"); +// titleH = $(title).height(); +// let animating = false; +// content.on("scroll", function() { +// slideOpts = { duration: 200, +// step: function() { +// contentHeight = $(window).height() - header.outerHeight(); +// content.css({ height : contentHeight + "px" }); +// }, +// done: function() { animating=false; } +// }; +// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { +// title.slideUp(slideOpts); +// animating=true; +// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { +// title.slideDown(slideOpts); +// animating=true; +// } +// }); + } else { + navtree = $("#nav-tree"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + } + $(window).resize(function() { resizeHeight(treeview); }); + if (treeview) + { + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + } + resizeHeight(treeview); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + if (treeview) + { + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + // workaround for firefox + $("body").css({overflow: "hidden"}); + } + $(window).on('load',function() { resizeHeight(treeview); }); +} +/* @license-end */ diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 000000000..d9b10be0d --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,65 @@ +var searchData= +[ + ['a_20shape_20array_0',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['abs_1',['abs',['../group__basic__functions.html#ga5a8df8c0823f064b710b90fdc73384f7',1,'xt']]], + ['abs_5ffun_2',['abs_fun',['../structxt_1_1math_1_1abs__fun.html',1,'xt::math']]], + ['access_5ft_3',['access_t',['../namespacext.html#a1390f61ac19aea31030f7065ec3a738f',1,'xt']]], + ['accumulate_4',['accumulate',['../namespacext.html#a75bd621231562feb074486e7213ee86f',1,'xt::accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())'],['../namespacext.html#a89df2e50fff4b65f615aacfcdbb9ff74',1,'xt::accumulate(F &&f, E &&e, std::ptrdiff_t axis, EVS evaluation_strategy=EVS())']]], + ['accumulating_20functions_5',['accumulating functions',['../group__acc__functions.html',1,'']]], + ['acos_6',['acos',['../group__trigo__functions.html#gaef1a134c51ccdb072964383887b838c7',1,'xt']]], + ['acos_5ffun_7',['acos_fun',['../structxt_1_1math_1_1acos__fun.html',1,'xt::math']]], + ['acosh_8',['acosh',['../group__hyper__functions.html#ga982a251110da20b8dae705367b3ddd7e',1,'xt']]], + ['acosh_5ffun_9',['acosh_fun',['../structxt_1_1math_1_1acosh__fun.html',1,'xt::math']]], + ['acquire_5fownership_10',['acquire_ownership',['../structxt_1_1acquire__ownership.html',1,'xt']]], + ['adapt_11',['adapt',['../group__xt__xadapt.html#ga80782b35941520fa1d729ed6224cba72',1,'xt::adapt(C &&container, const SC &shape, layout_type l=L)'],['../group__xt__xadapt.html#ga6d665539130b96871327cb7a4aa8b2e0',1,'xt::adapt(C &&container, SC &&shape, SS &&strides)'],['../group__xt__xadapt.html#ga5d6037b3273754077e434c1dd12d897c',1,'xt::adapt(P &&pointer, typename A::size_type size, O ownership, const SC &shape, layout_type l=L, const A &alloc=A())'],['../group__xt__xadapt.html#ga4170776d38583fd9bedf66df77f3d328',1,'xt::adapt(P &&pointer, typename A::size_type size, O ownership, SC &&shape, SS &&strides, const A &alloc=A())'],['../group__xt__xadapt.html#ga7ce00acd98d8aa752d44779e68b0c97c',1,'xt::adapt(T(&c_array)[N], const SC &shape, layout_type l=L)'],['../group__xt__xadapt.html#ga4a46bac84f94e0d22a5000df7008e7da',1,'xt::adapt(T(&c_array)[N], SC &&shape, SS &&strides)'],['../group__xt__xadapt.html#ga9481e907df524526bc4fd7b77a7c6dcc',1,'xt::adapt(C &&pointer, const fixed_shape< X... > &)'],['../group__xt__xadapt.html#ga2eeb31313c7f9661f62d8ae6a6005013',1,'xt::adapt(C &&container, layout_type l=L)'],['../group__xt__xadapt.html#gad7037a00f2c9e7679805e3b0b3515299',1,'xt::adapt(P &&pointer, typename A::size_type size, O ownership, layout_type l=L, const A &alloc=A())']]], + ['adapt_5fsmart_5fptr_12',['adapt_smart_ptr',['../group__xt__xadapt.html#ga399f6121a1ebe2bf8b338e731bdc2c4e',1,'xt::adapt_smart_ptr(P &&smart_ptr, const SC &shape, layout_type l=L)'],['../group__xt__xadapt.html#ga9b942dfcc4b69cd9883c99b803b003aa',1,'xt::adapt_smart_ptr(P &&data_ptr, const SC &shape, D &&smart_ptr, layout_type l=L)'],['../group__xt__xadapt.html#gabe827f240de5a66f559ae57fadd19aad',1,'xt::adapt_smart_ptr(P &&smart_ptr, const I(&shape)[N], layout_type l=L)'],['../group__xt__xadapt.html#ga4addfb25502247a072b944240b67fd3f',1,'xt::adapt_smart_ptr(P &&data_ptr, const I(&shape)[N], D &&smart_ptr, layout_type l=L)']]], + ['adaptors_20of_20stl_20like_20containers_13',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['aligned_5fallocator_14',['aligned_allocator',['../classxt__simd_1_1aligned__allocator.html',1,'xt_simd']]], + ['aligned_5farray_15',['aligned_array',['../classxt_1_1aligned__array.html',1,'xt']]], + ['aligned_5farray_3c_20et_2c_20detail_3a_3afixed_5fcompute_5fsize_3c_20s_20_3e_3a_3avalue_20_3e_16',['aligned_array< ET, detail::fixed_compute_size< S >::value >',['../classxt_1_1aligned__array.html',1,'xt']]], + ['aligned_5fmode_17',['aligned_mode',['../structxt_1_1aligned__mode.html',1,'xt::aligned_mode'],['../structxt__simd_1_1aligned__mode.html',1,'xt_simd::aligned_mode']]], + ['all_18',['all',['../group__logical__operators.html#ga8da84f179efb13f3d860c5950b5c626e',1,'xt::all(E &&e)'],['../namespacext.html#a1607ba0be938e3d0a9acecee22eb2efe',1,'xt::all() noexcept']]], + ['allclose_19',['allclose',['../group__classif__functions.html#ga07beaa8c1b5c159ac3f6c0c09ab1e05c',1,'xt']]], + ['allocator_5falignment_20',['allocator_alignment',['../structxt__simd_1_1allocator__alignment.html',1,'xt_simd']]], + ['amax_21',['amax',['../group__basic__functions.html#ga2087e1dd9e331edc470b4b78343f33af',1,'xt']]], + ['amin_22',['amin',['../group__basic__functions.html#gaab0c337a9aefb746fb8a8b6cfcb511ed',1,'xt']]], + ['and_20flat_20indices_23',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['and_20gamma_20functions_24',['Error and gamma functions',['../group__err__functions.html',1,'']]], + ['angle_25',['angle',['../group__xt__xcomplex.html#gad2d3e146e64f9cb63d1b66e7d0d43867',1,'xt']]], + ['any_26',['any',['../group__logical__operators.html#gadf5680cca336e22d483b0bfa188db592',1,'xt::any(E &&e)'],['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a100b8cad7cf2a56f6df78f171f97a1ec',1,'xt::any']]], + ['arange_27',['arange',['../namespacext.html#a156656dea2a291a2b0978a2b02d7f0f7',1,'xt::arange(T start, T stop, S step=1) noexcept'],['../namespacext.html#ab7170425dd9da8585aefbd0eb79af4ec',1,'xt::arange(T stop) noexcept']]], + ['arg_28',['arg',['../group__xt__xcomplex.html#ga79e6cc463f0aeee688d90dcd320cd672',1,'xt']]], + ['arg_5ffun_29',['arg_fun',['../structxt_1_1math_1_1arg__fun.html',1,'xt::math']]], + ['argmax_30',['argmax',['../group__xt__xsort.html#ga258b6c4df6acf24de4bec48be87f0218',1,'xt']]], + ['argmin_31',['argmin',['../namespacext.html#af262fae4388b98687913a18fe321f88d',1,'xt']]], + ['argpartition_32',['argpartition',['../group__xt__xsort.html#gade27aa15bac807b65cd19bb13a23235e',1,'xt']]], + ['argsort_33',['argsort',['../group__xt__xsort.html#gaa3ce074f31b6284b63b0d5240820e50a',1,'xt']]], + ['argwhere_34',['argwhere',['../group__logical__operators.html#ga8e8213a0ec55abe31dc046b6a03379d7',1,'xt']]], + ['arithmetic_20operators_35',['Arithmetic operators',['../group__arithmetic__operators.html',1,'']]], + ['array_36',['array',['../group__xt__xchunked__array.html',1,'Chunked array'],['../group__xt__xshape.html',1,'Support functions to get/check a shape array.']]], + ['array_20indices_20and_20flat_20indices_37',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['array_20manipulation_38',['Array manipulation',['../group__xt__xmanipulation.html',1,'']]], + ['as_5fstrided_39',['as_strided',['../group__xt__xeval.html#ga67df3a5e9f6d3f55dceea48706539b46',1,'xt']]], + ['asin_40',['asin',['../group__trigo__functions.html#gabdab214ece01511604c914f91b81fdb1',1,'xt']]], + ['asin_5ffun_41',['asin_fun',['../structxt_1_1math_1_1asin__fun.html',1,'xt::math']]], + ['asinh_42',['asinh',['../group__hyper__functions.html#ga0893b951ad8fb1b23b97f0dae14651de',1,'xt']]], + ['asinh_5ffun_43',['asinh_fun',['../structxt_1_1math_1_1asinh__fun.html',1,'xt::math']]], + ['assign_44',['assign',['../classxt_1_1xsemantic__base.html#aa4abcce752e16fea81c590cfdb48d099',1,'xt::xsemantic_base']]], + ['assign_5ftemporary_45',['assign_temporary',['../classxt_1_1xcontainer__semantic.html#aa6fec519f074fe655cd20aa1fd028dd3',1,'xt::xcontainer_semantic::assign_temporary()'],['../classxt_1_1xview__semantic.html#abaa88fce8540e36bf148047aa3110af9',1,'xt::xview_semantic::assign_temporary()']]], + ['at_46',['at',['../classxt_1_1xconst__accessible.html#a340069d14699c36602889101dd1f932a',1,'xt::xconst_accessible::at()'],['../classxt_1_1xaccessible.html#abd1a88f04c122d8d066a5b2abc7f2c8f',1,'xt::xaccessible::at()'],['../classxt_1_1xoptional__assembly__base.html#a73dd5d1abc3eeb977466ea06cbd010a6',1,'xt::xoptional_assembly_base::at(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#ab6aeecb3fd2184aa49cf51142487ae31',1,'xt::xoptional_assembly_base::at(Args... args) const -> const_reference']]], + ['atan_47',['atan',['../group__trigo__functions.html#gab62818bfe16f2dd284b39bea1a345383',1,'xt']]], + ['atan2_48',['atan2',['../group__trigo__functions.html#gaba0008974d39d88ec21dff058a642ca0',1,'xt']]], + ['atan2_5ffun_49',['atan2_fun',['../structxt_1_1math_1_1atan2__fun.html',1,'xt::math']]], + ['atan_5ffun_50',['atan_fun',['../structxt_1_1math_1_1atan__fun.html',1,'xt::math']]], + ['atanh_51',['atanh',['../group__hyper__functions.html#gaf99552b5a0d06bfd92f42f272e7af623',1,'xt']]], + ['atanh_5ffun_52',['atanh_fun',['../structxt_1_1math_1_1atanh__fun.html',1,'xt::math']]], + ['atleast_5f1d_53',['atleast_1d',['../group__xt__xmanipulation.html#ga220444924c684f9f2afbc3384a8ff09e',1,'xt']]], + ['atleast_5f2d_54',['atleast_2d',['../group__xt__xmanipulation.html#gae2392e470cec79a918e975987d431c54',1,'xt']]], + ['atleast_5f3d_55',['atleast_3d',['../group__xt__xmanipulation.html#gaf9edf6c754946e30b77d9617852ed15c',1,'xt']]], + ['atleast_5fnd_56',['atleast_Nd',['../group__xt__xmanipulation.html#ga66c613dc60a31ca07c28b45337ee59b7',1,'xt']]], + ['average_57',['average',['../group__red__functions.html#gac71fc60e960526979d68aece67232f82',1,'xt']]], + ['axis_5fbegin_58',['axis_begin',['../namespacext.html#a10d6b6dddf20a721f48bec57deee85c1',1,'xt::axis_begin(E &&e)'],['../namespacext.html#aeff80d8045ec5b2276cb70d3171890ef',1,'xt::axis_begin(E &&e, typename std::decay_t< E >::size_type axis)']]], + ['axis_5fend_59',['axis_end',['../namespacext.html#a8febb08b64e215650861f319845e0ba8',1,'xt::axis_end(E &&e)'],['../namespacext.html#a6a9d61065999823b0947aac4741a5255',1,'xt::axis_end(E &&e, typename std::decay_t< E >::size_type axis)']]], + ['axis_5fslice_5fbegin_60',['axis_slice_begin',['../namespacext.html#ac347d148c68881cdf4f5dbc488dc02bf',1,'xt::axis_slice_begin(E &&e)'],['../namespacext.html#a2a64b30629191a33452d47762e67386b',1,'xt::axis_slice_begin(E &&e, typename std::decay_t< E >::size_type axis)']]], + ['axis_5fslice_5fend_61',['axis_slice_end',['../namespacext.html#af214429c748c24ec2f26271be60ff9ea',1,'xt::axis_slice_end(E &&e)'],['../namespacext.html#a79a091d187f0ba564daabc12be1725ca',1,'xt::axis_slice_end(E &&e, typename std::decay_t< E >::size_type axis)']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 000000000..71c69f413 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['back_0',['back',['../classxt_1_1xconst__accessible.html#ae8c11bf107fb871f054e2194163778fd',1,'xt::xconst_accessible::back()'],['../classxt_1_1xaccessible.html#a905660a4d87f4d3e7b651bcf6bb690d0',1,'xt::xaccessible::back()'],['../classxt_1_1xoptional__assembly__base.html#a30a6a24dfa921de015892bddeef5e731',1,'xt::xoptional_assembly_base::back()'],['../classxt_1_1xoptional__assembly__base.html#a8d17eac6565a38c69ce3597b087daa24',1,'xt::xoptional_assembly_base::back() const'],['../classxt_1_1xcontainer.html#a905660a4d87f4d3e7b651bcf6bb690d0',1,'xt::xcontainer::back()'],['../classxt_1_1xscalar.html#a13a096e0045b2375006fec3bcd1c8d1c',1,'xt::xscalar::back()'],['../classxt_1_1xaccessible.html#ae8c11bf107fb871f054e2194163778fd',1,'xt::xaccessible::back()'],['../classxt_1_1xfunction.html#a02e02645e16da67cf9805d8bb06ec07e',1,'xt::xfunction::back()'],['../classxt_1_1xfunctor__applier__base.html#a905660a4d87f4d3e7b651bcf6bb690d0',1,'xt::xfunctor_applier_base::back()'],['../classxt_1_1xfunctor__applier__base.html#ae8c11bf107fb871f054e2194163778fd',1,'xt::xfunctor_applier_base::back() const'],['../classxt_1_1xmasked__view.html#a13a096e0045b2375006fec3bcd1c8d1c',1,'xt::xmasked_view::back()'],['../classxt_1_1xmasked__view.html#a37c6719faba4d4aa425d0e5302482e99',1,'xt::xmasked_view::back() const']]], + ['backstrides_1',['backstrides',['../classxt_1_1xcontainer.html#a238a7ac8797b8afa4906e6445483aa1d',1,'xt::xcontainer::backstrides()'],['../classxt_1_1xoptional__assembly__base.html#a0af0bee6bcff1b475520937f31b84bd5',1,'xt::xoptional_assembly_base::backstrides()'],['../classxt_1_1xfunctor__applier__base.html#a31682644280a7cb1f47f306e2fa832fe',1,'xt::xfunctor_applier_base::backstrides()'],['../classxt_1_1xmasked__view.html#a11f6663bf33dc7e1afbce7f6132e58fe',1,'xt::xmasked_view::backstrides()'],['../classxt_1_1xstrided__view__base.html#a736dcfe2b1e0a157f89a7a4c6445edd9',1,'xt::xstrided_view_base::backstrides()'],['../classxt_1_1xstrided__view.html#a418d8680d4b654413456e4380c2151eb',1,'xt::xstrided_view::backstrides()']]], + ['basic_20functions_2',['Basic functions',['../group__basic__functions.html',1,'']]], + ['begin_3',['begin',['../classxt_1_1xfunctor__applier__base.html#acbbbfb5117f8a5cbbf6d884c99209aed',1,'xt::xfunctor_applier_base::begin() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a20bbfc1e10a26d6754e31ecaca3791db',1,'xt::xfunctor_applier_base::begin() const noexcept'],['../classxt_1_1xconst__iterable.html#a6ab0e76125fa876b97b53a813a3d4713',1,'xt::xconst_iterable::begin() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a095cfd6ccf0bb5696073af2c8536f8e9',1,'xt::xconst_iterable::begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#aa92f6e2edb798a381d131475e463bf31',1,'xt::xiterable::begin() noexcept -> layout_iterator< L >'],['../classxt_1_1xiterable.html#a4123b26a873b7ed680b13ef557cd3c3c',1,'xt::xiterable::begin(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#ac598e11fd3eb83a2dcb5c74582ffd95a',1,'xt::xcontiguous_iterable::begin() noexcept -> select_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#aa37724c4f2fe4ed455f37a2a485dcebc',1,'xt::xcontiguous_iterable::begin() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#aa93641d4488c4ddb95274b41df89401f',1,'xt::xcontiguous_iterable::begin(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a3b0ee4efcc6ed36094e02631279cb3ce',1,'xt::xcontiguous_iterable::begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a3ab9bf54021db8cea2150113376a271c',1,'xt::xfunctor_applier_base::begin(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a20fda1464f7c57d2bedac80130bc1b8a',1,'xt::xfunctor_applier_base::begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >']]], + ['between_20array_20indices_20and_20flat_20indices_4',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['big_5fpromote_5fvalue_5ftype_5',['big_promote_value_type',['../structxt_1_1big__promote__value__type.html',1,'xt']]], + ['bin_5fitems_6',['bin_items',['../namespacext.html#a79e3638cd1a9a294abe0d95b9425049d',1,'xt::bin_items(size_t N, E &&weights)'],['../namespacext.html#a17da83b8f903ed63f70997ff399b70a3',1,'xt::bin_items(size_t N, size_t bins)']]], + ['bincount_7',['bincount',['../namespacext.html#aed5ac7b9e3af63f34daf465b902d0108',1,'xt']]], + ['bit_5fand_5fassign_8',['bit_and_assign',['../classxt_1_1xsemantic__base.html#a491f436cebf5ae09254782e8e39e07e4',1,'xt::xsemantic_base']]], + ['bit_5for_5fassign_9',['bit_or_assign',['../classxt_1_1xsemantic__base.html#a8f36e2f2e9869cb21ccb197f234838ec',1,'xt::xsemantic_base']]], + ['bit_5fxor_5fassign_10',['bit_xor_assign',['../classxt_1_1xsemantic__base.html#a2ecc711c54c031f9fae4f959ba54c756',1,'xt::xsemantic_base']]], + ['bitwise_20operators_11',['Bitwise operators',['../group__bitwise__operators.html',1,'']]], + ['broadcast_12',['broadcast',['../namespacext.html#a0879929fad639a3a4256a702b9beba62',1,'xt']]], + ['broadcast_5ferror_13',['broadcast_error',['../classxt_1_1broadcast__error.html',1,'xt']]], + ['broadcast_5fshape_14',['broadcast_shape',['../classxt_1_1xcontainer.html#a689eeba5b9b1b4e8943c335d39ecc240',1,'xt::xcontainer::broadcast_shape()'],['../classxt_1_1xfunction.html#a2ef3340ac01fdce40b012db3ca48d2ef',1,'xt::xfunction::broadcast_shape()'],['../classxt_1_1xgenerator.html#ae6b7796ce3f5e9aa5333e6c066013b24',1,'xt::xgenerator::broadcast_shape()'],['../classxt_1_1xoptional__assembly__base.html#a98fdda9ecaf31ce8310614ad46aee9cd',1,'xt::xoptional_assembly_base::broadcast_shape()'],['../classxt_1_1xreducer.html#a20c55f56bcedfe9f3e3662253a922073',1,'xt::xreducer::broadcast_shape()'],['../classxt_1_1xbroadcast.html#ad91b61dbfe7d500131c6f001aa0461e6',1,'xt::xbroadcast::broadcast_shape()'],['../classxt_1_1xfunctor__applier__base.html#ada44e2d571b044340c22c3c16137aa73',1,'xt::xfunctor_applier_base::broadcast_shape()'],['../classxt_1_1xindex__view.html#ac341559ffeb015df5070beec5596d2a9',1,'xt::xindex_view::broadcast_shape()'],['../classxt_1_1xrepeat.html#a2610f596c5e9b7475d30aa36132a93be',1,'xt::xrepeat::broadcast_shape()'],['../classxt_1_1xstrided__view__base.html#a6a79ebace6f36cfb560248f093b7dfa2',1,'xt::xstrided_view_base::broadcast_shape()'],['../classxt_1_1xview.html#a4fb1f607e8b93152ef8426c5ef524c3e',1,'xt::xview::broadcast_shape()'],['../classxt_1_1xdynamic__view.html#a0f7c1e14391c357570e1d054b19b6165',1,'xt::xdynamic_view::broadcast_shape()'],['../classxt_1_1xstrided__view.html#a0f7c1e14391c357570e1d054b19b6165',1,'xt::xstrided_view::broadcast_shape()']]], + ['buffer_5finner_5ftypes_15',['buffer_inner_types',['../structxt_1_1buffer__inner__types.html',1,'xt']]], + ['buffer_5finner_5ftypes_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_16',['buffer_inner_types< xbuffer_adaptor< CP, O, A > >',['../structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html',1,'xt']]], + ['buffer_5finner_5ftypes_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_17',['buffer_inner_types< xiterator_adaptor< I, CI > >',['../structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html',1,'xt']]], + ['buffer_5finner_5ftypes_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_18',['buffer_inner_types< xiterator_owner_adaptor< C, IG > >',['../structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html',1,'xt']]], + ['bytes_19',['bytes',['../group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7da4b3a6218bb3e3a7303e8a171a60fcf92',1,'xt']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 000000000..eca219215 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['rad2deg_0',['rad2deg',['../structxt_1_1math_1_1rad2deg.html',1,'xt::math::rad2deg'],['../group__basic__functions.html#gab8884e81107ab3012f7604fa1826bca3',1,'xt::rad2deg(E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >']]], + ['radians_1',['radians',['../group__basic__functions.html#ga9bdbff83a3137d687d749c710fa466fb',1,'xt']]], + ['range_2',['range',['../namespacext.html#a12df38a6d4e688b6df1a4641930c6181',1,'xt::range(A start_val, B stop_val)'],['../namespacext.html#ad1605028ad21316d7118d9c2c56b93a4',1,'xt::range(A start_val, B stop_val, C step)']]], + ['rangemaker_3',['rangemaker',['../structxt_1_1placeholders_1_1rangemaker.html',1,'xt::placeholders']]], + ['rangemaker_3c_20a_2c_20b_20_3e_4',['rangemaker< A, B >',['../structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html',1,'xt::placeholders']]], + ['rangemaker_3c_20a_2c_20b_2c_20c_20_3e_5',['rangemaker< A, B, C >',['../structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html',1,'xt::placeholders']]], + ['ravel_6',['ravel',['../group__xt__xmanipulation.html#ga52d3b08fa67fe8c498e4271fca338e28',1,'xt']]], + ['ravel_5findices_7',['ravel_indices',['../namespacext.html#ab42ce054ae7c59ee974c25680a09218d',1,'xt']]], + ['rbegin_8',['rbegin',['../classxt_1_1xfunctor__applier__base.html#abacad02a84f1b459e87948192e2c5d05',1,'xt::xfunctor_applier_base::rbegin() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a683da35bece5497aead059605a406235',1,'xt::xfunctor_applier_base::rbegin() const noexcept'],['../classxt_1_1xconst__iterable.html#a52be134ecb3d529fddf7e8ba888a59a0',1,'xt::xconst_iterable::rbegin() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a3671f77843974f6962cd425318c0ef00',1,'xt::xconst_iterable::rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#a7bc86e4fb6f2f55c74e33836a32739eb',1,'xt::xiterable::rbegin() noexcept -> reverse_layout_iterator< L >'],['../classxt_1_1xiterable.html#a66bef4e8cff9bf584e71f0ac7ba828ad',1,'xt::xiterable::rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a9baaf955c445124c0ce0b15e46e9ea67',1,'xt::xcontiguous_iterable::rbegin() noexcept -> select_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a34ab77bf7e6f44cf32100dfa19016985',1,'xt::xcontiguous_iterable::rbegin() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a2464771d6d90297666b1e7e40ff21f70',1,'xt::xcontiguous_iterable::rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#af72e9e4372c87685b932899a7a411b2f',1,'xt::xcontiguous_iterable::rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#aff09d88c2dfc4cb00850f42c8f695337',1,'xt::xfunctor_applier_base::rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a81666e7d863a7679298d37a373cd1395',1,'xt::xfunctor_applier_base::rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >']]], + ['real_9',['real',['../group__xt__xcomplex.html#ga40dd460909cc5b81f23947646eebd543',1,'xt']]], + ['rebind_10',['rebind',['../structxt_1_1tracking__allocator_1_1rebind.html',1,'xt::tracking_allocator']]], + ['rebind_5fcontainer_11',['rebind_container',['../structxt_1_1rebind__container.html',1,'xt']]], + ['rebind_5fcontainer_3c_20x_2c_20c_3c_20t_2c_20a_20_3e_20_3e_12',['rebind_container< X, C< T, A > >',['../structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html',1,'xt']]], + ['rebind_5fcontainer_3c_20x_2c_20c_3c_20t_2c_20n_20_3e_20_3e_13',['rebind_container< X, C< T, N > >',['../structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html',1,'xt']]], + ['rebind_5fcontainer_3c_20x_2c_20svector_3c_20t_2c_20n_2c_20a_2c_20b_20_3e_20_3e_14',['rebind_container< X, svector< T, N, A, B > >',['../structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html',1,'xt']]], + ['reduce_15',['reduce',['../namespacext.html#a2bf61f96fdc4316d3eefa8dff6174ece',1,'xt']]], + ['reducer_5foptions_16',['reducer_options',['../structxt_1_1reducer__options.html',1,'xt']]], + ['reducer_5foptions_3c_20nr_2c_20t_20_3e_17',['reducer_options< NR, T >',['../structxt_1_1reducer__options.html',1,'xt']]], + ['reducing_20functions_18',['reducing functions',['../group__red__functions.html',1,'']]], + ['reference_19',['reference',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a6ee11ca3c87c65a8f33511019a8fddaf',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['remainder_20',['remainder',['../group__basic__functions.html#ga2322bc87a5871e26173db4b2383e1db8',1,'xt']]], + ['remainder_5ffun_21',['remainder_fun',['../structxt_1_1math_1_1remainder__fun.html',1,'xt::math']]], + ['remove_5fclass_22',['remove_class',['../structxt_1_1remove__class.html',1,'xt']]], + ['remove_5fclass_3c_20r_28c_3a_3a_2a_29_28args_2e_2e_2e_29_20const_20_3e_23',['remove_class< R(C::*)(Args...) const >',['../structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html',1,'xt']]], + ['remove_5fclass_3c_20r_28c_3a_3a_2a_29_28args_2e_2e_2e_29_3e_24',['remove_class< R(C::*)(Args...)>',['../structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html',1,'xt']]], + ['rend_25',['rend',['../classxt_1_1xfunctor__applier__base.html#a8201e2518627bdc8e1fb6f33653aacbb',1,'xt::xfunctor_applier_base::rend() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a20631d9fd8aaa1e5a95393c31537ef81',1,'xt::xfunctor_applier_base::rend() const noexcept'],['../classxt_1_1xconst__iterable.html#ade7cb42ea93353d00bbb739743be090d',1,'xt::xconst_iterable::rend() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a634cb122a80a40c5c38ff2b4527e3f26',1,'xt::xconst_iterable::rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#af04d43d598e8933225287e044c12d4c6',1,'xt::xiterable::rend() noexcept -> reverse_layout_iterator< L >'],['../classxt_1_1xiterable.html#a92e4a1b212968fcc8a8240be122fe8e4',1,'xt::xiterable::rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#ad8f400de36b11a40a49517ebe2f2f1fa',1,'xt::xcontiguous_iterable::rend() noexcept -> select_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a0fca0441c61348b6eb092456e123b869',1,'xt::xcontiguous_iterable::rend() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#ab805bb1e5bd7b9a0d22fe8fcda0ffeb8',1,'xt::xcontiguous_iterable::rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a3b9ef9be65f2c10776ee7055f4067bed',1,'xt::xcontiguous_iterable::rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a23da38db60689cea813d3995b7b93de2',1,'xt::xfunctor_applier_base::rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a367facbe0356cf7de42ed9cd1e60a163',1,'xt::xfunctor_applier_base::rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >']]], + ['repeat_26',['repeat',['../group__xt__xmanipulation.html#ga86b343ba5d1f6150c418475a00e3d3c3',1,'xt::repeat(E &&e, std::size_t repeats, std::size_t axis)'],['../group__xt__xmanipulation.html#ga0061839371ca8e1f29c37e812dee9ad1',1,'xt::repeat(E &&e, const std::vector< std::size_t > &repeats, std::size_t axis)'],['../group__xt__xmanipulation.html#ga7aba37875778e4c7a786cbe6ec909ef2',1,'xt::repeat(E &&e, std::vector< std::size_t > &&repeats, std::size_t axis)']]], + ['reshape_27',['reshape',['../classxt_1_1xstrided__container.html#ade4f89e605eb5ade6b47507eb411702b',1,'xt::xstrided_container::reshape()'],['../classxt_1_1xfixed__container.html#ab5b58143fbfe4d0b7c0ea353526b286f',1,'xt::xfixed_container::reshape()'],['../classxt_1_1xfixed__adaptor.html#a5fe78e6500ce0bddc63c8b7de09b8031',1,'xt::xfixed_adaptor::reshape()'],['../classxt_1_1xgenerator.html#a8d78d70b368a9010ded32ee263299b8b',1,'xt::xgenerator::reshape()'],['../classxt_1_1xoptional__assembly__base.html#adcf1eb03fa74eac4bfd3c1c53647e841',1,'xt::xoptional_assembly_base::reshape()']]], + ['reshape_5fview_28',['reshape_view',['../namespacext.html#a7bda1677287d8bee76befd8c427e3898',1,'xt']]], + ['resize_29',['resize',['../classxt_1_1xstrided__container.html#af38c6e8082f27cfbaa445767c14c0110',1,'xt::xstrided_container::resize(S &&shape, bool force=false)'],['../classxt_1_1xstrided__container.html#ac157fa05a058950206b21ed403d969fe',1,'xt::xstrided_container::resize(S &&shape, layout_type l)'],['../classxt_1_1xstrided__container.html#a9853404ceb5a3d42430c43508abb671b',1,'xt::xstrided_container::resize(S &&shape, const strides_type &strides)'],['../classxt_1_1xfixed__container.html#a1c6d4565311f46f74edd7bfbbf6a2616',1,'xt::xfixed_container::resize(ST &&shape, bool force=false) const'],['../classxt_1_1xfixed__container.html#a591c135ebc74e8067d19a7503c635280',1,'xt::xfixed_container::resize(ST &&shape, layout_type l) const'],['../classxt_1_1xfixed__container.html#a311dfc919ead913eb8c6f27b241619fb',1,'xt::xfixed_container::resize(ST &&shape, const strides_type &strides) const'],['../classxt_1_1xfixed__adaptor.html#a75fb0edc455232657d609bd9d79d6544',1,'xt::xfixed_adaptor::resize(ST &&shape, bool force=false) const'],['../classxt_1_1xfixed__adaptor.html#a10c880b192785a2108d5ab7047c1bed6',1,'xt::xfixed_adaptor::resize(ST &&shape, layout_type l) const'],['../classxt_1_1xfixed__adaptor.html#a656b75b805c1645d3c562a5797d7adb9',1,'xt::xfixed_adaptor::resize(ST &&shape, const strides_type &strides) const'],['../classxt_1_1xoptional__assembly__base.html#ad75f3602dcf419d0d35af7121da5e802',1,'xt::xoptional_assembly_base::resize(const S &shape, bool force=false)'],['../classxt_1_1xoptional__assembly__base.html#a346e0ff791f6279005d0229311e62b75',1,'xt::xoptional_assembly_base::resize(const S &shape, layout_type l)'],['../classxt_1_1xoptional__assembly__base.html#a6679efb40275d9066e15627f79430759',1,'xt::xoptional_assembly_base::resize(const S &shape, const strides_type &strides)']]], + ['revert_5fsimd_5ftraits_30',['revert_simd_traits',['../structxt__simd_1_1revert__simd__traits.html',1,'xt_simd']]], + ['right_5fshift_31',['right_shift',['../group__bitwise__operators.html#ga2eab76876895cd0cae2a667e513c9f92',1,'xt']]], + ['rint_32',['rint',['../group__nearint__functions.html#gaad503e7c9ee485a6b623770c8f43bde0',1,'xt']]], + ['rint_5ffun_33',['rint_fun',['../structxt_1_1math_1_1rint__fun.html',1,'xt::math']]], + ['roll_34',['roll',['../group__xt__xmanipulation.html#ga2211d25aea0f9a27855fb602419a365b',1,'xt::roll(E &&e, std::ptrdiff_t shift)'],['../group__xt__xmanipulation.html#ga957635620a4f4c19c4ee0546c69fcb1d',1,'xt::roll(E &&e, std::ptrdiff_t shift, std::ptrdiff_t axis)']]], + ['rot90_35',['rot90',['../group__xt__xmanipulation.html#gab5a947902290cc80a26e8d091428497e',1,'xt']]], + ['round_36',['round',['../group__nearint__functions.html#gaa8b6a7ec9f215261ace43466d4ae6f0b',1,'xt']]], + ['round_5ffun_37',['round_fun',['../structxt_1_1math_1_1round__fun.html',1,'xt::math']]], + ['row_38',['row',['../namespacext.html#a445fa98828eab51048b87fc29d8e88ad',1,'xt']]], + ['row_5fmajor_39',['row_major',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a641fabb8e5e7d1d0333e2c9c384f959c',1,'xt']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 000000000..7349d53df --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,70 @@ +var searchData= +[ + ['safe_0',['SAFE',['../namespacext.html#a1390f61ac19aea31030f7065ec3a738fab18288babd4636cff34b15e0d1340fc2',1,'xt']]], + ['same_5fshape_1',['same_shape',['../group__xt__xshape.html#ga3c10cfb8271fbf79932a98edc5491ac7',1,'xt']]], + ['searchsorted_2',['searchsorted',['../group__searchsorted.html#ga7f2dbcb81b8a765fe3972a7490d62618',1,'xt']]], + ['searchsorted_20helpers_3',['Searchsorted helpers',['../group__searchsorted.html',1,'']]], + ['select_5fdim_5fmapping_5ftype_4',['select_dim_mapping_type',['../structxt_1_1select__dim__mapping__type.html',1,'xt']]], + ['select_5fdim_5fmapping_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_20_3e_5',['select_dim_mapping_type< fixed_shape< I... > >',['../structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html',1,'xt']]], + ['select_5fdim_5fmapping_5ftype_3c_20inner_5fshape_5ftype_20_3e_6',['select_dim_mapping_type< inner_shape_type >',['../structxt_1_1select__dim__mapping__type.html',1,'xt']]], + ['select_5fiterable_5fbase_7',['select_iterable_base',['../structxt_1_1select__iterable__base.html',1,'xt']]], + ['select_5flayout_8',['select_layout',['../structxt_1_1select__layout.html',1,'xt']]], + ['sequence_5fview_9',['sequence_view',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_200_2c_20static_5fdimension_3c_20t_20_3e_3a_3avalue_20_2d_20offset_20_3e_10',['sequence_view< T, 0, static_dimension< T >::value - offset >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_20offset_2c_20static_5fdimension_3c_20t_20_3e_3a_3avalue_20_3e_11',['sequence_view< T, offset, static_dimension< T >::value >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_20start_2boffset_2c_20end_20_3e_12',['sequence_view< T, start+offset, end >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_20start_2c_20end_20_2d_20offset_20_3e_13',['sequence_view< T, start, end - offset >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['setdiff1d_14',['setdiff1d',['../group__xt__xsort.html#gab6eedcadc051be2d6e3ad7890a5c2d90',1,'xt']]], + ['shape_15',['shape',['../classxt_1_1xcontainer.html#a69d345a40906cb982d205357520792fc',1,'xt::xcontainer::shape()'],['../classxt_1_1xconst__accessible.html#aec0ae6f83f7e86f32e083cb6714af552',1,'xt::xconst_accessible::shape()'],['../classxt_1_1xfunction.html#a41f3d01620f13c854d163235d03e534d',1,'xt::xfunction::shape()'],['../classxt_1_1xgenerator.html#a72035cb01c8e3ead3dedcd013fe59737',1,'xt::xgenerator::shape()'],['../classxt_1_1xoptional__assembly__base.html#a574aec951fe205155709a7871055ec75',1,'xt::xoptional_assembly_base::shape() const noexcept'],['../classxt_1_1xoptional__assembly__base.html#a58bcff261d17d4b7e5b89a9d4ac6a362',1,'xt::xoptional_assembly_base::shape(size_type index) const'],['../classxt_1_1xreducer.html#aaf23386e8c796f997a2e80c71e57e74c',1,'xt::xreducer::shape()'],['../classxt_1_1xbroadcast.html#ab55ff6c03aac9708dd319a0936a3fd18',1,'xt::xbroadcast::shape()'],['../classxt_1_1xfunctor__applier__base.html#a982e33a6deafe2b8f8048ce8c91956b3',1,'xt::xfunctor_applier_base::shape()'],['../classxt_1_1xindex__view.html#ad124eaa3959093d86deab646c4a2fb18',1,'xt::xindex_view::shape() const noexcept'],['../classxt_1_1xindex__view.html#a47f560d67ba251afd96c617e6c6e2a0e',1,'xt::xindex_view::shape(size_type index) const'],['../classxt_1_1xmasked__view.html#a3e501b72ae46be33e45dd249ac6e369c',1,'xt::xmasked_view::shape()'],['../classxt_1_1xrepeat.html#abbeb6ae19bc34035323c7577c65f0d84',1,'xt::xrepeat::shape()'],['../classxt_1_1xstrided__view__base.html#a7f03137aa8b79f042dd1eb5b769f5256',1,'xt::xstrided_view_base::shape()'],['../classxt_1_1xview.html#a4f26067384dd1d379fcd476127386966',1,'xt::xview::shape()'],['../classxt_1_1xfunction.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xfunction::shape()'],['../classxt_1_1xgenerator.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xgenerator::shape()'],['../classxt_1_1xbroadcast.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xbroadcast::shape()'],['../classxt_1_1xdynamic__view.html#a63efb4c728be80dc8154df1b578c33cd',1,'xt::xdynamic_view::shape()'],['../classxt_1_1xrepeat.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xrepeat::shape()'],['../classxt_1_1xstrided__view.html#a63efb4c728be80dc8154df1b578c33cd',1,'xt::xstrided_view::shape()'],['../namespacext.html#ad761751bf328e1bedb307676ab8e7c8f',1,'xt::shape()']]], + ['shape_20array_16',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['share_17',['share',['../namespacext.html#a39563f02e935d00d2df74796f2e19fb0',1,'xt::share(xexpression< E > &expr)'],['../namespacext.html#ad90d6213ecfc3ae99eba87429935a38a',1,'xt::share(xexpression< E > &&expr)']]], + ['sign_18',['sign',['../group__basic__functions.html#gad678caa2e599d095ad40e2b32bf4eb37',1,'xt']]], + ['sign_5ffun_19',['sign_fun',['../structxt_1_1math_1_1sign__fun.html',1,'xt::math']]], + ['sign_5fimpl_20',['sign_impl',['../structxt_1_1math_1_1sign__impl.html',1,'xt::math']]], + ['sign_5fimpl_3c_20xtl_3a_3axoptional_3c_20t_2c_20b_20_3e_20_3e_21',['sign_impl< xtl::xoptional< T, B > >',['../structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html',1,'xt::math']]], + ['simd_5fcondition_22',['simd_condition',['../structxt__simd_1_1simd__condition.html',1,'xt_simd']]], + ['simd_5ftraits_23',['simd_traits',['../structxt__simd_1_1simd__traits.html',1,'xt_simd']]], + ['sin_24',['sin',['../group__trigo__functions.html#gad8638d83d6874334a912c892b9d8a9c5',1,'xt']]], + ['sin_5ffun_25',['sin_fun',['../structxt_1_1math_1_1sin__fun.html',1,'xt::math']]], + ['sinh_26',['sinh',['../group__hyper__functions.html#ga43507ff72c11c17061fd4ae7716c11d5',1,'xt']]], + ['sinh_5ffun_27',['sinh_fun',['../structxt_1_1math_1_1sinh__fun.html',1,'xt::math']]], + ['size_28',['size',['../classxt_1_1xcontainer.html#a1c0a41d160789e55b7bdfd797b3af1cb',1,'xt::xcontainer::size()'],['../classxt_1_1xconst__accessible.html#a1a12c20a1915c492894e68c39053cd1b',1,'xt::xconst_accessible::size()'],['../classxt_1_1xoptional__assembly__base.html#a21f778be8956cf3c7c72aa37169a0d2a',1,'xt::xoptional_assembly_base::size()'],['../classxt_1_1xfunctor__applier__base.html#ae971620a3e942d234f19e65a10005e45',1,'xt::xfunctor_applier_base::size()'],['../classxt_1_1xindex__view.html#a9c3f7c72cb0e1172b75bb256e92e6b94',1,'xt::xindex_view::size()'],['../classxt_1_1xmasked__view.html#a9b8f0d6d6f4fd32f161ffbae9828a7e2',1,'xt::xmasked_view::size()'],['../classxt_1_1xfunction.html#acf990ad65941e747a737622343bb43c2',1,'xt::xfunction::size()'],['../classxt_1_1xbroadcast.html#acf990ad65941e747a737622343bb43c2',1,'xt::xbroadcast::size()'],['../classxt_1_1xrepeat.html#acf990ad65941e747a737622343bb43c2',1,'xt::xrepeat::size()']]], + ['slices_29',['slices',['../classxt_1_1xview.html#a10687f1d5229c3d4f0b0af8766d9d64b',1,'xt::xview']]], + ['sort_30',['sort',['../group__xt__xsort.html#gae455f4aaacbc04bebc76451907003ee3',1,'xt']]], + ['sorting_20functions_31',['Sorting functions.',['../group__xt__xsort.html',1,'']]], + ['sorting_5fmethod_32',['sorting_method',['../namespacext.html#ac4aea058f50a232746da4591e8956623',1,'xt']]], + ['split_33',['split',['../group__xt__xmanipulation.html#gaad5c56f6a09fb0a6ebaa2ec6cf22cf5c',1,'xt']]], + ['sqrt_34',['sqrt',['../group__pow__functions.html#ga2ac4c9ab16cee0b95b444191419c2802',1,'xt']]], + ['sqrt_5ffun_35',['sqrt_fun',['../structxt_1_1math_1_1sqrt__fun.html',1,'xt::math']]], + ['square_36',['square',['../group__pow__functions.html#ga6e5fca6d456f46a946b4a9707e1d442f',1,'xt']]], + ['squared_5fnorm_5ftype_37',['squared_norm_type',['../structxt_1_1squared__norm__type.html',1,'xt']]], + ['squared_5fnorm_5ftype_5ft_38',['squared_norm_type_t',['../namespacext.html#a2cfcd9d1752e2ebfe143b47fae965adf',1,'xt']]], + ['squeeze_39',['squeeze',['../group__xt__xmanipulation.html#ga2734defabe45fcb86ed9545c1b033134',1,'xt::squeeze(E &&e)'],['../group__xt__xmanipulation.html#gafb20871153217193f33827b3b14e448a',1,'xt::squeeze(E &&e, S &&axis, Tag check_policy)']]], + ['stable_40',['stable',['../namespacext.html#ac4aea058f50a232746da4591e8956623af40faf6384fc85a33d3b05a9d41c012b',1,'xt']]], + ['stack_41',['stack',['../namespacext.html#a120ce2e841c6d13c8688cd12128fe942',1,'xt']]], + ['static_5fdimension_42',['static_dimension',['../structxt_1_1static__dimension.html',1,'xt']]], + ['static_5fstring_43',['static_string',['../structxt_1_1static__string.html',1,'xt']]], + ['stddev_44',['stddev',['../group__red__functions.html#ga0c8291754c7c050cbfac3f6eeeaa1f77',1,'xt']]], + ['stepper_5fassigner_45',['stepper_assigner',['../classxt_1_1stepper__assigner.html',1,'xt']]], + ['stepper_5ftools_46',['stepper_tools',['../structxt_1_1stepper__tools.html',1,'xt']]], + ['stl_20like_20containers_47',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['storage_48',['storage',['../classxt_1_1xcontainer.html#a19d0a91c82d0c35e414cf160751a9cb5',1,'xt::xcontainer::storage() noexcept'],['../classxt_1_1xcontainer.html#a75322e16f42222403daa18be69efa7d7',1,'xt::xcontainer::storage() const noexcept'],['../classxt_1_1xstrided__view__base.html#aeec822654cdb1a74d861e819b1c98730',1,'xt::xstrided_view_base::storage() noexcept'],['../classxt_1_1xstrided__view__base.html#a8b2e5b2c411cc06b834960f23dea39e7',1,'xt::xstrided_view_base::storage() const noexcept'],['../classxt_1_1xview.html#a7ed8a9e636959290636894572d1d2282',1,'xt::xview::storage()'],['../classxt_1_1xdynamic__view.html#a515e8cbd36c5494ab188f4c3e9d90861',1,'xt::xdynamic_view::storage() noexcept'],['../classxt_1_1xdynamic__view.html#a12ee07f7bf30d89f9ea691a03a122e3d',1,'xt::xdynamic_view::storage() const noexcept'],['../classxt_1_1xstrided__view.html#a515e8cbd36c5494ab188f4c3e9d90861',1,'xt::xstrided_view::storage() noexcept'],['../classxt_1_1xstrided__view.html#a12ee07f7bf30d89f9ea691a03a122e3d',1,'xt::xstrided_view::storage() const noexcept']]], + ['stride_5ftype_49',['stride_type',['../group__xt__xstrides.html#ga743568032eda84a9d0df401f20317b7d',1,'xt']]], + ['strided_5floop_5fassigner_50',['strided_loop_assigner',['../classxt_1_1strided__loop__assigner.html',1,'xt']]], + ['strided_5fview_51',['strided_view',['../namespacext.html#aca6714111810062b91a1c9e31bd69b26',1,'xt::strided_view(E &&e, S &&shape, X &&strides, std::size_t offset, layout_type layout) noexcept'],['../namespacext.html#ae5c7088d2beee486998238fbc29ee7b9',1,'xt::strided_view(E &&e, const xstrided_slice_vector &slices)']]], + ['strided_5fview_5fconcept_52',['strided_view_concept',['../conceptxt_1_1strided__view__concept.html',1,'xt']]], + ['strides_53',['strides',['../classxt_1_1xcontainer.html#a521fff0ce57a45da819d7e313b3133b4',1,'xt::xcontainer::strides()'],['../classxt_1_1xoptional__assembly__base.html#aa1afe87047106cd980f036335b978199',1,'xt::xoptional_assembly_base::strides()'],['../classxt_1_1xfunctor__applier__base.html#aee81935fb3b87f6e71e49e5410236645',1,'xt::xfunctor_applier_base::strides()'],['../classxt_1_1xmasked__view.html#a0cc1342c4e640acb9f726ccbb1a74da7',1,'xt::xmasked_view::strides()'],['../classxt_1_1xstrided__view__base.html#a60cc5bdc36e03dd0b339e89e16d4080c',1,'xt::xstrided_view_base::strides()'],['../classxt_1_1xview.html#a806d78f80c3cbf6624009bcb66a2ee5f',1,'xt::xview::strides()'],['../classxt_1_1xstrided__view.html#aec137e8210e4a11efc962df4e05b0680',1,'xt::xstrided_view::strides()'],['../group__xt__xstrides.html#ga651f61121a205e14993c06c52c6d2503',1,'xt::strides(const E &e, stride_type type=stride_type::normal) noexcept'],['../group__xt__xstrides.html#ga1ddf9b85add66ccc98661073a78cd953',1,'xt::strides(const E &e, std::size_t axis, stride_type type=stride_type::normal) noexcept']]], + ['sum_54',['sum',['../group__red__functions.html#ga018d66d27aae0df9558107d684380436',1,'xt']]], + ['support_20functions_20swich_20between_20array_20indices_20and_20flat_20indices_55',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['support_20functions_20to_20get_20check_20a_20shape_20array_56',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['svector_57',['svector',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20size_5ftype_20_3e_58',['svector< size_type >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_59',['svector< T, 4 >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_3c_20std_3a_3aptrdiff_5ft_20_3e_60',['svector< T, 4 >< std::ptrdiff_t >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_3c_20std_3a_3asize_5ft_20_3e_61',['svector< T, 4 >< std::size_t >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_3c_20typename_20std_3a_3acommon_5ftype_3c_20typename_20s_3a_3avalue_5ftype_2e_2e_2e_20_3e_3a_3atype_20_3e_62',['svector< T, 4 >< typename std::common_type< typename S::value_type... >::type >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_20n_2c_20a_2c_20init_20_3e_63',['svector< T, N, A, Init >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20x_2c_20n_2c_20allocator_2c_20b_20_3e_64',['svector< X, N, allocator, B >',['../classxt_1_1svector.html',1,'xt']]], + ['swapaxes_65',['swapaxes',['../group__xt__xmanipulation.html#gaed086f2e402aa1e927f745fceae54018',1,'xt']]], + ['swich_20between_20array_20indices_20and_20flat_20indices_66',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 000000000..f81e6f300 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['tan_0',['tan',['../group__trigo__functions.html#gae6d7aef2bb82c074da4a500ca5eadc7b',1,'xt']]], + ['tan_5ffun_1',['tan_fun',['../structxt_1_1math_1_1tan__fun.html',1,'xt::math']]], + ['tanh_2',['tanh',['../group__hyper__functions.html#ga1b22c94cc8d9750ca8153d9b5bbb6c86',1,'xt']]], + ['tanh_5ffun_3',['tanh_fun',['../structxt_1_1math_1_1tanh__fun.html',1,'xt::math']]], + ['temporary_5fcontainer_4',['temporary_container',['../structxt_1_1temporary__container.html',1,'xt']]], + ['temporary_5fcontainer_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_5',['temporary_container< xbuffer_adaptor< CP, O, A > >',['../structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html',1,'xt']]], + ['temporary_5fcontainer_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_6',['temporary_container< xiterator_adaptor< I, CI > >',['../structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html',1,'xt']]], + ['temporary_5fcontainer_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_7',['temporary_container< xiterator_owner_adaptor< C, IG > >',['../structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html',1,'xt']]], + ['temporary_5ftype_8',['temporary_type',['../structxt_1_1temporary__type.html',1,'xt']]], + ['temporary_5ftype_3c_20t_2c_20void_5ft_3c_20typename_20std_3a_3adecay_5ft_3c_20t_20_3e_3a_3atemporary_5ftype_20_3e_20_3e_9',['temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >',['../structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html',1,'xt']]], + ['temporary_5ftype_5ffrom_5ftag_10',['temporary_type_from_tag',['../structxt_1_1temporary__type__from__tag.html',1,'xt']]], + ['temporary_5ftype_5ffrom_5ftag_3c_20xtensor_5fexpression_5ftag_2c_20t_20_3e_11',['temporary_type_from_tag< xtensor_expression_tag, T >',['../structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html',1,'xt']]], + ['tgamma_12',['tgamma',['../group__err__functions.html#gabe9c5e1fc33af3db795c8b3655321f02',1,'xt']]], + ['tgamma_5ffun_13',['tgamma_fun',['../structxt_1_1math_1_1tgamma__fun.html',1,'xt::math']]], + ['threshold_14',['threshold',['../classxt_1_1print__options_1_1threshold.html',1,'xt::print_options']]], + ['tile_15',['tile',['../namespacext.html#a65ddcadd66cb7d479944b1da073f2ce9',1,'xt::tile(E &&e, std::initializer_list< S > reps)'],['../namespacext.html#ad5270a2924bb17bc641c5846355149bc',1,'xt::tile(E &&e, S reps)']]], + ['to_20get_20check_20a_20shape_20array_16',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['to_5fjson_17',['to_json',['../namespacext.html#aafd7842df1c7034546b2a84bff7fd97b',1,'xt']]], + ['tracking_5fallocator_18',['tracking_allocator',['../structxt_1_1tracking__allocator.html',1,'xt']]], + ['tracking_5fallocator_3c_20u_2c_20typename_20traits_3a_3atemplate_20rebind_5falloc_3c_20u_20_3e_2c_20p_20_3e_19',['tracking_allocator< U, typename traits::template rebind_alloc< U >, P >',['../structxt_1_1tracking__allocator.html',1,'xt']]], + ['transpose_20',['transpose',['../group__xt__xmanipulation.html#ga620b1159b15601a1fd9b2ddaa746225e',1,'xt::transpose(E &&e) noexcept'],['../group__xt__xmanipulation.html#gae8b37193755be9f7e4c0161a6d9f9b6b',1,'xt::transpose(E &&e, S &&permutation, Tag check_policy)']]], + ['transpose_5ferror_21',['transpose_error',['../classxt_1_1transpose__error.html',1,'xt']]], + ['trapz_22',['trapz',['../group__red__functions.html#ga99e0a7ad0979b3ceeaf99d75fd30af9d',1,'xt::trapz(const xexpression< T > &y, double dx=1.0, std::ptrdiff_t axis=-1)'],['../group__red__functions.html#ga681c9cbfe336a5a7892633f189098c3d',1,'xt::trapz(const xexpression< T > &y, const xexpression< E > &x, std::ptrdiff_t axis=-1)']]], + ['trigonometric_20function_23',['Trigonometric function',['../group__trigo__functions.html',1,'']]], + ['tril_24',['tril',['../namespacext.html#ab524d3db6722f5d0e09347aedcf63837',1,'xt']]], + ['trim_5fzeros_25',['trim_zeros',['../group__xt__xmanipulation.html#ga938cc86961805cf29a1f68394922d9f7',1,'xt']]], + ['triu_26',['triu',['../namespacext.html#a5ca4a423657a4a9c4ec4852dd344164b',1,'xt']]], + ['trunc_27',['trunc',['../group__nearint__functions.html#ga1bf2a5edfa5f687938657e37064ddc74',1,'xt']]], + ['trunc_5ffun_28',['trunc_fun',['../structxt_1_1math_1_1trunc__fun.html',1,'xt::math']]], + ['tuple_5fidx_5fof_29',['tuple_idx_of',['../structxt_1_1tuple__idx__of.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_30',['tuple_idx_of_impl',['../structxt_1_1tuple__idx__of__impl.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_3c_20i_2c_20t_2c_20std_3a_3atuple_3c_20t_2c_20types_2e_2e_2e_20_3e_20_3e_31',['tuple_idx_of_impl< I, T, std::tuple< T, Types... > >',['../structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_3c_20i_2c_20t_2c_20std_3a_3atuple_3c_20u_2c_20types_2e_2e_2e_20_3e_20_3e_32',['tuple_idx_of_impl< I, T, std::tuple< U, Types... > >',['../structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_3c_20i_2c_20t_2c_20std_3a_3atuple_3c_3e_20_3e_33',['tuple_idx_of_impl< I, T, std::tuple<> >',['../structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html',1,'xt']]], + ['tuple_5fsize_3c_20xt_3a_3aconst_5farray_3c_20t_2c_20n_20_3e_20_3e_34',['tuple_size< xt::const_array< T, N > >',['../classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20xt_3a_3afixed_5fshape_3c_20n_2e_2e_2e_20_3e_20_3e_35',['tuple_size< xt::fixed_shape< N... > >',['../classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20xt_3a_3asequence_5fview_3c_20t_2c_20start_2c_20end_20_3e_20_3e_36',['tuple_size< xt::sequence_view< T, Start, End > >',['../classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html',1,'std']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 000000000..e5308c7f2 --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['unaligned_5fmode_0',['unaligned_mode',['../structxt_1_1unaligned__mode.html',1,'xt::unaligned_mode'],['../structxt__simd_1_1unaligned__mode.html',1,'xt_simd::unaligned_mode']]], + ['unchecked_1',['unchecked',['../classxt_1_1xindex__view.html#aa6c15d2a26e0a3a993332606bb3d8ddc',1,'xt::xindex_view::unchecked(size_type idx)'],['../classxt_1_1xindex__view.html#a9ff5247ea89e3a5ed114685960edd042',1,'xt::xindex_view::unchecked(size_type idx) const'],['../classxt_1_1xcontainer.html#ac47ed05e4abb19044244cb26307cf8dc',1,'xt::xcontainer::unchecked(Args... args) -> reference'],['../classxt_1_1xcontainer.html#aa493271826c9bc5298a556949755e84a',1,'xt::xcontainer::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xfunction.html#ab99bdf99fd4e28328b2f4a24d6f763c2',1,'xt::xfunction::unchecked()'],['../classxt_1_1xgenerator.html#af95208893a8690ab495c3ac4f570d590',1,'xt::xgenerator::unchecked()'],['../classxt_1_1xoptional__assembly__base.html#afca63e0308421875f479c8373eea66d3',1,'xt::xoptional_assembly_base::unchecked(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#a53735c2da40556583e93ec94c618b325',1,'xt::xoptional_assembly_base::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xreducer.html#a55be3ba3c0268968d7c6efef7621e3e4',1,'xt::xreducer::unchecked()'],['../classxt_1_1xbroadcast.html#aecb99b5176966ab47f4dfe2b66385d56',1,'xt::xbroadcast::unchecked()'],['../classxt_1_1xfunctor__applier__base.html#ad86eba7c460e85d7e6bd558091531376',1,'xt::xfunctor_applier_base::unchecked(Args... args) -> reference'],['../classxt_1_1xfunctor__applier__base.html#a5b9d6e6df937ed2b534d8a68c0d4ceff',1,'xt::xfunctor_applier_base::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xmasked__view.html#a1f080554ead02ec72ee2e53691b2d793',1,'xt::xmasked_view::unchecked(Args... args) -> reference'],['../classxt_1_1xmasked__view.html#a430cf3c34d4e7ac88d55522fcef881ff',1,'xt::xmasked_view::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xrepeat.html#af545974287e021de5253fcfd602d2f6a',1,'xt::xrepeat::unchecked()'],['../classxt_1_1xstrided__view__base.html#a4a944cdaddacef0710cc4e601d95a1c8',1,'xt::xstrided_view_base::unchecked(Args... args) -> reference'],['../classxt_1_1xstrided__view__base.html#a4ed93202e4e30f980c2967c00e6044c4',1,'xt::xstrided_view_base::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xview.html#afc28e491c5db09bcfe54e5eea176a5ec',1,'xt::xview::unchecked(Args... args) -> reference'],['../classxt_1_1xview.html#a8860cdb3a358dfee3af68fafdb5c7010',1,'xt::xview::unchecked(Args... args) const -> const_reference']]], + ['unique_2',['unique',['../group__xt__xsort.html#ga2b46eaf022e2fcd9e82ae5223fdd3ed5',1,'xt']]], + ['unsafe_3',['UNSAFE',['../namespacext.html#a1390f61ac19aea31030f7065ec3a738fa2c7b3a8b9acd296488c69fb8f57587cf',1,'xt']]], + ['unwrap_4',['unwrap',['../group__basic__functions.html#gaeb6f80a96d7a1da033b737b34acaeb74',1,'xt']]], + ['use_5fcount_5',['use_count',['../classxt_1_1xshared__expression.html#ade23a460bdd1eb6102372076493f719e',1,'xt::xshared_expression']]], + ['uvector_6',['uvector',['../classxt_1_1uvector.html',1,'xt']]], + ['uvector_3c_20value_5ftype_2c_20allocator_5ftype_20_3e_7',['uvector< value_type, allocator_type >',['../classxt_1_1uvector.html',1,'xt']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 000000000..b22aca12c --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['valid_0',['valid',['../structxt_1_1convolve__mode_1_1valid.html',1,'xt::convolve_mode']]], + ['value_1',['value',['../classxt_1_1xoptional__assembly__base.html#a5b5b3c3f0201b416989eb3cc388c9ea2',1,'xt::xoptional_assembly_base::value() noexcept'],['../classxt_1_1xoptional__assembly__base.html#ad6761e5fda241e0eed545c4b545d9f1c',1,'xt::xoptional_assembly_base::value() const noexcept'],['../classxt_1_1xmasked__view.html#a888a7481ce4e40148e55a280dd2d721e',1,'xt::xmasked_view::value() noexcept'],['../classxt_1_1xmasked__view.html#a8c5a06d1b2b6f5aa3f08ac36dc6956f8',1,'xt::xmasked_view::value() const noexcept']]], + ['variance_2',['variance',['../group__red__functions.html#ga7001a4fe6acde5968aa526166659a5fa',1,'xt']]], + ['view_3',['view',['../group__xt__xfunctor__view.html',1,'Functor view'],['../namespacext.html#aedc2027ff309134dff5b0720699c5ffa',1,'xt::view(E &&e, S &&... slices)']]], + ['view_5ftemporary_5ftype_4',['view_temporary_type',['../structxt_1_1view__temporary__type.html',1,'xt']]], + ['view_5ftype_5',['view_type',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a121d95388e4bc47eb6bfad7312601dbf',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['visible_6',['visible',['../classxt_1_1xmasked__view.html#a420f33aa357210c322d5d34f06c6b81e',1,'xt::xmasked_view::visible() noexcept'],['../classxt_1_1xmasked__view.html#ae0e58b3d80d80523a86ee38b97550c68',1,'xt::xmasked_view::visible() const noexcept']]], + ['vsplit_7',['vsplit',['../group__xt__xmanipulation.html#gad25f3a38510304cf1e3489748a43812c',1,'xt']]], + ['vstack_8',['vstack',['../namespacext.html#a87a9e875318fc87aba41154dddee7c60',1,'xt']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 000000000..2952ce3e6 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['weibull_0',['weibull',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda17198fea0bd47a1170b57db7db9e6060',1,'xt']]], + ['where_1',['where',['../group__logical__operators.html#gabe2a59ff19cc1341bdaf0f833793cbd5',1,'xt::where(E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< detail::conditional_ternary, E1, E2, E3 >'],['../group__logical__operators.html#gad36802fb44a519f60e8c2d20ab5b6ef8',1,'xt::where(const T &condition)']]], + ['with_5fmemory_5faddress_5fconcept_2',['with_memory_address_concept',['../conceptxt_1_1with__memory__address__concept.html',1,'xt']]], + ['without_5fmemory_5faddress_5fconcept_3',['without_memory_address_concept',['../conceptxt_1_1without__memory__address__concept.html',1,'xt']]] +]; diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 000000000..e72708e43 --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,616 @@ +var searchData= +[ + ['xaccessible_0',['xaccessible',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20self_5ftype_20_3e_1',['xaccessible< self_type >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_2',['xaccessible< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_3',['xaccessible< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_4',['xaccessible< xchunked_array< chunk_storage > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_5',['xaccessible< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_6',['xaccessible< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_7',['xaccessible< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_8',['xaccessible< xfunctor_adaptor< F, CT > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_9',['xaccessible< xfunctor_view< F, CT > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_10',['xaccessible< xmasked_view< CTD, CTM > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_11',['xaccessible< xreducer< F, CT, X, O > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xscalar_3c_20ct_20_3e_20_3e_12',['xaccessible< xscalar< CT > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_13',['xaccessible< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_14',['xaccessible< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_15',['xaccessible< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_16',['xaccessible< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_17',['xaccessible< xview< CT, S... > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccumulator_5ffunctor_18',['xaccumulator_functor',['../structxt_1_1xaccumulator__functor.html',1,'xt']]], + ['xaccumulator_5ffunctor_3c_20accumulate_5ffunc_2c_20init_5ffunc_20_3e_19',['xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >',['../structxt_1_1xaccumulator__functor.html',1,'xt']]], + ['xall_20',['xall',['../classxt_1_1xall.html',1,'xt']]], + ['xall_3c_20typename_20e_3a_3asize_5ftype_20_3e_21',['xall< typename E::size_type >',['../classxt_1_1xall.html',1,'xt']]], + ['xall_5ftag_22',['xall_tag',['../structxt_1_1xall__tag.html',1,'xt']]], + ['xarray_23',['xarray',['../namespacext.html#a1e2f42d1adc56f72842f8dc4fc3ec7a1',1,'xt']]], + ['xarray_5fadaptor_24',['xarray_adaptor',['../classxt_1_1xarray__adaptor.html',1,'xt::xarray_adaptor< EC, L, SC, Tag >'],['../classxt_1_1xarray__adaptor.html#acc36cdfcb52803d3996a97569929eb72',1,'xt::xarray_adaptor::xarray_adaptor(storage_type &&storage)'],['../classxt_1_1xarray__adaptor.html#a7f70baf14dbcdfeffa82a4dc56d995e4',1,'xt::xarray_adaptor::xarray_adaptor(const storage_type &storage)'],['../classxt_1_1xarray__adaptor.html#a04e029bca1b4fbf0bb361898b93182fc',1,'xt::xarray_adaptor::xarray_adaptor(D &&storage, const shape_type &shape, layout_type l=L)'],['../classxt_1_1xarray__adaptor.html#a32fe6b670e042fff5d9a1f7c4d99c125',1,'xt::xarray_adaptor::xarray_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)']]], + ['xarray_5fadaptor_3c_20const_20flag_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_25',['xarray_adaptor< const flag_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20const_20value_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_26',['xarray_adaptor< const value_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_27',['xarray_adaptor< EC, L, SC, xoptional_expression_tag >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20flag_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_28',['xarray_adaptor< flag_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20value_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_29',['xarray_adaptor< value_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20xbuffer_5fadaptor_3c_20xtl_3a_3aclosure_5ftype_5ft_3c_20t_20_2a_20_3e_2c_20xt_3a_3ano_5fownership_2c_20detail_3a_3adefault_5fallocator_5ffor_5fptr_5ft_3c_20t_20_3e_20_3e_2c_20l_2c_20sc_20_3e_30',['xarray_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_5fbase_31',['xarray_adaptor_base',['../structxt_1_1extension_1_1xarray__adaptor__base.html',1,'xt::extension']]], + ['xarray_5fadaptor_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_32',['xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >',['../structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fadaptor_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xtensor_5fexpression_5ftag_20_3e_33',['xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >',['../structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fadaptor_5foptional_5ftraits_34',['xarray_adaptor_optional_traits',['../structxt_1_1extension_1_1xarray__adaptor__optional__traits.html',1,'xt::extension']]], + ['xarray_5fcontainer_35',['xarray_container',['../classxt_1_1xarray__container.html',1,'xt::xarray_container< EC, L, SC, Tag >'],['../classxt_1_1xarray__container.html#ae5c1e535231ddffdb7783d1445ffd66d',1,'xt::xarray_container::xarray_container()'],['../classxt_1_1xarray__container.html#a6b738f9e83ff453355414de037099d8c',1,'xt::xarray_container::xarray_container(const shape_type &shape, layout_type l=L)'],['../classxt_1_1xarray__container.html#a72aad798502aefff1285aa6f46941e9c',1,'xt::xarray_container::xarray_container(const shape_type &shape, const_reference value, layout_type l=L)'],['../classxt_1_1xarray__container.html#a0ca205f5f86d10d73b87b1d3ea7e6297',1,'xt::xarray_container::xarray_container(const shape_type &shape, const strides_type &strides)'],['../classxt_1_1xarray__container.html#a020df69d60ce91531bc3cf31af0b97ce',1,'xt::xarray_container::xarray_container(const shape_type &shape, const strides_type &strides, const_reference value)'],['../classxt_1_1xarray__container.html#a9e8b9a74e75fd76352d23346fa69a5c6',1,'xt::xarray_container::xarray_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)'],['../classxt_1_1xarray__container.html#a77e6553e8d27386c45f4fe7e80017e5c',1,'xt::xarray_container::xarray_container(const value_type &t)'],['../classxt_1_1xarray__container.html#a9cd19d110d8063589c6f6c08a44af6ad',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 1 > t)'],['../classxt_1_1xarray__container.html#a23f21da84072d9319fc8c826d98fb1de',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 2 > t)'],['../classxt_1_1xarray__container.html#aa7107f45d9ee3d9bb7a4a65f7c240edb',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 3 > t)'],['../classxt_1_1xarray__container.html#aaac4e823fd41ff9e9801a3cd8b1b5f6c',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 4 > t)'],['../classxt_1_1xarray__container.html#a44069c72b35f79263d7e24b6de2c4262',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 5 > t)'],['../classxt_1_1xarray__container.html#aad2ebb4b2fa3a2a3a33a8a57b6bfe60a',1,'xt::xarray_container::xarray_container(const xexpression< E > &e)']]], + ['xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_36',['xarray_container< EC, L, SC, xoptional_expression_tag >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20temporary_5fcontainer_5ft_3c_20storage_5ftype_20_3e_2c_20l_2c_20sc_2c_20tag_20_3e_37',['xarray_container< temporary_container_t< storage_type >, L, SC, Tag >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_38',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20r_20_3e_39',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< R >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20r_2c_20l_20_3e_40',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< R, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20std_3a_3adecay_5ft_3c_20typename_20xexpression_5ftype_3a_3avalue_5ftype_20_3e_2c_20xexpression_5ftype_3a_3astatic_5flayout_20_3e_41',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< std::decay_t< typename xexpression_type::value_type >, xexpression_type::static_layout >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20std_3a_3asize_5ft_20_3e_42',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< std::size_t >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20t_2c_20l_20_3e_43',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< T, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20typename_20f_3a_3avalue_5ftype_2c_20l_20_3e_44',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< typename F::value_type, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20typename_20xexpression_5ftype_3a_3avalue_5ftype_2c_20xexpression_5ftype_3a_3astatic_5flayout_20_3e_45',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< typename xexpression_type::value_type, xexpression_type::static_layout >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20vt_2c_20l_20_3e_46',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< VT, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20vt_2c_20xt_3a_3alayout_5ftype_3a_3adynamic_20_3e_47',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< VT, xt::layout_type::dynamic >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20xtl_3a_3axmasked_5fvalue_3c_20base_5fvalue_5ftype_2c_20flag_5ftype_20_3e_20_3e_48',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< xtl::xmasked_value< base_value_type, flag_type > >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20xtl_3a_3axoptional_5fvector_3c_20t_2c_20a_2c_20bc_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_2c_20xoptional_5fexpression_5ftag_20_3e_49',['xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_5fbase_50',['xarray_container_base',['../structxt_1_1extension_1_1xarray__container__base.html',1,'xt::extension']]], + ['xarray_5fcontainer_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_51',['xarray_container_base< EC, L, SC, xoptional_expression_tag >',['../structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fcontainer_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xtensor_5fexpression_5ftag_20_3e_52',['xarray_container_base< EC, L, SC, xtensor_expression_tag >',['../structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fcontainer_5foptional_5ftraits_53',['xarray_container_optional_traits',['../structxt_1_1extension_1_1xarray__container__optional__traits.html',1,'xt::extension']]], + ['xarray_5foptional_54',['xarray_optional',['../namespacext.html#ab500ef7fbb97df1f945655bd9869612c',1,'xt']]], + ['xarray_5foptional_5ftraits_55',['xarray_optional_traits',['../structxt_1_1extension_1_1xarray__optional__traits.html',1,'xt::extension']]], + ['xarray_5fpointer_56',['xarray_pointer',['../group__xt__xadapt.html#ga78db42d1cb84bbada6dfa0c2795562c1',1,'xt']]], + ['xassign_5ftraits_57',['xassign_traits',['../classxt_1_1xassign__traits.html',1,'xt']]], + ['xaxis_5fiterator_58',['xaxis_iterator',['../classxt_1_1xaxis__iterator.html',1,'xt::xaxis_iterator< CT >'],['../classxt_1_1xaxis__iterator.html#a27574105e56e37a1986b8cb5a141a9ea',1,'xt::xaxis_iterator::xaxis_iterator(CTA &&e, size_type axis)'],['../classxt_1_1xaxis__iterator.html#aacf91594c4a97e2811691d5678a95e4e',1,'xt::xaxis_iterator::xaxis_iterator(CTA &&e, size_type axis, size_type index, size_type offset)']]], + ['xaxis_5fslice_5fiterator_59',['xaxis_slice_iterator',['../classxt_1_1xaxis__slice__iterator.html',1,'xt::xaxis_slice_iterator< CT >'],['../classxt_1_1xaxis__slice__iterator.html#af741f5bf73967431bc0aba068da8fada',1,'xt::xaxis_slice_iterator::xaxis_slice_iterator(CTA &&e, size_type axis)'],['../classxt_1_1xaxis__slice__iterator.html#a0817357b924fd7c356a2a2f252fcb323',1,'xt::xaxis_slice_iterator::xaxis_slice_iterator(CTA &&e, size_type axis, size_type index, size_type offset)']]], + ['xblockwise_5freducer_60',['xblockwise_reducer',['../classxt_1_1xblockwise__reducer.html',1,'xt']]], + ['xbounded_5fiterator_61',['xbounded_iterator',['../classxt_1_1xbounded__iterator.html',1,'xt']]], + ['xbroadcast_62',['xbroadcast',['../classxt_1_1xbroadcast.html',1,'xt::xbroadcast< CT, X >'],['../classxt_1_1xbroadcast.html#aebbad01548cd2a4f5955c20f813b6314',1,'xt::xbroadcast::xbroadcast(CTA &&e, const S &s)'],['../classxt_1_1xbroadcast.html#ad96d515ec253f2745da1ccd7cbf44c97',1,'xt::xbroadcast::xbroadcast(CTA &&e, shape_type &&s)']]], + ['xbroadcast_3c_20e_2c_20x_20_3e_63',['xbroadcast< E, X >',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_3c_20xt_3a_3adetail_3a_3aflag_5fexpression_5ft_3c_20ct_20_3e_2c_20x_20_3e_64',['xbroadcast< xt::detail::flag_expression_t< CT >, X >',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_3c_20xt_3a_3adetail_3a_3avalue_5fexpression_5ft_3c_20ct_20_3e_2c_20x_20_3e_65',['xbroadcast< xt::detail::value_expression_t< CT >, X >',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_5fbase_66',['xbroadcast_base',['../structxt_1_1extension_1_1xbroadcast__base.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_67',['xbroadcast_base_impl',['../structxt_1_1extension_1_1xbroadcast__base__impl.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20x_20_3e_68',['xbroadcast_base_impl< xexpression_tag_t< CT >, CT, X >',['../structxt_1_1extension_1_1xbroadcast__base__impl.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_69',['xbroadcast_base_impl< xoptional_expression_tag, CT, X >',['../structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_70',['xbroadcast_base_impl< xtensor_expression_tag, CT, X >',['../structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xbroadcast_5fconcept_71',['xbroadcast_concept',['../conceptxt_1_1xbroadcast__concept.html',1,'xt']]], + ['xbroadcast_5foptional_72',['xbroadcast_optional',['../classxt_1_1extension_1_1xbroadcast__optional.html',1,'xt::extension']]], + ['xbuffer_5fadaptor_73',['xbuffer_adaptor',['../classxt_1_1xbuffer__adaptor.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_74',['xbuffer_adaptor_base',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20self_5ftype_20_3e_75',['xbuffer_adaptor_base< self_type >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_76',['xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_77',['xbuffer_adaptor_base< xiterator_adaptor< I, CI > >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_78',['xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xchunk_5fiterator_79',['xchunk_iterator',['../classxt_1_1xchunk__iterator.html',1,'xt']]], + ['xchunk_5fiterator_3c_20const_20self_5ftype_20_3e_80',['xchunk_iterator< const self_type >',['../classxt_1_1xchunk__iterator.html',1,'xt']]], + ['xchunk_5fiterator_3c_20self_5ftype_20_3e_81',['xchunk_iterator< self_type >',['../classxt_1_1xchunk__iterator.html',1,'xt']]], + ['xchunked_5farray_82',['xchunked_array',['../classxt_1_1xchunked__array.html',1,'xt']]], + ['xchunked_5fassigner_83',['xchunked_assigner',['../classxt_1_1xchunked__assigner.html',1,'xt']]], + ['xchunked_5fsemantic_84',['xchunked_semantic',['../classxt_1_1xchunked__semantic.html',1,'xt']]], + ['xchunked_5fsemantic_3c_20self_5ftype_20_3e_85',['xchunked_semantic< self_type >',['../classxt_1_1xchunked__semantic.html',1,'xt']]], + ['xchunked_5fsemantic_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_86',['xchunked_semantic< xchunked_array< chunk_storage > >',['../classxt_1_1xchunked__semantic.html',1,'xt']]], + ['xchunked_5fview_87',['xchunked_view',['../classxt_1_1xchunked__view.html',1,'xt']]], + ['xchunked_5fview_3c_20const_20std_3a_3adecay_5ft_3c_20ct_20_3e_20_26_20_3e_88',['xchunked_view< const std::decay_t< CT > & >',['../classxt_1_1xchunked__view.html',1,'xt']]], + ['xclosure_89',['xclosure',['../structxt_1_1xclosure.html',1,'xt']]], + ['xclosure_3c_20e_2c_20disable_5fxexpression_3c_20std_3a_3adecay_5ft_3c_20e_20_3e_20_3e_20_3e_90',['xclosure< E, disable_xexpression< std::decay_t< E > > >',['../structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html',1,'xt']]], + ['xclosure_3c_20xshared_5fexpression_3c_20e_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_20true_20_3e_20_3e_91',['xclosure< xshared_expression< E >, std::enable_if_t< true > >',['../structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html',1,'xt']]], + ['xconst_5faccessible_92',['xconst_accessible',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20self_5ftype_20_3e_93',['xconst_accessible< self_type >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_94',['xconst_accessible< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_95',['xconst_accessible< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_96',['xconst_accessible< xbroadcast< CT, X > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_97',['xconst_accessible< xchunked_array< chunk_storage > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_98',['xconst_accessible< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_99',['xconst_accessible< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_100',['xconst_accessible< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_101',['xconst_accessible< xfunction< F, CT... > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_102',['xconst_accessible< xfunctor_adaptor< F, CT > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_103',['xconst_accessible< xfunctor_view< F, CT > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_104',['xconst_accessible< xgenerator< F, R, S > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_105',['xconst_accessible< xmasked_view< CTD, CTM > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_106',['xconst_accessible< xreducer< F, CT, X, O > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_107',['xconst_accessible< xrepeat< CT, R > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xscalar_3c_20ct_20_3e_20_3e_108',['xconst_accessible< xscalar< CT > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_109',['xconst_accessible< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_110',['xconst_accessible< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_111',['xconst_accessible< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_112',['xconst_accessible< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_113',['xconst_accessible< xview< CT, S... > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5fiterable_114',['xconst_iterable',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20self_5ftype_20_3e_115',['xconst_iterable< self_type >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_116',['xconst_iterable< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_117',['xconst_iterable< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_118',['xconst_iterable< xbroadcast< CT, X > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_119',['xconst_iterable< xchunked_array< chunk_storage > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_120',['xconst_iterable< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_121',['xconst_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_122',['xconst_iterable< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_123',['xconst_iterable< xfunction< F, CT... > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_124',['xconst_iterable< xgenerator< F, R, S > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_125',['xconst_iterable< xindex_view< CT, I > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_126',['xconst_iterable< xoptional_assembly< VE, FE > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_127',['xconst_iterable< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_128',['xconst_iterable< xreducer< F, CT, X, O > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_129',['xconst_iterable< xrepeat< CT, R > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xscalar_3c_20ct_20_3e_20_3e_130',['xconst_iterable< xscalar< CT > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_131',['xconst_iterable< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_132',['xconst_iterable< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_133',['xconst_iterable< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xcontainer_134',['xcontainer',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20self_5ftype_20_3e_135',['xcontainer< self_type >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_136',['xcontainer< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_137',['xcontainer< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_138',['xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_139',['xcontainer< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_140',['xcontainer< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_141',['xcontainer< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_142',['xcontainer< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_143',['xcontainer_inner_types',['../structxt_1_1xcontainer__inner__types.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20self_5ftype_20_3e_144',['xcontainer_inner_types< self_type >',['../structxt_1_1xcontainer__inner__types.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_145',['xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_146',['xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_147',['xcontainer_inner_types< xbroadcast< CT, X > >',['../structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_148',['xcontainer_inner_types< xchunked_array< chunk_storage > >',['../structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_149',['xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >',['../structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_150',['xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_151',['xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_152',['xcontainer_inner_types< xfunction< F, CT... > >',['../structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_153',['xcontainer_inner_types< xfunctor_adaptor< F, CT > >',['../structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_154',['xcontainer_inner_types< xfunctor_view< F, CT > >',['../structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xgenerator_3c_20c_2c_20r_2c_20s_20_3e_20_3e_155',['xcontainer_inner_types< xgenerator< C, R, S > >',['../structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_156',['xcontainer_inner_types< xindex_view< CT, I > >',['../structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_157',['xcontainer_inner_types< xmasked_view< CTD, CTM > >',['../structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_158',['xcontainer_inner_types< xoptional_assembly< VE, FE > >',['../structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_159',['xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >',['../structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_160',['xcontainer_inner_types< xreducer< F, CT, X, O > >',['../structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xscalar_3c_20ct_20_3e_20_3e_161',['xcontainer_inner_types< xscalar< CT > >',['../structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_162',['xcontainer_inner_types< xstrided_view< CT, S, L, FST > >',['../structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_163',['xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_164',['xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_165',['xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_166',['xcontainer_inner_types< xview< CT, S... > >',['../structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_167',['xcontainer_iterable_types',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_168',['xcontainer_iterable_types< xarray_adaptor< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_169',['xcontainer_iterable_types< xarray_container< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_170',['xcontainer_iterable_types< xfixed_adaptor< EC, S, L, SH, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_171',['xcontainer_iterable_types< xfixed_container< ET, S, L, SH, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_172',['xcontainer_iterable_types< xtensor_adaptor< EC, N, L, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_173',['xcontainer_iterable_types< xtensor_container< EC, N, L, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_174',['xcontainer_iterable_types< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5foptional_5fbase_175',['xcontainer_optional_base',['../classxt_1_1extension_1_1xcontainer__optional__base.html',1,'xt::extension']]], + ['xcontainer_5foptional_5fbase_3c_20traits_20_3e_176',['xcontainer_optional_base< traits >',['../classxt_1_1extension_1_1xcontainer__optional__base.html',1,'xt::extension']]], + ['xcontainer_5fsemantic_177',['xcontainer_semantic',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20self_5ftype_20_3e_178',['xcontainer_semantic< self_type >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_179',['xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_180',['xcontainer_semantic< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_181',['xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_182',['xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_183',['xcontainer_semantic< xfunctor_adaptor< F, CT > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_184',['xcontainer_semantic< xoptional_assembly< VE, FE > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_185',['xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_186',['xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_187',['xcontainer_semantic< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontiguous_5fiterable_188',['xcontiguous_iterable',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_189',['xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_190',['xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_191',['xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_192',['xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_193',['xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_194',['xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_195',['xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcsv_5fconfig_196',['xcsv_config',['../structxt_1_1xcsv__config.html',1,'xt']]], + ['xdrop_5fslice_197',['xdrop_slice',['../classxt_1_1xdrop__slice.html',1,'xt']]], + ['xdummy_5fiterator_198',['xdummy_iterator',['../classxt_1_1xdummy__iterator.html',1,'xt']]], + ['xdummy_5fiterator_3c_20false_2c_20ct_20_3e_199',['xdummy_iterator< false, CT >',['../classxt_1_1xdummy__iterator.html',1,'xt']]], + ['xdummy_5fiterator_3c_20true_2c_20ct_20_3e_200',['xdummy_iterator< true, CT >',['../classxt_1_1xdummy__iterator.html',1,'xt']]], + ['xdynamic_5fview_201',['xdynamic_view',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_202',['xdynamic_view< CT, S, L, FST >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20e_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20e_20_3e_20_3e_203',['xdynamic_view< E, S, L, typename FST::template rebind_t< E > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20ucft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucft_20_3e_20_3e_204',['xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20ucvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucvt_20_3e_20_3e_205',['xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20uft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uft_20_3e_20_3e_206',['xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20uvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uvt_20_3e_20_3e_207',['xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_5fbase_208',['xdynamic_view_base',['../structxt_1_1extension_1_1xdynamic__view__base.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_209',['xdynamic_view_base_impl',['../structxt_1_1extension_1_1xdynamic__view__base__impl.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_210',['xdynamic_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >',['../structxt_1_1extension_1_1xdynamic__view__base__impl.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_211',['xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_212',['xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xdynamic_5fview_5foptional_213',['xdynamic_view_optional',['../classxt_1_1extension_1_1xdynamic__view__optional.html',1,'xt::extension']]], + ['xellipsis_5ftag_214',['xellipsis_tag',['../structxt_1_1xellipsis__tag.html',1,'xt']]], + ['xexpression_215',['xexpression',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_216',['xexpression< xbroadcast< CT, X > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_217',['xexpression< xfunction< F, CT... > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_218',['xexpression< xgenerator< F, R, S > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_219',['xexpression< xreducer< F, CT, X, O > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_220',['xexpression< xrepeat< CT, R > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xscalar_3c_20ct_20_3e_20_3e_221',['xexpression< xscalar< CT > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xshared_5fexpression_3c_20e_20_3e_20_3e_222',['xexpression< xshared_expression< E > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_5fassigner_223',['xexpression_assigner',['../classxt_1_1xexpression__assigner.html',1,'xt']]], + ['xexpression_5fassigner_5fbase_224',['xexpression_assigner_base',['../classxt_1_1xexpression__assigner__base.html',1,'xt']]], + ['xexpression_5fassigner_5fbase_3c_20xoptional_5fexpression_5ftag_20_3e_225',['xexpression_assigner_base< xoptional_expression_tag >',['../classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html',1,'xt']]], + ['xexpression_5fassigner_5fbase_3c_20xtensor_5fexpression_5ftag_20_3e_226',['xexpression_assigner_base< xtensor_expression_tag >',['../classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html',1,'xt']]], + ['xexpression_5fconcept_227',['xexpression_concept',['../conceptxt_1_1xexpression__concept.html',1,'xt']]], + ['xexpression_5fholder_228',['xexpression_holder',['../classxt_1_1xexpression__holder.html',1,'xt']]], + ['xexpression_5ftag_229',['xexpression_tag',['../structxt_1_1xexpression__tag.html',1,'xt']]], + ['xfiltration_230',['xfiltration',['../classxt_1_1xfiltration.html',1,'xt::xfiltration< ECT, CCT >'],['../classxt_1_1xfiltration.html#a70544dbbc899cd02b70dc5c473bffd02',1,'xt::xfiltration::xfiltration()']]], + ['xfixed_5fadaptor_231',['xfixed_adaptor',['../classxt_1_1xfixed__adaptor.html',1,'xt::xfixed_adaptor< EC, S, L, SH, Tag >'],['../classxt_1_1xfixed__adaptor.html#a4d68ba3b03788fbe1b70a7d6dce4040c',1,'xt::xfixed_adaptor::xfixed_adaptor(storage_type &&data)'],['../classxt_1_1xfixed__adaptor.html#adb3ce51eb417f3407c5b95d271c3f39c',1,'xt::xfixed_adaptor::xfixed_adaptor(const storage_type &data)'],['../classxt_1_1xfixed__adaptor.html#ab8855d521c67f4885638ab9d9108b36b',1,'xt::xfixed_adaptor::xfixed_adaptor(D &&data)']]], + ['xfixed_5fcontainer_232',['xfixed_container',['../classxt_1_1xfixed__container.html',1,'xt::xfixed_container< ET, S, L, SH, Tag >'],['../classxt_1_1xfixed__container.html#a004eaea5e4f5ef36e227b2673c11b4cd',1,'xt::xfixed_container::xfixed_container(const inner_shape_type &shape, layout_type l=L)'],['../classxt_1_1xfixed__container.html#a41af8b86cc7d6df8d5713c29e404d4ab',1,'xt::xfixed_container::xfixed_container(const inner_shape_type &shape, value_type v, layout_type l=L)'],['../classxt_1_1xfixed__container.html#a5b08206bb93d07dc573823993aba8c67',1,'xt::xfixed_container::xfixed_container(nested_initializer_list_t< value_type, N > t)'],['../classxt_1_1xfixed__container.html#a0ddc275300f31caf95233120272df975',1,'xt::xfixed_container::xfixed_container(const xexpression< E > &e)']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_233',['xfixed_container< T, FSH, L, Sharable >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20r_2c_20xshape_3c_20fixed_5fcompute_5fsize_3c_20xshape_3c_20i_2e_2e_2e_20_3e_20_3e_3a_3avalue_20_3e_2c_20l_20_3e_234',['xfixed_container< T, FSH, L, Sharable >< R, xshape< fixed_compute_size< xshape< I... > >::value >, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20r_2c_20xshape_3c_20i_2e_2e_2e_20_3e_2c_20l_20_3e_235',['xfixed_container< T, FSH, L, Sharable >< R, xshape< I... >, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20vt_2c_20s_2c_20l_20_3e_236',['xfixed_container< T, FSH, L, Sharable >< VT, S, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20vt_2c_20xshape_3c_20fixed_5fcompute_5fsize_3c_20s_20_3e_3a_3avalue_20_3e_2c_20l_20_3e_237',['xfixed_container< T, FSH, L, Sharable >< VT, xshape< fixed_compute_size< S >::value >, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20typename_20storage_5ftype_3a_3avalue_5ftype_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_238',['xfixed_container< typename storage_type::value_type, S, L, SH, Tag >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfunction_239',['xfunction',['../classxt_1_1xfunction.html',1,'xt::xfunction< F, CT >'],['../classxt_1_1xfunction.html#a63fa0bf1c338ba8ff119d97dc08de3b8',1,'xt::xfunction::xfunction(Func &&f, CTA &&... e) noexcept'],['../classxt_1_1xfunction.html#a08a95dc45143b002b300a6634774940d',1,'xt::xfunction::xfunction(xfunction< FA, CTA... > xf) noexcept']]], + ['xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_240',['xfunction< F, CT... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20f_2c_20e_2e_2e_2e_20_3e_241',['xfunction< F, E... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20f_2c_20xclosure_5ft_3c_20e_20_3e_2e_2e_2e_20_3e_242',['xfunction< F, xclosure_t< E >... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20flag_5ffunctor_2c_20xt_3a_3adetail_3a_3aflag_5fexpression_5ft_3c_20ct_20_3e_2e_2e_2e_20_3e_243',['xfunction< flag_functor, xt::detail::flag_expression_t< CT >... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20value_5ffunctor_2c_20xt_3a_3adetail_3a_3avalue_5fexpression_5ft_3c_20ct_20_3e_2e_2e_2e_20_3e_244',['xfunction< value_functor, xt::detail::value_expression_t< CT >... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_5fbase_245',['xfunction_base',['../structxt_1_1extension_1_1xfunction__base.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_246',['xfunction_base_impl',['../structxt_1_1extension_1_1xfunction__base__impl.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_2e_2e_2e_20_3e_2c_20f_2c_20ct_2e_2e_2e_20_3e_247',['xfunction_base_impl< xexpression_tag_t< CT... >, F, CT... >',['../structxt_1_1extension_1_1xfunction__base__impl.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20ct_2e_2e_2e_20_3e_248',['xfunction_base_impl< xoptional_expression_tag, F, CT... >',['../structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20ct_2e_2e_2e_20_3e_249',['xfunction_base_impl< xtensor_expression_tag, F, CT... >',['../structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html',1,'xt::extension']]], + ['xfunction_5fcache_250',['xfunction_cache',['../structxt_1_1xfunction__cache.html',1,'xt']]], + ['xfunction_5fcache_3c_20detail_3a_3apromote_5findex_3c_20typename_20std_3a_3adecay_5ft_3c_20ct_20_3e_3a_3ashape_5ftype_2e_2e_2e_20_3e_20_3e_251',['xfunction_cache< detail::promote_index< typename std::decay_t< CT >::shape_type... > >',['../structxt_1_1xfunction__cache.html',1,'xt']]], + ['xfunction_5fiterator_252',['xfunction_iterator',['../classxt_1_1xfunction__iterator.html',1,'xt']]], + ['xfunction_5fiterator_3c_20f_2c_20ct_2e_2e_2e_20_3e_253',['xfunction_iterator< F, CT... >',['../classxt_1_1xfunction__iterator.html',1,'xt']]], + ['xfunction_5foptional_5fbase_254',['xfunction_optional_base',['../classxt_1_1extension_1_1xfunction__optional__base.html',1,'xt::extension']]], + ['xfunction_5foptional_5fbase_3c_20f_2c_20ct_2e_2e_2e_20_3e_255',['xfunction_optional_base< F, CT... >',['../classxt_1_1extension_1_1xfunction__optional__base.html',1,'xt::extension']]], + ['xfunction_5fstepper_256',['xfunction_stepper',['../classxt_1_1xfunction__stepper.html',1,'xt']]], + ['xfunction_5fstepper_3c_20f_2c_20ct_2e_2e_2e_20_3e_257',['xfunction_stepper< F, CT... >',['../classxt_1_1xfunction__stepper.html',1,'xt']]], + ['xfunctor_5fadaptor_258',['xfunctor_adaptor',['../classxt_1_1xfunctor__adaptor.html',1,'xt']]], + ['xfunctor_5fadaptor_3c_20detail_3a_3aoffset_5fforwarder_3c_20m_2c_20i_20_3e_2c_20ct_20_3e_259',['xfunctor_adaptor< detail::offset_forwarder< M, I >, CT >',['../classxt_1_1xfunctor__adaptor.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_260',['xfunctor_applier_base',['../classxt_1_1xfunctor__applier__base.html',1,'xt::xfunctor_applier_base< D >'],['../classxt_1_1xfunctor__applier__base.html#a41aab520408c7c729ae637b19d09be2b',1,'xt::xfunctor_applier_base::xfunctor_applier_base(undecay_expression) noexcept'],['../classxt_1_1xfunctor__applier__base.html#ac3b9ef5e95e61582edaff797f2ec7e1b',1,'xt::xfunctor_applier_base::xfunctor_applier_base(Func &&, E &&) noexcept']]], + ['xfunctor_5fapplier_5fbase_3c_20self_5ftype_20_3e_261',['xfunctor_applier_base< self_type >',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_262',['xfunctor_applier_base< xfunctor_adaptor< F, CT > >',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_263',['xfunctor_applier_base< xfunctor_view< F, CT > >',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fiterator_264',['xfunctor_iterator',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5fiterator_20_3e_265',['xfunctor_iterator< const functor_type, typename xexpression_type::const_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5flinear_5fiterator_20_3e_266',['xfunctor_iterator< const functor_type, typename xexpression_type::const_linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5freverse_5fiterator_20_3e_267',['xfunctor_iterator< const functor_type, typename xexpression_type::const_reverse_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5freverse_5flinear_5fiterator_20_3e_268',['xfunctor_iterator< const functor_type, typename xexpression_type::const_reverse_linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20const_5flayout_5fiterator_3c_20l_20_3e_20_3e_269',['xfunctor_iterator< const functor_type, typename xexpression_type::template const_layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20const_5freverse_5flayout_5fiterator_3c_20l_20_3e_20_3e_270',['xfunctor_iterator< const functor_type, typename xexpression_type::template const_reverse_layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aiterator_20_3e_271',['xfunctor_iterator< functor_type, typename xexpression_type::iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3alinear_5fiterator_20_3e_272',['xfunctor_iterator< functor_type, typename xexpression_type::linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3areverse_5fiterator_20_3e_273',['xfunctor_iterator< functor_type, typename xexpression_type::reverse_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3areverse_5flinear_5fiterator_20_3e_274',['xfunctor_iterator< functor_type, typename xexpression_type::reverse_linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20const_5freverse_5fbroadcast_5fiterator_3c_20s_2c_20l_20_3e_20_3e_275',['xfunctor_iterator< functor_type, typename xexpression_type::template const_reverse_broadcast_iterator< S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20layout_5fiterator_3c_20l_20_3e_20_3e_276',['xfunctor_iterator< functor_type, typename xexpression_type::template layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20reverse_5fbroadcast_5fiterator_3c_20s_2c_20l_20_3e_20_3e_277',['xfunctor_iterator< functor_type, typename xexpression_type::template reverse_broadcast_iterator< S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20reverse_5flayout_5fiterator_3c_20l_20_3e_20_3e_278',['xfunctor_iterator< functor_type, typename xexpression_type::template reverse_layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20xiterator_3c_20typename_20xexpression_5ftype_3a_3aconst_5fstepper_2c_20s_2c_20l_20_3e_20_3e_279',['xfunctor_iterator< functor_type, xiterator< typename xexpression_type::const_stepper, S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20xiterator_3c_20typename_20xexpression_5ftype_3a_3astepper_2c_20s_2c_20l_20_3e_20_3e_280',['xfunctor_iterator< functor_type, xiterator< typename xexpression_type::stepper, S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fstepper_281',['xfunctor_stepper',['../classxt_1_1xfunctor__stepper.html',1,'xt']]], + ['xfunctor_5fstepper_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5fstepper_20_3e_282',['xfunctor_stepper< const functor_type, typename xexpression_type::const_stepper >',['../classxt_1_1xfunctor__stepper.html',1,'xt']]], + ['xfunctor_5fstepper_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3astepper_20_3e_283',['xfunctor_stepper< functor_type, typename xexpression_type::stepper >',['../classxt_1_1xfunctor__stepper.html',1,'xt']]], + ['xfunctor_5fview_284',['xfunctor_view',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20detail_3a_3aoffset_5fforwarder_3c_20m_2c_20i_20_3e_2c_20ct_20_3e_285',['xfunctor_view< detail::offset_forwarder< M, I >, CT >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20f_2c_20e_20_3e_286',['xfunctor_view< F, E >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20f_2c_20ucvt_20_3e_287',['xfunctor_view< F, ucvt >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20f_2c_20uvt_20_3e_288',['xfunctor_view< F, uvt >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_5fbase_289',['xfunctor_view_base',['../structxt_1_1extension_1_1xfunctor__view__base.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_290',['xfunctor_view_base_impl',['../structxt_1_1extension_1_1xfunctor__view__base__impl.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20f_2c_20ct_20_3e_291',['xfunctor_view_base_impl< xexpression_tag_t< CT >, F, CT >',['../structxt_1_1extension_1_1xfunctor__view__base__impl.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20ct_20_3e_292',['xfunctor_view_base_impl< xoptional_expression_tag, F, CT >',['../structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20ct_20_3e_293',['xfunctor_view_base_impl< xtensor_expression_tag, F, CT >',['../structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xfunctor_5fview_5foptional_294',['xfunctor_view_optional',['../classxt_1_1extension_1_1xfunctor__view__optional.html',1,'xt::extension']]], + ['xfunctor_5fview_5ftemporary_5ftype_295',['xfunctor_view_temporary_type',['../structxt_1_1xfunctor__view__temporary__type.html',1,'xt']]], + ['xgenerator_296',['xgenerator',['../classxt_1_1xgenerator.html',1,'xt::xgenerator< F, R, S >'],['../classxt_1_1xgenerator.html#a6f07eda985bc0f0e510a44afa3b8899d',1,'xt::xgenerator::xgenerator()']]], + ['xgenerator_3c_20flag_5ffunctor_2c_20flag_5fclosure_2c_20s_20_3e_297',['xgenerator< flag_functor, flag_closure, S >',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_3c_20of_2c_20or_2c_20s_20_3e_298',['xgenerator< OF, OR, S >',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_3c_20value_5ffunctor_2c_20value_5fclosure_2c_20s_20_3e_299',['xgenerator< value_functor, value_closure, S >',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_5fbase_300',['xgenerator_base',['../structxt_1_1extension_1_1xgenerator__base.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_301',['xgenerator_base_impl',['../structxt_1_1extension_1_1xgenerator__base__impl.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20r_20_3e_2c_20f_2c_20r_2c_20s_20_3e_302',['xgenerator_base_impl< xexpression_tag_t< R >, F, R, S >',['../structxt_1_1extension_1_1xgenerator__base__impl.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20r_2c_20s_20_3e_303',['xgenerator_base_impl< xoptional_expression_tag, F, R, S >',['../structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20r_2c_20s_20_3e_304',['xgenerator_base_impl< xtensor_expression_tag, F, R, S >',['../structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html',1,'xt::extension']]], + ['xgenerator_5fconcept_305',['xgenerator_concept',['../conceptxt_1_1xgenerator__concept.html',1,'xt']]], + ['xgenerator_5foptional_306',['xgenerator_optional',['../classxt_1_1extension_1_1xgenerator__optional.html',1,'xt::extension']]], + ['xindex_5fview_307',['xindex_view',['../classxt_1_1xindex__view.html',1,'xt::xindex_view< CT, I >'],['../classxt_1_1xindex__view.html#a0306275ff45341e84fe63836010c7ad5',1,'xt::xindex_view::xindex_view()']]], + ['xindex_5fview_3c_20e_2c_20i_20_3e_308',['xindex_view< E, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20ucft_2c_20i_20_3e_309',['xindex_view< ucft, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20ucvt_2c_20i_20_3e_310',['xindex_view< ucvt, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20uft_2c_20i_20_3e_311',['xindex_view< uft, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20uvt_2c_20i_20_3e_312',['xindex_view< uvt, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_5fbase_313',['xindex_view_base',['../structxt_1_1extension_1_1xindex__view__base.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_314',['xindex_view_base_impl',['../structxt_1_1extension_1_1xindex__view__base__impl.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20i_20_3e_315',['xindex_view_base_impl< xexpression_tag_t< CT >, CT, I >',['../structxt_1_1extension_1_1xindex__view__base__impl.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20i_20_3e_316',['xindex_view_base_impl< xoptional_expression_tag, CT, I >',['../structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20i_20_3e_317',['xindex_view_base_impl< xtensor_expression_tag, CT, I >',['../structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html',1,'xt::extension']]], + ['xindex_5fview_5foptional_318',['xindex_view_optional',['../classxt_1_1extension_1_1xindex__view__optional.html',1,'xt::extension']]], + ['xindexed_5fstepper_319',['xindexed_stepper',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20const_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_2c_20true_20_3e_320',['xindexed_stepper< const xdynamic_view< CT, S, L, FST >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_2c_20false_20_3e_321',['xindexed_stepper< xchunked_array< chunk_storage >, false >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_2c_20true_20_3e_322',['xindexed_stepper< xchunked_array< chunk_storage >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_2c_20false_20_3e_323',['xindexed_stepper< xdynamic_view< CT, S, L, FST >, false >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xgenerator_3c_20c_2c_20r_2c_20s_20_3e_2c_20true_20_3e_324',['xindexed_stepper< xgenerator< C, R, S >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_2c_20false_20_3e_325',['xindexed_stepper< xindex_view< CT, I >, false >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_2c_20true_20_3e_326',['xindexed_stepper< xindex_view< CT, I >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xinitial_327',['xinitial',['../structxt_1_1xinitial.html',1,'xt']]], + ['xiterable_328',['xiterable',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20self_5ftype_20_3e_329',['xiterable< self_type >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_330',['xiterable< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_331',['xiterable< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_332',['xiterable< xchunked_array< chunk_storage > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_333',['xiterable< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_334',['xiterable< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_335',['xiterable< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_336',['xiterable< xindex_view< CT, I > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_337',['xiterable< xmasked_view< CTD, CTM > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_338',['xiterable< xoptional_assembly< VE, FE > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_339',['xiterable< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_340',['xiterable< xrepeat< CT, R > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xscalar_3c_20ct_20_3e_20_3e_341',['xiterable< xscalar< CT > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_342',['xiterable< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_343',['xiterable< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_344',['xiterable< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_5finner_5ftypes_345',['xiterable_inner_types',['../structxt_1_1xiterable__inner__types.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_346',['xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_347',['xiterable_inner_types< xarray_container< EC, L, SC, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_348',['xiterable_inner_types< xbroadcast< CT, X > >',['../structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_349',['xiterable_inner_types< xchunked_array< chunk_storage > >',['../structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_350',['xiterable_inner_types< xdynamic_view< CT, S, L, FST > >',['../structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_351',['xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_352',['xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_353',['xiterable_inner_types< xfunction< F, CT... > >',['../structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xgenerator_3c_20c_2c_20r_2c_20s_20_3e_20_3e_354',['xiterable_inner_types< xgenerator< C, R, S > >',['../structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_355',['xiterable_inner_types< xindex_view< CT, I > >',['../structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_356',['xiterable_inner_types< xmasked_view< CTD, CTM > >',['../structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_357',['xiterable_inner_types< xoptional_assembly< VE, FE > >',['../structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_358',['xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >',['../structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_359',['xiterable_inner_types< xreducer< F, CT, X, O > >',['../structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_360',['xiterable_inner_types< xrepeat< CT, R > >',['../structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xscalar_3c_20ct_20_3e_20_3e_361',['xiterable_inner_types< xscalar< CT > >',['../structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_362',['xiterable_inner_types< xstrided_view< CT, S, L, FST > >',['../structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_363',['xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_364',['xiterable_inner_types< xtensor_container< EC, N, L, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_365',['xiterable_inner_types< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_366',['xiterable_inner_types< xview< CT, S... > >',['../structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html',1,'xt']]], + ['xiterator_367',['xiterator',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20const_5fstepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_368',['xiterator< const_stepper, inner_shape_type *, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20const_5fstepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_3c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_369',['xiterator< const_stepper, inner_shape_type *, L >< ::xt::layout_type::row_major >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20const_5fstepper_2c_20s_2c_20l_20_3e_370',['xiterator< const_stepper, S, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20stepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_371',['xiterator< stepper, inner_shape_type *, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20stepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_3c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_372',['xiterator< stepper, inner_shape_type *, L >< ::xt::layout_type::row_major >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20stepper_2c_20s_2c_20l_20_3e_373',['xiterator< stepper, S, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_5fadaptor_374',['xiterator_adaptor',['../classxt_1_1xiterator__adaptor.html',1,'xt']]], + ['xiterator_5fadaptor_3c_20iterator_2c_20const_5fiterator_20_3e_375',['xiterator_adaptor< iterator, const_iterator >',['../classxt_1_1xiterator__adaptor.html',1,'xt']]], + ['xiterator_5fowner_5fadaptor_376',['xiterator_owner_adaptor',['../classxt_1_1xiterator__owner__adaptor.html',1,'xt']]], + ['xkeep_5fslice_377',['xkeep_slice',['../classxt_1_1xkeep__slice.html',1,'xt']]], + ['xmasked_5fvalue_378',['xmasked_value',['../classxt_1_1xmasked__value.html',1,'xt']]], + ['xmasked_5fview_379',['xmasked_view',['../classxt_1_1xmasked__view.html',1,'xt::xmasked_view< CTD, CTM >'],['../classxt_1_1xmasked__view.html#a9c3d8a13f687279e628800050a8d4048',1,'xt::xmasked_view::xmasked_view()']]], + ['xmasked_5fview_5fstepper_380',['xmasked_view_stepper',['../classxt_1_1xmasked__view__stepper.html',1,'xt']]], + ['xmasked_5fview_5fstepper_3c_20masked_5fview_5ftype_2c_20false_20_3e_381',['xmasked_view_stepper< masked_view_type, false >',['../classxt_1_1xmasked__view__stepper.html',1,'xt']]], + ['xmasked_5fview_5fstepper_3c_20masked_5fview_5ftype_2c_20true_20_3e_382',['xmasked_view_stepper< masked_view_type, true >',['../classxt_1_1xmasked__view__stepper.html',1,'xt']]], + ['xmultiindex_5fiterator_383',['xmultiindex_iterator',['../classxt_1_1xmultiindex__iterator.html',1,'xt']]], + ['xnewaxis_384',['xnewaxis',['../classxt_1_1xnewaxis.html',1,'xt']]], + ['xnewaxis_3c_20typename_20e_3a_3asize_5ftype_20_3e_385',['xnewaxis< typename E::size_type >',['../classxt_1_1xnewaxis.html',1,'xt']]], + ['xnewaxis_5ftag_386',['xnewaxis_tag',['../structxt_1_1xnewaxis__tag.html',1,'xt']]], + ['xoptional_5fassembly_387',['xoptional_assembly',['../classxt_1_1xoptional__assembly.html',1,'xt::xoptional_assembly< VE, FE >'],['../classxt_1_1xoptional__assembly.html#a13b42b1a2ff43f41688d9e9dfecb70ab',1,'xt::xoptional_assembly::xoptional_assembly()'],['../classxt_1_1xoptional__assembly.html#a9148277e3915fdc930d875a7ad4b1156',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, layout_type l=base_type::static_layout)'],['../classxt_1_1xoptional__assembly.html#af86f39ed88264ad627dcc09454b02d3e',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, const value_type &value, layout_type l=base_type::static_layout)'],['../classxt_1_1xoptional__assembly.html#af53e6578e2720b3de87db901d4ef63c0',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, const strides_type &strides)'],['../classxt_1_1xoptional__assembly.html#a91d71b9f5a1c0df8f7f10568a667149c',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, const strides_type &strides, const value_type &value)'],['../classxt_1_1xoptional__assembly.html#a3ded488b5944690be387afa5e35165fb',1,'xt::xoptional_assembly::xoptional_assembly(const VE &ve)'],['../classxt_1_1xoptional__assembly.html#aa525cc23b8a082ca1caf3fafcd321c88',1,'xt::xoptional_assembly::xoptional_assembly(VE &&ve)'],['../classxt_1_1xoptional__assembly.html#a18157a685aad00bd30890b9fe0484628',1,'xt::xoptional_assembly::xoptional_assembly(OVE &&ove, OFE &&ofe)'],['../classxt_1_1xoptional__assembly.html#ae5c0585bcb1ec14efb01b993aa17c9d7',1,'xt::xoptional_assembly::xoptional_assembly(const value_type &value)'],['../classxt_1_1xoptional__assembly.html#a2454d878267c2ac27179ef2ca365d48e',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 1 > t)'],['../classxt_1_1xoptional__assembly.html#ae13345d56e1c0e1b2a21290a66c8aa46',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 2 > t)'],['../classxt_1_1xoptional__assembly.html#a61dd51f2bf58adb62310d475253fc5b5',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 3 > t)'],['../classxt_1_1xoptional__assembly.html#ace216a4aee450e4bd52f50b791091d99',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 4 > t)'],['../classxt_1_1xoptional__assembly.html#a16611b26c4241fdbbc7e6afcc8a09780',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 5 > t)'],['../classxt_1_1xoptional__assembly.html#a251ff352299adb4dd685ae71755c112f',1,'xt::xoptional_assembly::xoptional_assembly(const xexpression< E > &e)']]], + ['xoptional_5fassembly_3c_20raw_5fvalue_5fexpression_2c_20raw_5fflag_5fexpression_20_3e_388',['xoptional_assembly< raw_value_expression, raw_flag_expression >',['../classxt_1_1xoptional__assembly.html',1,'xt']]], + ['xoptional_5fassembly_5fadaptor_389',['xoptional_assembly_adaptor',['../classxt_1_1xoptional__assembly__adaptor.html',1,'xt::xoptional_assembly_adaptor< VEC, FEC >'],['../classxt_1_1xoptional__assembly__adaptor.html#a49ed47cb40d83d823a72f7907f4b4430',1,'xt::xoptional_assembly_adaptor::xoptional_assembly_adaptor()']]], + ['xoptional_5fassembly_5fbase_390',['xoptional_assembly_base',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_3c_20self_5ftype_20_3e_391',['xoptional_assembly_base< self_type >',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_392',['xoptional_assembly_base< xoptional_assembly< VE, FE > >',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_393',['xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_394',['xoptional_assembly_linear_iterator',['../classxt_1_1xoptional__assembly__linear__iterator.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_3c_20ve_2c_20fe_2c_20false_20_3e_395',['xoptional_assembly_linear_iterator< VE, FE, false >',['../classxt_1_1xoptional__assembly__linear__iterator.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_3c_20ve_2c_20fe_2c_20true_20_3e_396',['xoptional_assembly_linear_iterator< VE, FE, true >',['../classxt_1_1xoptional__assembly__linear__iterator.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_5ftraits_397',['xoptional_assembly_linear_iterator_traits',['../structxt_1_1xoptional__assembly__linear__iterator__traits.html',1,'xt']]], + ['xoptional_5fassembly_5fstepper_398',['xoptional_assembly_stepper',['../classxt_1_1xoptional__assembly__stepper.html',1,'xt']]], + ['xoptional_5fassembly_5fstepper_3c_20assembly_5ftype_2c_20false_20_3e_399',['xoptional_assembly_stepper< assembly_type, false >',['../classxt_1_1xoptional__assembly__stepper.html',1,'xt']]], + ['xoptional_5fassembly_5fstepper_3c_20assembly_5ftype_2c_20true_20_3e_400',['xoptional_assembly_stepper< assembly_type, true >',['../classxt_1_1xoptional__assembly__stepper.html',1,'xt']]], + ['xoptional_5fassembly_5fstorage_401',['xoptional_assembly_storage',['../classxt_1_1xoptional__assembly__storage.html',1,'xt']]], + ['xoptional_5fassembly_5fstorage_3c_20value_5fstorage_5ftype_2c_20flag_5fstorage_5ftype_20_3e_402',['xoptional_assembly_storage< value_storage_type, flag_storage_type >',['../classxt_1_1xoptional__assembly__storage.html',1,'xt']]], + ['xoptional_5fcomparable_403',['xoptional_comparable',['../structxt_1_1xoptional__comparable.html',1,'xt']]], + ['xoptional_5fempty_5fbase_404',['xoptional_empty_base',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20t_3a_3aderived_5ftype_20_3e_405',['xoptional_empty_base< T::derived_type >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_406',['xoptional_empty_base< xbroadcast< CT, X > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_407',['xoptional_empty_base< xdynamic_view< CT, S, L, FST > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_408',['xoptional_empty_base< xfunction< F, CT... > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_409',['xoptional_empty_base< xfunctor_view< F, CT > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_410',['xoptional_empty_base< xgenerator< F, R, S > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_411',['xoptional_empty_base< xindex_view< CT, I > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_412',['xoptional_empty_base< xreducer< F, CT, X, O > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xrepeat_3c_20ct_2c_20x_20_3e_20_3e_413',['xoptional_empty_base< xrepeat< CT, X > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xscalar_3c_20ct_20_3e_20_3e_414',['xoptional_empty_base< xscalar< CT > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_415',['xoptional_empty_base< xstrided_view< CT, S, L, FST > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_416',['xoptional_empty_base< xview< CT, S... > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fexpression_5ftag_417',['xoptional_expression_tag',['../structxt_1_1xoptional__expression__tag.html',1,'xt']]], + ['xproxy_5finner_5ftypes_418',['xproxy_inner_types',['../structxt_1_1xproxy__inner__types.html',1,'xt']]], + ['xproxy_5finner_5ftypes_3c_20detail_3a_3axfunctor_5finvoker_5ft_3c_20f_2c_20it_20_3e_20_3e_419',['xproxy_inner_types< detail::xfunctor_invoker_t< F, IT > >',['../structxt_1_1xproxy__inner__types.html',1,'xt']]], + ['xproxy_5finner_5ftypes_3c_20detail_3a_3axfunctor_5finvoker_5ft_3c_20f_2c_20st_20_3e_20_3e_420',['xproxy_inner_types< detail::xfunctor_invoker_t< F, ST > >',['../structxt_1_1xproxy__inner__types.html',1,'xt']]], + ['xrange_421',['xrange',['../classxt_1_1xrange.html',1,'xt']]], + ['xrange_5fadaptor_422',['xrange_adaptor',['../structxt_1_1xrange__adaptor.html',1,'xt']]], + ['xreducer_423',['xreducer',['../classxt_1_1xreducer.html',1,'xt::xreducer< F, CT, X, O >'],['../classxt_1_1xreducer.html#ac1a504813c1a2d91e1aa5c871bee7a77',1,'xt::xreducer::xreducer()']]], + ['xreducer_3c_20flag_5freducer_2c_20xt_3a_3adetail_3a_3aflag_5fexpression_5ft_3c_20ct_20_3e_2c_20x_2c_20rebound_5freduce_5foptions_5fflag_20_3e_424',['xreducer< flag_reducer, xt::detail::flag_expression_t< CT >, X, rebound_reduce_options_flag >',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_3c_20func_2c_20e_2c_20x_2c_20opts_20_3e_425',['xreducer< Func, E, X, Opts >',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_3c_20rebound_5ffunctors_5ftype_2c_20xt_3a_3adetail_3a_3avalue_5fexpression_5ft_3c_20ct_20_3e_2c_20x_2c_20rebound_5freduce_5foptions_5fvalues_20_3e_426',['xreducer< rebound_functors_type, xt::detail::value_expression_t< CT >, X, rebound_reduce_options_values >',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_5fbase_427',['xreducer_base',['../structxt_1_1extension_1_1xreducer__base.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_428',['xreducer_base_impl',['../structxt_1_1extension_1_1xreducer__base__impl.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20f_2c_20ct_2c_20x_2c_20o_20_3e_429',['xreducer_base_impl< xexpression_tag_t< CT >, F, CT, X, O >',['../structxt_1_1extension_1_1xreducer__base__impl.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20ct_2c_20x_2c_20o_20_3e_430',['xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >',['../structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20ct_2c_20x_2c_20o_20_3e_431',['xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >',['../structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html',1,'xt::extension']]], + ['xreducer_5ffunctors_432',['xreducer_functors',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20reduce_5ffunc_2c_20const_5fvalue_3c_20nt_20_3e_2c_20merge_5ffunc_20_3e_433',['xreducer_functors< REDUCE_FUNC, const_value< NT >, MERGE_FUNC >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20reduce_5ffunc_2c_20init_5ffunc_2c_20merge_5ffunc_20_3e_434',['xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20reduce_5ffunctor_5ftype_2c_20init_5ffunctor_5ftype_2c_20merge_5ffunctor_5ftype_20_3e_435',['xreducer_functors< reduce_functor_type, init_functor_type, merge_functor_type >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20xt_3a_3adetail_3a_3aoptional_5fbitwise_3c_20bool_20_3e_2c_20xt_3a_3aconst_5fvalue_3c_20bool_20_3e_20_3e_436',['xreducer_functors< xt::detail::optional_bitwise< bool >, xt::const_value< bool > >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5foptional_437',['xreducer_optional',['../classxt_1_1extension_1_1xreducer__optional.html',1,'xt::extension']]], + ['xreducer_5fshape_5ftype_438',['xreducer_shape_type',['../structxt_1_1xreducer__shape__type.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20fixed_5fshape_3c_20j_2e_2e_2e_20_3e_2c_20o_20_3e_439',['xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >',['../structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3afalse_5ftype_20_3e_440',['xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >',['../structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3atrue_5ftype_20_3e_441',['xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >',['../structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20std_3a_3aarray_3c_20i1_2c_20n1_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3afalse_5ftype_20_3e_442',['xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >',['../structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20std_3a_3aarray_3c_20i1_2c_20n1_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3atrue_5ftype_20_3e_443',['xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >',['../structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20typename_20xexpression_5ftype_3a_3ashape_5ftype_2c_20std_3a_3adecay_5ft_3c_20x_20_3e_2c_20keep_5fdims_20_3e_444',['xreducer_shape_type< typename xexpression_type::shape_type, std::decay_t< X >, keep_dims >',['../structxt_1_1xreducer__shape__type.html',1,'xt']]], + ['xreducer_5fstepper_445',['xreducer_stepper',['../classxt_1_1xreducer__stepper.html',1,'xt']]], + ['xrepeat_446',['xrepeat',['../classxt_1_1xrepeat.html',1,'xt::xrepeat< CT, R >'],['../classxt_1_1xrepeat.html#a8597732ef22eb32ab54d780d1410386f',1,'xt::xrepeat::xrepeat()']]], + ['xrepeat_5fbase_447',['xrepeat_base',['../structxt_1_1extension_1_1xrepeat__base.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_448',['xrepeat_base_impl',['../structxt_1_1extension_1_1xrepeat__base__impl.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20x_20_3e_449',['xrepeat_base_impl< xexpression_tag_t< CT >, CT, X >',['../structxt_1_1extension_1_1xrepeat__base__impl.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_450',['xrepeat_base_impl< xoptional_expression_tag, CT, X >',['../structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_451',['xrepeat_base_impl< xtensor_expression_tag, CT, X >',['../structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xrepeat_5foptional_452',['xrepeat_optional',['../classxt_1_1extension_1_1xrepeat__optional.html',1,'xt::extension']]], + ['xrepeat_5fstepper_453',['xrepeat_stepper',['../classxt_1_1xrepeat__stepper.html',1,'xt']]], + ['xrepeat_5fstepper_3c_20typename_20xexpression_5ftype_3a_3aconst_5fstepper_2c_20repeats_5ftype_20_3e_454',['xrepeat_stepper< typename xexpression_type::const_stepper, repeats_type >',['../classxt_1_1xrepeat__stepper.html',1,'xt']]], + ['xscalar_455',['xscalar',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20bool_20_3e_456',['xscalar< bool >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20const_5fflag_5fclosure_20_3e_457',['xscalar< const_flag_closure >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20const_5fvalue_5fclosure_20_3e_458',['xscalar< const_value_closure >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20std_3a_3aconditional_5ft_3c_20is_5fconst_2c_20const_5fflag_5fclosure_2c_20flag_5fclosure_20_3e_20_3e_459',['xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20std_3a_3aconditional_5ft_3c_20is_5fconst_2c_20const_5fvalue_5fclosure_2c_20value_5fclosure_20_3e_20_3e_460',['xscalar< std::conditional_t< is_const, const_value_closure, value_closure > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20t_20_3e_461',['xscalar< T >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20xtl_3a_3aclosure_5ftype_5ft_3c_20e_20_3e_20_3e_462',['xscalar< xtl::closure_type_t< E > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20xtl_3a_3aconst_5fclosure_5ftype_5ft_3c_20e_20_3e_20_3e_463',['xscalar< xtl::const_closure_type_t< E > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_5fbase_464',['xscalar_base',['../structxt_1_1extension_1_1xscalar__base.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_465',['xscalar_base_impl',['../structxt_1_1extension_1_1xscalar__base__impl.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_3c_20get_5fexpression_5ftag_5ft_3c_20std_3a_3adecay_5ft_3c_20ct_20_3e_20_3e_2c_20ct_20_3e_466',['xscalar_base_impl< get_expression_tag_t< std::decay_t< CT > >, CT >',['../structxt_1_1extension_1_1xscalar__base__impl.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_20_3e_467',['xscalar_base_impl< xoptional_expression_tag, CT >',['../structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_20_3e_468',['xscalar_base_impl< xtensor_expression_tag, CT >',['../structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xscalar_5fconcept_469',['xscalar_concept',['../conceptxt_1_1xscalar__concept.html',1,'xt']]], + ['xscalar_5foptional_5fbase_470',['xscalar_optional_base',['../classxt_1_1extension_1_1xscalar__optional__base.html',1,'xt::extension']]], + ['xscalar_5foptional_5ftraits_471',['xscalar_optional_traits',['../structxt_1_1extension_1_1xscalar__optional__traits.html',1,'xt::extension']]], + ['xscalar_5fstepper_472',['xscalar_stepper',['../classxt_1_1xscalar__stepper.html',1,'xt']]], + ['xscalar_5fstepper_3c_20false_2c_20ct_20_3e_473',['xscalar_stepper< false, CT >',['../classxt_1_1xscalar__stepper.html',1,'xt']]], + ['xscalar_5fstepper_3c_20true_2c_20ct_20_3e_474',['xscalar_stepper< true, CT >',['../classxt_1_1xscalar__stepper.html',1,'xt']]], + ['xsemantic_5fbase_475',['xsemantic_base',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_476',['xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_477',['xsemantic_base< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_478',['xsemantic_base< xchunked_array< chunk_storage > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_479',['xsemantic_base< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_480',['xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_481',['xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_482',['xsemantic_base< xfunctor_adaptor< F, CT > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_483',['xsemantic_base< xfunctor_view< F, CT > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_484',['xsemantic_base< xindex_view< CT, I > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_485',['xsemantic_base< xoptional_assembly< VE, FE > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_486',['xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_487',['xsemantic_base< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_488',['xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_489',['xsemantic_base< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_490',['xsemantic_base< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_491',['xsemantic_base< xview< CT, S... > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xshape_492',['xshape',['../namespacext.html#ae27fda097300ac8f3a51b454ca2a15cf',1,'xt']]], + ['xsharable_5fexpression_493',['xsharable_expression',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_494',['xsharable_expression< xbroadcast< CT, X > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_495',['xsharable_expression< xfunction< F, CT... > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_496',['xsharable_expression< xgenerator< F, R, S > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_497',['xsharable_expression< xreducer< F, CT, X, O > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_498',['xsharable_expression< xrepeat< CT, R > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xscalar_3c_20ct_20_3e_20_3e_499',['xsharable_expression< xscalar< CT > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xshared_5fexpression_500',['xshared_expression',['../classxt_1_1xshared__expression.html',1,'xt::xshared_expression< E >'],['../classxt_1_1xshared__expression.html#a0eee9f39b506cc2e83b9b4c6dda150cf',1,'xt::xshared_expression::xshared_expression()']]], + ['xslice_501',['xslice',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xall_3c_20t_20_3e_20_3e_502',['xslice< xall< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xdrop_5fslice_3c_20t_20_3e_20_3e_503',['xslice< xdrop_slice< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xfake_5fslice_3c_20t_20_3e_20_3e_504',['xslice< xfake_slice< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xkeep_5fslice_3c_20t_20_3e_20_3e_505',['xslice< xkeep_slice< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xnewaxis_3c_20t_20_3e_20_3e_506',['xslice< xnewaxis< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xrange_3c_20t_20_3e_20_3e_507',['xslice< xrange< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xstepped_5frange_3c_20t_20_3e_20_3e_508',['xslice< xstepped_range< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xstepped_5frange_509',['xstepped_range',['../classxt_1_1xstepped__range.html',1,'xt']]], + ['xstepper_510',['xstepper',['../classxt_1_1xstepper.html',1,'xt']]], + ['xstepper_3c_20const_20d_20_3e_511',['xstepper< const D >',['../classxt_1_1xstepper.html',1,'xt']]], + ['xstepper_3c_20d_20_3e_512',['xstepper< D >',['../classxt_1_1xstepper.html',1,'xt']]], + ['xstrided_5fcontainer_513',['xstrided_container',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20self_5ftype_20_3e_514',['xstrided_container< self_type >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_515',['xstrided_container< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_516',['xstrided_container< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_517',['xstrided_container< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_518',['xstrided_container< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_519',['xstrided_container< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fslice_5fvector_520',['xstrided_slice_vector',['../namespacext.html#a182405eeb0d1323fc7320a853bc60708',1,'xt']]], + ['xstrided_5fview_521',['xstrided_view',['../classxt_1_1xstrided__view.html',1,'xt::xstrided_view< CT, S, L, FST >'],['../classxt_1_1xstrided__view.html#aeaca42937cad665d96b797421f114cca',1,'xt::xstrided_view::xstrided_view()']]], + ['xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_522',['xstrided_view< CT, S, L, FST >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ct_2c_20shape_5ftype_20_3e_523',['xstrided_view< CT, shape_type >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20e_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20e_20_3e_20_3e_524',['xstrided_view< E, S, L, typename FST::template rebind_t< E > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ucft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucft_20_3e_20_3e_525',['xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ucvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucvt_20_3e_20_3e_526',['xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20uft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uft_20_3e_20_3e_527',['xstrided_view< uft, S, L, typename FST::template rebind_t< uft > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20uvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uvt_20_3e_20_3e_528',['xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_5fbase_529',['xstrided_view_base',['../structxt_1_1extension_1_1xstrided__view__base.html',1,'xt::extension::xstrided_view_base< CT, S, L, FST >'],['../classxt_1_1xstrided__view__base.html',1,'xt::xstrided_view_base< D >'],['../classxt_1_1xstrided__view__base.html#a395bfaa7afcaf17190eaccebd998e1c4',1,'xt::xstrided_view_base::xstrided_view_base()']]], + ['xstrided_5fview_5fbase_3c_20self_5ftype_20_3e_530',['xstrided_view_base< self_type >',['../classxt_1_1xstrided__view__base.html',1,'xt']]], + ['xstrided_5fview_5fbase_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_531',['xstrided_view_base< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xstrided__view__base.html',1,'xt']]], + ['xstrided_5fview_5fbase_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_532',['xstrided_view_base< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xstrided__view__base.html',1,'xt']]], + ['xstrided_5fview_5fbase_5fimpl_533',['xstrided_view_base_impl',['../structxt_1_1extension_1_1xstrided__view__base__impl.html',1,'xt::extension']]], + ['xstrided_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_534',['xstrided_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >',['../structxt_1_1extension_1_1xstrided__view__base__impl.html',1,'xt::extension']]], + ['xstrided_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_535',['xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xstrided_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_536',['xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xstrided_5fview_5foptional_537',['xstrided_view_optional',['../classxt_1_1extension_1_1xstrided__view__optional.html',1,'xt::extension']]], + ['xt_538',['xt',['../namespacext.html',1,'']]], + ['xtensor_539',['xtensor',['../namespacext.html#a8f2a3a1999f9572fea8ee6b50ca083eb',1,'xt']]], + ['xtensor_5fadaptor_540',['xtensor_adaptor',['../classxt_1_1xtensor__adaptor.html',1,'xt::xtensor_adaptor< EC, N, L, Tag >'],['../classxt_1_1xtensor__adaptor.html#aecf238db1fe9fda0797db5c10ced651b',1,'xt::xtensor_adaptor::xtensor_adaptor(storage_type &&storage)'],['../classxt_1_1xtensor__adaptor.html#ada04f10997a9bf3cb9d41ad0a57a071b',1,'xt::xtensor_adaptor::xtensor_adaptor(const storage_type &storage)'],['../classxt_1_1xtensor__adaptor.html#a08d8af6b5afb2cf0fdd0fa05ac254066',1,'xt::xtensor_adaptor::xtensor_adaptor(D &&storage, const shape_type &shape, layout_type l=L)'],['../classxt_1_1xtensor__adaptor.html#adf38d3f009485bbd13e05a33f3e126ed',1,'xt::xtensor_adaptor::xtensor_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)']]], + ['xtensor_5fadaptor_3c_20const_20flag_5fcontainer_20_26_2c_20n_2c_20l_20_3e_541',['xtensor_adaptor< const flag_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20const_20value_5fcontainer_20_26_2c_20n_2c_20l_20_3e_542',['xtensor_adaptor< const value_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_543',['xtensor_adaptor< EC, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20flag_5fcontainer_20_26_2c_20n_2c_20l_20_3e_544',['xtensor_adaptor< flag_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20value_5fcontainer_20_26_2c_20n_2c_20l_20_3e_545',['xtensor_adaptor< value_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20xbuffer_5fadaptor_3c_20xtl_3a_3aclosure_5ftype_5ft_3c_20t_20_2a_20_3e_2c_20xt_3a_3ano_5fownership_2c_20detail_3a_3adefault_5fallocator_5ffor_5fptr_5ft_3c_20t_20_3e_20_3e_2c_20n_2c_20l_20_3e_546',['xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_5fbase_547',['xtensor_adaptor_base',['../structxt_1_1extension_1_1xtensor__adaptor__base.html',1,'xt::extension']]], + ['xtensor_5fadaptor_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_548',['xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >',['../structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fadaptor_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xtensor_5fexpression_5ftag_20_3e_549',['xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >',['../structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fadaptor_5foptional_5ftraits_550',['xtensor_adaptor_optional_traits',['../structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html',1,'xt::extension']]], + ['xtensor_5fcontainer_551',['xtensor_container',['../classxt_1_1xtensor__container.html',1,'xt::xtensor_container< EC, N, L, Tag >'],['../classxt_1_1xtensor__container.html#aa3a7016797e330568a8b4e5efb6f1c4b',1,'xt::xtensor_container::xtensor_container()'],['../classxt_1_1xtensor__container.html#a5d15ba6d111b6a3aa8403f69d4810c21',1,'xt::xtensor_container::xtensor_container(nested_initializer_list_t< value_type, N > t)'],['../classxt_1_1xtensor__container.html#aed68730c6dae5a8155b2c67140a63368',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, layout_type l=L)'],['../classxt_1_1xtensor__container.html#a56f009f40f5acb09f157345a1a174508',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, const_reference value, layout_type l=L)'],['../classxt_1_1xtensor__container.html#a27c45be9ad2e0da1a8ad0576c756f39e',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, const strides_type &strides)'],['../classxt_1_1xtensor__container.html#ad411469d4cd09d58528f489dd380de9e',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, const strides_type &strides, const_reference value)'],['../classxt_1_1xtensor__container.html#ad82e5654ec5c9f23d5801aa5e84d4ddc',1,'xt::xtensor_container::xtensor_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)'],['../classxt_1_1xtensor__container.html#a76f048f11c76d405e2e93007e74e2c41',1,'xt::xtensor_container::xtensor_container(const xexpression< E > &e)']]], + ['xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_552',['xtensor_container< EC, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20std_3a_3avector_3c_20t_2c_20a_20_3e_2c_202_2c_20layout_5ftype_3a_3arow_5fmajor_20_3e_553',['xtensor_container< std::vector< T, A >, 2, layout_type::row_major >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20temporary_5fcontainer_5ft_3c_20storage_5ftype_20_3e_2c_20n_2c_20l_2c_20tag_20_3e_554',['xtensor_container< temporary_container_t< storage_type >, N, L, Tag >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_555',['xtensor_container< uvector< T, A >, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20r_2c_201_20_3e_556',['xtensor_container< uvector< T, A >, N, L >< R, 1 >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20r_2c_201_2c_20l_20_3e_557',['xtensor_container< uvector< T, A >, N, L >< R, 1, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20r_2c_20n_2c_20l_20_3e_558',['xtensor_container< uvector< T, A >, N, L >< R, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20std_3a_3asize_5ft_2c_20n_20_2d_201_20_3e_559',['xtensor_container< uvector< T, A >, N, L >< std::size_t, N - 1 >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20t_2c_20n_2bnewaxis_5fcount_3c_20sl_2e_2e_2e_20_3e_28_29_20_2d_20integral_5fcount_3c_20sl_2e_2e_2e_20_3e_28_29_2c_20l_20_3e_560',['xtensor_container< uvector< T, A >, N, L >< T, N+newaxis_count< SL... >() - integral_count< SL... >(), L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20t_2c_20sizeof_2e_2e_2e_28i_29_2c_20l_20_3e_561',['xtensor_container< uvector< T, A >, N, L >< T, sizeof...(I), L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20typename_20f_3a_3avalue_5ftype_2c_20n_2c_20l_20_3e_562',['xtensor_container< uvector< T, A >, N, L >< typename F::value_type, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20vt_2c_201_2c_20l_20_3e_563',['xtensor_container< uvector< T, A >, N, L >< VT, 1, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20vt_2c_20n_2c_20l_20_3e_564',['xtensor_container< uvector< T, A >, N, L >< VT, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20xtl_3a_3axoptional_5fvector_3c_20t_2c_20a_2c_20bc_20_3e_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_565',['xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_5fbase_566',['xtensor_container_base',['../structxt_1_1extension_1_1xtensor__container__base.html',1,'xt::extension']]], + ['xtensor_5fcontainer_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_567',['xtensor_container_base< EC, N, L, xoptional_expression_tag >',['../structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fcontainer_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xtensor_5fexpression_5ftag_20_3e_568',['xtensor_container_base< EC, N, L, xtensor_expression_tag >',['../structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fcontainer_5foptional_5ftraits_569',['xtensor_container_optional_traits',['../structxt_1_1extension_1_1xtensor__container__optional__traits.html',1,'xt::extension']]], + ['xtensor_5fempty_5fbase_570',['xtensor_empty_base',['../structxt_1_1extension_1_1xtensor__empty__base.html',1,'xt::extension']]], + ['xtensor_5fexpression_5ftag_571',['xtensor_expression_tag',['../structxt_1_1xtensor__expression__tag.html',1,'xt']]], + ['xtensor_5ffixed_572',['xtensor_fixed',['../namespacext.html#a675d189919a15dd28e7194394d3a0ad7',1,'xt']]], + ['xtensor_5foptional_573',['xtensor_optional',['../namespacext.html#a31d3bc86529364db995ee61162e8adf7',1,'xt']]], + ['xtensor_5foptional_5ftraits_574',['xtensor_optional_traits',['../structxt_1_1extension_1_1xtensor__optional__traits.html',1,'xt::extension']]], + ['xtensor_5fpointer_575',['xtensor_pointer',['../group__xt__xadapt.html#ga6cc895e9f88e46935a2a34dda7aac4e3',1,'xt']]], + ['xtensor_5fview_576',['xtensor_view',['../classxt_1_1xtensor__view.html',1,'xt::xtensor_view< EC, N, L, Tag >'],['../classxt_1_1xtensor__view.html#a3245a15af4f5a46b7315d4f14a1657d8',1,'xt::xtensor_view::xtensor_view(storage_type &&storage)'],['../classxt_1_1xtensor__view.html#ad26a102ac5d777f6d1b3dfad5a0ef1fa',1,'xt::xtensor_view::xtensor_view(const storage_type &storage)'],['../classxt_1_1xtensor__view.html#a70a1388809ad0d8d2869c56f2957fb73',1,'xt::xtensor_view::xtensor_view(D &&storage, const shape_type &shape, layout_type l=L)'],['../classxt_1_1xtensor__view.html#afd854308ee21d8738686c64a14363481',1,'xt::xtensor_view::xtensor_view(D &&storage, const shape_type &shape, const strides_type &strides)']]], + ['xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_577',['xtensor_view< EC, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__view.html',1,'xt']]], + ['xtensor_5fview_5fbase_578',['xtensor_view_base',['../structxt_1_1extension_1_1xtensor__view__base.html',1,'xt::extension']]], + ['xtensor_5fview_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_579',['xtensor_view_base< EC, N, L, xoptional_expression_tag >',['../structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fview_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xtensor_5fexpression_5ftag_20_3e_580',['xtensor_view_base< EC, N, L, xtensor_expression_tag >',['../structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fview_5foptional_5ftraits_581',['xtensor_view_optional_traits',['../structxt_1_1extension_1_1xtensor__view__optional__traits.html',1,'xt::extension']]], + ['xtuph_582',['xtuph',['../structxt_1_1placeholders_1_1xtuph.html',1,'xt::placeholders']]], + ['xtuple_583',['xtuple',['../namespacext.html#ae0a17e1fea8041f69a66d80928359150',1,'xt']]], + ['xvectorizer_584',['xvectorizer',['../classxt_1_1xvectorizer.html',1,'xt']]], + ['xview_585',['xview',['../classxt_1_1xview.html',1,'xt::xview< CT, S >'],['../classxt_1_1xview.html#a05ff5fb7b81610a17123a91729525c5c',1,'xt::xview::xview()']]], + ['xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_586',['xview< CT, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20e_2c_20s_2e_2e_2e_20_3e_587',['xview< E, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20ucft_2c_20s_2e_2e_2e_20_3e_588',['xview< ucft, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20ucvt_2c_20s_2e_2e_2e_20_3e_589',['xview< ucvt, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20uft_2c_20s_2e_2e_2e_20_3e_590',['xview< uft, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20underlyingcontainer_2c_20slices_2e_2e_2e_20_3e_591',['xview< UnderlyingContainer, Slices... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20uvt_2c_20s_2e_2e_2e_20_3e_592',['xview< uvt, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_5fbase_593',['xview_base',['../structxt_1_1extension_1_1xview__base.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_594',['xview_base_impl',['../structxt_1_1extension_1_1xview__base__impl.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20s_2e_2e_2e_20_3e_595',['xview_base_impl< xexpression_tag_t< CT >, CT, S... >',['../structxt_1_1extension_1_1xview__base__impl.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20s_2e_2e_2e_20_3e_596',['xview_base_impl< xoptional_expression_tag, CT, S... >',['../structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20s_2e_2e_2e_20_3e_597',['xview_base_impl< xtensor_expression_tag, CT, S... >',['../structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html',1,'xt::extension']]], + ['xview_5foptional_598',['xview_optional',['../classxt_1_1extension_1_1xview__optional.html',1,'xt::extension']]], + ['xview_5foptional_3c_20ct_2c_20s_2e_2e_2e_20_3e_599',['xview_optional< CT, S... >',['../classxt_1_1extension_1_1xview__optional.html',1,'xt::extension']]], + ['xview_5fsemantic_600',['xview_semantic',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20self_5ftype_20_3e_601',['xview_semantic< self_type >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_602',['xview_semantic< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_603',['xview_semantic< xfunctor_view< F, CT > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_604',['xview_semantic< xindex_view< CT, I > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_605',['xview_semantic< xmasked_view< CTD, CTM > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_606',['xview_semantic< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_607',['xview_semantic< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_608',['xview_semantic< xview< CT, S... > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fshape_5ftype_609',['xview_shape_type',['../structxt_1_1xview__shape__type.html',1,'xt']]], + ['xview_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20s_2e_2e_2e_20_3e_610',['xview_shape_type< fixed_shape< I... >, S... >',['../structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html',1,'xt']]], + ['xview_5fshape_5ftype_3c_20std_3a_3aarray_3c_20i_2c_20l_20_3e_2c_20s_2e_2e_2e_20_3e_611',['xview_shape_type< std::array< I, L >, S... >',['../structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html',1,'xt']]], + ['xview_5fstepper_612',['xview_stepper',['../classxt_1_1xview__stepper.html',1,'xt']]] +]; diff --git a/search/all_17.js b/search/all_17.js new file mode 100644 index 000000000..477950168 --- /dev/null +++ b/search/all_17.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['zeros_0',['zeros',['../namespacext.html#a700dc20edb5a81d66d5f89d350dca46f',1,'xt']]], + ['zeros_5flike_1',['zeros_like',['../namespacext.html#a68f9dd4af039df60663af606046a3b73',1,'xt']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 000000000..1565b48bb --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,71 @@ +var searchData= +[ + ['can_5fassign_0',['can_assign',['../structxt_1_1can__assign.html',1,'xt']]], + ['can_5fassign_3c_20ct_2c_20rhs_20_3e_1',['can_assign< CT, RHS >',['../structxt_1_1can__assign.html',1,'xt']]], + ['can_5fassign_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_2c_20rhs_20_3e_2',['can_assign< xstrided_view< CT, S, L, FST >, RHS >',['../structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html',1,'xt']]], + ['cast_3',['cast',['../group__casting__operators.html#ga8d57e20151af53f5ffec3afa6f834cf4',1,'xt']]], + ['casting_20operators_4',['Casting operators',['../group__casting__operators.html',1,'']]], + ['cbegin_5',['cbegin',['../classxt_1_1xfunctor__applier__base.html#a8ff3057fce404b976998dda117b669b4',1,'xt::xfunctor_applier_base::cbegin()'],['../classxt_1_1xconst__iterable.html#a8e90c4de11331d25fcf27944833280af',1,'xt::xconst_iterable::cbegin() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a212ee6280ccfa5814e4f2c16d1880a84',1,'xt::xconst_iterable::cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a68fed899dcdd91ba8ffe1438f329e0fc',1,'xt::xcontiguous_iterable::cbegin() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#aa38da69077754acd8e5daf5f010b8591',1,'xt::xcontiguous_iterable::cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a358932daa1dd93cc97016f99f24b9be6',1,'xt::xfunctor_applier_base::cbegin()']]], + ['cbrt_6',['cbrt',['../group__pow__functions.html#gad5ff49e786eca533425d6f230c945184',1,'xt']]], + ['cbrt_5ffun_7',['cbrt_fun',['../structxt_1_1math_1_1cbrt__fun.html',1,'xt::math']]], + ['ceil_8',['ceil',['../group__nearint__functions.html#ga06d485029e29f092e60af3afabd0d154',1,'xt']]], + ['ceil_5ffun_9',['ceil_fun',['../structxt_1_1math_1_1ceil__fun.html',1,'xt::math']]], + ['cend_10',['cend',['../classxt_1_1xfunctor__applier__base.html#a8f40de3c5e5d01ed40bab3060d1ad8e9',1,'xt::xfunctor_applier_base::cend()'],['../classxt_1_1xconst__iterable.html#a6b266693e1dfec18e39baf2d3b34c20e',1,'xt::xconst_iterable::cend() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#abc45bc962caf2ab0978a775836c6b3b8',1,'xt::xconst_iterable::cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a2f1e2287962220db88240b3a0e5cf196',1,'xt::xcontiguous_iterable::cend() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a93eb3f286ccab925d621ef1b87e6d126',1,'xt::xcontiguous_iterable::cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a3eb421464069330b8305abdb39b43f24',1,'xt::xfunctor_applier_base::cend()']]], + ['check_20a_20shape_20array_11',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['check_5fstrides_5ffunctor_12',['check_strides_functor',['../structxt_1_1strided__assign__detail_1_1check__strides__functor.html',1,'xt::strided_assign_detail']]], + ['check_5fstrides_5foverlap_13',['check_strides_overlap',['../structxt_1_1check__strides__overlap.html',1,'xt']]], + ['check_5fstrides_5foverlap_3c_20layout_5ftype_3a_3acolumn_5fmajor_20_3e_14',['check_strides_overlap< layout_type::column_major >',['../structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html',1,'xt']]], + ['check_5fstrides_5foverlap_3c_20layout_5ftype_3a_3arow_5fmajor_20_3e_15',['check_strides_overlap< layout_type::row_major >',['../structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html',1,'xt']]], + ['chunked_20array_16',['Chunked array',['../group__xt__xchunked__array.html',1,'']]], + ['chunked_5farray_17',['chunked_array',['../group__xt__xchunked__array.html#ga8c408e717c7725211a42114adb4557b2',1,'xt::chunked_array(S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)'],['../group__xt__xchunked__array.html#ga7f77d42d689828b2d8e8cdd57c28ee9b',1,'xt::chunked_array(const xexpression< E > &e, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)'],['../group__xt__xchunked__array.html#ga2dae3e469de3f3ec7b0d4fc49f82de5c',1,'xt::chunked_array(const xexpression< E > &e, layout_type chunk_memory_layout=::xt::layout_type::row_major)']]], + ['clamp_5ffun_18',['clamp_fun',['../structxt_1_1math_1_1clamp__fun.html',1,'xt::math']]], + ['classification_20functions_19',['Classification functions',['../group__classif__functions.html',1,'']]], + ['clip_20',['clip',['../group__basic__functions.html#ga951c830ac7329af2e6de1194821c09c4',1,'xt']]], + ['cmap_21',['cmap',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a8a05211f1dec8baa4732be2407dfceed',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['cmap_5fat_22',['cmap_at',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a48ce7c87ea115701f789fa086de0190d',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['col_23',['col',['../namespacext.html#a5772db4fd8ebf31bc242dd1c2d2ddd1b',1,'xt']]], + ['column_5fmajor_24',['column_major',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a8c23f260f0ec1479d3bfaf3a1305a347',1,'xt']]], + ['common_5fdifference_5ftype_25',['common_difference_type',['../structxt_1_1common__difference__type.html',1,'xt']]], + ['common_5fdifference_5ftype_3c_3e_26',['common_difference_type<>',['../structxt_1_1common__difference__type_3_4.html',1,'xt']]], + ['common_5fsize_5ftype_27',['common_size_type',['../structxt_1_1common__size__type.html',1,'xt']]], + ['common_5fsize_5ftype_3c_3e_28',['common_size_type<>',['../structxt_1_1common__size__type_3_4.html',1,'xt']]], + ['common_5ftensor_5ftype_29',['common_tensor_type',['../structxt_1_1common__tensor__type.html',1,'xt']]], + ['common_5fvalue_5ftype_30',['common_value_type',['../structxt_1_1common__value__type.html',1,'xt']]], + ['comparison_20operators_31',['Comparison operators',['../group__comparison__operators.html',1,'']]], + ['complex_20numbers_32',['Complex numbers',['../group__xt__xcomplex.html',1,'']]], + ['complex_5fconcept_33',['complex_concept',['../conceptxtl_1_1complex__concept.html',1,'xtl']]], + ['compute_5flayout_34',['compute_layout',['../namespacext.html#a27b28c7951a0991e2e8d39422c2b46b2',1,'xt']]], + ['compute_5fstrides_35',['compute_strides',['../group__xt__xstrides.html#ga3b03c8046a44a3bf2d4800c7296ecefd',1,'xt']]], + ['concatenate_36',['concatenate',['../namespacext.html#a28c746e1a420f706892d9aff3ad0dd30',1,'xt']]], + ['concatenate_5ferror_37',['concatenate_error',['../classxt_1_1concatenate__error.html',1,'xt']]], + ['conditional_5fcast_38',['conditional_cast',['../namespacext.html#af155a86146879d345b8acaa16d48c748',1,'xt']]], + ['conditional_5fcast_5ffunctor_39',['conditional_cast_functor',['../structxt_1_1conditional__cast__functor.html',1,'xt']]], + ['conditional_5fcast_5ffunctor_3c_20false_2c_20t_20_3e_40',['conditional_cast_functor< false, T >',['../structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html',1,'xt']]], + ['conditional_5fcast_5ffunctor_3c_20true_2c_20t_20_3e_41',['conditional_cast_functor< true, T >',['../structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html',1,'xt']]], + ['conj_42',['conj',['../group__xt__xcomplex.html#ga77874ddd5efaa90065d692ee4a6049a2',1,'xt']]], + ['conj_5ffun_43',['conj_fun',['../structxt_1_1math_1_1conj__fun.html',1,'xt::math']]], + ['conj_5fimpl_5ffun_44',['conj_impl_fun',['../structxt_1_1math_1_1conj__impl__fun.html',1,'xt::math']]], + ['conjunction_45',['conjunction',['../structxtl_1_1conjunction.html',1,'xtl']]], + ['const_5farray_46',['const_array',['../structxt_1_1const__array.html',1,'xt']]], + ['const_5farray_3c_20std_3a_3asize_5ft_2c_20sizeof_2e_2e_2e_28x_29_3e_47',['const_array< std::size_t, sizeof...(X)>',['../structxt_1_1const__array.html',1,'xt']]], + ['const_5freference_48',['const_reference',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a340678e79e66a00c366597f2adf2b978',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['const_5fvalue_49',['const_value',['../structxt_1_1const__value.html',1,'xt']]], + ['const_5fvalue_3c_20nt_20_3e_50',['const_value< NT >',['../structxt_1_1const__value.html',1,'xt']]], + ['const_5fxclosure_51',['const_xclosure',['../structxt_1_1const__xclosure.html',1,'xt']]], + ['const_5fxclosure_3c_20e_2c_20disable_5fxexpression_3c_20std_3a_3adecay_5ft_3c_20e_20_3e_20_3e_20_3e_52',['const_xclosure< E, disable_xexpression< std::decay_t< E > > >',['../structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html',1,'xt']]], + ['const_5fxclosure_3c_20xshared_5fexpression_3c_20e_20_3e_20_26_2c_20std_3a_3aenable_5fif_5ft_3c_20true_20_3e_20_3e_53',['const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >',['../structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html',1,'xt']]], + ['container_5falignment_54',['container_alignment',['../structxt__simd_1_1container__alignment.html',1,'xt_simd']]], + ['container_5fsimd_5freturn_5ftype_55',['container_simd_return_type',['../structxt_1_1container__simd__return__type.html',1,'xt']]], + ['containers_56',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['contiguous_5fview_5fconcept_57',['contiguous_view_concept',['../conceptxt_1_1contiguous__view__concept.html',1,'xt']]], + ['cos_58',['cos',['../group__trigo__functions.html#gabf9e140b22bb15dc6add351a7dc06d58',1,'xt']]], + ['cos_5ffun_59',['cos_fun',['../structxt_1_1math_1_1cos__fun.html',1,'xt::math']]], + ['cosh_60',['cosh',['../group__hyper__functions.html#ga4073cdc98201789ff723069156b4d34b',1,'xt']]], + ['cosh_5ffun_61',['cosh_fun',['../structxt_1_1math_1_1cosh__fun.html',1,'xt::math']]], + ['cov_62',['cov',['../namespacext.html#af462add746658517456f484f2e80f609',1,'xt']]], + ['crbegin_63',['crbegin',['../classxt_1_1xfunctor__applier__base.html#afb3b6d645d6ef28238b50f032f3477f6',1,'xt::xfunctor_applier_base::crbegin()'],['../classxt_1_1xconst__iterable.html#a425b0d85a0ffbb1752c6f45f211c471b',1,'xt::xconst_iterable::crbegin() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a6fdbad0911ef9a473a18f109eb33a7ba',1,'xt::xconst_iterable::crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#ab363ab0f7faf25ed137b432eeaca6f43',1,'xt::xcontiguous_iterable::crbegin() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a74bc69cf0cbfcb235ec3ca8fe75b962a',1,'xt::xcontiguous_iterable::crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a69f77212c23e7a9e20b3774a2e59d3cc',1,'xt::xfunctor_applier_base::crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >']]], + ['crend_64',['crend',['../classxt_1_1xfunctor__applier__base.html#ae9c21d7315862c7b30de7f21d5d47bf3',1,'xt::xfunctor_applier_base::crend()'],['../classxt_1_1xconst__iterable.html#a804a4b52bdfa60d1855f9081fb11fb13',1,'xt::xconst_iterable::crend() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a851fb3a86aacc069921e8719ec2a21e9',1,'xt::xconst_iterable::crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#aec3659b2356b81494ebfcb5a4bc0482e',1,'xt::xcontiguous_iterable::crend() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a0b849e0972151523dd2bf988fe90c7da',1,'xt::xcontiguous_iterable::crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a9424de315b89fd06b19590443bc20629',1,'xt::xfunctor_applier_base::crend()']]], + ['cube_65',['cube',['../group__pow__functions.html#ga0d98743e330f7ef3474bd706e186ac44',1,'xt']]], + ['cumprod_66',['cumprod',['../group__acc__functions.html#ga17f752dbaca06608f974c3514509fa7b',1,'xt']]], + ['cumsum_67',['cumsum',['../group__acc__functions.html#gaae1630a06b4975a5a759f2215e738123',1,'xt']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 000000000..9cefc591d --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['data_0',['data',['../classxt_1_1xcontainer.html#a71249b300db5d1bbab81c1cf6a5843b2',1,'xt::xcontainer::data() noexcept'],['../classxt_1_1xcontainer.html#a4a86bf768a1595ab704198ed8171b07c',1,'xt::xcontainer::data() const noexcept'],['../classxt_1_1xstrided__view__base.html#a6fe1b51b3991c9c94053d304feef646b',1,'xt::xstrided_view_base::data() noexcept'],['../classxt_1_1xstrided__view__base.html#a06823da680ffe172dee428c6245b249e',1,'xt::xstrided_view_base::data() const noexcept'],['../classxt_1_1xview.html#a2315b4504cabd5c6a0c6f80c782d1d8b',1,'xt::xview::data()'],['../classxt_1_1xstrided__view.html#a90ad7ad05c7837e0c26fdaa7cbe126c1',1,'xt::xstrided_view::data() noexcept'],['../classxt_1_1xstrided__view.html#aeed1c4b45db8fc518d5058ea39587e9f',1,'xt::xstrided_view::data() const noexcept']]], + ['data_5foffset_1',['data_offset',['../classxt_1_1xcontainer.html#a8a1a7ab7c076ce9b48301c42b825a83c',1,'xt::xcontainer::data_offset()'],['../classxt_1_1xstrided__view__base.html#ab4fb45717672e9ff1681c360d8199ed5',1,'xt::xstrided_view_base::data_offset()'],['../classxt_1_1xview.html#a869e2398c747ba94deaf0878bb348649',1,'xt::xview::data_offset()'],['../classxt_1_1xstrided__view.html#a52931ad61f35e598829290a885805e26',1,'xt::xstrided_view::data_offset()'],['../group__xt__xstrides.html#ga3bcc575a1a2870d78b96ff674e700ec7',1,'xt::data_offset(const S &strides, Arg arg, Args... args) noexcept']]], + ['decay_5fall_2',['decay_all',['../structxt_1_1decay__all.html',1,'xt']]], + ['decay_5fall_3c_20s_3c_20x_2e_2e_2e_20_3e_20_3e_3',['decay_all< S< X... > >',['../structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html',1,'xt']]], + ['deg2rad_4',['deg2rad',['../structxt_1_1math_1_1deg2rad.html',1,'xt::math::deg2rad'],['../group__basic__functions.html#ga1bc991dd9cc5f66575ab91f87b140577',1,'xt::deg2rad(E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >']]], + ['degrees_5',['degrees',['../group__basic__functions.html#ga4450fb9262604f2ed230e479092e7fdb',1,'xt']]], + ['deprecated_20list_6',['Deprecated List',['../deprecated.html',1,'']]], + ['derived_5fcast_7',['derived_cast',['../classxt_1_1xexpression.html#a96fe8ebe879202c5a053ae5e0067b231',1,'xt::xexpression::derived_cast() &noexcept'],['../classxt_1_1xexpression.html#ab08a20008d390c970283c26f9f882483',1,'xt::xexpression::derived_cast() const &noexcept'],['../classxt_1_1xexpression.html#abf1d99fb093b7bab105ea3d8c4d8a548',1,'xt::xexpression::derived_cast() &&noexcept']]], + ['diag_8',['diag',['../namespacext.html#ad848dae0258c3e5755ff7ee55e7c7b30',1,'xt']]], + ['diagonal_9',['diagonal',['../namespacext.html#a96ad98d837a74211cc0e5f07b85c2414',1,'xt']]], + ['diff_10',['diff',['../group__red__functions.html#gab421eb4d3565597848ec53dad1b0d6c6',1,'xt']]], + ['digitize_11',['digitize',['../group__digitize.html#ga80fb5a6e58dafe175544508ea913cff0',1,'xt']]], + ['digitize_20helpers_12',['Digitize helpers',['../group__digitize.html',1,'']]], + ['dimension_13',['dimension',['../classxt_1_1xcontainer.html#a2a8d4b0a73c42555c56b87384b251f2d',1,'xt::xcontainer::dimension()'],['../classxt_1_1xconst__accessible.html#a4b1a7ad9b1f0863c672782e53eed3042',1,'xt::xconst_accessible::dimension()'],['../classxt_1_1xfunction.html#a55ade0ce540d29ce39f0ca051946ff96',1,'xt::xfunction::dimension()'],['../classxt_1_1xoptional__assembly__base.html#a89f917b17d7b6ded98b95ba5f9c52de2',1,'xt::xoptional_assembly_base::dimension()'],['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a8565c9e35a1e5c2c6462bcc248368b11',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::dimension()'],['../classxt_1_1xindex__view.html#afeaa3f6f6c150f659935d1a625497203',1,'xt::xindex_view::dimension()']]], + ['disable_5findexed_5fstepper_14',['disable_indexed_stepper',['../structxt_1_1disable__indexed__stepper.html',1,'xt']]], + ['divides_5fassign_15',['divides_assign',['../classxt_1_1xsemantic__base.html#a8390681df5ceb96cc3fe307bcb6f5878',1,'xt::xsemantic_base']]], + ['driven_5falign_5fmode_16',['driven_align_mode',['../structxt_1_1driven__align__mode.html',1,'xt']]], + ['drop_17',['drop',['../namespacext.html#aaa0bb50983d32a17a7ccd3e8fab9c9d5',1,'xt']]], + ['dump_5fcsv_18',['dump_csv',['../namespacext.html#a809a1475d6c06e6209878b293ca0aa4d',1,'xt']]], + ['dump_5fnpy_19',['dump_npy',['../namespacext.html#abbb704b012b5b4a60523e183342660a8',1,'xt::dump_npy(const std::string &filename, const xexpression< E > &e)'],['../namespacext.html#a6d48f3428b263994fcfb707ca476847e',1,'xt::dump_npy(const xexpression< E > &e)']]], + ['dynamic_20',['dynamic',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6ab72f3bd391ba731a35708bfd8cd8a68f',1,'xt']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 000000000..7f3ce0564 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['edge_5fitems_0',['edge_items',['../classxt_1_1print__options_1_1edge__items.html',1,'xt::print_options']]], + ['element_1',['element',['../classxt_1_1xcontainer.html#ac2d91aa6cdb9d2970b5505d55f462b61',1,'xt::xcontainer::element(It first, It last) -> reference'],['../classxt_1_1xcontainer.html#a9d3b8aa16501359595778305cdb6c3b4',1,'xt::xcontainer::element(It first, It last) const -> const_reference'],['../classxt_1_1xfunction.html#a31d1e0136cb9cfd071120e47b10ecaea',1,'xt::xfunction::element()'],['../classxt_1_1xgenerator.html#a78b35b4322ef73b541653bc0e009c058',1,'xt::xgenerator::element()'],['../classxt_1_1xoptional__assembly__base.html#a1878f869c91ab899acc2fc560990538c',1,'xt::xoptional_assembly_base::element(It first, It last) -> reference'],['../classxt_1_1xoptional__assembly__base.html#afe8cc2e4841489d3f1af56dbab957af3',1,'xt::xoptional_assembly_base::element(It first, It last) const -> const_reference'],['../classxt_1_1xreducer.html#aa6b950db4c421bef297b1b1d76047b23',1,'xt::xreducer::element()'],['../classxt_1_1xbroadcast.html#a0c5eeee79d7da9ebbe4bab731e7bdbdf',1,'xt::xbroadcast::element()'],['../classxt_1_1xfunctor__applier__base.html#a94f49676b373d866812ee9a128cdc3e8',1,'xt::xfunctor_applier_base::element(IT first, IT last) -> reference'],['../classxt_1_1xfunctor__applier__base.html#a173b3e1e7c31df616b7e978462fece33',1,'xt::xfunctor_applier_base::element(IT first, IT last) const -> const_reference'],['../classxt_1_1xindex__view.html#a4bdd94010df7af626590d532b2febefb',1,'xt::xindex_view::element(It first, It) -> reference'],['../classxt_1_1xindex__view.html#a49787050a31b9c40a75f6644c6ee4c10',1,'xt::xindex_view::element(It first, It) const -> const_reference'],['../classxt_1_1xmasked__view.html#a9ac6b54e4c97bd60b65a6c02d5823380',1,'xt::xmasked_view::element(It first, It last) -> reference'],['../classxt_1_1xmasked__view.html#ae44c90a8ceb326570ea97116ecc5dd2f',1,'xt::xmasked_view::element(It first, It last) const -> const_reference'],['../classxt_1_1xrepeat.html#a38462b0a1711572653036bb3f77e4d2a',1,'xt::xrepeat::element()'],['../classxt_1_1xstrided__view__base.html#a76377f2b31c5086bd56c169f39ab8e6b',1,'xt::xstrided_view_base::element(It first, It last) -> reference'],['../classxt_1_1xstrided__view__base.html#a0410b18c9448ceb36193b2b740d0419a',1,'xt::xstrided_view_base::element(It first, It last) const -> const_reference']]], + ['ellipsis_2',['ellipsis',['../namespacext.html#a7674e27693c74603e341cbf7beb91e7b',1,'xt']]], + ['empty_3',['empty',['../namespacext.html#af6f56a2111bfe2e7898ddb56dcdedc0e',1,'xt']]], + ['empty_5flike_4',['empty_like',['../namespacext.html#abda9d7634e3a60172e626271a0e50bae',1,'xt']]], + ['enable_5findexed_5fstepper_5',['enable_indexed_stepper',['../structxt_1_1enable__indexed__stepper.html',1,'xt']]], + ['end_6',['end',['../classxt_1_1xfunctor__applier__base.html#a1ede7d79cffaf8f76e8b6895a7877759',1,'xt::xfunctor_applier_base::end() noexcept'],['../classxt_1_1xfunctor__applier__base.html#ab31ad55714884efed4c525ae1018339e',1,'xt::xfunctor_applier_base::end() const noexcept'],['../classxt_1_1xconst__iterable.html#a74906f6a3242a5a2b001e6a534007589',1,'xt::xconst_iterable::end() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a8ca771d1dda2e42203cfdaaebfeba601',1,'xt::xconst_iterable::end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#a76c73882716f9e9915dab847639db2da',1,'xt::xiterable::end() noexcept -> layout_iterator< L >'],['../classxt_1_1xiterable.html#a9b56f37894a5055ffe49a46c857b7111',1,'xt::xiterable::end(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a18eb1a595021e73f682b8443ea50f1ec',1,'xt::xcontiguous_iterable::end() noexcept -> select_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a8e0a8bdffdcfd3c5bc80f358a6931f9f',1,'xt::xcontiguous_iterable::end() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#ad75c7cb209c82c2d3ea6fa9e696f329e',1,'xt::xcontiguous_iterable::end(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a11d0a0ce2bbaef8f6dda78febe364fec',1,'xt::xcontiguous_iterable::end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a51190ea53109af3cdceebf66f8d10cbc',1,'xt::xfunctor_applier_base::end(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#aba04a5d73546572558aa9bbb6e4eca36',1,'xt::xfunctor_applier_base::end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >']]], + ['equal_7',['equal',['../classxt_1_1xaxis__iterator.html#ab4e285d56b758b9c9f95d4c63f39093c',1,'xt::xaxis_iterator::equal()'],['../classxt_1_1xaxis__slice__iterator.html#abb5ffe172da06056aa31e3f18b821b88',1,'xt::xaxis_slice_iterator::equal()'],['../group__comparison__operators.html#ga4c778acba0a9407a9093505fad0506d2',1,'xt::equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >']]], + ['erf_8',['erf',['../group__err__functions.html#ga996f61e9186110b7daa859da0a8d2755',1,'xt']]], + ['erf_5ffun_9',['erf_fun',['../structxt_1_1math_1_1erf__fun.html',1,'xt::math']]], + ['erfc_10',['erfc',['../group__err__functions.html#ga6af9a81a9ca2bab66e744167c9683920',1,'xt']]], + ['erfc_5ffun_11',['erfc_fun',['../structxt_1_1math_1_1erfc__fun.html',1,'xt::math']]], + ['error_20and_20gamma_20functions_12',['Error and gamma functions',['../group__err__functions.html',1,'']]], + ['eval_13',['eval',['../group__xt__xeval.html#ga60f1ff0460adb785f2d4055d0863551b',1,'xt']]], + ['evaluation_14',['Evaluation',['../group__xt__xeval.html',1,'']]], + ['exp_15',['exp',['../group__exp__functions.html#gae0c736d69056d124184aada09007e70b',1,'xt']]], + ['exp2_16',['exp2',['../group__exp__functions.html#ga212886f718828e83aaf07cdabf60aeab',1,'xt']]], + ['exp2_5ffun_17',['exp2_fun',['../structxt_1_1math_1_1exp2__fun.html',1,'xt::math']]], + ['exp_5ffun_18',['exp_fun',['../structxt_1_1math_1_1exp__fun.html',1,'xt::math']]], + ['expand_5fdims_19',['expand_dims',['../group__xt__xmanipulation.html#gabe8cb55041a20cb995a15c599b7a2bc2',1,'xt']]], + ['expm1_20',['expm1',['../group__exp__functions.html#ga1646ca23b54f4a72d4bbe46f1182921c',1,'xt']]], + ['expm1_5ffun_21',['expm1_fun',['../structxt_1_1math_1_1expm1__fun.html',1,'xt::math']]], + ['exponential_20functions_22',['Exponential functions',['../group__exp__functions.html',1,'']]], + ['expression_23',['expression',['../classxt_1_1xreducer.html#a35efc1a78c0ad4a52cef8dca2a472a83',1,'xt::xreducer::expression()'],['../classxt_1_1xbroadcast.html#a11fafd46c5300907473db9afddfb5969',1,'xt::xbroadcast::expression()'],['../classxt_1_1xfunctor__applier__base.html#a5c676f9bf0dcbba9c63d589d2a417abd',1,'xt::xfunctor_applier_base::expression() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a62a9deb497e7420aed40dcd2bcac02bc',1,'xt::xfunctor_applier_base::expression() const noexcept'],['../classxt_1_1xindex__view.html#ab19a3dd1a9b7f67c557ee57bc189d319',1,'xt::xindex_view::expression() noexcept'],['../classxt_1_1xindex__view.html#abad555c9ed25f834763760c88a236325',1,'xt::xindex_view::expression() const noexcept'],['../classxt_1_1xrepeat.html#a54a644b7c615e8f1bca91c0f4ac5a714',1,'xt::xrepeat::expression()'],['../classxt_1_1xstrided__view__base.html#af4ec4a5c434d543b6c664f4572c849d4',1,'xt::xstrided_view_base::expression() noexcept'],['../classxt_1_1xstrided__view__base.html#a94e4948a88657428eb50b1a92c4c2a43',1,'xt::xstrided_view_base::expression() const noexcept'],['../classxt_1_1xview.html#a5ecd9f1273f10421fdd4c5d64c262585',1,'xt::xview::expression() noexcept'],['../classxt_1_1xview.html#a9c5da820e15f25932c740862e0f3150f',1,'xt::xview::expression() const noexcept'],['../classxt_1_1xdynamic__view.html#a0ab07e56a411fedb9e0e213b8ddbc693',1,'xt::xdynamic_view::expression() noexcept'],['../classxt_1_1xdynamic__view.html#a929958921ea6477ce8a3c5aba3936146',1,'xt::xdynamic_view::expression() const noexcept'],['../classxt_1_1xstrided__view.html#a0ab07e56a411fedb9e0e213b8ddbc693',1,'xt::xstrided_view::expression() noexcept'],['../classxt_1_1xstrided__view.html#a929958921ea6477ce8a3c5aba3936146',1,'xt::xstrided_view::expression() const noexcept']]], + ['expression_5ftag_5fand_24',['expression_tag_and',['../structxt_1_1extension_1_1expression__tag__and.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t_20_3e_25',['expression_tag_and< T >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t_2c_20t_20_3e_26',['expression_tag_and< T, T >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t_2c_20xtensor_5fexpression_5ftag_20_3e_27',['expression_tag_and< T, xtensor_expression_tag >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t1_2c_20expression_5ftag_5fand_3c_20t_2e_2e_2e_20_3e_3a_3atype_20_3e_28',['expression_tag_and< T1, expression_tag_and< T... >::type >',['../structxt_1_1extension_1_1expression__tag__and.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t1_2c_20t_2e_2e_2e_20_3e_29',['expression_tag_and< T1, T... >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20xtensor_5fexpression_5ftag_2c_20t_20_3e_30',['expression_tag_and< xtensor_expression_tag, T >',['../structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20xtensor_5fexpression_5ftag_2c_20xtensor_5fexpression_5ftag_20_3e_31',['expression_tag_and< xtensor_expression_tag, xtensor_expression_tag >',['../structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_3e_32',['expression_tag_and<>',['../structxt_1_1extension_1_1expression__tag__and_3_4.html',1,'xt::extension']]], + ['eye_33',['eye',['../namespacext.html#a3702c94500428b6c0c24a493ea020606',1,'xt::eye(const std::vector< std::size_t > &shape, int k=0)'],['../namespacext.html#af1633ad856dcd79570c229d95b09cf19',1,'xt::eye(std::size_t n, int k=0)']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 000000000..3260fd32e --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,54 @@ +var searchData= +[ + ['fabs_0',['fabs',['../group__basic__functions.html#ga6548f786920ac988f0e655576b3a3c82',1,'xt']]], + ['fabs_5ffun_1',['fabs_fun',['../structxt_1_1math_1_1fabs__fun.html',1,'xt::math']]], + ['fdim_2',['fdim',['../group__basic__functions.html#gaa68f33844e1bb457b87880b7433506d3',1,'xt']]], + ['fdim_5ffun_3',['fdim_fun',['../structxt_1_1math_1_1fdim__fun.html',1,'xt::math']]], + ['fill_4',['fill',['../classxt_1_1xcontainer.html#af6898b9f125926922986af040eb90240',1,'xt::xcontainer::fill()'],['../classxt_1_1xoptional__assembly__base.html#a6b2d66863b5c7e149d54f75d3911d34d',1,'xt::xoptional_assembly_base::fill()'],['../classxt_1_1xindex__view.html#aeecb2ec9572eac54def9d4f9934a86fd',1,'xt::xindex_view::fill()'],['../classxt_1_1xmasked__view.html#a4c949ee680c72512a1d9f02b60536428',1,'xt::xmasked_view::fill()'],['../classxt_1_1xstrided__view.html#a2e8596cc0e323e5d8e884c5f88b00b8b',1,'xt::xstrided_view::fill()'],['../classxt_1_1xview.html#a76141e6f7f637ae7e070d860a08fc678',1,'xt::xview::fill()']]], + ['filter_5',['filter',['../namespacext.html#ae36e1cf727c1a3ea6c7889f149c0737b',1,'xt']]], + ['filter_5ffixed_5fshape_6',['filter_fixed_shape',['../structxt_1_1filter__fixed__shape.html',1,'xt']]], + ['filtration_7',['filtration',['../namespacext.html#a588bc1e3b2c1f7c9b8238dddaf05a9df',1,'xt']]], + ['fixed_5fshape_8',['fixed_shape',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_201_20_3e_9',['fixed_shape< 1 >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20broadcast_5ffixed_5fshape_5fcmp_5fimpl_3c_20jx_2c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20fixed_5fshape_3c_20j_2e_2e_2e_20_3e_20_3e_3a_3aordinate_2e_2e_2e_20_3e_10',['fixed_shape< broadcast_fixed_shape_cmp_impl< JX, fixed_shape< I... >, fixed_shape< J... > >::ordinate... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20i_2e_2e_2e_20_3e_11',['fixed_shape< I... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20n_2e_2e_2e_20_3e_12',['fixed_shape< N... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20x_2e_2e_2e_20_3e_13',['fixed_shape< X... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_28axis_3d_3dis_20_3f_20x_3a_3atemplate_20get_3c_20is_20_3e_28_29_2by_3a_3atemplate_20get_3c_20is_20_3e_28_29_20_3ax_3a_3atemplate_20get_3c_20is_20_3e_28_29_29_2e_2e_2e_20_3e_14',['fixed_shape<(axis==Is ? X::template get< Is >()+Y::template get< Is >() :X::template get< Is >())... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_5fcontainer_5fconcept_15',['fixed_shape_container_concept',['../conceptxt_1_1fixed__shape__container__concept.html',1,'xt']]], + ['fixed_5fxreducer_5fshape_5ftype_16',['fixed_xreducer_shape_type',['../structxt_1_1fixed__xreducer__shape__type.html',1,'xt']]], + ['fixed_5fxreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20fixed_5fshape_3c_20j_2e_2e_2e_20_3e_20_3e_17',['fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >',['../structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html',1,'xt']]], + ['flat_18',['flat',['../classxt_1_1xcontainer.html#a416ecf1f18ce38fae7f93d98d0c238e6',1,'xt::xcontainer::flat(size_type i)'],['../classxt_1_1xcontainer.html#a58f5504c365d5e9c0ff9783c60e586af',1,'xt::xcontainer::flat(size_type i) const'],['../classxt_1_1xfunction.html#a8313f6caaa7e9229c10e3d221a8ab77b',1,'xt::xfunction::flat()'],['../classxt_1_1xoptional__assembly__base.html#abdea1fd8c021f170b2b34fbfae36f2db',1,'xt::xoptional_assembly_base::flat(size_type args)'],['../classxt_1_1xoptional__assembly__base.html#a2ab81721e7b9e8986206742c4baddf71',1,'xt::xoptional_assembly_base::flat(size_type args) const']]], + ['flat_20indices_19',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['flatnonzero_20',['flatnonzero',['../namespacext.html#afe8bacc1aed492dc936c80bc58730463',1,'xt']]], + ['flatten_21',['flatten',['../group__xt__xmanipulation.html#ga10a975d3b718bfaf8ecf1db8072a0a0c',1,'xt']]], + ['flatten_5findices_22',['flatten_indices',['../namespacext.html#a5c1acf7068270be8ab0ef904dd0f5a54',1,'xt']]], + ['flip_23',['flip',['../group__xt__xmanipulation.html#gad4b24c51356470db0a22b0c6c7d7611d',1,'xt::flip(E &&e)'],['../group__xt__xmanipulation.html#ga4bf31ad3a5950024a3825118f9f6a4e7',1,'xt::flip(E &&e, std::size_t axis)']]], + ['floating_20point_20operations_24',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['floor_25',['floor',['../group__nearint__functions.html#ga651ff45bf2ffda746e6602773925ca5c',1,'xt']]], + ['floor_5ffun_26',['floor_fun',['../structxt_1_1math_1_1floor__fun.html',1,'xt::math']]], + ['fma_27',['fma',['../group__basic__functions.html#ga0f88cbfba7ddc6b5e8a1c74e422a0409',1,'xt']]], + ['fma_5ffun_28',['fma_fun',['../structxt_1_1math_1_1fma__fun.html',1,'xt::math']]], + ['fmax_29',['fmax',['../group__basic__functions.html#ga782cdb54181f69e99679e1045cb53323',1,'xt']]], + ['fmax_5ffun_30',['fmax_fun',['../structxt_1_1math_1_1fmax__fun.html',1,'xt::math']]], + ['fmin_31',['fmin',['../group__basic__functions.html#gab8eb77690d6d7b651f61a961b0b4e472',1,'xt']]], + ['fmin_5ffun_32',['fmin_fun',['../structxt_1_1math_1_1fmin__fun.html',1,'xt::math']]], + ['fmod_33',['fmod',['../group__basic__functions.html#ga51fa6991b9bc8878a763212346d6449b',1,'xt']]], + ['fmod_5ffun_34',['fmod_fun',['../structxt_1_1math_1_1fmod__fun.html',1,'xt::math']]], + ['forbid_5fsimd_35',['forbid_simd',['../structxt_1_1forbid__simd.html',1,'xt']]], + ['forbid_5fsimd_3c_20const_20std_3a_3avector_3c_20bool_2c_20a_20_3e_20_3e_36',['forbid_simd< const std::vector< bool, A > >',['../structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html',1,'xt']]], + ['forbid_5fsimd_3c_20const_20xtl_3a_3axdynamic_5fbitset_3c_20b_2c_20a_20_3e_20_3e_37',['forbid_simd< const xtl::xdynamic_bitset< B, A > >',['../structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html',1,'xt']]], + ['forbid_5fsimd_3c_20std_3a_3avector_3c_20bool_2c_20a_20_3e_20_3e_38',['forbid_simd< std::vector< bool, A > >',['../structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html',1,'xt']]], + ['forbid_5fsimd_3c_20xtl_3a_3axdynamic_5fbitset_3c_20b_2c_20a_20_3e_20_3e_39',['forbid_simd< xtl::xdynamic_bitset< B, A > >',['../structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html',1,'xt']]], + ['from_5findices_40',['from_indices',['../namespacext.html#ade2d67c70b0ec6af8294f4b7f201a722',1,'xt']]], + ['from_5fjson_41',['from_json',['../namespacext.html#a3d553d1a9a0e27ad8c9054389c1e2c59',1,'xt']]], + ['from_5fshape_42',['from_shape',['../classxt_1_1xarray__container.html#ab23fb8ed1e93061e427ef9da391336a0',1,'xt::xarray_container::from_shape()'],['../classxt_1_1xoptional__assembly.html#a04719a5f78f5bba3faa0f9a8d6aa393d',1,'xt::xoptional_assembly::from_shape()']]], + ['front_43',['front',['../classxt_1_1xconst__accessible.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8',1,'xt::xconst_accessible::front()'],['../classxt_1_1xaccessible.html#ad36ac2c194e7e6f470548dad89e88ca2',1,'xt::xaccessible::front()'],['../classxt_1_1xoptional__assembly__base.html#a0e191af3d00801e0018161ab739fc6d2',1,'xt::xoptional_assembly_base::front()'],['../classxt_1_1xoptional__assembly__base.html#aacfa0f794bd3a92bf3ad57833861f73e',1,'xt::xoptional_assembly_base::front() const'],['../classxt_1_1xcontainer.html#ad36ac2c194e7e6f470548dad89e88ca2',1,'xt::xcontainer::front()'],['../classxt_1_1xscalar.html#a13ab25eb31d4b48cb01b7bc38d27e8e0',1,'xt::xscalar::front()'],['../classxt_1_1xaccessible.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8',1,'xt::xaccessible::front()'],['../classxt_1_1xfunction.html#abd9b67dadb00c0bd094a71fe99ab0dfe',1,'xt::xfunction::front()'],['../classxt_1_1xfunctor__applier__base.html#ad36ac2c194e7e6f470548dad89e88ca2',1,'xt::xfunctor_applier_base::front()'],['../classxt_1_1xfunctor__applier__base.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8',1,'xt::xfunctor_applier_base::front() const'],['../classxt_1_1xmasked__view.html#a13ab25eb31d4b48cb01b7bc38d27e8e0',1,'xt::xmasked_view::front()'],['../classxt_1_1xmasked__view.html#a2ba0b92d6fbdb39b879378eb72c285d4',1,'xt::xmasked_view::front() const']]], + ['full_44',['full',['../structxt_1_1check__policy_1_1full.html',1,'xt::check_policy::full'],['../structxt_1_1convolve__mode_1_1full.html',1,'xt::convolve_mode::full']]], + ['full_5flike_45',['full_like',['../namespacext.html#a682f65e5eb55b03cbef5fbd25bbdc349',1,'xt']]], + ['function_46',['Trigonometric function',['../group__trigo__functions.html',1,'']]], + ['functions_47',['functions',['../group__acc__functions.html',1,'accumulating functions'],['../group__basic__functions.html',1,'Basic functions'],['../group__classif__functions.html',1,'Classification functions'],['../group__err__functions.html',1,'Error and gamma functions'],['../group__exp__functions.html',1,'Exponential functions'],['../group__histogram.html',1,'Histogram functions'],['../group__hyper__functions.html',1,'Hyperbolic functions'],['../group__nan__functions.html',1,'nan functions'],['../group__pow__functions.html',1,'Power functions'],['../group__red__functions.html',1,'reducing functions'],['../group__xt__xsort.html',1,'Sorting functions.']]], + ['functions_20swich_20between_20array_20indices_20and_20flat_20indices_48',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['functions_20to_20get_20check_20a_20shape_20array_49',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['functor_20view_50',['Functor view',['../group__xt__xfunctor__view.html',1,'']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 000000000..796869186 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['gamma_20functions_0',['Error and gamma functions',['../group__err__functions.html',1,'']]], + ['get_20check_20a_20shape_20array_1',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['get_5fexpression_5ftag_2',['get_expression_tag',['../structxt_1_1extension_1_1get__expression__tag.html',1,'xt::extension']]], + ['get_5fexpression_5ftag_3c_20xtl_3a_3axoptional_3c_20t_2c_20b_20_3e_20_3e_3',['get_expression_tag< xtl::xoptional< T, B > >',['../structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html',1,'xt::extension']]], + ['get_5fexpression_5ftag_5fimpl_4',['get_expression_tag_impl',['../structxt_1_1extension_1_1get__expression__tag__impl.html',1,'xt::extension']]], + ['get_5fexpression_5ftag_5fimpl_3c_20e_2c_20void_5ft_3c_20typename_20std_3a_3adecay_5ft_3c_20e_20_3e_3a_3aexpression_5ftag_20_3e_20_3e_5',['get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >',['../structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de048c22abe806a8cb61aa0c08ab63f2de.html',1,'xt::extension']]], + ['get_5finit_5ftype_6',['get_init_type',['../structxt_1_1get__init__type.html',1,'xt']]], + ['get_5finit_5ftype_3c_20v_2c_20fixed_5fshape_3c_20x_2e_2e_2e_20_3e_20_3e_7',['get_init_type< V, fixed_shape< X... > >',['../structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html',1,'xt']]], + ['get_5frank_8',['get_rank',['../structxt_1_1get__rank.html',1,'xt']]], + ['get_5frank_3c_20e_2c_20decltype_28_28void_29_20e_3a_3arank_2c_20void_28_29_29_3e_9',['get_rank< E, decltype((void) E::rank, void())>',['../structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html',1,'xt']]], + ['get_5fstrides_5ftype_10',['get_strides_type',['../structxt_1_1get__strides__type.html',1,'xt']]], + ['get_5fstrides_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_20_3e_11',['get_strides_type< fixed_shape< I... > >',['../structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html',1,'xt']]], + ['get_5fstrides_5ftype_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_12',['get_strides_type< xbuffer_adaptor< CP, O, A > >',['../structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html',1,'xt']]], + ['get_5fvalue_5ftype_13',['get_value_type',['../structxt_1_1get__value__type.html',1,'xt']]], + ['get_5fvalue_5ftype_3c_20t_2c_20void_5ft_3c_20typename_20t_3a_3avalue_5ftype_20_3e_20_3e_14',['get_value_type< T, void_t< typename T::value_type > >',['../structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html',1,'xt']]], + ['greater_15',['greater',['../group__comparison__operators.html#ga7c7efdc8246d1ae40ab7f6a8cffe0958',1,'xt']]], + ['greater_5fequal_16',['greater_equal',['../group__comparison__operators.html#ga68a359635b6a5d0940f97c7586a61ea3',1,'xt']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 000000000..c475d27ef --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,46 @@ +var searchData= +[ + ['has_5fassign_5fconversion_0',['has_assign_conversion',['../structxt_1_1has__assign__conversion.html',1,'xt']]], + ['has_5fassign_5fto_1',['has_assign_to',['../structxt_1_1has__assign__to.html',1,'xt']]], + ['has_5fassign_5fto_3c_20e1_2c_20e2_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20const_20e2_20_26_20_3e_28_29_2eassign_5fto_28std_3a_3adeclval_3c_20e1_20_26_20_3e_28_29_29_29_3e_20_3e_2',['has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >',['../structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html',1,'xt']]], + ['has_5fdata_5finterface_3',['has_data_interface',['../structxt_1_1has__data__interface.html',1,'xt']]], + ['has_5fdata_5finterface_3c_20e_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20e_20_3e_28_29_2edata_28_29_29_3e_20_3e_4',['has_data_interface< E, void_t< decltype(std::declval< E >().data())> >',['../structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html',1,'xt']]], + ['has_5fdata_5finterface_5fconcept_5',['has_data_interface_concept',['../conceptxt_1_1has__data__interface__concept.html',1,'xt']]], + ['has_5ffixed_5frank_6',['has_fixed_rank',['../structxt_1_1has__fixed__rank.html',1,'xt']]], + ['has_5fiterator_5finterface_7',['has_iterator_interface',['../structxt_1_1has__iterator__interface.html',1,'xt']]], + ['has_5fiterator_5finterface_3c_20e_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20e_20_3e_28_29_2ebegin_28_29_29_3e_20_3e_8',['has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >',['../structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html',1,'xt']]], + ['has_5fiterator_5finterface_5fconcept_9',['has_iterator_interface_concept',['../conceptxt_1_1has__iterator__interface__concept.html',1,'xt']]], + ['has_5flinear_5fassign_10',['has_linear_assign',['../classxt_1_1xcontainer.html#a5720f32fcd8bc068a5489eddcf7bd8b1',1,'xt::xcontainer::has_linear_assign()'],['../classxt_1_1xfunction.html#a7007affb74eb4e8e6dfbba267f6de5ba',1,'xt::xfunction::has_linear_assign()'],['../classxt_1_1xgenerator.html#ab1a2913449b319eede92915d0b410c0d',1,'xt::xgenerator::has_linear_assign()'],['../classxt_1_1xoptional__assembly__base.html#a7e2c9d6439909805db95ebe75339fc06',1,'xt::xoptional_assembly_base::has_linear_assign()'],['../classxt_1_1xreducer.html#a6dc809c4eefc124d5bfb4d579afea715',1,'xt::xreducer::has_linear_assign()'],['../classxt_1_1xbroadcast.html#afa95389819f8e9168213041757730903',1,'xt::xbroadcast::has_linear_assign()'],['../classxt_1_1xfunctor__applier__base.html#a9ded44a42136f6472c91f0d60462d7a5',1,'xt::xfunctor_applier_base::has_linear_assign()'],['../classxt_1_1xindex__view.html#a436dfb313bdf3ce42a16cfa2a5c9f98f',1,'xt::xindex_view::has_linear_assign()'],['../classxt_1_1xrepeat.html#a1cf9569d72c1fb3af6e2e29252b9f03b',1,'xt::xrepeat::has_linear_assign()'],['../classxt_1_1xstrided__view__base.html#a5264e47f30486f83a313b654d3dd7199',1,'xt::xstrided_view_base::has_linear_assign()'],['../classxt_1_1xview.html#a1249c703f1c218ce7998627aa91c10a6',1,'xt::xview::has_linear_assign()'],['../classxt_1_1xstrided__view.html#af8980bbe46da6333d9d81411bd9b6610',1,'xt::xstrided_view::has_linear_assign()']]], + ['has_5fmemory_5faddress_11',['has_memory_address',['../structxt_1_1has__memory__address.html',1,'xt']]], + ['has_5fmemory_5faddress_3c_20t_2c_20void_5ft_3c_20decltype_28std_3a_3aaddressof_28_2astd_3a_3adeclval_3c_20t_20_3e_28_29_2ebegin_28_29_29_29_3e_20_3e_12',['has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >',['../structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html',1,'xt']]], + ['has_5frank_13',['has_rank',['../structxt_1_1has__rank.html',1,'xt']]], + ['has_5fshape_14',['has_shape',['../group__xt__xshape.html#ga56d28aa1be818adaecee7803249dad7d',1,'xt::has_shape(const E &e, std::initializer_list< S > shape) noexcept'],['../group__xt__xshape.html#ga4453a49484a5833cbf48e51eff2ed3df',1,'xt::has_shape(const E &e, const S &shape)']]], + ['has_5fsign_5fconversion_15',['has_sign_conversion',['../structxt_1_1has__sign__conversion.html',1,'xt']]], + ['has_5fsimd_5fapply_16',['has_simd_apply',['../structxt_1_1has__simd__apply.html',1,'xt']]], + ['has_5fsimd_5finterface_17',['has_simd_interface',['../structxt_1_1has__simd__interface.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_2c_20t_20_3e_18',['has_simd_interface< xfunction< F, CT... >, T >',['../structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_2c_20t_20_3e_19',['has_simd_interface< xfunctor_adaptor< F, CT >, T >',['../structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fapplier_5fbase_3c_20d_20_3e_2c_20t_20_3e_20',['has_simd_interface< xfunctor_applier_base< D >, T >',['../structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fapplier_5fbase_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_2c_20t_20_3e_21',['has_simd_interface< xfunctor_applier_base< xfunctor_adaptor< F, CT > >, T >',['../structxt_1_1has__simd__interface.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fapplier_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_2c_20t_20_3e_22',['has_simd_interface< xfunctor_applier_base< xfunctor_view< F, CT > >, T >',['../structxt_1_1has__simd__interface.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_2c_20t_20_3e_23',['has_simd_interface< xfunctor_view< F, CT >, T >',['../structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_24',['has_simd_interface< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_5fconcept_25',['has_simd_interface_concept',['../conceptxt_1_1has__simd__interface__concept.html',1,'xt']]], + ['has_5fsimd_5ftype_26',['has_simd_type',['../structxt_1_1has__simd__type.html',1,'xt']]], + ['has_5fstorage_5ftype_27',['has_storage_type',['../structxt_1_1has__storage__type.html',1,'xt']]], + ['has_5fstorage_5ftype_3c_20t_2c_20void_5ft_3c_20typename_20xcontainer_5finner_5ftypes_3c_20t_20_3e_3a_3astorage_5ftype_20_3e_20_3e_28',['has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >',['../structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html',1,'xt']]], + ['has_5fstrides_29',['has_strides',['../structxt_1_1has__strides.html',1,'xt']]], + ['has_5fstrides_3c_20e_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20e_20_3e_28_29_2estrides_28_29_29_3e_20_3e_30',['has_strides< E, void_t< decltype(std::declval< E >().strides())> >',['../structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html',1,'xt']]], + ['has_5fvalue_31',['has_value',['../classxt_1_1xoptional__assembly__base.html#af274b99476f869609568a3e09fcf3c55',1,'xt::xoptional_assembly_base::has_value() noexcept'],['../classxt_1_1xoptional__assembly__base.html#a4501b171b337744f6c013a9a46c6414b',1,'xt::xoptional_assembly_base::has_value() const noexcept']]], + ['hazen_32',['hazen',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaf4b08e7cc0a94bb8f4e9969eeb532039',1,'xt']]], + ['helpers_33',['helpers',['../group__digitize.html',1,'Digitize helpers'],['../group__searchsorted.html',1,'Searchsorted helpers']]], + ['histogram_34',['histogram',['../group__histogram.html#ga95e9ea74b2e3f62bb682798bd5d7414d',1,'xt::histogram(E1 &&data, E2 &&bin_edges, E3 &&weights, bool density=false)'],['../group__histogram.html#ga0a5ba67f2a11ee24ccf629105d12e407',1,'xt::histogram(E1 &&data, E2 &&bin_edges, bool density=false)'],['../group__histogram.html#gad8379adac71c1af9b9bc50f835d9536f',1,'xt::histogram(E1 &&data, std::size_t bins=10, bool density=false)'],['../group__histogram.html#ga60449f18cbf62c0a104cf72e53f7948d',1,'xt::histogram(E1 &&data, std::size_t bins, E2 left, E2 right, bool density=false)'],['../group__histogram.html#ga8545490885a4a8466344d954bd5326c1',1,'xt::histogram(E1 &&data, std::size_t bins, E2 &&weights, bool density=false)'],['../group__histogram.html#gaaadf08c80728a3d2ace5739f3350f908',1,'xt::histogram(E1 &&data, std::size_t bins, E2 &&weights, E3 left, E3 right, bool density=false)']]], + ['histogram_20functions_35',['Histogram functions',['../group__histogram.html',1,'']]], + ['histogram_5falgorithm_36',['histogram_algorithm',['../group__histogram.html#gaaa63c71a8935d44bbec1aa9af4cb61b8',1,'xt']]], + ['histogram_5fbin_5fedges_37',['histogram_bin_edges',['../group__histogram.html#ga53ca89b6c48fc35c9a293c2d81f66288',1,'xt::histogram_bin_edges(E1 &&data, E2 &&weights, E3 left, E3 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)'],['../group__histogram.html#gaa3d16282168b4675fdc93c5563eb5324',1,'xt::histogram_bin_edges(E1 &&data, E2 &&weights, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)'],['../group__histogram.html#ga49105a6754699f6ab1073e9868782ec8',1,'xt::histogram_bin_edges(E1 &&data, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)'],['../group__histogram.html#ga5abbd094554988573b2c3cce9e521aab',1,'xt::histogram_bin_edges(E1 &&data, E2 left, E2 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)']]], + ['hsplit_38',['hsplit',['../group__xt__xmanipulation.html#gaf342a194380b6c7bbc7f2c89f4e88317',1,'xt']]], + ['hstack_39',['hstack',['../namespacext.html#aacc647d8af519da1d2126ec96a97849f',1,'xt']]], + ['hyperbolic_20functions_40',['Hyperbolic functions',['../group__hyper__functions.html',1,'']]], + ['hypot_41',['hypot',['../group__pow__functions.html#ga9b55bcc865f0dd82fd679e01c3838526',1,'xt']]], + ['hypot_5ffun_42',['hypot_fun',['../structxt_1_1math_1_1hypot__fun.html',1,'xt::math']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 000000000..c4642e0d4 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,62 @@ +var searchData= +[ + ['idx_5ftools_0',['idx_tools',['../structxt_1_1strided__assign__detail_1_1idx__tools.html',1,'xt::strided_assign_detail']]], + ['idx_5ftools_3c_20layout_5ftype_3a_3acolumn_5fmajor_20_3e_1',['idx_tools< layout_type::column_major >',['../structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html',1,'xt::strided_assign_detail']]], + ['idx_5ftools_3c_20layout_5ftype_3a_3arow_5fmajor_20_3e_2',['idx_tools< layout_type::row_major >',['../structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html',1,'xt::strided_assign_detail']]], + ['imag_3',['imag',['../group__xt__xcomplex.html#ga155e369dcf03bd465609d279b82f6da8',1,'xt']]], + ['immediate_5ftype_4',['immediate_type',['../structxt_1_1evaluation__strategy_1_1immediate__type.html',1,'xt::evaluation_strategy']]], + ['in1d_5',['in1d',['../group__logical__operators.html#gab1bbf85dbe7bc76561321466d657bed4',1,'xt::in1d(E &&element, std::initializer_list< T > test_elements) noexcept'],['../group__logical__operators.html#gad8d2b8d4816486e29169f211636d9c97',1,'xt::in1d(E &&element, F &&test_elements) noexcept'],['../group__logical__operators.html#ga3f5912e0cd902bfd8c36037167001c73',1,'xt::in1d(E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept']]], + ['in_5fbounds_6',['in_bounds',['../classxt_1_1xconst__accessible.html#ace939a65a328afe7ef9241d4cc84b881',1,'xt::xconst_accessible::in_bounds()'],['../classxt_1_1xoptional__assembly__base.html#a109b7cd1df5661aaacc763e2c914795d',1,'xt::xoptional_assembly_base::in_bounds()'],['../classxt_1_1xfunction.html#a1caad16507368ef12100f68950787c47',1,'xt::xfunction::in_bounds()'],['../namespacext.html#a42f9ded8fbe013b13c186ae66474912d',1,'xt::in_bounds(const S &shape, Args &... args)']]], + ['index_5ffrom_5fshape_7',['index_from_shape',['../structxt_1_1index__from__shape.html',1,'xt']]], + ['index_5fmapper_8',['index_mapper',['../structxt_1_1index__mapper.html',1,'xt']]], + ['index_5fmapper_3c_20xt_3a_3axview_3c_20underlyingcontainer_2c_20slices_2e_2e_2e_20_3e_20_3e_9',['index_mapper< xt::xview< UnderlyingContainer, Slices... > >',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html',1,'xt']]], + ['index_5fview_10',['index_view',['../namespacext.html#abb28cb642ab427195ca6120d59f34f76',1,'xt']]], + ['indices_11',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['indices_20and_20flat_20indices_12',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['initial_5ftester_13',['initial_tester',['../structxt_1_1reducer__options_1_1initial__tester.html',1,'xt::reducer_options']]], + ['initial_5ftester_3c_20const_20xinitial_3c_20x_20_3e_20_3e_14',['initial_tester< const xinitial< X > >',['../structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html',1,'xt::reducer_options']]], + ['initial_5ftester_3c_20xinitial_3c_20x_20_3e_20_3e_15',['initial_tester< xinitial< X > >',['../structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html',1,'xt::reducer_options']]], + ['initializer_5fdimension_16',['initializer_dimension',['../structxt_1_1initializer__dimension.html',1,'xt']]], + ['inner_5faligned_5fmode_17',['inner_aligned_mode',['../structxt_1_1inner__aligned__mode.html',1,'xt']]], + ['inner_5freference_18',['inner_reference',['../structxt_1_1inner__reference.html',1,'xt']]], + ['integer_20floating_20point_20operations_19',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['integral_5fconcept_20',['integral_concept',['../conceptxtl_1_1integral__concept.html',1,'xtl']]], + ['internal_21',['internal',['../group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dad1efad72dc5b17dc66a46767c32fff40',1,'xt']]], + ['interp_22',['interp',['../group__basic__functions.html#ga47e1576710edcbb14d2ccf4df7d62ec3',1,'xt::interp(const E1 &x, const E2 &xp, const E3 &fp, T left, T right)'],['../group__basic__functions.html#gaa909fc5959dbb290c47c9698d5076ed3',1,'xt::interp(const E1 &x, const E2 &xp, const E3 &fp)']]], + ['interpolated_5finverted_5fcdf_23',['interpolated_inverted_cdf',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda7f20bc9a8cd4acd58c1d9b46821e9242',1,'xt']]], + ['invalid_5ftype_24',['invalid_type',['../structxt_1_1invalid__type.html',1,'xt']]], + ['is_5fbatch_5fbool_25',['is_batch_bool',['../structxt__simd_1_1is__batch__bool.html',1,'xt_simd']]], + ['is_5fbatch_5fcomplex_26',['is_batch_complex',['../structxt__simd_1_1is__batch__complex.html',1,'xt_simd']]], + ['is_5fchunked_5ft_27',['is_chunked_t',['../structxt_1_1is__chunked__t.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_28',['is_contiguous_container',['../structxt_1_1is__contiguous__container.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20i_20_3e_29',['is_contiguous_container< I >',['../structxt_1_1is__contiguous__container.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20ig_3a_3aiterator_20_3e_30',['is_contiguous_container< IG::iterator >',['../structxt_1_1is__contiguous__container.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20xiterator_3c_20st_2c_20s_2c_20l_20_3e_20_3e_31',['is_contiguous_container< xiterator< St, S, L > >',['../structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_32',['is_contiguous_container< xiterator_adaptor< I, CI > >',['../structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_33',['is_contiguous_container< xiterator_owner_adaptor< C, IG > >',['../structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html',1,'xt']]], + ['is_5fevaluation_5fstrategy_34',['is_evaluation_strategy',['../structxt_1_1is__evaluation__strategy.html',1,'xt']]], + ['is_5findexed_5fstepper_35',['is_indexed_stepper',['../structxt_1_1is__indexed__stepper.html',1,'xt']]], + ['is_5findexed_5fstepper_3c_20xindexed_5fstepper_3c_20t_2c_20b_20_3e_20_3e_36',['is_indexed_stepper< xindexed_stepper< T, B > >',['../structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html',1,'xt']]], + ['is_5fiterator_37',['is_iterator',['../structxt_1_1is__iterator.html',1,'xt']]], + ['is_5fiterator_3c_20e_2c_20void_5ft_3c_20decltype_28_2astd_3a_3adeclval_3c_20const_20e_20_3e_28_29_2c_20std_3a_3adeclval_3c_20const_20e_20_3e_28_29_3d_3dstd_3a_3adeclval_3c_20const_20e_20_3e_28_29_2c_20std_3a_3adeclval_3c_20const_20e_20_3e_28_29_20_21_3dstd_3a_3adeclval_3c_20const_20e_20_3e_28_29_2c_2b_2b_28_2astd_3a_3adeclval_3c_20e_20_2a_20_3e_28_29_29_2c_28_2astd_3a_3adeclval_3c_20e_20_2a_20_3e_28_29_29_2b_2b_2c_20std_3a_3atrue_5ftype_28_29_29_3e_20_3e_38',['is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >',['../structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html',1,'xt']]], + ['is_5fnarrowing_5fconversion_39',['is_narrowing_conversion',['../structxt_1_1is__narrowing__conversion.html',1,'xt']]], + ['is_5fnot_5fxdummy_5fiterator_40',['is_not_xdummy_iterator',['../structxt_1_1is__not__xdummy__iterator.html',1,'xt']]], + ['is_5fnot_5fxdummy_5fiterator_3c_20xdummy_5fiterator_3c_20is_5fconst_2c_20ct_20_3e_20_3e_41',['is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >',['../structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html',1,'xt']]], + ['is_5freducer_5foptions_42',['is_reducer_options',['../structxt_1_1is__reducer__options.html',1,'xt']]], + ['is_5freducer_5foptions_5fimpl_43',['is_reducer_options_impl',['../structxt_1_1is__reducer__options__impl.html',1,'xt']]], + ['is_5freducer_5foptions_5fimpl_3c_20std_3a_3adecay_5ft_3c_20t_20_3e_20_3e_44',['is_reducer_options_impl< std::decay_t< T > >',['../structxt_1_1is__reducer__options__impl.html',1,'xt']]], + ['is_5freducer_5foptions_5fimpl_3c_20std_3a_3atuple_3c_20x_2e_2e_2e_20_3e_20_3e_45',['is_reducer_options_impl< std::tuple< X... > >',['../structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html',1,'xt']]], + ['is_5fspecialization_5fof_46',['is_specialization_of',['../structxt_1_1is__specialization__of.html',1,'xt']]], + ['is_5fspecialization_5fof_3c_20tt_2c_20tt_3c_20ts_2e_2e_2e_20_3e_20_3e_47',['is_specialization_of< TT, TT< Ts... > >',['../structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html',1,'xt']]], + ['is_5fxoptional_5fexpression_48',['is_xoptional_expression',['../structxt_1_1is__xoptional__expression.html',1,'xt']]], + ['is_5fxtensor_5fexpression_49',['is_xtensor_expression',['../structxt_1_1is__xtensor__expression.html',1,'xt']]], + ['isclose_50',['isclose',['../group__classif__functions.html#ga94330518c2d0f78691dc8bb4b27eb72a',1,'xt']]], + ['isfinite_51',['isfinite',['../group__classif__functions.html#ga177a09c77ac16a253588403fe7cbeaec',1,'xt']]], + ['isfinite_5ffun_52',['isfinite_fun',['../structxt_1_1math_1_1isfinite__fun.html',1,'xt::math']]], + ['isin_53',['isin',['../group__logical__operators.html#gac71ec22119ac398c4c737d48197e5399',1,'xt::isin(E &&element, std::initializer_list< T > test_elements) noexcept'],['../group__logical__operators.html#gaf0995facdc63eee30636804c8296bb67',1,'xt::isin(E &&element, F &&test_elements) noexcept'],['../group__logical__operators.html#gae16e50a10ea871ad6bf8a42905db4b48',1,'xt::isin(E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept']]], + ['isinf_54',['isinf',['../group__classif__functions.html#ga94db88dbac47fd2e3cce71c568332554',1,'xt']]], + ['isinf_5ffun_55',['isinf_fun',['../structxt_1_1math_1_1isinf__fun.html',1,'xt::math']]], + ['isnan_56',['isnan',['../group__classif__functions.html#ga41ec7bcedb794bccf3535bac9c3142ab',1,'xt']]], + ['isnan_5ffun_57',['isnan_fun',['../structxt_1_1math_1_1isnan__fun.html',1,'xt::math']]], + ['iterator_5fconcept_58',['iterator_concept',['../conceptxt_1_1iterator__concept.html',1,'xt']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 000000000..1e251ed4c --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['keep_0',['keep',['../namespacext.html#ab6dcd225400d75a98e0b048d7ed9b5c9',1,'xt']]], + ['keep_5fdims_5ftype_1',['keep_dims_type',['../structxt_1_1keep__dims__type.html',1,'xt']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 000000000..f11abf4a6 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['layout_0',['layout',['../classxt_1_1xstrided__container.html#a475028ed0b0719aebc55afe8fc00728e',1,'xt::xstrided_container::layout()'],['../classxt_1_1xfunction.html#a40bd918815f66f76ad0f05d3e33fbdbb',1,'xt::xfunction::layout()'],['../classxt_1_1xoptional__assembly__base.html#a894c8a27844c4543906eb44fb33f579e',1,'xt::xoptional_assembly_base::layout()'],['../classxt_1_1xreducer.html#aeee3a89a9dd452a00cfd55cbbfd2aa17',1,'xt::xreducer::layout()'],['../classxt_1_1xbroadcast.html#aca1bb5d073d6fbbfec6e82cbc456cadd',1,'xt::xbroadcast::layout()'],['../classxt_1_1xfunctor__applier__base.html#a41a690f43f808ba326e0bd3e4ab19f95',1,'xt::xfunctor_applier_base::layout()'],['../classxt_1_1xmasked__view.html#a7f160d16d17eea921739b9ff1457c374',1,'xt::xmasked_view::layout()'],['../classxt_1_1xrepeat.html#a44b37d9a8b603737eec64e57ce108ad0',1,'xt::xrepeat::layout()'],['../classxt_1_1xstrided__view__base.html#a10da93fc02c2c53dde8d9f171ce053a6',1,'xt::xstrided_view_base::layout()'],['../classxt_1_1xview.html#aface2a61c07630c793d71241d13de29d',1,'xt::xview::layout()'],['../classxt_1_1xdynamic__view.html#ae3ff4c9cf2e6873fbc934e946f1b702b',1,'xt::xdynamic_view::layout()'],['../classxt_1_1xstrided__view.html#ae3ff4c9cf2e6873fbc934e946f1b702b',1,'xt::xstrided_view::layout()']]], + ['layout_5ftype_1',['layout_type',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6',1,'xt']]], + ['lazy_5ftype_2',['lazy_type',['../structxt_1_1evaluation__strategy_1_1lazy__type.html',1,'xt::evaluation_strategy']]], + ['left_5fshift_3',['left_shift',['../group__bitwise__operators.html#ga2cd49affcc3745f02fbb43f1bed16ed1',1,'xt']]], + ['less_4',['less',['../group__comparison__operators.html#ga2c830ecb583258f639e710642dbf0d7c',1,'xt']]], + ['less_5fequal_5',['less_equal',['../group__comparison__operators.html#ga9e84bf652cf6e810f974a8bcb51f1511',1,'xt']]], + ['lgamma_6',['lgamma',['../group__err__functions.html#ga5216029cd6e56b81f5145041540d043e',1,'xt']]], + ['lgamma_5ffun_7',['lgamma_fun',['../structxt_1_1math_1_1lgamma__fun.html',1,'xt::math']]], + ['like_20containers_8',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['line_5fwidth_9',['line_width',['../classxt_1_1print__options_1_1line__width.html',1,'xt::print_options']]], + ['linear_10',['linear',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda9a932b3cb396238423eb2f33ec17d6aa',1,'xt']]], + ['linear_5fassigner_11',['linear_assigner',['../classxt_1_1linear__assigner.html',1,'xt']]], + ['linear_5fassigner_3c_20false_20_3e_12',['linear_assigner< false >',['../classxt_1_1linear__assigner_3_01false_01_4.html',1,'xt']]], + ['linspace_13',['linspace',['../namespacext.html#a84b4f2192981c30e7ee35fba2b164cb2',1,'xt']]], + ['list_14',['Deprecated List',['../deprecated.html',1,'']]], + ['load_5fcsv_15',['load_csv',['../namespacext.html#a1a7ff9a44466a0de5525ac507db04e6a',1,'xt']]], + ['load_5fnpy_16',['load_npy',['../namespacext.html#a09f40ac64487910bfee944c044c9739c',1,'xt::load_npy(std::istream &stream)'],['../namespacext.html#a2466a03b0fed69ae73a2e01490af1fec',1,'xt::load_npy(const std::string &filename)']]], + ['log_17',['log',['../group__exp__functions.html#gaaeb73f780e08001206f1f9ed9db161e1',1,'xt']]], + ['log10_18',['log10',['../group__exp__functions.html#gae6585ff00a0cf0fdcdf659639e8d1ca0',1,'xt']]], + ['log10_5ffun_19',['log10_fun',['../structxt_1_1math_1_1log10__fun.html',1,'xt::math']]], + ['log1p_20',['log1p',['../group__exp__functions.html#ga08b8fa80ab57f38bb87e8c01b943d7f7',1,'xt']]], + ['log1p_5ffun_21',['log1p_fun',['../structxt_1_1math_1_1log1p__fun.html',1,'xt::math']]], + ['log2_22',['log2',['../group__exp__functions.html#gae08fcbd5914db4f5b2649f5333375d95',1,'xt']]], + ['log2_5ffun_23',['log2_fun',['../structxt_1_1math_1_1log2__fun.html',1,'xt::math']]], + ['log_5ffun_24',['log_fun',['../structxt_1_1math_1_1log__fun.html',1,'xt::math']]], + ['logical_20operators_25',['Logical operators',['../group__logical__operators.html',1,'']]], + ['logspace_26',['logspace',['../namespacext.html#ae448d7eb5de30ef12ca38ca7d6d15356',1,'xt']]], + ['loop_5fsizes_5ft_27',['loop_sizes_t',['../structxt_1_1strided__assign__detail_1_1loop__sizes__t.html',1,'xt::strided_assign_detail']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 000000000..b6d70c15a --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['make_5finvalid_5ftype_0',['make_invalid_type',['../structxt_1_1make__invalid__type.html',1,'xt']]], + ['make_5flambda_5fxfunction_1',['make_lambda_xfunction',['../namespacext.html#a259a5c38335a33c4a6f8aff517494efb',1,'xt']]], + ['make_5fvoid_2',['make_void',['../structxt_1_1make__void.html',1,'xt']]], + ['make_5fxshared_3',['make_xshared',['../namespacext.html#ab3cc0ff08a76f5d91bcb294a06f8c784',1,'xt']]], + ['manipulation_4',['Array manipulation',['../group__xt__xmanipulation.html',1,'']]], + ['map_5',['map',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#aed240e2021f2f3e9f8cba86234d24f2e',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['map_5fat_6',['map_at',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#ac6608a673491a49d7ff37d23aaa8ebeb',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['maximum_7',['maximum',['../structxt_1_1math_1_1maximum.html',1,'xt::math::maximum< T >'],['../group__basic__functions.html#ga72354e9ca3d4446608c32d77d78fc721',1,'xt::maximum(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::maximum< void >, E1, E2 >']]], + ['mean_8',['mean',['../group__red__functions.html#gad0919b7cd9e5d8907363a2a146c1ec09',1,'xt']]], + ['median_9',['median',['../group__xt__xsort.html#gae6a650f8da9d0066e26ecda36ee293e4',1,'xt']]], + ['median_5funbiased_10',['median_unbiased',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaeddf62d602ae684d91d6f586f5e5cbaf',1,'xt']]], + ['memory_5frange_11',['memory_range',['../structxt_1_1memory__range.html',1,'xt']]], + ['meshgrid_12',['meshgrid',['../namespacext.html#a513e9f91fb23575e3e35eff04c628e19',1,'xt']]], + ['meta_5fidentity_13',['meta_identity',['../structxt_1_1meta__identity.html',1,'xt']]], + ['minimum_14',['minimum',['../structxt_1_1math_1_1minimum.html',1,'xt::math::minimum< T >'],['../group__basic__functions.html#ga6ba20f491bf0a014df5a219461ac8c98',1,'xt::minimum(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::minimum< void >, E1, E2 >']]], + ['minmax_15',['minmax',['../group__red__functions.html#gab752be31d54ec7e45daef9a5d3868030',1,'xt']]], + ['minus_5fassign_16',['minus_assign',['../classxt_1_1xsemantic__base.html#a9ae9f40db494b08455a84b3ba24e87e2',1,'xt::xsemantic_base']]], + ['missing_5ftype_17',['missing_type',['../structxt_1_1missing__type.html',1,'xt']]], + ['modulus_5fassign_18',['modulus_assign',['../classxt_1_1xsemantic__base.html#a30eeb2e83b810139f5111c161055e041',1,'xt::xsemantic_base']]], + ['moveaxis_19',['moveaxis',['../group__xt__xmanipulation.html#ga2d8bcbb846f2efae57cf6fb4aa24625a',1,'xt']]], + ['multiplies_5fassign_20',['multiplies_assign',['../classxt_1_1xsemantic__base.html#aafe434601607910fc1d8e95dde649bff',1,'xt::xsemantic_base']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 000000000..50c5c0ecf --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,61 @@ +var searchData= +[ + ['n_5findices_5ffull_5fv_0',['n_indices_full_v',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#ab5226b8768f6ce19ca05b259a6d10a70',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['n_5fslices_1',['n_slices',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#ab9fa9e74b60fc327c8c856028edbf5b6',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['nan_20functions_2',['nan functions',['../group__nan__functions.html',1,'']]], + ['nan_5fto_5fnum_3',['nan_to_num',['../group__nan__functions.html#gae82e0b56454b586ec1ffbf57d6d2122f',1,'xt']]], + ['nancumprod_4',['nancumprod',['../group__nan__functions.html#ga4fb43a2f434821dfec8464e84ad05de7',1,'xt']]], + ['nancumsum_5',['nancumsum',['../group__nan__functions.html#ga48eab6816103340e288db50e05f00e60',1,'xt']]], + ['nanmax_6',['nanmax',['../group__nan__functions.html#ga0e300ce1d00beec93e45d7aa0e308ceb',1,'xt']]], + ['nanmean_7',['nanmean',['../group__nan__functions.html#ga5ff43d5bf500e85b384c2c08d2ababe9',1,'xt']]], + ['nanmin_8',['nanmin',['../group__nan__functions.html#gaaade983a5b6b9406608d54f3ba37a264',1,'xt']]], + ['nanprod_9',['nanprod',['../group__nan__functions.html#gad63669d7342cc68dae7b15f3c49ca1c2',1,'xt']]], + ['nanstd_10',['nanstd',['../group__nan__functions.html#ga21421ea090897548b9199c1fdb3049be',1,'xt']]], + ['nansum_11',['nansum',['../group__nan__functions.html#gadbfe228ebc452fabfdbf4067274a471a',1,'xt']]], + ['nanvar_12',['nanvar',['../group__nan__functions.html#ga3c3fdce46c4143d595e11db1646f7d89',1,'xt']]], + ['nb_5fintegral_5fslices_13',['nb_integral_slices',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a14a2a6abbfa0b46d7ada32f0fdd57ee8',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['nb_5fnew_5faxis_5fslices_14',['nb_new_axis_slices',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#ab3105714e7cc4719642890176dbf51d4',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['nearbyint_15',['nearbyint',['../group__nearint__functions.html#ga297d1cfd2029ec779f3b2caf20cae56f',1,'xt']]], + ['nearbyint_5ffun_16',['nearbyint_fun',['../structxt_1_1math_1_1nearbyint__fun.html',1,'xt::math']]], + ['nearest_20integer_20floating_20point_20operations_17',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['nested_5finitializer_5flist_18',['nested_initializer_list',['../structxt_1_1nested__initializer__list.html',1,'xt']]], + ['nested_5finitializer_5flist_3c_20t_2c_200_20_3e_19',['nested_initializer_list< T, 0 >',['../structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html',1,'xt']]], + ['newaxis_20',['newaxis',['../namespacext.html#a534914903c805a597a5fac60e60e7c43',1,'xt']]], + ['no_5fownership_21',['no_ownership',['../structxt_1_1no__ownership.html',1,'xt']]], + ['noalias_5fproxy_22',['noalias_proxy',['../classxt_1_1noalias__proxy.html',1,'xt']]], + ['non_5fintegral_5fconcept_23',['non_integral_concept',['../conceptxtl_1_1non__integral__concept.html',1,'xtl']]], + ['none_24',['none',['../structxt_1_1check__policy_1_1none.html',1,'xt::check_policy']]], + ['nonzero_25',['nonzero',['../group__logical__operators.html#ga9f570271ba6f20a0d6a5880fa4ae83cb',1,'xt']]], + ['norm_26',['norm',['../group__xt__xcomplex.html#gad3afef5ff535998e5dd0d95a979c54bf',1,'xt']]], + ['norm_5ffun_27',['norm_fun',['../structxt_1_1math_1_1norm__fun.html',1,'xt::math']]], + ['norm_5finduced_5fl1_28',['norm_induced_l1',['../group__red__functions.html#ga6756e0125ea6eaf41da4d72c863222ad',1,'xt']]], + ['norm_5finduced_5flinf_29',['norm_induced_linf',['../group__red__functions.html#ga32553e96de228c6a760ea1e7eac51dbd',1,'xt']]], + ['norm_5fl0_30',['norm_l0',['../group__red__functions.html#gad29e1eba5e05138bd5db7bfc577215f1',1,'xt']]], + ['norm_5fl1_31',['norm_l1',['../group__red__functions.html#ga75c1f16a4c45c0ded05f6a50f8245385',1,'xt']]], + ['norm_5fl2_32',['norm_l2',['../group__red__functions.html#ga612264ac7b3ed369ebe6da569e2bf7f5',1,'xt::norm_l2(E &&e, EVS es=EVS()) noexcept'],['../group__red__functions.html#gad8d838a048615ed661350fcd7af66d06',1,'xt::norm_l2(E &&e, X &&axes, EVS es=EVS()) noexcept']]], + ['norm_5flinf_33',['norm_linf',['../group__red__functions.html#gad3987362169c6b7f82dc4acaa012c65f',1,'xt']]], + ['norm_5flp_34',['norm_lp',['../group__red__functions.html#ga4f5622197f95e83dafec8394265fd750',1,'xt']]], + ['norm_5flp_5fto_5fp_35',['norm_lp_to_p',['../group__red__functions.html#gaa1062bcc8bc659e9a09a5816626d5575',1,'xt']]], + ['norm_5fof_5farray_5felements_5fimpl_36',['norm_of_array_elements_impl',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20long_20double_2c_20false_2c_20true_20_3e_37',['norm_of_array_elements_impl< long double, false, true >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20t_2c_20false_2c_20false_20_3e_38',['norm_of_array_elements_impl< T, false, false >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20t_2c_20false_2c_20true_20_3e_39',['norm_of_array_elements_impl< T, false, true >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20t_2c_20true_2c_20false_20_3e_40',['norm_of_array_elements_impl< T, true, false >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20void_20_2a_2c_20false_2c_20false_20_3e_41',['norm_of_array_elements_impl< void *, false, false >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5fscalar_5fimpl_42',['norm_of_scalar_impl',['../structxt_1_1traits__detail_1_1norm__of__scalar__impl.html',1,'xt::traits_detail']]], + ['norm_5fof_5fscalar_5fimpl_3c_20t_2c_20false_20_3e_43',['norm_of_scalar_impl< T, false >',['../structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5fscalar_5fimpl_3c_20t_2c_20true_20_3e_44',['norm_of_scalar_impl< T, true >',['../structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5fvector_5fimpl_45',['norm_of_vector_impl',['../structxt_1_1traits__detail_1_1norm__of__vector__impl.html',1,'xt::traits_detail']]], + ['norm_5fof_5fvector_5fimpl_3c_20t_20_3e_46',['norm_of_vector_impl< T >',['../structxt_1_1traits__detail_1_1norm__of__vector__impl.html',1,'xt::traits_detail']]], + ['norm_5fsq_47',['norm_sq',['../group__red__functions.html#ga243ff01254cf5c1bcfe3ef6b6b67331d',1,'xt']]], + ['norm_5ftype_48',['norm_type',['../structxt_1_1norm__type.html',1,'xt']]], + ['norm_5ftype_5fbase_49',['norm_type_base',['../structxt_1_1traits__detail_1_1norm__type__base.html',1,'xt::traits_detail']]], + ['norm_5ftype_5fbase_3c_20t_20_3e_50',['norm_type_base< T >',['../structxt_1_1traits__detail_1_1norm__type__base.html',1,'xt::traits_detail']]], + ['norm_5ftype_5ft_51',['norm_type_t',['../namespacext.html#ab4c44845df13e51e13c5e2a379c20681',1,'xt']]], + ['normal_52',['normal',['../group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dafea087517c26fadd409bd4b9dc642555',1,'xt']]], + ['normal_5funbiased_53',['normal_unbiased',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edad1056b777fd87429ccb7a8a55db32545',1,'xt']]], + ['normalize_5fperiodic_54',['normalize_periodic',['../group__xt__xstrides.html#gafa51177b0954ec061327dab5d8055ddb',1,'xt']]], + ['not_5fequal_55',['not_equal',['../group__comparison__operators.html#ga014ea335af4e1334f9d95ca6f9b9f6ce',1,'xt']]], + ['numbers_56',['Complex numbers',['../group__xt__xcomplex.html',1,'']]], + ['numeric_5fconstants_57',['numeric_constants',['../structxt_1_1numeric__constants.html',1,'xt']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 000000000..4a886d7a5 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,49 @@ +var searchData= +[ + ['of_20stl_20like_20containers_0',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['ones_1',['ones',['../namespacext.html#a498ae15885758184e0ee9def889b6bfb',1,'xt']]], + ['ones_5flike_2',['ones_like',['../namespacext.html#a40664e859ef008b427ea6d8a013ebb96',1,'xt']]], + ['operations_3',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['operator_21_4',['operator!',['../group__logical__operators.html#ga669c5968e594e618cd199674074c32e4',1,'xt']]], + ['operator_21_3d_5',['operator!=',['../group__comparison__operators.html#gaae699c5c8cda32f45372da2daee9a9b4',1,'xt::operator!=(const xexpression< E1 > &e1, const xexpression< E2 > &e2)'],['../namespacext.html#aafb4918c6aea49e7968e4ed024a70a99',1,'xt::operator!=(const xaxis_iterator< CT > &lhs, const xaxis_iterator< CT > &rhs)'],['../namespacext.html#a1e99b6c54f3a5fca29006d1b114e356d',1,'xt::operator!=(const xaxis_slice_iterator< CT > &lhs, const xaxis_slice_iterator< CT > &rhs)']]], + ['operator_25_6',['operator%',['../group__arithmetic__operators.html#gaa3c78e8ff8a284881563ccbdd64bf145',1,'xt']]], + ['operator_25_3d_7',['operator%=',['../classxt_1_1xsemantic__base.html#a097cecfc7ed32171204a465c057b21aa',1,'xt::xsemantic_base::operator%=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#afc0cf14e98f80e1a266aed5ab59d3a26',1,'xt::xsemantic_base::operator%=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a75cb70a24a3740144a49ca60edfa6b65',1,'xt::xfiltration::operator%=()']]], + ['operator_26_8',['operator&',['../group__bitwise__operators.html#ga0084d8f6f0f513d35a35e79f7fffc2fb',1,'xt']]], + ['operator_26_26_9',['operator&&',['../group__logical__operators.html#ga95f7645635520ba70e7d0d9b0e989205',1,'xt']]], + ['operator_26_3d_10',['operator&=',['../classxt_1_1xsemantic__base.html#a9e53cf500ff97971980632a01242e40f',1,'xt::xsemantic_base::operator&=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#aa64e63246393baa97cda0409dfe880f9',1,'xt::xsemantic_base::operator&=(const xexpression< E > &e) -> derived_type &']]], + ['operator_28_29_11',['operator()',['../classxt_1_1xindex__view.html#ab0eefdf0f3dedf19a78763643718e353',1,'xt::xindex_view::operator()(size_type idx=size_type(0))'],['../classxt_1_1xindex__view.html#aab9b1fd3d2f19db29b52cd9cad772a2d',1,'xt::xindex_view::operator()(size_type idx=size_type(0)) const'],['../classxt_1_1xcontainer.html#a6bcf87fdd442aa26095837b359d9b4e8',1,'xt::xcontainer::operator()(Args... args) -> reference'],['../classxt_1_1xcontainer.html#aeee2e07bb1f3e66193e5ef3432b4011a',1,'xt::xcontainer::operator()(Args... args) const -> const_reference'],['../classxt_1_1xfunction.html#af161015b6c0ce2dc7654f26b6e1a16c2',1,'xt::xfunction::operator()()'],['../classxt_1_1xgenerator.html#a5d2e22a7df365f2d238aef28715a46f8',1,'xt::xgenerator::operator()()'],['../classxt_1_1xoptional__assembly__base.html#aea309f566b610b826a2609bb32b63d25',1,'xt::xoptional_assembly_base::operator()(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#ab5abb6c1e1c8c57c1662421c5f679b5a',1,'xt::xoptional_assembly_base::operator()(Args... args) const -> const_reference'],['../classxt_1_1xreducer.html#a979a86f103f655328d35e67fcc5bca7b',1,'xt::xreducer::operator()()'],['../classxt_1_1xbroadcast.html#afca42261ce09c53e109862b63ea8bf87',1,'xt::xbroadcast::operator()()'],['../classxt_1_1xfunctor__applier__base.html#a5b63f2bdd4620e52cc453fafd78831d3',1,'xt::xfunctor_applier_base::operator()(Args... args) -> reference'],['../classxt_1_1xfunctor__applier__base.html#a63939aecf0c7f315aab8119a2790aa69',1,'xt::xfunctor_applier_base::operator()(Args... args) const -> const_reference'],['../classxt_1_1xmasked__view.html#a871b0392cccaac8fb981273bb5008186',1,'xt::xmasked_view::operator()(Args... args) -> reference'],['../classxt_1_1xmasked__view.html#a7cd2236961bba48f19933c8450052790',1,'xt::xmasked_view::operator()(Args... args) const -> const_reference'],['../classxt_1_1xrepeat.html#aa896d82b715c106f2424266feabfe7d9',1,'xt::xrepeat::operator()()'],['../classxt_1_1xstrided__view__base.html#a567f05613c6dfb65b68289e994d09183',1,'xt::xstrided_view_base::operator()(Args... args) -> reference'],['../classxt_1_1xstrided__view__base.html#a986bbe34c4e1ffb0948b9d9a2238c7ce',1,'xt::xstrided_view_base::operator()(Args... args) const -> const_reference'],['../classxt_1_1xview.html#a16ffe8d0c8b973c2fa28e75c2f353437',1,'xt::xview::operator()(Args... args) -> reference'],['../classxt_1_1xview.html#a9bfc52bb7a7844eb976a096875d6a5a6',1,'xt::xview::operator()(Args... args) const -> const_reference']]], + ['operator_2a_12',['operator*',['../classxt_1_1xaxis__iterator.html#a150d158b5c15befbed66477acf3ea890',1,'xt::xaxis_iterator::operator*()'],['../classxt_1_1xaxis__slice__iterator.html#a8250c9f5f36a93e0e3ff856f9bd6ab2b',1,'xt::xaxis_slice_iterator::operator*()'],['../group__arithmetic__operators.html#gaee209a211df9c1fdd671fe786c01eca6',1,'xt::operator*()']]], + ['operator_2a_3d_13',['operator*=',['../classxt_1_1xsemantic__base.html#abc6dededcc7548c86d0e680723332507',1,'xt::xsemantic_base::operator*=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#aaec30e9ec0a24602c707935671e72798',1,'xt::xsemantic_base::operator*=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a5911e1b618eb8b240f8f93accccda5d7',1,'xt::xfiltration::operator*=()']]], + ['operator_2b_14',['operator+',['../group__arithmetic__operators.html#ga4f6fda1324731f7d8c7bedfd786fd711',1,'xt::operator+(E &&e) noexcept -> detail::xfunction_type_t< detail::identity, E >'],['../group__arithmetic__operators.html#ga3a0012dd54e6eddb1dc1499bda3835fc',1,'xt::operator+(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::plus, E1, E2 >']]], + ['operator_2b_2b_15',['operator++',['../classxt_1_1xaxis__iterator.html#aa6a381b3f4e53a2b7b2a0385e2675b65',1,'xt::xaxis_iterator::operator++()'],['../classxt_1_1xaxis__iterator.html#af118e8a489b3ee60287f8848a42c3ec8',1,'xt::xaxis_iterator::operator++(int)'],['../classxt_1_1xaxis__slice__iterator.html#a6712f741da8a93fa4c0785888d008608',1,'xt::xaxis_slice_iterator::operator++()'],['../classxt_1_1xaxis__slice__iterator.html#a58c7c5d0bec327a8fb5d1f63b6122822',1,'xt::xaxis_slice_iterator::operator++(int)']]], + ['operator_2b_3d_16',['operator+=',['../classxt_1_1xsemantic__base.html#a8d5c560eb7c807fb0806864fb0b46c50',1,'xt::xsemantic_base::operator+=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#a9e31dbd09cdb7b7676d33243732f3ac7',1,'xt::xsemantic_base::operator+=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a2fae2b71a4134ec799668a13cdc60d9a',1,'xt::xfiltration::operator+=()']]], + ['operator_2d_17',['operator-',['../group__arithmetic__operators.html#gae9984fddddb53d90fcef38c017ebb5c9',1,'xt::operator-(E &&e) noexcept -> detail::xfunction_type_t< detail::negate, E >'],['../group__arithmetic__operators.html#gadcc7da6c96325690024067869af4e3bf',1,'xt::operator-(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::minus, E1, E2 >']]], + ['operator_2d_3d_18',['operator-=',['../classxt_1_1xsemantic__base.html#afa46b608eb0ee224aa7592404ba01b20',1,'xt::xsemantic_base::operator-=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#aa9edf1d0dba25f33a6f1955dfe333d66',1,'xt::xsemantic_base::operator-=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#acfb314430c89b71133595cb83f84a75e',1,'xt::xfiltration::operator-=()']]], + ['operator_2d_3e_19',['operator->',['../classxt_1_1xaxis__iterator.html#a265baea7c543cabd5f9b074d39371310',1,'xt::xaxis_iterator::operator->()'],['../classxt_1_1xaxis__slice__iterator.html#a98d80126e4d0c78658fabe73303913bb',1,'xt::xaxis_slice_iterator::operator->()']]], + ['operator_2f_20',['operator/',['../group__arithmetic__operators.html#ga5c9e3cca169a86ea0974e67d562f7f8c',1,'xt']]], + ['operator_2f_3d_21',['operator/=',['../classxt_1_1xsemantic__base.html#af008542eab3a41140cfe12dca74232ee',1,'xt::xsemantic_base::operator/=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#a2ff7796563ea73e3aff6ce17ff2c1f42',1,'xt::xsemantic_base::operator/=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a2bc58cd24579e8d62efd55fdb750ed40',1,'xt::xfiltration::operator/=()']]], + ['operator_3c_22',['operator<',['../group__comparison__operators.html#ga2adbdc9609fe51aa3e50955fe039ba67',1,'xt']]], + ['operator_3c_3c_23',['operator<<',['../group__bitwise__operators.html#gaa7b48fdbaa2c12656338470eb3cc5c8e',1,'xt']]], + ['operator_3c_3d_24',['operator<=',['../group__comparison__operators.html#gaf7b3cb0fe146e5a95a750a1291bfdcca',1,'xt']]], + ['operator_3d_25',['operator=',['../classxt_1_1xarray__container.html#ac47c631a33e292371fab8acff451f269',1,'xt::xarray_container::operator=()'],['../classxt_1_1xarray__adaptor.html#aece6f91aa92298df35846b524613828b',1,'xt::xarray_adaptor::operator=()'],['../classxt_1_1xfixed__container.html#a02686e37949d2c9076cd7b5656e7db3b',1,'xt::xfixed_container::operator=()'],['../classxt_1_1xfixed__adaptor.html#a5eba04b65afb8377a248f1253605f7d2',1,'xt::xfixed_adaptor::operator=()'],['../classxt_1_1xtensor__container.html#a1b82b2aea047cca3d11106062721c34c',1,'xt::xtensor_container::operator=()'],['../classxt_1_1xtensor__adaptor.html#af034feb75cd6690b25a4c6b7b4a20bc5',1,'xt::xtensor_adaptor::operator=()'],['../classxt_1_1xtensor__view.html#a595e97c93a52f5f196d00396435ec76b',1,'xt::xtensor_view::operator=()'],['../classxt_1_1xoptional__assembly.html#af67042d373194546b43afffb160ce687',1,'xt::xoptional_assembly::operator=()'],['../classxt_1_1xoptional__assembly__adaptor.html#ae9fc0069591e77f0b879152b82032987',1,'xt::xoptional_assembly_adaptor::operator=()'],['../classxt_1_1xfunctor__view.html#a9e41f726bcd647106ca9f420a045d228',1,'xt::xfunctor_view::operator=()'],['../classxt_1_1xfunctor__adaptor.html#a4eaf31a6089dc47d2e772fa6590514bd',1,'xt::xfunctor_adaptor::operator=()'],['../classxt_1_1xindex__view.html#aac159eb55755735609a3095f1e73bf3a',1,'xt::xindex_view::operator=()'],['../classxt_1_1xfiltration.html#a13d467d1d2a39fb0b3cdee0b60d2db68',1,'xt::xfiltration::operator=()'],['../classxt_1_1xstrided__view.html#a48ae99185454667efcd738a48ddc43bf',1,'xt::xstrided_view::operator=()'],['../classxt_1_1xview.html#af7f042302a75ce76b1ce094b38529188',1,'xt::xview::operator=()']]], + ['operator_3d_3d_26',['operator==',['../group__comparison__operators.html#gaa82e19b7daac1f55388a62f89cd5f9c7',1,'xt::operator==(const xexpression< E1 > &e1, const xexpression< E2 > &e2)'],['../namespacext.html#a49dd71cabe349f77ec771f01fc46aeb3',1,'xt::operator==(const xaxis_iterator< CT > &lhs, const xaxis_iterator< CT > &rhs)'],['../namespacext.html#aa8afbf971ca9887515e974de1775cf03',1,'xt::operator==(const xaxis_slice_iterator< CT > &lhs, const xaxis_slice_iterator< CT > &rhs)']]], + ['operator_3e_27',['operator>',['../group__comparison__operators.html#ga3addaced4bd7bdacea4a842d9d6c850a',1,'xt']]], + ['operator_3e_3d_28',['operator>=',['../group__comparison__operators.html#gaa40baca1e4f53789261cd3e8736a98ef',1,'xt']]], + ['operator_3e_3e_29',['operator>>',['../group__bitwise__operators.html#gace6ce969d4a7bdee37e410309448df92',1,'xt']]], + ['operator_5b_5d_30',['operator[]',['../classxt_1_1xconst__accessible.html#a125b98dd7a0ea4919f19b69256930ff8',1,'xt::xconst_accessible::operator[]()'],['../classxt_1_1xaccessible.html#a45649ae70e8ea6cbda28caa423347c96',1,'xt::xaccessible::operator[]()'],['../classxt_1_1xoptional__assembly__base.html#ab9a1749164786ed873b216223098fe31',1,'xt::xoptional_assembly_base::operator[](const S &index) -> disable_integral_t< S, reference >'],['../classxt_1_1xoptional__assembly__base.html#af783d13bcc3bbd5082fdc79f8f2aeee8',1,'xt::xoptional_assembly_base::operator[](const S &index) const -> disable_integral_t< S, const_reference >'],['../classxt_1_1xindex__view.html#a5f26e28734c1db46865b6eeb39009a2a',1,'xt::xindex_view::operator[](const S &index) -> disable_integral_t< S, reference >'],['../classxt_1_1xindex__view.html#a2a2211fb97b8bbb0b6a8ea3e4ac6c0b5',1,'xt::xindex_view::operator[](const S &index) const -> disable_integral_t< S, const_reference >']]], + ['operator_5e_31',['operator^',['../group__bitwise__operators.html#ga85c9a2b613116854aa104a4005f2a0f4',1,'xt']]], + ['operator_5e_3d_32',['operator^=',['../classxt_1_1xsemantic__base.html#a7c74b14f291bccf501760aa166cd7bd6',1,'xt::xsemantic_base::operator^=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#a61d5bbbb065e48c74db69c4276673a34',1,'xt::xsemantic_base::operator^=(const xexpression< E > &e) -> derived_type &']]], + ['operators_33',['operators',['../group__arithmetic__operators.html',1,'Arithmetic operators'],['../group__bitwise__operators.html',1,'Bitwise operators'],['../group__casting__operators.html',1,'Casting operators'],['../group__comparison__operators.html',1,'Comparison operators'],['../group__logical__operators.html',1,'Logical operators']]], + ['operator_7c_34',['operator|',['../group__bitwise__operators.html#gac1e3650f1eae70c7ab951cce7df0b7ac',1,'xt']]], + ['operator_7c_3d_35',['operator|=',['../classxt_1_1xsemantic__base.html#a5fe0e38a7065e67565d46179727fe399',1,'xt::xsemantic_base::operator|=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#ab09ec4698094a4a1efbaa1ccbb609d42',1,'xt::xsemantic_base::operator|=(const xexpression< E > &e) -> derived_type &']]], + ['operator_7c_7c_36',['operator||',['../group__logical__operators.html#gab0fb5db8b5da410253c08053a1c9c518',1,'xt']]], + ['operator_7e_37',['operator~',['../group__bitwise__operators.html#ga61f9831f1f2da86982f23d8e4e45e3db',1,'xt']]], + ['overlapping_5fmemory_5fchecker_38',['overlapping_memory_checker',['../structxt_1_1overlapping__memory__checker.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_3c_20dst_2c_20std_3a_3aenable_5fif_5ft_3c_20has_5fmemory_5faddress_3c_20dst_20_3e_3a_3avalue_20_3e_20_3e_39',['overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >',['../structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5fbase_40',['overlapping_memory_checker_base',['../structxt_1_1overlapping__memory__checker__base.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_41',['overlapping_memory_checker_traits',['../structxt_1_1overlapping__memory__checker__traits.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_20_3e_42',['overlapping_memory_checker_traits< E >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_2c_20std_3a_3aenable_5fif_5ft_3c_20has_5fmemory_5faddress_3c_20e_20_3e_3a_3avalue_20_3e_20_3e_43',['overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_2c_20std_3a_3aenable_5fif_5ft_3c_21has_5fmemory_5faddress_3c_20e_20_3e_3a_3avalue_20_26_26is_5fcrtp_5fbase_5fof_3c_20xview_5fsemantic_2c_20e_20_3e_3a_3avalue_20_3e_20_3e_44',['overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_2c_20std_3a_3aenable_5fif_5ft_3c_21has_5fmemory_5faddress_3c_20e_20_3e_3a_3avalue_20_26_26is_5fspecialization_5fof_3c_20xfunction_2c_20e_20_3e_3a_3avalue_20_3e_20_3e_45',['overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html',1,'xt']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 000000000..c2cc7f941 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['pad_0',['pad',['../namespacext.html#a030cc6fd43c1f7a452a4ed069881a4fa',1,'xt::pad(E &&e, const std::vector< std::vector< S > > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)'],['../namespacext.html#abd5658ce24f2035e2175546c9ca6ec59',1,'xt::pad(E &&e, const std::vector< S > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)'],['../namespacext.html#ad10c047180a5ce9129d25c180369ad00',1,'xt::pad(E &&e, S pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)']]], + ['pad_5fmode_1',['pad_mode',['../namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7',1,'xt']]], + ['partition_2',['partition',['../group__xt__xsort.html#ga443845cd4d1992ae5e7ec155529b1636',1,'xt']]], + ['periodic_3',['periodic',['../classxt_1_1xconst__accessible.html#a34d4a20e640737443fd0a7266b77b2b2',1,'xt::xconst_accessible::periodic()'],['../classxt_1_1xaccessible.html#a038772dfb1936fa221a220c5ded4ac05',1,'xt::xaccessible::periodic()'],['../classxt_1_1xoptional__assembly__base.html#a1b77e82dc265d815b17f17d337d96636',1,'xt::xoptional_assembly_base::periodic(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#a282a52135c367ae4d80db9575f41d3a5',1,'xt::xoptional_assembly_base::periodic(Args... args) const -> const_reference']]], + ['plus_5fassign_4',['plus_assign',['../classxt_1_1xsemantic__base.html#aabefbeb56a74c2098c0fe976227ebdc8',1,'xt::xsemantic_base']]], + ['point_20operations_5',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['pointer_5fconcept_6',['pointer_concept',['../conceptxtl_1_1pointer__concept.html',1,'xtl']]], + ['pow_7',['pow',['../group__pow__functions.html#ga726d449a0411dabbe7451c38cec235ae',1,'xt::pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >'],['../group__pow__functions.html#ga9cf15362f1892675576f2298c01e2b6b',1,'xt::pow(E &&e) noexcept']]], + ['pow_5ffun_8',['pow_fun',['../structxt_1_1math_1_1pow__fun.html',1,'xt::math']]], + ['power_20functions_9',['Power functions',['../group__pow__functions.html',1,'']]], + ['precision_10',['precision',['../classxt_1_1print__options_1_1precision.html',1,'xt::print_options']]], + ['print_5foptions_5fimpl_11',['print_options_impl',['../structxt_1_1print__options_1_1print__options__impl.html',1,'xt::print_options']]], + ['prod_12',['prod',['../group__red__functions.html#ga90d729a5dc08b66740997ad3e7fdb0c1',1,'xt']]], + ['promote_5fshape_13',['promote_shape',['../structxt_1_1promote__shape.html',1,'xt']]], + ['promote_5fstrides_14',['promote_strides',['../structxt_1_1promote__strides.html',1,'xt']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 000000000..6633b28b2 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['quantile_0',['quantile',['../group__xt__xsort.html#ga7dd83e71409830d5211608257f18e361',1,'xt::quantile(E &&e, const P &probas, std::ptrdiff_t axis, T alpha, T beta)'],['../group__xt__xsort.html#gae3b1b26f618ece7324455223330d5780',1,'xt::quantile(E &&e, const P &probas, T alpha, T beta)'],['../group__xt__xsort.html#ga632a72d1def84debe56b68d79a451f11',1,'xt::quantile(E &&e, const P &probas, std::ptrdiff_t axis, quantile_method method=quantile_method::linear)'],['../group__xt__xsort.html#gaa8159912f652b20d4477c0187dfb301f',1,'xt::quantile(E &&e, const P &probas, quantile_method method=quantile_method::linear)']]], + ['quantile_5fmethod_1',['quantile_method',['../group__xt__xsort.html#ga2afe52f60aa76f33b0b883a78cabc1ed',1,'xt']]], + ['quick_2',['quick',['../namespacext.html#ac4aea058f50a232746da4591e8956623a1df3746a4728276afdc24f828186f73a',1,'xt']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 000000000..2cc902e4b --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['abs_5ffun_0',['abs_fun',['../structxt_1_1math_1_1abs__fun.html',1,'xt::math']]], + ['acos_5ffun_1',['acos_fun',['../structxt_1_1math_1_1acos__fun.html',1,'xt::math']]], + ['acosh_5ffun_2',['acosh_fun',['../structxt_1_1math_1_1acosh__fun.html',1,'xt::math']]], + ['acquire_5fownership_3',['acquire_ownership',['../structxt_1_1acquire__ownership.html',1,'xt']]], + ['aligned_5fallocator_4',['aligned_allocator',['../classxt__simd_1_1aligned__allocator.html',1,'xt_simd']]], + ['aligned_5farray_5',['aligned_array',['../classxt_1_1aligned__array.html',1,'xt']]], + ['aligned_5farray_3c_20et_2c_20detail_3a_3afixed_5fcompute_5fsize_3c_20s_20_3e_3a_3avalue_20_3e_6',['aligned_array< ET, detail::fixed_compute_size< S >::value >',['../classxt_1_1aligned__array.html',1,'xt']]], + ['aligned_5fmode_7',['aligned_mode',['../structxt_1_1aligned__mode.html',1,'xt::aligned_mode'],['../structxt__simd_1_1aligned__mode.html',1,'xt_simd::aligned_mode']]], + ['allocator_5falignment_8',['allocator_alignment',['../structxt__simd_1_1allocator__alignment.html',1,'xt_simd']]], + ['arg_5ffun_9',['arg_fun',['../structxt_1_1math_1_1arg__fun.html',1,'xt::math']]], + ['asin_5ffun_10',['asin_fun',['../structxt_1_1math_1_1asin__fun.html',1,'xt::math']]], + ['asinh_5ffun_11',['asinh_fun',['../structxt_1_1math_1_1asinh__fun.html',1,'xt::math']]], + ['atan2_5ffun_12',['atan2_fun',['../structxt_1_1math_1_1atan2__fun.html',1,'xt::math']]], + ['atan_5ffun_13',['atan_fun',['../structxt_1_1math_1_1atan__fun.html',1,'xt::math']]], + ['atanh_5ffun_14',['atanh_fun',['../structxt_1_1math_1_1atanh__fun.html',1,'xt::math']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 000000000..fbaebc19f --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['big_5fpromote_5fvalue_5ftype_0',['big_promote_value_type',['../structxt_1_1big__promote__value__type.html',1,'xt']]], + ['broadcast_5ferror_1',['broadcast_error',['../classxt_1_1broadcast__error.html',1,'xt']]], + ['buffer_5finner_5ftypes_2',['buffer_inner_types',['../structxt_1_1buffer__inner__types.html',1,'xt']]], + ['buffer_5finner_5ftypes_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_3',['buffer_inner_types< xbuffer_adaptor< CP, O, A > >',['../structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html',1,'xt']]], + ['buffer_5finner_5ftypes_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_4',['buffer_inner_types< xiterator_adaptor< I, CI > >',['../structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html',1,'xt']]], + ['buffer_5finner_5ftypes_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_5',['buffer_inner_types< xiterator_owner_adaptor< C, IG > >',['../structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html',1,'xt']]] +]; diff --git a/search/classes_10.js b/search/classes_10.js new file mode 100644 index 000000000..659e9cdd2 --- /dev/null +++ b/search/classes_10.js @@ -0,0 +1,35 @@ +var searchData= +[ + ['select_5fdim_5fmapping_5ftype_0',['select_dim_mapping_type',['../structxt_1_1select__dim__mapping__type.html',1,'xt']]], + ['select_5fdim_5fmapping_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_20_3e_1',['select_dim_mapping_type< fixed_shape< I... > >',['../structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html',1,'xt']]], + ['select_5fdim_5fmapping_5ftype_3c_20inner_5fshape_5ftype_20_3e_2',['select_dim_mapping_type< inner_shape_type >',['../structxt_1_1select__dim__mapping__type.html',1,'xt']]], + ['select_5fiterable_5fbase_3',['select_iterable_base',['../structxt_1_1select__iterable__base.html',1,'xt']]], + ['select_5flayout_4',['select_layout',['../structxt_1_1select__layout.html',1,'xt']]], + ['sequence_5fview_5',['sequence_view',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_200_2c_20static_5fdimension_3c_20t_20_3e_3a_3avalue_20_2d_20offset_20_3e_6',['sequence_view< T, 0, static_dimension< T >::value - offset >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_20offset_2c_20static_5fdimension_3c_20t_20_3e_3a_3avalue_20_3e_7',['sequence_view< T, offset, static_dimension< T >::value >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_20start_2boffset_2c_20end_20_3e_8',['sequence_view< T, start+offset, end >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sequence_5fview_3c_20t_2c_20start_2c_20end_20_2d_20offset_20_3e_9',['sequence_view< T, start, end - offset >',['../classxt_1_1sequence__view.html',1,'xt']]], + ['sign_5ffun_10',['sign_fun',['../structxt_1_1math_1_1sign__fun.html',1,'xt::math']]], + ['sign_5fimpl_11',['sign_impl',['../structxt_1_1math_1_1sign__impl.html',1,'xt::math']]], + ['sign_5fimpl_3c_20xtl_3a_3axoptional_3c_20t_2c_20b_20_3e_20_3e_12',['sign_impl< xtl::xoptional< T, B > >',['../structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html',1,'xt::math']]], + ['simd_5fcondition_13',['simd_condition',['../structxt__simd_1_1simd__condition.html',1,'xt_simd']]], + ['simd_5ftraits_14',['simd_traits',['../structxt__simd_1_1simd__traits.html',1,'xt_simd']]], + ['sin_5ffun_15',['sin_fun',['../structxt_1_1math_1_1sin__fun.html',1,'xt::math']]], + ['sinh_5ffun_16',['sinh_fun',['../structxt_1_1math_1_1sinh__fun.html',1,'xt::math']]], + ['sqrt_5ffun_17',['sqrt_fun',['../structxt_1_1math_1_1sqrt__fun.html',1,'xt::math']]], + ['squared_5fnorm_5ftype_18',['squared_norm_type',['../structxt_1_1squared__norm__type.html',1,'xt']]], + ['static_5fdimension_19',['static_dimension',['../structxt_1_1static__dimension.html',1,'xt']]], + ['static_5fstring_20',['static_string',['../structxt_1_1static__string.html',1,'xt']]], + ['stepper_5fassigner_21',['stepper_assigner',['../classxt_1_1stepper__assigner.html',1,'xt']]], + ['stepper_5ftools_22',['stepper_tools',['../structxt_1_1stepper__tools.html',1,'xt']]], + ['strided_5floop_5fassigner_23',['strided_loop_assigner',['../classxt_1_1strided__loop__assigner.html',1,'xt']]], + ['svector_24',['svector',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20size_5ftype_20_3e_25',['svector< size_type >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_26',['svector< T, 4 >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_3c_20std_3a_3aptrdiff_5ft_20_3e_27',['svector< T, 4 >< std::ptrdiff_t >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_3c_20std_3a_3asize_5ft_20_3e_28',['svector< T, 4 >< std::size_t >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_204_20_3e_3c_20typename_20std_3a_3acommon_5ftype_3c_20typename_20s_3a_3avalue_5ftype_2e_2e_2e_20_3e_3a_3atype_20_3e_29',['svector< T, 4 >< typename std::common_type< typename S::value_type... >::type >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20t_2c_20n_2c_20a_2c_20init_20_3e_30',['svector< T, N, A, Init >',['../classxt_1_1svector.html',1,'xt']]], + ['svector_3c_20x_2c_20n_2c_20allocator_2c_20b_20_3e_31',['svector< X, N, allocator, B >',['../classxt_1_1svector.html',1,'xt']]] +]; diff --git a/search/classes_11.js b/search/classes_11.js new file mode 100644 index 000000000..6a44d3917 --- /dev/null +++ b/search/classes_11.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['tan_5ffun_0',['tan_fun',['../structxt_1_1math_1_1tan__fun.html',1,'xt::math']]], + ['tanh_5ffun_1',['tanh_fun',['../structxt_1_1math_1_1tanh__fun.html',1,'xt::math']]], + ['temporary_5fcontainer_2',['temporary_container',['../structxt_1_1temporary__container.html',1,'xt']]], + ['temporary_5fcontainer_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_3',['temporary_container< xbuffer_adaptor< CP, O, A > >',['../structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html',1,'xt']]], + ['temporary_5fcontainer_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_4',['temporary_container< xiterator_adaptor< I, CI > >',['../structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html',1,'xt']]], + ['temporary_5fcontainer_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_5',['temporary_container< xiterator_owner_adaptor< C, IG > >',['../structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html',1,'xt']]], + ['temporary_5ftype_6',['temporary_type',['../structxt_1_1temporary__type.html',1,'xt']]], + ['temporary_5ftype_3c_20t_2c_20void_5ft_3c_20typename_20std_3a_3adecay_5ft_3c_20t_20_3e_3a_3atemporary_5ftype_20_3e_20_3e_7',['temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >',['../structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html',1,'xt']]], + ['temporary_5ftype_5ffrom_5ftag_8',['temporary_type_from_tag',['../structxt_1_1temporary__type__from__tag.html',1,'xt']]], + ['temporary_5ftype_5ffrom_5ftag_3c_20xtensor_5fexpression_5ftag_2c_20t_20_3e_9',['temporary_type_from_tag< xtensor_expression_tag, T >',['../structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html',1,'xt']]], + ['tgamma_5ffun_10',['tgamma_fun',['../structxt_1_1math_1_1tgamma__fun.html',1,'xt::math']]], + ['threshold_11',['threshold',['../classxt_1_1print__options_1_1threshold.html',1,'xt::print_options']]], + ['tracking_5fallocator_12',['tracking_allocator',['../structxt_1_1tracking__allocator.html',1,'xt']]], + ['tracking_5fallocator_3c_20u_2c_20typename_20traits_3a_3atemplate_20rebind_5falloc_3c_20u_20_3e_2c_20p_20_3e_13',['tracking_allocator< U, typename traits::template rebind_alloc< U >, P >',['../structxt_1_1tracking__allocator.html',1,'xt']]], + ['transpose_5ferror_14',['transpose_error',['../classxt_1_1transpose__error.html',1,'xt']]], + ['trunc_5ffun_15',['trunc_fun',['../structxt_1_1math_1_1trunc__fun.html',1,'xt::math']]], + ['tuple_5fidx_5fof_16',['tuple_idx_of',['../structxt_1_1tuple__idx__of.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_17',['tuple_idx_of_impl',['../structxt_1_1tuple__idx__of__impl.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_3c_20i_2c_20t_2c_20std_3a_3atuple_3c_20t_2c_20types_2e_2e_2e_20_3e_20_3e_18',['tuple_idx_of_impl< I, T, std::tuple< T, Types... > >',['../structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_3c_20i_2c_20t_2c_20std_3a_3atuple_3c_20u_2c_20types_2e_2e_2e_20_3e_20_3e_19',['tuple_idx_of_impl< I, T, std::tuple< U, Types... > >',['../structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html',1,'xt']]], + ['tuple_5fidx_5fof_5fimpl_3c_20i_2c_20t_2c_20std_3a_3atuple_3c_3e_20_3e_20',['tuple_idx_of_impl< I, T, std::tuple<> >',['../structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html',1,'xt']]], + ['tuple_5fsize_3c_20xt_3a_3aconst_5farray_3c_20t_2c_20n_20_3e_20_3e_21',['tuple_size< xt::const_array< T, N > >',['../classstd_1_1tuple__size_3_01xt_1_1const__array_3_01_t_00_01_n_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20xt_3a_3afixed_5fshape_3c_20n_2e_2e_2e_20_3e_20_3e_22',['tuple_size< xt::fixed_shape< N... > >',['../classstd_1_1tuple__size_3_01xt_1_1fixed__shape_3_01_n_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20xt_3a_3asequence_5fview_3c_20t_2c_20start_2c_20end_20_3e_20_3e_23',['tuple_size< xt::sequence_view< T, Start, End > >',['../classstd_1_1tuple__size_3_01xt_1_1sequence__view_3_01_t_00_01_start_00_01_end_01_4_01_4.html',1,'std']]] +]; diff --git a/search/classes_12.js b/search/classes_12.js new file mode 100644 index 000000000..955ff062b --- /dev/null +++ b/search/classes_12.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['unaligned_5fmode_0',['unaligned_mode',['../structxt_1_1unaligned__mode.html',1,'xt::unaligned_mode'],['../structxt__simd_1_1unaligned__mode.html',1,'xt_simd::unaligned_mode']]], + ['uvector_1',['uvector',['../classxt_1_1uvector.html',1,'xt']]], + ['uvector_3c_20value_5ftype_2c_20allocator_5ftype_20_3e_2',['uvector< value_type, allocator_type >',['../classxt_1_1uvector.html',1,'xt']]] +]; diff --git a/search/classes_13.js b/search/classes_13.js new file mode 100644 index 000000000..f6737eb9a --- /dev/null +++ b/search/classes_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['valid_0',['valid',['../structxt_1_1convolve__mode_1_1valid.html',1,'xt::convolve_mode']]], + ['view_5ftemporary_5ftype_1',['view_temporary_type',['../structxt_1_1view__temporary__type.html',1,'xt']]] +]; diff --git a/search/classes_14.js b/search/classes_14.js new file mode 100644 index 000000000..910335644 --- /dev/null +++ b/search/classes_14.js @@ -0,0 +1,601 @@ +var searchData= +[ + ['xaccessible_0',['xaccessible',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20self_5ftype_20_3e_1',['xaccessible< self_type >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_2',['xaccessible< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_3',['xaccessible< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_4',['xaccessible< xchunked_array< chunk_storage > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_5',['xaccessible< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_6',['xaccessible< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_7',['xaccessible< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_8',['xaccessible< xfunctor_adaptor< F, CT > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_9',['xaccessible< xfunctor_view< F, CT > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_10',['xaccessible< xmasked_view< CTD, CTM > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_11',['xaccessible< xreducer< F, CT, X, O > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xscalar_3c_20ct_20_3e_20_3e_12',['xaccessible< xscalar< CT > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_13',['xaccessible< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_14',['xaccessible< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_15',['xaccessible< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_16',['xaccessible< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccessible_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_17',['xaccessible< xview< CT, S... > >',['../classxt_1_1xaccessible.html',1,'xt']]], + ['xaccumulator_5ffunctor_18',['xaccumulator_functor',['../structxt_1_1xaccumulator__functor.html',1,'xt']]], + ['xaccumulator_5ffunctor_3c_20accumulate_5ffunc_2c_20init_5ffunc_20_3e_19',['xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >',['../structxt_1_1xaccumulator__functor.html',1,'xt']]], + ['xall_20',['xall',['../classxt_1_1xall.html',1,'xt']]], + ['xall_3c_20typename_20e_3a_3asize_5ftype_20_3e_21',['xall< typename E::size_type >',['../classxt_1_1xall.html',1,'xt']]], + ['xall_5ftag_22',['xall_tag',['../structxt_1_1xall__tag.html',1,'xt']]], + ['xarray_5fadaptor_23',['xarray_adaptor',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20const_20flag_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_24',['xarray_adaptor< const flag_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20const_20value_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_25',['xarray_adaptor< const value_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_26',['xarray_adaptor< EC, L, SC, xoptional_expression_tag >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20flag_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_27',['xarray_adaptor< flag_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20value_5fcontainer_20_26_2c_20l_2c_20sc_20_3e_28',['xarray_adaptor< value_container &, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_3c_20xbuffer_5fadaptor_3c_20xtl_3a_3aclosure_5ftype_5ft_3c_20t_20_2a_20_3e_2c_20xt_3a_3ano_5fownership_2c_20detail_3a_3adefault_5fallocator_5ffor_5fptr_5ft_3c_20t_20_3e_20_3e_2c_20l_2c_20sc_20_3e_29',['xarray_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, L, SC >',['../classxt_1_1xarray__adaptor.html',1,'xt']]], + ['xarray_5fadaptor_5fbase_30',['xarray_adaptor_base',['../structxt_1_1extension_1_1xarray__adaptor__base.html',1,'xt::extension']]], + ['xarray_5fadaptor_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_31',['xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >',['../structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fadaptor_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xtensor_5fexpression_5ftag_20_3e_32',['xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >',['../structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fadaptor_5foptional_5ftraits_33',['xarray_adaptor_optional_traits',['../structxt_1_1extension_1_1xarray__adaptor__optional__traits.html',1,'xt::extension']]], + ['xarray_5fcontainer_34',['xarray_container',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_35',['xarray_container< EC, L, SC, xoptional_expression_tag >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20temporary_5fcontainer_5ft_3c_20storage_5ftype_20_3e_2c_20l_2c_20sc_2c_20tag_20_3e_36',['xarray_container< temporary_container_t< storage_type >, L, SC, Tag >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_37',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20r_20_3e_38',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< R >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20r_2c_20l_20_3e_39',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< R, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20std_3a_3adecay_5ft_3c_20typename_20xexpression_5ftype_3a_3avalue_5ftype_20_3e_2c_20xexpression_5ftype_3a_3astatic_5flayout_20_3e_40',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< std::decay_t< typename xexpression_type::value_type >, xexpression_type::static_layout >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20std_3a_3asize_5ft_20_3e_41',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< std::size_t >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20t_2c_20l_20_3e_42',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< T, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20typename_20f_3a_3avalue_5ftype_2c_20l_20_3e_43',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< typename F::value_type, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20typename_20xexpression_5ftype_3a_3avalue_5ftype_2c_20xexpression_5ftype_3a_3astatic_5flayout_20_3e_44',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< typename xexpression_type::value_type, xexpression_type::static_layout >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20vt_2c_20l_20_3e_45',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< VT, L >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20vt_2c_20xt_3a_3alayout_5ftype_3a_3adynamic_20_3e_46',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< VT, xt::layout_type::dynamic >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_20_3e_3c_20xtl_3a_3axmasked_5fvalue_3c_20base_5fvalue_5ftype_2c_20flag_5ftype_20_3e_20_3e_47',['xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > >< xtl::xmasked_value< base_value_type, flag_type > >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_3c_20xtl_3a_3axoptional_5fvector_3c_20t_2c_20a_2c_20bc_20_3e_2c_20l_2c_20xt_3a_3asvector_3c_20typename_20uvector_3c_20t_2c_20a_20_3e_3a_3asize_5ftype_2c_204_2c_20sa_2c_20true_20_3e_2c_20xoptional_5fexpression_5ftag_20_3e_48',['xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag >',['../classxt_1_1xarray__container.html',1,'xt']]], + ['xarray_5fcontainer_5fbase_49',['xarray_container_base',['../structxt_1_1extension_1_1xarray__container__base.html',1,'xt::extension']]], + ['xarray_5fcontainer_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xoptional_5fexpression_5ftag_20_3e_50',['xarray_container_base< EC, L, SC, xoptional_expression_tag >',['../structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fcontainer_5fbase_3c_20ec_2c_20l_2c_20sc_2c_20xtensor_5fexpression_5ftag_20_3e_51',['xarray_container_base< EC, L, SC, xtensor_expression_tag >',['../structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xarray_5fcontainer_5foptional_5ftraits_52',['xarray_container_optional_traits',['../structxt_1_1extension_1_1xarray__container__optional__traits.html',1,'xt::extension']]], + ['xarray_5foptional_5ftraits_53',['xarray_optional_traits',['../structxt_1_1extension_1_1xarray__optional__traits.html',1,'xt::extension']]], + ['xassign_5ftraits_54',['xassign_traits',['../classxt_1_1xassign__traits.html',1,'xt']]], + ['xaxis_5fiterator_55',['xaxis_iterator',['../classxt_1_1xaxis__iterator.html',1,'xt']]], + ['xaxis_5fslice_5fiterator_56',['xaxis_slice_iterator',['../classxt_1_1xaxis__slice__iterator.html',1,'xt']]], + ['xblockwise_5freducer_57',['xblockwise_reducer',['../classxt_1_1xblockwise__reducer.html',1,'xt']]], + ['xbounded_5fiterator_58',['xbounded_iterator',['../classxt_1_1xbounded__iterator.html',1,'xt']]], + ['xbroadcast_59',['xbroadcast',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_3c_20e_2c_20x_20_3e_60',['xbroadcast< E, X >',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_3c_20xt_3a_3adetail_3a_3aflag_5fexpression_5ft_3c_20ct_20_3e_2c_20x_20_3e_61',['xbroadcast< xt::detail::flag_expression_t< CT >, X >',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_3c_20xt_3a_3adetail_3a_3avalue_5fexpression_5ft_3c_20ct_20_3e_2c_20x_20_3e_62',['xbroadcast< xt::detail::value_expression_t< CT >, X >',['../classxt_1_1xbroadcast.html',1,'xt']]], + ['xbroadcast_5fbase_63',['xbroadcast_base',['../structxt_1_1extension_1_1xbroadcast__base.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_64',['xbroadcast_base_impl',['../structxt_1_1extension_1_1xbroadcast__base__impl.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20x_20_3e_65',['xbroadcast_base_impl< xexpression_tag_t< CT >, CT, X >',['../structxt_1_1extension_1_1xbroadcast__base__impl.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_66',['xbroadcast_base_impl< xoptional_expression_tag, CT, X >',['../structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xbroadcast_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_67',['xbroadcast_base_impl< xtensor_expression_tag, CT, X >',['../structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xbroadcast_5foptional_68',['xbroadcast_optional',['../classxt_1_1extension_1_1xbroadcast__optional.html',1,'xt::extension']]], + ['xbuffer_5fadaptor_69',['xbuffer_adaptor',['../classxt_1_1xbuffer__adaptor.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_70',['xbuffer_adaptor_base',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20self_5ftype_20_3e_71',['xbuffer_adaptor_base< self_type >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_72',['xbuffer_adaptor_base< xbuffer_adaptor< CP, O, A > >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_73',['xbuffer_adaptor_base< xiterator_adaptor< I, CI > >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xbuffer_5fadaptor_5fbase_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_74',['xbuffer_adaptor_base< xiterator_owner_adaptor< C, IG > >',['../classxt_1_1xbuffer__adaptor__base.html',1,'xt']]], + ['xchunk_5fiterator_75',['xchunk_iterator',['../classxt_1_1xchunk__iterator.html',1,'xt']]], + ['xchunk_5fiterator_3c_20const_20self_5ftype_20_3e_76',['xchunk_iterator< const self_type >',['../classxt_1_1xchunk__iterator.html',1,'xt']]], + ['xchunk_5fiterator_3c_20self_5ftype_20_3e_77',['xchunk_iterator< self_type >',['../classxt_1_1xchunk__iterator.html',1,'xt']]], + ['xchunked_5farray_78',['xchunked_array',['../classxt_1_1xchunked__array.html',1,'xt']]], + ['xchunked_5fassigner_79',['xchunked_assigner',['../classxt_1_1xchunked__assigner.html',1,'xt']]], + ['xchunked_5fsemantic_80',['xchunked_semantic',['../classxt_1_1xchunked__semantic.html',1,'xt']]], + ['xchunked_5fsemantic_3c_20self_5ftype_20_3e_81',['xchunked_semantic< self_type >',['../classxt_1_1xchunked__semantic.html',1,'xt']]], + ['xchunked_5fsemantic_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_82',['xchunked_semantic< xchunked_array< chunk_storage > >',['../classxt_1_1xchunked__semantic.html',1,'xt']]], + ['xchunked_5fview_83',['xchunked_view',['../classxt_1_1xchunked__view.html',1,'xt']]], + ['xchunked_5fview_3c_20const_20std_3a_3adecay_5ft_3c_20ct_20_3e_20_26_20_3e_84',['xchunked_view< const std::decay_t< CT > & >',['../classxt_1_1xchunked__view.html',1,'xt']]], + ['xclosure_85',['xclosure',['../structxt_1_1xclosure.html',1,'xt']]], + ['xclosure_3c_20e_2c_20disable_5fxexpression_3c_20std_3a_3adecay_5ft_3c_20e_20_3e_20_3e_20_3e_86',['xclosure< E, disable_xexpression< std::decay_t< E > > >',['../structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html',1,'xt']]], + ['xclosure_3c_20xshared_5fexpression_3c_20e_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_20true_20_3e_20_3e_87',['xclosure< xshared_expression< E >, std::enable_if_t< true > >',['../structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html',1,'xt']]], + ['xconst_5faccessible_88',['xconst_accessible',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20self_5ftype_20_3e_89',['xconst_accessible< self_type >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_90',['xconst_accessible< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_91',['xconst_accessible< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_92',['xconst_accessible< xbroadcast< CT, X > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_93',['xconst_accessible< xchunked_array< chunk_storage > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_94',['xconst_accessible< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_95',['xconst_accessible< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_96',['xconst_accessible< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_97',['xconst_accessible< xfunction< F, CT... > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_98',['xconst_accessible< xfunctor_adaptor< F, CT > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_99',['xconst_accessible< xfunctor_view< F, CT > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_100',['xconst_accessible< xgenerator< F, R, S > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_101',['xconst_accessible< xmasked_view< CTD, CTM > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_102',['xconst_accessible< xreducer< F, CT, X, O > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_103',['xconst_accessible< xrepeat< CT, R > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xscalar_3c_20ct_20_3e_20_3e_104',['xconst_accessible< xscalar< CT > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_105',['xconst_accessible< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_106',['xconst_accessible< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_107',['xconst_accessible< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_108',['xconst_accessible< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5faccessible_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_109',['xconst_accessible< xview< CT, S... > >',['../classxt_1_1xconst__accessible.html',1,'xt']]], + ['xconst_5fiterable_110',['xconst_iterable',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20self_5ftype_20_3e_111',['xconst_iterable< self_type >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_112',['xconst_iterable< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_113',['xconst_iterable< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_114',['xconst_iterable< xbroadcast< CT, X > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_115',['xconst_iterable< xchunked_array< chunk_storage > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_116',['xconst_iterable< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_117',['xconst_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_118',['xconst_iterable< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_119',['xconst_iterable< xfunction< F, CT... > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_120',['xconst_iterable< xgenerator< F, R, S > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_121',['xconst_iterable< xindex_view< CT, I > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_122',['xconst_iterable< xoptional_assembly< VE, FE > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_123',['xconst_iterable< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_124',['xconst_iterable< xreducer< F, CT, X, O > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_125',['xconst_iterable< xrepeat< CT, R > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xscalar_3c_20ct_20_3e_20_3e_126',['xconst_iterable< xscalar< CT > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_127',['xconst_iterable< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_128',['xconst_iterable< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xconst_5fiterable_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_129',['xconst_iterable< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xconst__iterable.html',1,'xt']]], + ['xcontainer_130',['xcontainer',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20self_5ftype_20_3e_131',['xcontainer< self_type >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_132',['xcontainer< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_133',['xcontainer< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_134',['xcontainer< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_135',['xcontainer< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_136',['xcontainer< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_137',['xcontainer< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_138',['xcontainer< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xcontainer.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_139',['xcontainer_inner_types',['../structxt_1_1xcontainer__inner__types.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20self_5ftype_20_3e_140',['xcontainer_inner_types< self_type >',['../structxt_1_1xcontainer__inner__types.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_141',['xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_142',['xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_143',['xcontainer_inner_types< xbroadcast< CT, X > >',['../structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_144',['xcontainer_inner_types< xchunked_array< chunk_storage > >',['../structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_145',['xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >',['../structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_146',['xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_147',['xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_148',['xcontainer_inner_types< xfunction< F, CT... > >',['../structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_149',['xcontainer_inner_types< xfunctor_adaptor< F, CT > >',['../structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_150',['xcontainer_inner_types< xfunctor_view< F, CT > >',['../structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xgenerator_3c_20c_2c_20r_2c_20s_20_3e_20_3e_151',['xcontainer_inner_types< xgenerator< C, R, S > >',['../structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_152',['xcontainer_inner_types< xindex_view< CT, I > >',['../structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_153',['xcontainer_inner_types< xmasked_view< CTD, CTM > >',['../structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_154',['xcontainer_inner_types< xoptional_assembly< VE, FE > >',['../structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_155',['xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >',['../structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_156',['xcontainer_inner_types< xreducer< F, CT, X, O > >',['../structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xscalar_3c_20ct_20_3e_20_3e_157',['xcontainer_inner_types< xscalar< CT > >',['../structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_158',['xcontainer_inner_types< xstrided_view< CT, S, L, FST > >',['../structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_159',['xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_160',['xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_161',['xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xcontainer_5finner_5ftypes_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_162',['xcontainer_inner_types< xview< CT, S... > >',['../structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_163',['xcontainer_iterable_types',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_164',['xcontainer_iterable_types< xarray_adaptor< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_165',['xcontainer_iterable_types< xarray_container< EC, L, SC, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_166',['xcontainer_iterable_types< xfixed_adaptor< EC, S, L, SH, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_167',['xcontainer_iterable_types< xfixed_container< ET, S, L, SH, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_168',['xcontainer_iterable_types< xtensor_adaptor< EC, N, L, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_169',['xcontainer_iterable_types< xtensor_container< EC, N, L, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5fiterable_5ftypes_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_170',['xcontainer_iterable_types< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1xcontainer__iterable__types.html',1,'xt']]], + ['xcontainer_5foptional_5fbase_171',['xcontainer_optional_base',['../classxt_1_1extension_1_1xcontainer__optional__base.html',1,'xt::extension']]], + ['xcontainer_5foptional_5fbase_3c_20traits_20_3e_172',['xcontainer_optional_base< traits >',['../classxt_1_1extension_1_1xcontainer__optional__base.html',1,'xt::extension']]], + ['xcontainer_5fsemantic_173',['xcontainer_semantic',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20self_5ftype_20_3e_174',['xcontainer_semantic< self_type >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_175',['xcontainer_semantic< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_176',['xcontainer_semantic< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_177',['xcontainer_semantic< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_178',['xcontainer_semantic< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_179',['xcontainer_semantic< xfunctor_adaptor< F, CT > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_180',['xcontainer_semantic< xoptional_assembly< VE, FE > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_181',['xcontainer_semantic< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_182',['xcontainer_semantic< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontainer_5fsemantic_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_183',['xcontainer_semantic< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xcontainer__semantic.html',1,'xt']]], + ['xcontiguous_5fiterable_184',['xcontiguous_iterable',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_185',['xcontiguous_iterable< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_186',['xcontiguous_iterable< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_187',['xcontiguous_iterable< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_188',['xcontiguous_iterable< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_189',['xcontiguous_iterable< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_190',['xcontiguous_iterable< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcontiguous_5fiterable_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_191',['xcontiguous_iterable< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xcontiguous__iterable.html',1,'xt']]], + ['xcsv_5fconfig_192',['xcsv_config',['../structxt_1_1xcsv__config.html',1,'xt']]], + ['xdrop_5fslice_193',['xdrop_slice',['../classxt_1_1xdrop__slice.html',1,'xt']]], + ['xdummy_5fiterator_194',['xdummy_iterator',['../classxt_1_1xdummy__iterator.html',1,'xt']]], + ['xdummy_5fiterator_3c_20false_2c_20ct_20_3e_195',['xdummy_iterator< false, CT >',['../classxt_1_1xdummy__iterator.html',1,'xt']]], + ['xdummy_5fiterator_3c_20true_2c_20ct_20_3e_196',['xdummy_iterator< true, CT >',['../classxt_1_1xdummy__iterator.html',1,'xt']]], + ['xdynamic_5fview_197',['xdynamic_view',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_198',['xdynamic_view< CT, S, L, FST >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20e_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20e_20_3e_20_3e_199',['xdynamic_view< E, S, L, typename FST::template rebind_t< E > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20ucft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucft_20_3e_20_3e_200',['xdynamic_view< ucft, S, L, typename FST::template rebind_t< ucft > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20ucvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucvt_20_3e_20_3e_201',['xdynamic_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20uft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uft_20_3e_20_3e_202',['xdynamic_view< uft, S, L, typename FST::template rebind_t< uft > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_3c_20uvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uvt_20_3e_20_3e_203',['xdynamic_view< uvt, S, L, typename FST::template rebind_t< uvt > >',['../classxt_1_1xdynamic__view.html',1,'xt']]], + ['xdynamic_5fview_5fbase_204',['xdynamic_view_base',['../structxt_1_1extension_1_1xdynamic__view__base.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_205',['xdynamic_view_base_impl',['../structxt_1_1extension_1_1xdynamic__view__base__impl.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_206',['xdynamic_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >',['../structxt_1_1extension_1_1xdynamic__view__base__impl.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_207',['xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xdynamic_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_208',['xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xdynamic_5fview_5foptional_209',['xdynamic_view_optional',['../classxt_1_1extension_1_1xdynamic__view__optional.html',1,'xt::extension']]], + ['xellipsis_5ftag_210',['xellipsis_tag',['../structxt_1_1xellipsis__tag.html',1,'xt']]], + ['xexpression_211',['xexpression',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_212',['xexpression< xbroadcast< CT, X > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_213',['xexpression< xfunction< F, CT... > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_214',['xexpression< xgenerator< F, R, S > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_215',['xexpression< xreducer< F, CT, X, O > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_216',['xexpression< xrepeat< CT, R > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xscalar_3c_20ct_20_3e_20_3e_217',['xexpression< xscalar< CT > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_3c_20xshared_5fexpression_3c_20e_20_3e_20_3e_218',['xexpression< xshared_expression< E > >',['../classxt_1_1xexpression.html',1,'xt']]], + ['xexpression_5fassigner_219',['xexpression_assigner',['../classxt_1_1xexpression__assigner.html',1,'xt']]], + ['xexpression_5fassigner_5fbase_220',['xexpression_assigner_base',['../classxt_1_1xexpression__assigner__base.html',1,'xt']]], + ['xexpression_5fassigner_5fbase_3c_20xoptional_5fexpression_5ftag_20_3e_221',['xexpression_assigner_base< xoptional_expression_tag >',['../classxt_1_1xexpression__assigner__base_3_01xoptional__expression__tag_01_4.html',1,'xt']]], + ['xexpression_5fassigner_5fbase_3c_20xtensor_5fexpression_5ftag_20_3e_222',['xexpression_assigner_base< xtensor_expression_tag >',['../classxt_1_1xexpression__assigner__base_3_01xtensor__expression__tag_01_4.html',1,'xt']]], + ['xexpression_5fholder_223',['xexpression_holder',['../classxt_1_1xexpression__holder.html',1,'xt']]], + ['xexpression_5ftag_224',['xexpression_tag',['../structxt_1_1xexpression__tag.html',1,'xt']]], + ['xfiltration_225',['xfiltration',['../classxt_1_1xfiltration.html',1,'xt']]], + ['xfixed_5fadaptor_226',['xfixed_adaptor',['../classxt_1_1xfixed__adaptor.html',1,'xt']]], + ['xfixed_5fcontainer_227',['xfixed_container',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_228',['xfixed_container< T, FSH, L, Sharable >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20r_2c_20xshape_3c_20fixed_5fcompute_5fsize_3c_20xshape_3c_20i_2e_2e_2e_20_3e_20_3e_3a_3avalue_20_3e_2c_20l_20_3e_229',['xfixed_container< T, FSH, L, Sharable >< R, xshape< fixed_compute_size< xshape< I... > >::value >, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20r_2c_20xshape_3c_20i_2e_2e_2e_20_3e_2c_20l_20_3e_230',['xfixed_container< T, FSH, L, Sharable >< R, xshape< I... >, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20vt_2c_20s_2c_20l_20_3e_231',['xfixed_container< T, FSH, L, Sharable >< VT, S, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20t_2c_20fsh_2c_20l_2c_20sharable_20_3e_3c_20vt_2c_20xshape_3c_20fixed_5fcompute_5fsize_3c_20s_20_3e_3a_3avalue_20_3e_2c_20l_20_3e_232',['xfixed_container< T, FSH, L, Sharable >< VT, xshape< fixed_compute_size< S >::value >, L >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfixed_5fcontainer_3c_20typename_20storage_5ftype_3a_3avalue_5ftype_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_233',['xfixed_container< typename storage_type::value_type, S, L, SH, Tag >',['../classxt_1_1xfixed__container.html',1,'xt']]], + ['xfunction_234',['xfunction',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_235',['xfunction< F, CT... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20f_2c_20e_2e_2e_2e_20_3e_236',['xfunction< F, E... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20f_2c_20xclosure_5ft_3c_20e_20_3e_2e_2e_2e_20_3e_237',['xfunction< F, xclosure_t< E >... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20flag_5ffunctor_2c_20xt_3a_3adetail_3a_3aflag_5fexpression_5ft_3c_20ct_20_3e_2e_2e_2e_20_3e_238',['xfunction< flag_functor, xt::detail::flag_expression_t< CT >... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_3c_20value_5ffunctor_2c_20xt_3a_3adetail_3a_3avalue_5fexpression_5ft_3c_20ct_20_3e_2e_2e_2e_20_3e_239',['xfunction< value_functor, xt::detail::value_expression_t< CT >... >',['../classxt_1_1xfunction.html',1,'xt']]], + ['xfunction_5fbase_240',['xfunction_base',['../structxt_1_1extension_1_1xfunction__base.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_241',['xfunction_base_impl',['../structxt_1_1extension_1_1xfunction__base__impl.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_2e_2e_2e_20_3e_2c_20f_2c_20ct_2e_2e_2e_20_3e_242',['xfunction_base_impl< xexpression_tag_t< CT... >, F, CT... >',['../structxt_1_1extension_1_1xfunction__base__impl.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20ct_2e_2e_2e_20_3e_243',['xfunction_base_impl< xoptional_expression_tag, F, CT... >',['../structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html',1,'xt::extension']]], + ['xfunction_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20ct_2e_2e_2e_20_3e_244',['xfunction_base_impl< xtensor_expression_tag, F, CT... >',['../structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html',1,'xt::extension']]], + ['xfunction_5fcache_245',['xfunction_cache',['../structxt_1_1xfunction__cache.html',1,'xt']]], + ['xfunction_5fcache_3c_20detail_3a_3apromote_5findex_3c_20typename_20std_3a_3adecay_5ft_3c_20ct_20_3e_3a_3ashape_5ftype_2e_2e_2e_20_3e_20_3e_246',['xfunction_cache< detail::promote_index< typename std::decay_t< CT >::shape_type... > >',['../structxt_1_1xfunction__cache.html',1,'xt']]], + ['xfunction_5fiterator_247',['xfunction_iterator',['../classxt_1_1xfunction__iterator.html',1,'xt']]], + ['xfunction_5fiterator_3c_20f_2c_20ct_2e_2e_2e_20_3e_248',['xfunction_iterator< F, CT... >',['../classxt_1_1xfunction__iterator.html',1,'xt']]], + ['xfunction_5foptional_5fbase_249',['xfunction_optional_base',['../classxt_1_1extension_1_1xfunction__optional__base.html',1,'xt::extension']]], + ['xfunction_5foptional_5fbase_3c_20f_2c_20ct_2e_2e_2e_20_3e_250',['xfunction_optional_base< F, CT... >',['../classxt_1_1extension_1_1xfunction__optional__base.html',1,'xt::extension']]], + ['xfunction_5fstepper_251',['xfunction_stepper',['../classxt_1_1xfunction__stepper.html',1,'xt']]], + ['xfunction_5fstepper_3c_20f_2c_20ct_2e_2e_2e_20_3e_252',['xfunction_stepper< F, CT... >',['../classxt_1_1xfunction__stepper.html',1,'xt']]], + ['xfunctor_5fadaptor_253',['xfunctor_adaptor',['../classxt_1_1xfunctor__adaptor.html',1,'xt']]], + ['xfunctor_5fadaptor_3c_20detail_3a_3aoffset_5fforwarder_3c_20m_2c_20i_20_3e_2c_20ct_20_3e_254',['xfunctor_adaptor< detail::offset_forwarder< M, I >, CT >',['../classxt_1_1xfunctor__adaptor.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_255',['xfunctor_applier_base',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_3c_20self_5ftype_20_3e_256',['xfunctor_applier_base< self_type >',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_257',['xfunctor_applier_base< xfunctor_adaptor< F, CT > >',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fapplier_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_258',['xfunctor_applier_base< xfunctor_view< F, CT > >',['../classxt_1_1xfunctor__applier__base.html',1,'xt']]], + ['xfunctor_5fiterator_259',['xfunctor_iterator',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5fiterator_20_3e_260',['xfunctor_iterator< const functor_type, typename xexpression_type::const_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5flinear_5fiterator_20_3e_261',['xfunctor_iterator< const functor_type, typename xexpression_type::const_linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5freverse_5fiterator_20_3e_262',['xfunctor_iterator< const functor_type, typename xexpression_type::const_reverse_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5freverse_5flinear_5fiterator_20_3e_263',['xfunctor_iterator< const functor_type, typename xexpression_type::const_reverse_linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20const_5flayout_5fiterator_3c_20l_20_3e_20_3e_264',['xfunctor_iterator< const functor_type, typename xexpression_type::template const_layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20const_5freverse_5flayout_5fiterator_3c_20l_20_3e_20_3e_265',['xfunctor_iterator< const functor_type, typename xexpression_type::template const_reverse_layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aiterator_20_3e_266',['xfunctor_iterator< functor_type, typename xexpression_type::iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3alinear_5fiterator_20_3e_267',['xfunctor_iterator< functor_type, typename xexpression_type::linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3areverse_5fiterator_20_3e_268',['xfunctor_iterator< functor_type, typename xexpression_type::reverse_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3areverse_5flinear_5fiterator_20_3e_269',['xfunctor_iterator< functor_type, typename xexpression_type::reverse_linear_iterator >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20const_5freverse_5fbroadcast_5fiterator_3c_20s_2c_20l_20_3e_20_3e_270',['xfunctor_iterator< functor_type, typename xexpression_type::template const_reverse_broadcast_iterator< S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20layout_5fiterator_3c_20l_20_3e_20_3e_271',['xfunctor_iterator< functor_type, typename xexpression_type::template layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20reverse_5fbroadcast_5fiterator_3c_20s_2c_20l_20_3e_20_3e_272',['xfunctor_iterator< functor_type, typename xexpression_type::template reverse_broadcast_iterator< S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3atemplate_20reverse_5flayout_5fiterator_3c_20l_20_3e_20_3e_273',['xfunctor_iterator< functor_type, typename xexpression_type::template reverse_layout_iterator< L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20xiterator_3c_20typename_20xexpression_5ftype_3a_3aconst_5fstepper_2c_20s_2c_20l_20_3e_20_3e_274',['xfunctor_iterator< functor_type, xiterator< typename xexpression_type::const_stepper, S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fiterator_3c_20functor_5ftype_2c_20xiterator_3c_20typename_20xexpression_5ftype_3a_3astepper_2c_20s_2c_20l_20_3e_20_3e_275',['xfunctor_iterator< functor_type, xiterator< typename xexpression_type::stepper, S, L > >',['../classxt_1_1xfunctor__iterator.html',1,'xt']]], + ['xfunctor_5fstepper_276',['xfunctor_stepper',['../classxt_1_1xfunctor__stepper.html',1,'xt']]], + ['xfunctor_5fstepper_3c_20const_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3aconst_5fstepper_20_3e_277',['xfunctor_stepper< const functor_type, typename xexpression_type::const_stepper >',['../classxt_1_1xfunctor__stepper.html',1,'xt']]], + ['xfunctor_5fstepper_3c_20functor_5ftype_2c_20typename_20xexpression_5ftype_3a_3astepper_20_3e_278',['xfunctor_stepper< functor_type, typename xexpression_type::stepper >',['../classxt_1_1xfunctor__stepper.html',1,'xt']]], + ['xfunctor_5fview_279',['xfunctor_view',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20detail_3a_3aoffset_5fforwarder_3c_20m_2c_20i_20_3e_2c_20ct_20_3e_280',['xfunctor_view< detail::offset_forwarder< M, I >, CT >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20f_2c_20e_20_3e_281',['xfunctor_view< F, E >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20f_2c_20ucvt_20_3e_282',['xfunctor_view< F, ucvt >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_3c_20f_2c_20uvt_20_3e_283',['xfunctor_view< F, uvt >',['../classxt_1_1xfunctor__view.html',1,'xt']]], + ['xfunctor_5fview_5fbase_284',['xfunctor_view_base',['../structxt_1_1extension_1_1xfunctor__view__base.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_285',['xfunctor_view_base_impl',['../structxt_1_1extension_1_1xfunctor__view__base__impl.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20f_2c_20ct_20_3e_286',['xfunctor_view_base_impl< xexpression_tag_t< CT >, F, CT >',['../structxt_1_1extension_1_1xfunctor__view__base__impl.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20ct_20_3e_287',['xfunctor_view_base_impl< xoptional_expression_tag, F, CT >',['../structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xfunctor_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20ct_20_3e_288',['xfunctor_view_base_impl< xtensor_expression_tag, F, CT >',['../structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xfunctor_5fview_5foptional_289',['xfunctor_view_optional',['../classxt_1_1extension_1_1xfunctor__view__optional.html',1,'xt::extension']]], + ['xfunctor_5fview_5ftemporary_5ftype_290',['xfunctor_view_temporary_type',['../structxt_1_1xfunctor__view__temporary__type.html',1,'xt']]], + ['xgenerator_291',['xgenerator',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_3c_20flag_5ffunctor_2c_20flag_5fclosure_2c_20s_20_3e_292',['xgenerator< flag_functor, flag_closure, S >',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_3c_20of_2c_20or_2c_20s_20_3e_293',['xgenerator< OF, OR, S >',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_3c_20value_5ffunctor_2c_20value_5fclosure_2c_20s_20_3e_294',['xgenerator< value_functor, value_closure, S >',['../classxt_1_1xgenerator.html',1,'xt']]], + ['xgenerator_5fbase_295',['xgenerator_base',['../structxt_1_1extension_1_1xgenerator__base.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_296',['xgenerator_base_impl',['../structxt_1_1extension_1_1xgenerator__base__impl.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20r_20_3e_2c_20f_2c_20r_2c_20s_20_3e_297',['xgenerator_base_impl< xexpression_tag_t< R >, F, R, S >',['../structxt_1_1extension_1_1xgenerator__base__impl.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20r_2c_20s_20_3e_298',['xgenerator_base_impl< xoptional_expression_tag, F, R, S >',['../structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html',1,'xt::extension']]], + ['xgenerator_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20r_2c_20s_20_3e_299',['xgenerator_base_impl< xtensor_expression_tag, F, R, S >',['../structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html',1,'xt::extension']]], + ['xgenerator_5foptional_300',['xgenerator_optional',['../classxt_1_1extension_1_1xgenerator__optional.html',1,'xt::extension']]], + ['xindex_5fview_301',['xindex_view',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20e_2c_20i_20_3e_302',['xindex_view< E, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20ucft_2c_20i_20_3e_303',['xindex_view< ucft, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20ucvt_2c_20i_20_3e_304',['xindex_view< ucvt, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20uft_2c_20i_20_3e_305',['xindex_view< uft, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_3c_20uvt_2c_20i_20_3e_306',['xindex_view< uvt, I >',['../classxt_1_1xindex__view.html',1,'xt']]], + ['xindex_5fview_5fbase_307',['xindex_view_base',['../structxt_1_1extension_1_1xindex__view__base.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_308',['xindex_view_base_impl',['../structxt_1_1extension_1_1xindex__view__base__impl.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20i_20_3e_309',['xindex_view_base_impl< xexpression_tag_t< CT >, CT, I >',['../structxt_1_1extension_1_1xindex__view__base__impl.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20i_20_3e_310',['xindex_view_base_impl< xoptional_expression_tag, CT, I >',['../structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html',1,'xt::extension']]], + ['xindex_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20i_20_3e_311',['xindex_view_base_impl< xtensor_expression_tag, CT, I >',['../structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html',1,'xt::extension']]], + ['xindex_5fview_5foptional_312',['xindex_view_optional',['../classxt_1_1extension_1_1xindex__view__optional.html',1,'xt::extension']]], + ['xindexed_5fstepper_313',['xindexed_stepper',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20const_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_2c_20true_20_3e_314',['xindexed_stepper< const xdynamic_view< CT, S, L, FST >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_2c_20false_20_3e_315',['xindexed_stepper< xchunked_array< chunk_storage >, false >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_2c_20true_20_3e_316',['xindexed_stepper< xchunked_array< chunk_storage >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_2c_20false_20_3e_317',['xindexed_stepper< xdynamic_view< CT, S, L, FST >, false >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xgenerator_3c_20c_2c_20r_2c_20s_20_3e_2c_20true_20_3e_318',['xindexed_stepper< xgenerator< C, R, S >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_2c_20false_20_3e_319',['xindexed_stepper< xindex_view< CT, I >, false >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xindexed_5fstepper_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_2c_20true_20_3e_320',['xindexed_stepper< xindex_view< CT, I >, true >',['../classxt_1_1xindexed__stepper.html',1,'xt']]], + ['xinitial_321',['xinitial',['../structxt_1_1xinitial.html',1,'xt']]], + ['xiterable_322',['xiterable',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20self_5ftype_20_3e_323',['xiterable< self_type >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_324',['xiterable< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_325',['xiterable< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_326',['xiterable< xchunked_array< chunk_storage > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_327',['xiterable< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_328',['xiterable< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_329',['xiterable< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_330',['xiterable< xindex_view< CT, I > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_331',['xiterable< xmasked_view< CTD, CTM > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_332',['xiterable< xoptional_assembly< VE, FE > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_333',['xiterable< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_334',['xiterable< xrepeat< CT, R > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xscalar_3c_20ct_20_3e_20_3e_335',['xiterable< xscalar< CT > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_336',['xiterable< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_337',['xiterable< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_338',['xiterable< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xiterable.html',1,'xt']]], + ['xiterable_5finner_5ftypes_339',['xiterable_inner_types',['../structxt_1_1xiterable__inner__types.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_340',['xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_341',['xiterable_inner_types< xarray_container< EC, L, SC, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_342',['xiterable_inner_types< xbroadcast< CT, X > >',['../structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_343',['xiterable_inner_types< xchunked_array< chunk_storage > >',['../structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_344',['xiterable_inner_types< xdynamic_view< CT, S, L, FST > >',['../structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_345',['xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_346',['xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_347',['xiterable_inner_types< xfunction< F, CT... > >',['../structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xgenerator_3c_20c_2c_20r_2c_20s_20_3e_20_3e_348',['xiterable_inner_types< xgenerator< C, R, S > >',['../structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_349',['xiterable_inner_types< xindex_view< CT, I > >',['../structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_350',['xiterable_inner_types< xmasked_view< CTD, CTM > >',['../structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_351',['xiterable_inner_types< xoptional_assembly< VE, FE > >',['../structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_352',['xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >',['../structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_353',['xiterable_inner_types< xreducer< F, CT, X, O > >',['../structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_354',['xiterable_inner_types< xrepeat< CT, R > >',['../structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xscalar_3c_20ct_20_3e_20_3e_355',['xiterable_inner_types< xscalar< CT > >',['../structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_356',['xiterable_inner_types< xstrided_view< CT, S, L, FST > >',['../structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_357',['xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_358',['xiterable_inner_types< xtensor_container< EC, N, L, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_359',['xiterable_inner_types< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['xiterable_5finner_5ftypes_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_360',['xiterable_inner_types< xview< CT, S... > >',['../structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html',1,'xt']]], + ['xiterator_361',['xiterator',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20const_5fstepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_362',['xiterator< const_stepper, inner_shape_type *, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20const_5fstepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_3c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_363',['xiterator< const_stepper, inner_shape_type *, L >< ::xt::layout_type::row_major >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20const_5fstepper_2c_20s_2c_20l_20_3e_364',['xiterator< const_stepper, S, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20stepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_365',['xiterator< stepper, inner_shape_type *, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20stepper_2c_20inner_5fshape_5ftype_20_2a_2c_20l_20_3e_3c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_366',['xiterator< stepper, inner_shape_type *, L >< ::xt::layout_type::row_major >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_3c_20stepper_2c_20s_2c_20l_20_3e_367',['xiterator< stepper, S, L >',['../classxt_1_1xiterator.html',1,'xt']]], + ['xiterator_5fadaptor_368',['xiterator_adaptor',['../classxt_1_1xiterator__adaptor.html',1,'xt']]], + ['xiterator_5fadaptor_3c_20iterator_2c_20const_5fiterator_20_3e_369',['xiterator_adaptor< iterator, const_iterator >',['../classxt_1_1xiterator__adaptor.html',1,'xt']]], + ['xiterator_5fowner_5fadaptor_370',['xiterator_owner_adaptor',['../classxt_1_1xiterator__owner__adaptor.html',1,'xt']]], + ['xkeep_5fslice_371',['xkeep_slice',['../classxt_1_1xkeep__slice.html',1,'xt']]], + ['xmasked_5fvalue_372',['xmasked_value',['../classxt_1_1xmasked__value.html',1,'xt']]], + ['xmasked_5fview_373',['xmasked_view',['../classxt_1_1xmasked__view.html',1,'xt']]], + ['xmasked_5fview_5fstepper_374',['xmasked_view_stepper',['../classxt_1_1xmasked__view__stepper.html',1,'xt']]], + ['xmasked_5fview_5fstepper_3c_20masked_5fview_5ftype_2c_20false_20_3e_375',['xmasked_view_stepper< masked_view_type, false >',['../classxt_1_1xmasked__view__stepper.html',1,'xt']]], + ['xmasked_5fview_5fstepper_3c_20masked_5fview_5ftype_2c_20true_20_3e_376',['xmasked_view_stepper< masked_view_type, true >',['../classxt_1_1xmasked__view__stepper.html',1,'xt']]], + ['xmultiindex_5fiterator_377',['xmultiindex_iterator',['../classxt_1_1xmultiindex__iterator.html',1,'xt']]], + ['xnewaxis_378',['xnewaxis',['../classxt_1_1xnewaxis.html',1,'xt']]], + ['xnewaxis_3c_20typename_20e_3a_3asize_5ftype_20_3e_379',['xnewaxis< typename E::size_type >',['../classxt_1_1xnewaxis.html',1,'xt']]], + ['xnewaxis_5ftag_380',['xnewaxis_tag',['../structxt_1_1xnewaxis__tag.html',1,'xt']]], + ['xoptional_5fassembly_381',['xoptional_assembly',['../classxt_1_1xoptional__assembly.html',1,'xt']]], + ['xoptional_5fassembly_3c_20raw_5fvalue_5fexpression_2c_20raw_5fflag_5fexpression_20_3e_382',['xoptional_assembly< raw_value_expression, raw_flag_expression >',['../classxt_1_1xoptional__assembly.html',1,'xt']]], + ['xoptional_5fassembly_5fadaptor_383',['xoptional_assembly_adaptor',['../classxt_1_1xoptional__assembly__adaptor.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_384',['xoptional_assembly_base',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_3c_20self_5ftype_20_3e_385',['xoptional_assembly_base< self_type >',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_386',['xoptional_assembly_base< xoptional_assembly< VE, FE > >',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5fbase_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_387',['xoptional_assembly_base< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xoptional__assembly__base.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_388',['xoptional_assembly_linear_iterator',['../classxt_1_1xoptional__assembly__linear__iterator.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_3c_20ve_2c_20fe_2c_20false_20_3e_389',['xoptional_assembly_linear_iterator< VE, FE, false >',['../classxt_1_1xoptional__assembly__linear__iterator.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_3c_20ve_2c_20fe_2c_20true_20_3e_390',['xoptional_assembly_linear_iterator< VE, FE, true >',['../classxt_1_1xoptional__assembly__linear__iterator.html',1,'xt']]], + ['xoptional_5fassembly_5flinear_5fiterator_5ftraits_391',['xoptional_assembly_linear_iterator_traits',['../structxt_1_1xoptional__assembly__linear__iterator__traits.html',1,'xt']]], + ['xoptional_5fassembly_5fstepper_392',['xoptional_assembly_stepper',['../classxt_1_1xoptional__assembly__stepper.html',1,'xt']]], + ['xoptional_5fassembly_5fstepper_3c_20assembly_5ftype_2c_20false_20_3e_393',['xoptional_assembly_stepper< assembly_type, false >',['../classxt_1_1xoptional__assembly__stepper.html',1,'xt']]], + ['xoptional_5fassembly_5fstepper_3c_20assembly_5ftype_2c_20true_20_3e_394',['xoptional_assembly_stepper< assembly_type, true >',['../classxt_1_1xoptional__assembly__stepper.html',1,'xt']]], + ['xoptional_5fassembly_5fstorage_395',['xoptional_assembly_storage',['../classxt_1_1xoptional__assembly__storage.html',1,'xt']]], + ['xoptional_5fassembly_5fstorage_3c_20value_5fstorage_5ftype_2c_20flag_5fstorage_5ftype_20_3e_396',['xoptional_assembly_storage< value_storage_type, flag_storage_type >',['../classxt_1_1xoptional__assembly__storage.html',1,'xt']]], + ['xoptional_5fcomparable_397',['xoptional_comparable',['../structxt_1_1xoptional__comparable.html',1,'xt']]], + ['xoptional_5fempty_5fbase_398',['xoptional_empty_base',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20t_3a_3aderived_5ftype_20_3e_399',['xoptional_empty_base< T::derived_type >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_400',['xoptional_empty_base< xbroadcast< CT, X > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_401',['xoptional_empty_base< xdynamic_view< CT, S, L, FST > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_402',['xoptional_empty_base< xfunction< F, CT... > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_403',['xoptional_empty_base< xfunctor_view< F, CT > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_404',['xoptional_empty_base< xgenerator< F, R, S > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_405',['xoptional_empty_base< xindex_view< CT, I > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_406',['xoptional_empty_base< xreducer< F, CT, X, O > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xrepeat_3c_20ct_2c_20x_20_3e_20_3e_407',['xoptional_empty_base< xrepeat< CT, X > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xscalar_3c_20ct_20_3e_20_3e_408',['xoptional_empty_base< xscalar< CT > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_20_3e_409',['xoptional_empty_base< xstrided_view< CT, S, L, FST > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fempty_5fbase_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_410',['xoptional_empty_base< xview< CT, S... > >',['../classxt_1_1extension_1_1xoptional__empty__base.html',1,'xt::extension']]], + ['xoptional_5fexpression_5ftag_411',['xoptional_expression_tag',['../structxt_1_1xoptional__expression__tag.html',1,'xt']]], + ['xproxy_5finner_5ftypes_412',['xproxy_inner_types',['../structxt_1_1xproxy__inner__types.html',1,'xt']]], + ['xproxy_5finner_5ftypes_3c_20detail_3a_3axfunctor_5finvoker_5ft_3c_20f_2c_20it_20_3e_20_3e_413',['xproxy_inner_types< detail::xfunctor_invoker_t< F, IT > >',['../structxt_1_1xproxy__inner__types.html',1,'xt']]], + ['xproxy_5finner_5ftypes_3c_20detail_3a_3axfunctor_5finvoker_5ft_3c_20f_2c_20st_20_3e_20_3e_414',['xproxy_inner_types< detail::xfunctor_invoker_t< F, ST > >',['../structxt_1_1xproxy__inner__types.html',1,'xt']]], + ['xrange_415',['xrange',['../classxt_1_1xrange.html',1,'xt']]], + ['xrange_5fadaptor_416',['xrange_adaptor',['../structxt_1_1xrange__adaptor.html',1,'xt']]], + ['xreducer_417',['xreducer',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_3c_20flag_5freducer_2c_20xt_3a_3adetail_3a_3aflag_5fexpression_5ft_3c_20ct_20_3e_2c_20x_2c_20rebound_5freduce_5foptions_5fflag_20_3e_418',['xreducer< flag_reducer, xt::detail::flag_expression_t< CT >, X, rebound_reduce_options_flag >',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_3c_20func_2c_20e_2c_20x_2c_20opts_20_3e_419',['xreducer< Func, E, X, Opts >',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_3c_20rebound_5ffunctors_5ftype_2c_20xt_3a_3adetail_3a_3avalue_5fexpression_5ft_3c_20ct_20_3e_2c_20x_2c_20rebound_5freduce_5foptions_5fvalues_20_3e_420',['xreducer< rebound_functors_type, xt::detail::value_expression_t< CT >, X, rebound_reduce_options_values >',['../classxt_1_1xreducer.html',1,'xt']]], + ['xreducer_5fbase_421',['xreducer_base',['../structxt_1_1extension_1_1xreducer__base.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_422',['xreducer_base_impl',['../structxt_1_1extension_1_1xreducer__base__impl.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20f_2c_20ct_2c_20x_2c_20o_20_3e_423',['xreducer_base_impl< xexpression_tag_t< CT >, F, CT, X, O >',['../structxt_1_1extension_1_1xreducer__base__impl.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20f_2c_20ct_2c_20x_2c_20o_20_3e_424',['xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >',['../structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html',1,'xt::extension']]], + ['xreducer_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20f_2c_20ct_2c_20x_2c_20o_20_3e_425',['xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >',['../structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html',1,'xt::extension']]], + ['xreducer_5ffunctors_426',['xreducer_functors',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20reduce_5ffunc_2c_20const_5fvalue_3c_20nt_20_3e_2c_20merge_5ffunc_20_3e_427',['xreducer_functors< REDUCE_FUNC, const_value< NT >, MERGE_FUNC >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20reduce_5ffunc_2c_20init_5ffunc_2c_20merge_5ffunc_20_3e_428',['xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20reduce_5ffunctor_5ftype_2c_20init_5ffunctor_5ftype_2c_20merge_5ffunctor_5ftype_20_3e_429',['xreducer_functors< reduce_functor_type, init_functor_type, merge_functor_type >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5ffunctors_3c_20xt_3a_3adetail_3a_3aoptional_5fbitwise_3c_20bool_20_3e_2c_20xt_3a_3aconst_5fvalue_3c_20bool_20_3e_20_3e_430',['xreducer_functors< xt::detail::optional_bitwise< bool >, xt::const_value< bool > >',['../structxt_1_1xreducer__functors.html',1,'xt']]], + ['xreducer_5foptional_431',['xreducer_optional',['../classxt_1_1extension_1_1xreducer__optional.html',1,'xt::extension']]], + ['xreducer_5fshape_5ftype_432',['xreducer_shape_type',['../structxt_1_1xreducer__shape__type.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20fixed_5fshape_3c_20j_2e_2e_2e_20_3e_2c_20o_20_3e_433',['xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >',['../structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3afalse_5ftype_20_3e_434',['xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >',['../structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3atrue_5ftype_20_3e_435',['xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >',['../structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20std_3a_3aarray_3c_20i1_2c_20n1_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3afalse_5ftype_20_3e_436',['xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >',['../structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20std_3a_3aarray_3c_20i1_2c_20n1_20_3e_2c_20std_3a_3aarray_3c_20i2_2c_20n2_20_3e_2c_20std_3a_3atrue_5ftype_20_3e_437',['xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >',['../structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html',1,'xt']]], + ['xreducer_5fshape_5ftype_3c_20typename_20xexpression_5ftype_3a_3ashape_5ftype_2c_20std_3a_3adecay_5ft_3c_20x_20_3e_2c_20keep_5fdims_20_3e_438',['xreducer_shape_type< typename xexpression_type::shape_type, std::decay_t< X >, keep_dims >',['../structxt_1_1xreducer__shape__type.html',1,'xt']]], + ['xreducer_5fstepper_439',['xreducer_stepper',['../classxt_1_1xreducer__stepper.html',1,'xt']]], + ['xrepeat_440',['xrepeat',['../classxt_1_1xrepeat.html',1,'xt']]], + ['xrepeat_5fbase_441',['xrepeat_base',['../structxt_1_1extension_1_1xrepeat__base.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_442',['xrepeat_base_impl',['../structxt_1_1extension_1_1xrepeat__base__impl.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20x_20_3e_443',['xrepeat_base_impl< xexpression_tag_t< CT >, CT, X >',['../structxt_1_1extension_1_1xrepeat__base__impl.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_444',['xrepeat_base_impl< xoptional_expression_tag, CT, X >',['../structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xrepeat_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20x_20_3e_445',['xrepeat_base_impl< xtensor_expression_tag, CT, X >',['../structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html',1,'xt::extension']]], + ['xrepeat_5foptional_446',['xrepeat_optional',['../classxt_1_1extension_1_1xrepeat__optional.html',1,'xt::extension']]], + ['xrepeat_5fstepper_447',['xrepeat_stepper',['../classxt_1_1xrepeat__stepper.html',1,'xt']]], + ['xrepeat_5fstepper_3c_20typename_20xexpression_5ftype_3a_3aconst_5fstepper_2c_20repeats_5ftype_20_3e_448',['xrepeat_stepper< typename xexpression_type::const_stepper, repeats_type >',['../classxt_1_1xrepeat__stepper.html',1,'xt']]], + ['xscalar_449',['xscalar',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20bool_20_3e_450',['xscalar< bool >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20const_5fflag_5fclosure_20_3e_451',['xscalar< const_flag_closure >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20const_5fvalue_5fclosure_20_3e_452',['xscalar< const_value_closure >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20std_3a_3aconditional_5ft_3c_20is_5fconst_2c_20const_5fflag_5fclosure_2c_20flag_5fclosure_20_3e_20_3e_453',['xscalar< std::conditional_t< is_const, const_flag_closure, flag_closure > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20std_3a_3aconditional_5ft_3c_20is_5fconst_2c_20const_5fvalue_5fclosure_2c_20value_5fclosure_20_3e_20_3e_454',['xscalar< std::conditional_t< is_const, const_value_closure, value_closure > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20t_20_3e_455',['xscalar< T >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20xtl_3a_3aclosure_5ftype_5ft_3c_20e_20_3e_20_3e_456',['xscalar< xtl::closure_type_t< E > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_3c_20xtl_3a_3aconst_5fclosure_5ftype_5ft_3c_20e_20_3e_20_3e_457',['xscalar< xtl::const_closure_type_t< E > >',['../classxt_1_1xscalar.html',1,'xt']]], + ['xscalar_5fbase_458',['xscalar_base',['../structxt_1_1extension_1_1xscalar__base.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_459',['xscalar_base_impl',['../structxt_1_1extension_1_1xscalar__base__impl.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_3c_20get_5fexpression_5ftag_5ft_3c_20std_3a_3adecay_5ft_3c_20ct_20_3e_20_3e_2c_20ct_20_3e_460',['xscalar_base_impl< get_expression_tag_t< std::decay_t< CT > >, CT >',['../structxt_1_1extension_1_1xscalar__base__impl.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_20_3e_461',['xscalar_base_impl< xoptional_expression_tag, CT >',['../structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xscalar_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_20_3e_462',['xscalar_base_impl< xtensor_expression_tag, CT >',['../structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html',1,'xt::extension']]], + ['xscalar_5foptional_5fbase_463',['xscalar_optional_base',['../classxt_1_1extension_1_1xscalar__optional__base.html',1,'xt::extension']]], + ['xscalar_5foptional_5ftraits_464',['xscalar_optional_traits',['../structxt_1_1extension_1_1xscalar__optional__traits.html',1,'xt::extension']]], + ['xscalar_5fstepper_465',['xscalar_stepper',['../classxt_1_1xscalar__stepper.html',1,'xt']]], + ['xscalar_5fstepper_3c_20false_2c_20ct_20_3e_466',['xscalar_stepper< false, CT >',['../classxt_1_1xscalar__stepper.html',1,'xt']]], + ['xscalar_5fstepper_3c_20true_2c_20ct_20_3e_467',['xscalar_stepper< true, CT >',['../classxt_1_1xscalar__stepper.html',1,'xt']]], + ['xsemantic_5fbase_468',['xsemantic_base',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_469',['xsemantic_base< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_470',['xsemantic_base< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xchunked_5farray_3c_20chunk_5fstorage_20_3e_20_3e_471',['xsemantic_base< xchunked_array< chunk_storage > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_472',['xsemantic_base< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfixed_5fadaptor_3c_20ec_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_473',['xsemantic_base< xfixed_adaptor< EC, S, L, SH, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfixed_5fcontainer_3c_20et_2c_20s_2c_20l_2c_20sh_2c_20tag_20_3e_20_3e_474',['xsemantic_base< xfixed_container< ET, S, L, SH, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_475',['xsemantic_base< xfunctor_adaptor< F, CT > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_476',['xsemantic_base< xfunctor_view< F, CT > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_477',['xsemantic_base< xindex_view< CT, I > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xoptional_5fassembly_3c_20ve_2c_20fe_20_3e_20_3e_478',['xsemantic_base< xoptional_assembly< VE, FE > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xoptional_5fassembly_5fadaptor_3c_20vec_2c_20fec_20_3e_20_3e_479',['xsemantic_base< xoptional_assembly_adaptor< VEC, FEC > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_480',['xsemantic_base< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_481',['xsemantic_base< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_482',['xsemantic_base< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_483',['xsemantic_base< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsemantic_5fbase_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_484',['xsemantic_base< xview< CT, S... > >',['../classxt_1_1xsemantic__base.html',1,'xt']]], + ['xsharable_5fexpression_485',['xsharable_expression',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xbroadcast_3c_20ct_2c_20x_20_3e_20_3e_486',['xsharable_expression< xbroadcast< CT, X > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_20_3e_487',['xsharable_expression< xfunction< F, CT... > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xgenerator_3c_20f_2c_20r_2c_20s_20_3e_20_3e_488',['xsharable_expression< xgenerator< F, R, S > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xreducer_3c_20f_2c_20ct_2c_20x_2c_20o_20_3e_20_3e_489',['xsharable_expression< xreducer< F, CT, X, O > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xrepeat_3c_20ct_2c_20r_20_3e_20_3e_490',['xsharable_expression< xrepeat< CT, R > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xsharable_5fexpression_3c_20xscalar_3c_20ct_20_3e_20_3e_491',['xsharable_expression< xscalar< CT > >',['../classxt_1_1xsharable__expression.html',1,'xt']]], + ['xshared_5fexpression_492',['xshared_expression',['../classxt_1_1xshared__expression.html',1,'xt']]], + ['xslice_493',['xslice',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xall_3c_20t_20_3e_20_3e_494',['xslice< xall< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xdrop_5fslice_3c_20t_20_3e_20_3e_495',['xslice< xdrop_slice< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xfake_5fslice_3c_20t_20_3e_20_3e_496',['xslice< xfake_slice< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xkeep_5fslice_3c_20t_20_3e_20_3e_497',['xslice< xkeep_slice< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xnewaxis_3c_20t_20_3e_20_3e_498',['xslice< xnewaxis< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xrange_3c_20t_20_3e_20_3e_499',['xslice< xrange< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xslice_3c_20xstepped_5frange_3c_20t_20_3e_20_3e_500',['xslice< xstepped_range< T > >',['../classxt_1_1xslice.html',1,'xt']]], + ['xstepped_5frange_501',['xstepped_range',['../classxt_1_1xstepped__range.html',1,'xt']]], + ['xstepper_502',['xstepper',['../classxt_1_1xstepper.html',1,'xt']]], + ['xstepper_3c_20const_20d_20_3e_503',['xstepper< const D >',['../classxt_1_1xstepper.html',1,'xt']]], + ['xstepper_3c_20d_20_3e_504',['xstepper< D >',['../classxt_1_1xstepper.html',1,'xt']]], + ['xstrided_5fcontainer_505',['xstrided_container',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20self_5ftype_20_3e_506',['xstrided_container< self_type >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xarray_5fadaptor_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_507',['xstrided_container< xarray_adaptor< EC, L, SC, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xarray_5fcontainer_3c_20ec_2c_20l_2c_20sc_2c_20tag_20_3e_20_3e_508',['xstrided_container< xarray_container< EC, L, SC, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_509',['xstrided_container< xtensor_adaptor< EC, N, L, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_510',['xstrided_container< xtensor_container< EC, N, L, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fcontainer_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_511',['xstrided_container< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xstrided__container.html',1,'xt']]], + ['xstrided_5fview_512',['xstrided_view',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_513',['xstrided_view< CT, S, L, FST >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ct_2c_20shape_5ftype_20_3e_514',['xstrided_view< CT, shape_type >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20e_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20e_20_3e_20_3e_515',['xstrided_view< E, S, L, typename FST::template rebind_t< E > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ucft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucft_20_3e_20_3e_516',['xstrided_view< ucft, S, L, typename FST::template rebind_t< ucft > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20ucvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20ucvt_20_3e_20_3e_517',['xstrided_view< ucvt, S, L, typename FST::template rebind_t< ucvt > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20uft_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uft_20_3e_20_3e_518',['xstrided_view< uft, S, L, typename FST::template rebind_t< uft > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_3c_20uvt_2c_20s_2c_20l_2c_20typename_20fst_3a_3atemplate_20rebind_5ft_3c_20uvt_20_3e_20_3e_519',['xstrided_view< uvt, S, L, typename FST::template rebind_t< uvt > >',['../classxt_1_1xstrided__view.html',1,'xt']]], + ['xstrided_5fview_5fbase_520',['xstrided_view_base',['../structxt_1_1extension_1_1xstrided__view__base.html',1,'xt::extension::xstrided_view_base< CT, S, L, FST >'],['../classxt_1_1xstrided__view__base.html',1,'xt::xstrided_view_base< D >']]], + ['xstrided_5fview_5fbase_3c_20self_5ftype_20_3e_521',['xstrided_view_base< self_type >',['../classxt_1_1xstrided__view__base.html',1,'xt']]], + ['xstrided_5fview_5fbase_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_522',['xstrided_view_base< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xstrided__view__base.html',1,'xt']]], + ['xstrided_5fview_5fbase_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_523',['xstrided_view_base< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xstrided__view__base.html',1,'xt']]], + ['xstrided_5fview_5fbase_5fimpl_524',['xstrided_view_base_impl',['../structxt_1_1extension_1_1xstrided__view__base__impl.html',1,'xt::extension']]], + ['xstrided_5fview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_525',['xstrided_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST >',['../structxt_1_1extension_1_1xstrided__view__base__impl.html',1,'xt::extension']]], + ['xstrided_5fview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_526',['xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xstrided_5fview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_527',['xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >',['../structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html',1,'xt::extension']]], + ['xstrided_5fview_5foptional_528',['xstrided_view_optional',['../classxt_1_1extension_1_1xstrided__view__optional.html',1,'xt::extension']]], + ['xtensor_5fadaptor_529',['xtensor_adaptor',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20const_20flag_5fcontainer_20_26_2c_20n_2c_20l_20_3e_530',['xtensor_adaptor< const flag_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20const_20value_5fcontainer_20_26_2c_20n_2c_20l_20_3e_531',['xtensor_adaptor< const value_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_532',['xtensor_adaptor< EC, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20flag_5fcontainer_20_26_2c_20n_2c_20l_20_3e_533',['xtensor_adaptor< flag_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20value_5fcontainer_20_26_2c_20n_2c_20l_20_3e_534',['xtensor_adaptor< value_container &, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_3c_20xbuffer_5fadaptor_3c_20xtl_3a_3aclosure_5ftype_5ft_3c_20t_20_2a_20_3e_2c_20xt_3a_3ano_5fownership_2c_20detail_3a_3adefault_5fallocator_5ffor_5fptr_5ft_3c_20t_20_3e_20_3e_2c_20n_2c_20l_20_3e_535',['xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, N, L >',['../classxt_1_1xtensor__adaptor.html',1,'xt']]], + ['xtensor_5fadaptor_5fbase_536',['xtensor_adaptor_base',['../structxt_1_1extension_1_1xtensor__adaptor__base.html',1,'xt::extension']]], + ['xtensor_5fadaptor_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_537',['xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >',['../structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fadaptor_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xtensor_5fexpression_5ftag_20_3e_538',['xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >',['../structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fadaptor_5foptional_5ftraits_539',['xtensor_adaptor_optional_traits',['../structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html',1,'xt::extension']]], + ['xtensor_5fcontainer_540',['xtensor_container',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_541',['xtensor_container< EC, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20std_3a_3avector_3c_20t_2c_20a_20_3e_2c_202_2c_20layout_5ftype_3a_3arow_5fmajor_20_3e_542',['xtensor_container< std::vector< T, A >, 2, layout_type::row_major >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20temporary_5fcontainer_5ft_3c_20storage_5ftype_20_3e_2c_20n_2c_20l_2c_20tag_20_3e_543',['xtensor_container< temporary_container_t< storage_type >, N, L, Tag >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_544',['xtensor_container< uvector< T, A >, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20r_2c_201_20_3e_545',['xtensor_container< uvector< T, A >, N, L >< R, 1 >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20r_2c_201_2c_20l_20_3e_546',['xtensor_container< uvector< T, A >, N, L >< R, 1, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20r_2c_20n_2c_20l_20_3e_547',['xtensor_container< uvector< T, A >, N, L >< R, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20std_3a_3asize_5ft_2c_20n_20_2d_201_20_3e_548',['xtensor_container< uvector< T, A >, N, L >< std::size_t, N - 1 >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20t_2c_20n_2bnewaxis_5fcount_3c_20sl_2e_2e_2e_20_3e_28_29_20_2d_20integral_5fcount_3c_20sl_2e_2e_2e_20_3e_28_29_2c_20l_20_3e_549',['xtensor_container< uvector< T, A >, N, L >< T, N+newaxis_count< SL... >() - integral_count< SL... >(), L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20t_2c_20sizeof_2e_2e_2e_28i_29_2c_20l_20_3e_550',['xtensor_container< uvector< T, A >, N, L >< T, sizeof...(I), L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20typename_20f_3a_3avalue_5ftype_2c_20n_2c_20l_20_3e_551',['xtensor_container< uvector< T, A >, N, L >< typename F::value_type, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20vt_2c_201_2c_20l_20_3e_552',['xtensor_container< uvector< T, A >, N, L >< VT, 1, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20uvector_3c_20t_2c_20a_20_3e_2c_20n_2c_20l_20_3e_3c_20vt_2c_20n_2c_20l_20_3e_553',['xtensor_container< uvector< T, A >, N, L >< VT, N, L >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_3c_20xtl_3a_3axoptional_5fvector_3c_20t_2c_20a_2c_20bc_20_3e_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_554',['xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__container.html',1,'xt']]], + ['xtensor_5fcontainer_5fbase_555',['xtensor_container_base',['../structxt_1_1extension_1_1xtensor__container__base.html',1,'xt::extension']]], + ['xtensor_5fcontainer_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_556',['xtensor_container_base< EC, N, L, xoptional_expression_tag >',['../structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fcontainer_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xtensor_5fexpression_5ftag_20_3e_557',['xtensor_container_base< EC, N, L, xtensor_expression_tag >',['../structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fcontainer_5foptional_5ftraits_558',['xtensor_container_optional_traits',['../structxt_1_1extension_1_1xtensor__container__optional__traits.html',1,'xt::extension']]], + ['xtensor_5fempty_5fbase_559',['xtensor_empty_base',['../structxt_1_1extension_1_1xtensor__empty__base.html',1,'xt::extension']]], + ['xtensor_5fexpression_5ftag_560',['xtensor_expression_tag',['../structxt_1_1xtensor__expression__tag.html',1,'xt']]], + ['xtensor_5foptional_5ftraits_561',['xtensor_optional_traits',['../structxt_1_1extension_1_1xtensor__optional__traits.html',1,'xt::extension']]], + ['xtensor_5fview_562',['xtensor_view',['../classxt_1_1xtensor__view.html',1,'xt']]], + ['xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_563',['xtensor_view< EC, N, L, xoptional_expression_tag >',['../classxt_1_1xtensor__view.html',1,'xt']]], + ['xtensor_5fview_5fbase_564',['xtensor_view_base',['../structxt_1_1extension_1_1xtensor__view__base.html',1,'xt::extension']]], + ['xtensor_5fview_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xoptional_5fexpression_5ftag_20_3e_565',['xtensor_view_base< EC, N, L, xoptional_expression_tag >',['../structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fview_5fbase_3c_20ec_2c_20n_2c_20l_2c_20xtensor_5fexpression_5ftag_20_3e_566',['xtensor_view_base< EC, N, L, xtensor_expression_tag >',['../structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['xtensor_5fview_5foptional_5ftraits_567',['xtensor_view_optional_traits',['../structxt_1_1extension_1_1xtensor__view__optional__traits.html',1,'xt::extension']]], + ['xtuph_568',['xtuph',['../structxt_1_1placeholders_1_1xtuph.html',1,'xt::placeholders']]], + ['xvectorizer_569',['xvectorizer',['../classxt_1_1xvectorizer.html',1,'xt']]], + ['xview_570',['xview',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_571',['xview< CT, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20e_2c_20s_2e_2e_2e_20_3e_572',['xview< E, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20ucft_2c_20s_2e_2e_2e_20_3e_573',['xview< ucft, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20ucvt_2c_20s_2e_2e_2e_20_3e_574',['xview< ucvt, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20uft_2c_20s_2e_2e_2e_20_3e_575',['xview< uft, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20underlyingcontainer_2c_20slices_2e_2e_2e_20_3e_576',['xview< UnderlyingContainer, Slices... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_3c_20uvt_2c_20s_2e_2e_2e_20_3e_577',['xview< uvt, S... >',['../classxt_1_1xview.html',1,'xt']]], + ['xview_5fbase_578',['xview_base',['../structxt_1_1extension_1_1xview__base.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_579',['xview_base_impl',['../structxt_1_1extension_1_1xview__base__impl.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_3c_20xexpression_5ftag_5ft_3c_20ct_20_3e_2c_20ct_2c_20s_2e_2e_2e_20_3e_580',['xview_base_impl< xexpression_tag_t< CT >, CT, S... >',['../structxt_1_1extension_1_1xview__base__impl.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_3c_20xoptional_5fexpression_5ftag_2c_20ct_2c_20s_2e_2e_2e_20_3e_581',['xview_base_impl< xoptional_expression_tag, CT, S... >',['../structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html',1,'xt::extension']]], + ['xview_5fbase_5fimpl_3c_20xtensor_5fexpression_5ftag_2c_20ct_2c_20s_2e_2e_2e_20_3e_582',['xview_base_impl< xtensor_expression_tag, CT, S... >',['../structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html',1,'xt::extension']]], + ['xview_5foptional_583',['xview_optional',['../classxt_1_1extension_1_1xview__optional.html',1,'xt::extension']]], + ['xview_5foptional_3c_20ct_2c_20s_2e_2e_2e_20_3e_584',['xview_optional< CT, S... >',['../classxt_1_1extension_1_1xview__optional.html',1,'xt::extension']]], + ['xview_5fsemantic_585',['xview_semantic',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20self_5ftype_20_3e_586',['xview_semantic< self_type >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xdynamic_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_587',['xview_semantic< xdynamic_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_588',['xview_semantic< xfunctor_view< F, CT > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xindex_5fview_3c_20ct_2c_20i_20_3e_20_3e_589',['xview_semantic< xindex_view< CT, I > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xmasked_5fview_3c_20ctd_2c_20ctm_20_3e_20_3e_590',['xview_semantic< xmasked_view< CTD, CTM > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20layout_5ftype_3a_3adynamic_2c_20detail_3a_3aflat_5fstorage_5fgetter_3c_20ct_2c_20_3a_3axt_3a_3alayout_5ftype_3a_3arow_5fmajor_20_3e_20_3e_20_3e_591',['xview_semantic< xstrided_view< CT, S, layout_type::dynamic, detail::flat_storage_getter< CT, ::xt::layout_type::row_major > > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_592',['xview_semantic< xtensor_view< EC, N, L, Tag > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fsemantic_3c_20xview_3c_20ct_2c_20s_2e_2e_2e_20_3e_20_3e_593',['xview_semantic< xview< CT, S... > >',['../classxt_1_1xview__semantic.html',1,'xt']]], + ['xview_5fshape_5ftype_594',['xview_shape_type',['../structxt_1_1xview__shape__type.html',1,'xt']]], + ['xview_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20s_2e_2e_2e_20_3e_595',['xview_shape_type< fixed_shape< I... >, S... >',['../structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html',1,'xt']]], + ['xview_5fshape_5ftype_3c_20std_3a_3aarray_3c_20i_2c_20l_20_3e_2c_20s_2e_2e_2e_20_3e_596',['xview_shape_type< std::array< I, L >, S... >',['../structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html',1,'xt']]], + ['xview_5fstepper_597',['xview_stepper',['../classxt_1_1xview__stepper.html',1,'xt']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 000000000..e31a7ec19 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['can_5fassign_0',['can_assign',['../structxt_1_1can__assign.html',1,'xt']]], + ['can_5fassign_3c_20ct_2c_20rhs_20_3e_1',['can_assign< CT, RHS >',['../structxt_1_1can__assign.html',1,'xt']]], + ['can_5fassign_3c_20xstrided_5fview_3c_20ct_2c_20s_2c_20l_2c_20fst_20_3e_2c_20rhs_20_3e_2',['can_assign< xstrided_view< CT, S, L, FST >, RHS >',['../structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html',1,'xt']]], + ['cbrt_5ffun_3',['cbrt_fun',['../structxt_1_1math_1_1cbrt__fun.html',1,'xt::math']]], + ['ceil_5ffun_4',['ceil_fun',['../structxt_1_1math_1_1ceil__fun.html',1,'xt::math']]], + ['check_5fstrides_5ffunctor_5',['check_strides_functor',['../structxt_1_1strided__assign__detail_1_1check__strides__functor.html',1,'xt::strided_assign_detail']]], + ['check_5fstrides_5foverlap_6',['check_strides_overlap',['../structxt_1_1check__strides__overlap.html',1,'xt']]], + ['check_5fstrides_5foverlap_3c_20layout_5ftype_3a_3acolumn_5fmajor_20_3e_7',['check_strides_overlap< layout_type::column_major >',['../structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html',1,'xt']]], + ['check_5fstrides_5foverlap_3c_20layout_5ftype_3a_3arow_5fmajor_20_3e_8',['check_strides_overlap< layout_type::row_major >',['../structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html',1,'xt']]], + ['clamp_5ffun_9',['clamp_fun',['../structxt_1_1math_1_1clamp__fun.html',1,'xt::math']]], + ['common_5fdifference_5ftype_10',['common_difference_type',['../structxt_1_1common__difference__type.html',1,'xt']]], + ['common_5fdifference_5ftype_3c_3e_11',['common_difference_type<>',['../structxt_1_1common__difference__type_3_4.html',1,'xt']]], + ['common_5fsize_5ftype_12',['common_size_type',['../structxt_1_1common__size__type.html',1,'xt']]], + ['common_5fsize_5ftype_3c_3e_13',['common_size_type<>',['../structxt_1_1common__size__type_3_4.html',1,'xt']]], + ['common_5ftensor_5ftype_14',['common_tensor_type',['../structxt_1_1common__tensor__type.html',1,'xt']]], + ['common_5fvalue_5ftype_15',['common_value_type',['../structxt_1_1common__value__type.html',1,'xt']]], + ['concatenate_5ferror_16',['concatenate_error',['../classxt_1_1concatenate__error.html',1,'xt']]], + ['conditional_5fcast_5ffunctor_17',['conditional_cast_functor',['../structxt_1_1conditional__cast__functor.html',1,'xt']]], + ['conditional_5fcast_5ffunctor_3c_20false_2c_20t_20_3e_18',['conditional_cast_functor< false, T >',['../structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html',1,'xt']]], + ['conditional_5fcast_5ffunctor_3c_20true_2c_20t_20_3e_19',['conditional_cast_functor< true, T >',['../structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html',1,'xt']]], + ['conj_5ffun_20',['conj_fun',['../structxt_1_1math_1_1conj__fun.html',1,'xt::math']]], + ['conj_5fimpl_5ffun_21',['conj_impl_fun',['../structxt_1_1math_1_1conj__impl__fun.html',1,'xt::math']]], + ['conjunction_22',['conjunction',['../structxtl_1_1conjunction.html',1,'xtl']]], + ['const_5farray_23',['const_array',['../structxt_1_1const__array.html',1,'xt']]], + ['const_5farray_3c_20std_3a_3asize_5ft_2c_20sizeof_2e_2e_2e_28x_29_3e_24',['const_array< std::size_t, sizeof...(X)>',['../structxt_1_1const__array.html',1,'xt']]], + ['const_5fvalue_25',['const_value',['../structxt_1_1const__value.html',1,'xt']]], + ['const_5fvalue_3c_20nt_20_3e_26',['const_value< NT >',['../structxt_1_1const__value.html',1,'xt']]], + ['const_5fxclosure_27',['const_xclosure',['../structxt_1_1const__xclosure.html',1,'xt']]], + ['const_5fxclosure_3c_20e_2c_20disable_5fxexpression_3c_20std_3a_3adecay_5ft_3c_20e_20_3e_20_3e_20_3e_28',['const_xclosure< E, disable_xexpression< std::decay_t< E > > >',['../structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html',1,'xt']]], + ['const_5fxclosure_3c_20xshared_5fexpression_3c_20e_20_3e_20_26_2c_20std_3a_3aenable_5fif_5ft_3c_20true_20_3e_20_3e_29',['const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >',['../structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html',1,'xt']]], + ['container_5falignment_30',['container_alignment',['../structxt__simd_1_1container__alignment.html',1,'xt_simd']]], + ['container_5fsimd_5freturn_5ftype_31',['container_simd_return_type',['../structxt_1_1container__simd__return__type.html',1,'xt']]], + ['cos_5ffun_32',['cos_fun',['../structxt_1_1math_1_1cos__fun.html',1,'xt::math']]], + ['cosh_5ffun_33',['cosh_fun',['../structxt_1_1math_1_1cosh__fun.html',1,'xt::math']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 000000000..94861f11b --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['decay_5fall_0',['decay_all',['../structxt_1_1decay__all.html',1,'xt']]], + ['decay_5fall_3c_20s_3c_20x_2e_2e_2e_20_3e_20_3e_1',['decay_all< S< X... > >',['../structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html',1,'xt']]], + ['deg2rad_2',['deg2rad',['../structxt_1_1math_1_1deg2rad.html',1,'xt::math']]], + ['disable_5findexed_5fstepper_3',['disable_indexed_stepper',['../structxt_1_1disable__indexed__stepper.html',1,'xt']]], + ['driven_5falign_5fmode_4',['driven_align_mode',['../structxt_1_1driven__align__mode.html',1,'xt']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 000000000..ede30b26e --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['edge_5fitems_0',['edge_items',['../classxt_1_1print__options_1_1edge__items.html',1,'xt::print_options']]], + ['enable_5findexed_5fstepper_1',['enable_indexed_stepper',['../structxt_1_1enable__indexed__stepper.html',1,'xt']]], + ['erf_5ffun_2',['erf_fun',['../structxt_1_1math_1_1erf__fun.html',1,'xt::math']]], + ['erfc_5ffun_3',['erfc_fun',['../structxt_1_1math_1_1erfc__fun.html',1,'xt::math']]], + ['exp2_5ffun_4',['exp2_fun',['../structxt_1_1math_1_1exp2__fun.html',1,'xt::math']]], + ['exp_5ffun_5',['exp_fun',['../structxt_1_1math_1_1exp__fun.html',1,'xt::math']]], + ['expm1_5ffun_6',['expm1_fun',['../structxt_1_1math_1_1expm1__fun.html',1,'xt::math']]], + ['expression_5ftag_5fand_7',['expression_tag_and',['../structxt_1_1extension_1_1expression__tag__and.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t_20_3e_8',['expression_tag_and< T >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t_2c_20t_20_3e_9',['expression_tag_and< T, T >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t_2c_20xtensor_5fexpression_5ftag_20_3e_10',['expression_tag_and< T, xtensor_expression_tag >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t1_2c_20expression_5ftag_5fand_3c_20t_2e_2e_2e_20_3e_3a_3atype_20_3e_11',['expression_tag_and< T1, expression_tag_and< T... >::type >',['../structxt_1_1extension_1_1expression__tag__and.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20t1_2c_20t_2e_2e_2e_20_3e_12',['expression_tag_and< T1, T... >',['../structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20xtensor_5fexpression_5ftag_2c_20t_20_3e_13',['expression_tag_and< xtensor_expression_tag, T >',['../structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_20xtensor_5fexpression_5ftag_2c_20xtensor_5fexpression_5ftag_20_3e_14',['expression_tag_and< xtensor_expression_tag, xtensor_expression_tag >',['../structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html',1,'xt::extension']]], + ['expression_5ftag_5fand_3c_3e_15',['expression_tag_and<>',['../structxt_1_1extension_1_1expression__tag__and_3_4.html',1,'xt::extension']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 000000000..9e7288de0 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['fabs_5ffun_0',['fabs_fun',['../structxt_1_1math_1_1fabs__fun.html',1,'xt::math']]], + ['fdim_5ffun_1',['fdim_fun',['../structxt_1_1math_1_1fdim__fun.html',1,'xt::math']]], + ['filter_5ffixed_5fshape_2',['filter_fixed_shape',['../structxt_1_1filter__fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3',['fixed_shape',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_201_20_3e_4',['fixed_shape< 1 >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20broadcast_5ffixed_5fshape_5fcmp_5fimpl_3c_20jx_2c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20fixed_5fshape_3c_20j_2e_2e_2e_20_3e_20_3e_3a_3aordinate_2e_2e_2e_20_3e_5',['fixed_shape< broadcast_fixed_shape_cmp_impl< JX, fixed_shape< I... >, fixed_shape< J... > >::ordinate... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20i_2e_2e_2e_20_3e_6',['fixed_shape< I... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20n_2e_2e_2e_20_3e_7',['fixed_shape< N... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_20x_2e_2e_2e_20_3e_8',['fixed_shape< X... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fshape_3c_28axis_3d_3dis_20_3f_20x_3a_3atemplate_20get_3c_20is_20_3e_28_29_2by_3a_3atemplate_20get_3c_20is_20_3e_28_29_20_3ax_3a_3atemplate_20get_3c_20is_20_3e_28_29_29_2e_2e_2e_20_3e_9',['fixed_shape<(axis==Is ? X::template get< Is >()+Y::template get< Is >() :X::template get< Is >())... >',['../classxt_1_1fixed__shape.html',1,'xt']]], + ['fixed_5fxreducer_5fshape_5ftype_10',['fixed_xreducer_shape_type',['../structxt_1_1fixed__xreducer__shape__type.html',1,'xt']]], + ['fixed_5fxreducer_5fshape_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_2c_20fixed_5fshape_3c_20j_2e_2e_2e_20_3e_20_3e_11',['fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >',['../structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html',1,'xt']]], + ['floor_5ffun_12',['floor_fun',['../structxt_1_1math_1_1floor__fun.html',1,'xt::math']]], + ['fma_5ffun_13',['fma_fun',['../structxt_1_1math_1_1fma__fun.html',1,'xt::math']]], + ['fmax_5ffun_14',['fmax_fun',['../structxt_1_1math_1_1fmax__fun.html',1,'xt::math']]], + ['fmin_5ffun_15',['fmin_fun',['../structxt_1_1math_1_1fmin__fun.html',1,'xt::math']]], + ['fmod_5ffun_16',['fmod_fun',['../structxt_1_1math_1_1fmod__fun.html',1,'xt::math']]], + ['forbid_5fsimd_17',['forbid_simd',['../structxt_1_1forbid__simd.html',1,'xt']]], + ['forbid_5fsimd_3c_20const_20std_3a_3avector_3c_20bool_2c_20a_20_3e_20_3e_18',['forbid_simd< const std::vector< bool, A > >',['../structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html',1,'xt']]], + ['forbid_5fsimd_3c_20const_20xtl_3a_3axdynamic_5fbitset_3c_20b_2c_20a_20_3e_20_3e_19',['forbid_simd< const xtl::xdynamic_bitset< B, A > >',['../structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html',1,'xt']]], + ['forbid_5fsimd_3c_20std_3a_3avector_3c_20bool_2c_20a_20_3e_20_3e_20',['forbid_simd< std::vector< bool, A > >',['../structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html',1,'xt']]], + ['forbid_5fsimd_3c_20xtl_3a_3axdynamic_5fbitset_3c_20b_2c_20a_20_3e_20_3e_21',['forbid_simd< xtl::xdynamic_bitset< B, A > >',['../structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.html',1,'xt']]], + ['full_22',['full',['../structxt_1_1check__policy_1_1full.html',1,'xt::check_policy::full'],['../structxt_1_1convolve__mode_1_1full.html',1,'xt::convolve_mode::full']]] +]; diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 000000000..147af5acf --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['get_5fexpression_5ftag_0',['get_expression_tag',['../structxt_1_1extension_1_1get__expression__tag.html',1,'xt::extension']]], + ['get_5fexpression_5ftag_3c_20xtl_3a_3axoptional_3c_20t_2c_20b_20_3e_20_3e_1',['get_expression_tag< xtl::xoptional< T, B > >',['../structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html',1,'xt::extension']]], + ['get_5fexpression_5ftag_5fimpl_2',['get_expression_tag_impl',['../structxt_1_1extension_1_1get__expression__tag__impl.html',1,'xt::extension']]], + ['get_5fexpression_5ftag_5fimpl_3c_20e_2c_20void_5ft_3c_20typename_20std_3a_3adecay_5ft_3c_20e_20_3e_3a_3aexpression_5ftag_20_3e_20_3e_3',['get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >',['../structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de048c22abe806a8cb61aa0c08ab63f2de.html',1,'xt::extension']]], + ['get_5finit_5ftype_4',['get_init_type',['../structxt_1_1get__init__type.html',1,'xt']]], + ['get_5finit_5ftype_3c_20v_2c_20fixed_5fshape_3c_20x_2e_2e_2e_20_3e_20_3e_5',['get_init_type< V, fixed_shape< X... > >',['../structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html',1,'xt']]], + ['get_5frank_6',['get_rank',['../structxt_1_1get__rank.html',1,'xt']]], + ['get_5frank_3c_20e_2c_20decltype_28_28void_29_20e_3a_3arank_2c_20void_28_29_29_3e_7',['get_rank< E, decltype((void) E::rank, void())>',['../structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html',1,'xt']]], + ['get_5fstrides_5ftype_8',['get_strides_type',['../structxt_1_1get__strides__type.html',1,'xt']]], + ['get_5fstrides_5ftype_3c_20fixed_5fshape_3c_20i_2e_2e_2e_20_3e_20_3e_9',['get_strides_type< fixed_shape< I... > >',['../structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html',1,'xt']]], + ['get_5fstrides_5ftype_3c_20xbuffer_5fadaptor_3c_20cp_2c_20o_2c_20a_20_3e_20_3e_10',['get_strides_type< xbuffer_adaptor< CP, O, A > >',['../structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html',1,'xt']]], + ['get_5fvalue_5ftype_11',['get_value_type',['../structxt_1_1get__value__type.html',1,'xt']]], + ['get_5fvalue_5ftype_3c_20t_2c_20void_5ft_3c_20typename_20t_3a_3avalue_5ftype_20_3e_20_3e_12',['get_value_type< T, void_t< typename T::value_type > >',['../structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html',1,'xt']]] +]; diff --git a/search/classes_7.js b/search/classes_7.js new file mode 100644 index 000000000..d2f689be1 --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['has_5fassign_5fconversion_0',['has_assign_conversion',['../structxt_1_1has__assign__conversion.html',1,'xt']]], + ['has_5fassign_5fto_1',['has_assign_to',['../structxt_1_1has__assign__to.html',1,'xt']]], + ['has_5fassign_5fto_3c_20e1_2c_20e2_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20const_20e2_20_26_20_3e_28_29_2eassign_5fto_28std_3a_3adeclval_3c_20e1_20_26_20_3e_28_29_29_29_3e_20_3e_2',['has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >',['../structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.html',1,'xt']]], + ['has_5fdata_5finterface_3',['has_data_interface',['../structxt_1_1has__data__interface.html',1,'xt']]], + ['has_5fdata_5finterface_3c_20e_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20e_20_3e_28_29_2edata_28_29_29_3e_20_3e_4',['has_data_interface< E, void_t< decltype(std::declval< E >().data())> >',['../structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html',1,'xt']]], + ['has_5ffixed_5frank_5',['has_fixed_rank',['../structxt_1_1has__fixed__rank.html',1,'xt']]], + ['has_5fiterator_5finterface_6',['has_iterator_interface',['../structxt_1_1has__iterator__interface.html',1,'xt']]], + ['has_5fiterator_5finterface_3c_20e_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20e_20_3e_28_29_2ebegin_28_29_29_3e_20_3e_7',['has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >',['../structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html',1,'xt']]], + ['has_5fmemory_5faddress_8',['has_memory_address',['../structxt_1_1has__memory__address.html',1,'xt']]], + ['has_5fmemory_5faddress_3c_20t_2c_20void_5ft_3c_20decltype_28std_3a_3aaddressof_28_2astd_3a_3adeclval_3c_20t_20_3e_28_29_2ebegin_28_29_29_29_3e_20_3e_9',['has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >',['../structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html',1,'xt']]], + ['has_5frank_10',['has_rank',['../structxt_1_1has__rank.html',1,'xt']]], + ['has_5fsign_5fconversion_11',['has_sign_conversion',['../structxt_1_1has__sign__conversion.html',1,'xt']]], + ['has_5fsimd_5fapply_12',['has_simd_apply',['../structxt_1_1has__simd__apply.html',1,'xt']]], + ['has_5fsimd_5finterface_13',['has_simd_interface',['../structxt_1_1has__simd__interface.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunction_3c_20f_2c_20ct_2e_2e_2e_20_3e_2c_20t_20_3e_14',['has_simd_interface< xfunction< F, CT... >, T >',['../structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_2c_20t_20_3e_15',['has_simd_interface< xfunctor_adaptor< F, CT >, T >',['../structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fapplier_5fbase_3c_20d_20_3e_2c_20t_20_3e_16',['has_simd_interface< xfunctor_applier_base< D >, T >',['../structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fapplier_5fbase_3c_20xfunctor_5fadaptor_3c_20f_2c_20ct_20_3e_20_3e_2c_20t_20_3e_17',['has_simd_interface< xfunctor_applier_base< xfunctor_adaptor< F, CT > >, T >',['../structxt_1_1has__simd__interface.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fapplier_5fbase_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_20_3e_2c_20t_20_3e_18',['has_simd_interface< xfunctor_applier_base< xfunctor_view< F, CT > >, T >',['../structxt_1_1has__simd__interface.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xfunctor_5fview_3c_20f_2c_20ct_20_3e_2c_20t_20_3e_19',['has_simd_interface< xfunctor_view< F, CT >, T >',['../structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html',1,'xt']]], + ['has_5fsimd_5finterface_3c_20xtensor_5fview_3c_20ec_2c_20n_2c_20l_2c_20tag_20_3e_20_3e_20',['has_simd_interface< xtensor_view< EC, N, L, Tag > >',['../structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html',1,'xt']]], + ['has_5fsimd_5ftype_21',['has_simd_type',['../structxt_1_1has__simd__type.html',1,'xt']]], + ['has_5fstorage_5ftype_22',['has_storage_type',['../structxt_1_1has__storage__type.html',1,'xt']]], + ['has_5fstorage_5ftype_3c_20t_2c_20void_5ft_3c_20typename_20xcontainer_5finner_5ftypes_3c_20t_20_3e_3a_3astorage_5ftype_20_3e_20_3e_23',['has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >',['../structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.html',1,'xt']]], + ['has_5fstrides_24',['has_strides',['../structxt_1_1has__strides.html',1,'xt']]], + ['has_5fstrides_3c_20e_2c_20void_5ft_3c_20decltype_28std_3a_3adeclval_3c_20e_20_3e_28_29_2estrides_28_29_29_3e_20_3e_25',['has_strides< E, void_t< decltype(std::declval< E >().strides())> >',['../structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html',1,'xt']]], + ['hypot_5ffun_26',['hypot_fun',['../structxt_1_1math_1_1hypot__fun.html',1,'xt::math']]] +]; diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 000000000..c1048c9a5 --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,45 @@ +var searchData= +[ + ['idx_5ftools_0',['idx_tools',['../structxt_1_1strided__assign__detail_1_1idx__tools.html',1,'xt::strided_assign_detail']]], + ['idx_5ftools_3c_20layout_5ftype_3a_3acolumn_5fmajor_20_3e_1',['idx_tools< layout_type::column_major >',['../structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html',1,'xt::strided_assign_detail']]], + ['idx_5ftools_3c_20layout_5ftype_3a_3arow_5fmajor_20_3e_2',['idx_tools< layout_type::row_major >',['../structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html',1,'xt::strided_assign_detail']]], + ['immediate_5ftype_3',['immediate_type',['../structxt_1_1evaluation__strategy_1_1immediate__type.html',1,'xt::evaluation_strategy']]], + ['index_5ffrom_5fshape_4',['index_from_shape',['../structxt_1_1index__from__shape.html',1,'xt']]], + ['index_5fmapper_5',['index_mapper',['../structxt_1_1index__mapper.html',1,'xt']]], + ['index_5fmapper_3c_20xt_3a_3axview_3c_20underlyingcontainer_2c_20slices_2e_2e_2e_20_3e_20_3e_6',['index_mapper< xt::xview< UnderlyingContainer, Slices... > >',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html',1,'xt']]], + ['initial_5ftester_7',['initial_tester',['../structxt_1_1reducer__options_1_1initial__tester.html',1,'xt::reducer_options']]], + ['initial_5ftester_3c_20const_20xinitial_3c_20x_20_3e_20_3e_8',['initial_tester< const xinitial< X > >',['../structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html',1,'xt::reducer_options']]], + ['initial_5ftester_3c_20xinitial_3c_20x_20_3e_20_3e_9',['initial_tester< xinitial< X > >',['../structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html',1,'xt::reducer_options']]], + ['initializer_5fdimension_10',['initializer_dimension',['../structxt_1_1initializer__dimension.html',1,'xt']]], + ['inner_5faligned_5fmode_11',['inner_aligned_mode',['../structxt_1_1inner__aligned__mode.html',1,'xt']]], + ['inner_5freference_12',['inner_reference',['../structxt_1_1inner__reference.html',1,'xt']]], + ['invalid_5ftype_13',['invalid_type',['../structxt_1_1invalid__type.html',1,'xt']]], + ['is_5fbatch_5fbool_14',['is_batch_bool',['../structxt__simd_1_1is__batch__bool.html',1,'xt_simd']]], + ['is_5fbatch_5fcomplex_15',['is_batch_complex',['../structxt__simd_1_1is__batch__complex.html',1,'xt_simd']]], + ['is_5fchunked_5ft_16',['is_chunked_t',['../structxt_1_1is__chunked__t.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_17',['is_contiguous_container',['../structxt_1_1is__contiguous__container.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20i_20_3e_18',['is_contiguous_container< I >',['../structxt_1_1is__contiguous__container.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20ig_3a_3aiterator_20_3e_19',['is_contiguous_container< IG::iterator >',['../structxt_1_1is__contiguous__container.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20xiterator_3c_20st_2c_20s_2c_20l_20_3e_20_3e_20',['is_contiguous_container< xiterator< St, S, L > >',['../structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20xiterator_5fadaptor_3c_20i_2c_20ci_20_3e_20_3e_21',['is_contiguous_container< xiterator_adaptor< I, CI > >',['../structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html',1,'xt']]], + ['is_5fcontiguous_5fcontainer_3c_20xiterator_5fowner_5fadaptor_3c_20c_2c_20ig_20_3e_20_3e_22',['is_contiguous_container< xiterator_owner_adaptor< C, IG > >',['../structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html',1,'xt']]], + ['is_5fevaluation_5fstrategy_23',['is_evaluation_strategy',['../structxt_1_1is__evaluation__strategy.html',1,'xt']]], + ['is_5findexed_5fstepper_24',['is_indexed_stepper',['../structxt_1_1is__indexed__stepper.html',1,'xt']]], + ['is_5findexed_5fstepper_3c_20xindexed_5fstepper_3c_20t_2c_20b_20_3e_20_3e_25',['is_indexed_stepper< xindexed_stepper< T, B > >',['../structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html',1,'xt']]], + ['is_5fiterator_26',['is_iterator',['../structxt_1_1is__iterator.html',1,'xt']]], + ['is_5fiterator_3c_20e_2c_20void_5ft_3c_20decltype_28_2astd_3a_3adeclval_3c_20const_20e_20_3e_28_29_2c_20std_3a_3adeclval_3c_20const_20e_20_3e_28_29_3d_3dstd_3a_3adeclval_3c_20const_20e_20_3e_28_29_2c_20std_3a_3adeclval_3c_20const_20e_20_3e_28_29_20_21_3dstd_3a_3adeclval_3c_20const_20e_20_3e_28_29_2c_2b_2b_28_2astd_3a_3adeclval_3c_20e_20_2a_20_3e_28_29_29_2c_28_2astd_3a_3adeclval_3c_20e_20_2a_20_3e_28_29_29_2b_2b_2c_20std_3a_3atrue_5ftype_28_29_29_3e_20_3e_27',['is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >',['../structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html',1,'xt']]], + ['is_5fnarrowing_5fconversion_28',['is_narrowing_conversion',['../structxt_1_1is__narrowing__conversion.html',1,'xt']]], + ['is_5fnot_5fxdummy_5fiterator_29',['is_not_xdummy_iterator',['../structxt_1_1is__not__xdummy__iterator.html',1,'xt']]], + ['is_5fnot_5fxdummy_5fiterator_3c_20xdummy_5fiterator_3c_20is_5fconst_2c_20ct_20_3e_20_3e_30',['is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >',['../structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html',1,'xt']]], + ['is_5freducer_5foptions_31',['is_reducer_options',['../structxt_1_1is__reducer__options.html',1,'xt']]], + ['is_5freducer_5foptions_5fimpl_32',['is_reducer_options_impl',['../structxt_1_1is__reducer__options__impl.html',1,'xt']]], + ['is_5freducer_5foptions_5fimpl_3c_20std_3a_3adecay_5ft_3c_20t_20_3e_20_3e_33',['is_reducer_options_impl< std::decay_t< T > >',['../structxt_1_1is__reducer__options__impl.html',1,'xt']]], + ['is_5freducer_5foptions_5fimpl_3c_20std_3a_3atuple_3c_20x_2e_2e_2e_20_3e_20_3e_34',['is_reducer_options_impl< std::tuple< X... > >',['../structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html',1,'xt']]], + ['is_5fspecialization_5fof_35',['is_specialization_of',['../structxt_1_1is__specialization__of.html',1,'xt']]], + ['is_5fspecialization_5fof_3c_20tt_2c_20tt_3c_20ts_2e_2e_2e_20_3e_20_3e_36',['is_specialization_of< TT, TT< Ts... > >',['../structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.html',1,'xt']]], + ['is_5fxoptional_5fexpression_37',['is_xoptional_expression',['../structxt_1_1is__xoptional__expression.html',1,'xt']]], + ['is_5fxtensor_5fexpression_38',['is_xtensor_expression',['../structxt_1_1is__xtensor__expression.html',1,'xt']]], + ['isfinite_5ffun_39',['isfinite_fun',['../structxt_1_1math_1_1isfinite__fun.html',1,'xt::math']]], + ['isinf_5ffun_40',['isinf_fun',['../structxt_1_1math_1_1isinf__fun.html',1,'xt::math']]], + ['isnan_5ffun_41',['isnan_fun',['../structxt_1_1math_1_1isnan__fun.html',1,'xt::math']]] +]; diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 000000000..3a4ff8c94 --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keep_5fdims_5ftype_0',['keep_dims_type',['../structxt_1_1keep__dims__type.html',1,'xt']]] +]; diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 000000000..a2cd0e939 --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['lazy_5ftype_0',['lazy_type',['../structxt_1_1evaluation__strategy_1_1lazy__type.html',1,'xt::evaluation_strategy']]], + ['lgamma_5ffun_1',['lgamma_fun',['../structxt_1_1math_1_1lgamma__fun.html',1,'xt::math']]], + ['line_5fwidth_2',['line_width',['../classxt_1_1print__options_1_1line__width.html',1,'xt::print_options']]], + ['linear_5fassigner_3',['linear_assigner',['../classxt_1_1linear__assigner.html',1,'xt']]], + ['linear_5fassigner_3c_20false_20_3e_4',['linear_assigner< false >',['../classxt_1_1linear__assigner_3_01false_01_4.html',1,'xt']]], + ['log10_5ffun_5',['log10_fun',['../structxt_1_1math_1_1log10__fun.html',1,'xt::math']]], + ['log1p_5ffun_6',['log1p_fun',['../structxt_1_1math_1_1log1p__fun.html',1,'xt::math']]], + ['log2_5ffun_7',['log2_fun',['../structxt_1_1math_1_1log2__fun.html',1,'xt::math']]], + ['log_5ffun_8',['log_fun',['../structxt_1_1math_1_1log__fun.html',1,'xt::math']]], + ['loop_5fsizes_5ft_9',['loop_sizes_t',['../structxt_1_1strided__assign__detail_1_1loop__sizes__t.html',1,'xt::strided_assign_detail']]] +]; diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 000000000..77dd3f8cf --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['make_5finvalid_5ftype_0',['make_invalid_type',['../structxt_1_1make__invalid__type.html',1,'xt']]], + ['make_5fvoid_1',['make_void',['../structxt_1_1make__void.html',1,'xt']]], + ['maximum_2',['maximum',['../structxt_1_1math_1_1maximum.html',1,'xt::math']]], + ['memory_5frange_3',['memory_range',['../structxt_1_1memory__range.html',1,'xt']]], + ['meta_5fidentity_4',['meta_identity',['../structxt_1_1meta__identity.html',1,'xt']]], + ['minimum_5',['minimum',['../structxt_1_1math_1_1minimum.html',1,'xt::math']]], + ['missing_5ftype_6',['missing_type',['../structxt_1_1missing__type.html',1,'xt']]] +]; diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 000000000..59bfec114 --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['nearbyint_5ffun_0',['nearbyint_fun',['../structxt_1_1math_1_1nearbyint__fun.html',1,'xt::math']]], + ['nested_5finitializer_5flist_1',['nested_initializer_list',['../structxt_1_1nested__initializer__list.html',1,'xt']]], + ['nested_5finitializer_5flist_3c_20t_2c_200_20_3e_2',['nested_initializer_list< T, 0 >',['../structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html',1,'xt']]], + ['no_5fownership_3',['no_ownership',['../structxt_1_1no__ownership.html',1,'xt']]], + ['noalias_5fproxy_4',['noalias_proxy',['../classxt_1_1noalias__proxy.html',1,'xt']]], + ['none_5',['none',['../structxt_1_1check__policy_1_1none.html',1,'xt::check_policy']]], + ['norm_5ffun_6',['norm_fun',['../structxt_1_1math_1_1norm__fun.html',1,'xt::math']]], + ['norm_5fof_5farray_5felements_5fimpl_7',['norm_of_array_elements_impl',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20long_20double_2c_20false_2c_20true_20_3e_8',['norm_of_array_elements_impl< long double, false, true >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20t_2c_20false_2c_20false_20_3e_9',['norm_of_array_elements_impl< T, false, false >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20t_2c_20false_2c_20true_20_3e_10',['norm_of_array_elements_impl< T, false, true >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20t_2c_20true_2c_20false_20_3e_11',['norm_of_array_elements_impl< T, true, false >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5farray_5felements_5fimpl_3c_20void_20_2a_2c_20false_2c_20false_20_3e_12',['norm_of_array_elements_impl< void *, false, false >',['../structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5fscalar_5fimpl_13',['norm_of_scalar_impl',['../structxt_1_1traits__detail_1_1norm__of__scalar__impl.html',1,'xt::traits_detail']]], + ['norm_5fof_5fscalar_5fimpl_3c_20t_2c_20false_20_3e_14',['norm_of_scalar_impl< T, false >',['../structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5fscalar_5fimpl_3c_20t_2c_20true_20_3e_15',['norm_of_scalar_impl< T, true >',['../structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html',1,'xt::traits_detail']]], + ['norm_5fof_5fvector_5fimpl_16',['norm_of_vector_impl',['../structxt_1_1traits__detail_1_1norm__of__vector__impl.html',1,'xt::traits_detail']]], + ['norm_5fof_5fvector_5fimpl_3c_20t_20_3e_17',['norm_of_vector_impl< T >',['../structxt_1_1traits__detail_1_1norm__of__vector__impl.html',1,'xt::traits_detail']]], + ['norm_5ftype_18',['norm_type',['../structxt_1_1norm__type.html',1,'xt']]], + ['norm_5ftype_5fbase_19',['norm_type_base',['../structxt_1_1traits__detail_1_1norm__type__base.html',1,'xt::traits_detail']]], + ['norm_5ftype_5fbase_3c_20t_20_3e_20',['norm_type_base< T >',['../structxt_1_1traits__detail_1_1norm__type__base.html',1,'xt::traits_detail']]], + ['numeric_5fconstants_21',['numeric_constants',['../structxt_1_1numeric__constants.html',1,'xt']]] +]; diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 000000000..819a626e5 --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['overlapping_5fmemory_5fchecker_0',['overlapping_memory_checker',['../structxt_1_1overlapping__memory__checker.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_3c_20dst_2c_20std_3a_3aenable_5fif_5ft_3c_20has_5fmemory_5faddress_3c_20dst_20_3e_3a_3avalue_20_3e_20_3e_1',['overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >',['../structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5fbase_2',['overlapping_memory_checker_base',['../structxt_1_1overlapping__memory__checker__base.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3',['overlapping_memory_checker_traits',['../structxt_1_1overlapping__memory__checker__traits.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_20_3e_4',['overlapping_memory_checker_traits< E >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_2c_20std_3a_3aenable_5fif_5ft_3c_20has_5fmemory_5faddress_3c_20e_20_3e_3a_3avalue_20_3e_20_3e_5',['overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_2c_20std_3a_3aenable_5fif_5ft_3c_21has_5fmemory_5faddress_3c_20e_20_3e_3a_3avalue_20_26_26is_5fcrtp_5fbase_5fof_3c_20xview_5fsemantic_2c_20e_20_3e_3a_3avalue_20_3e_20_3e_6',['overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html',1,'xt']]], + ['overlapping_5fmemory_5fchecker_5ftraits_3c_20e_2c_20std_3a_3aenable_5fif_5ft_3c_21has_5fmemory_5faddress_3c_20e_20_3e_3a_3avalue_20_26_26is_5fspecialization_5fof_3c_20xfunction_2c_20e_20_3e_3a_3avalue_20_3e_20_3e_7',['overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >',['../structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html',1,'xt']]] +]; diff --git a/search/classes_e.js b/search/classes_e.js new file mode 100644 index 000000000..f1cb56a9e --- /dev/null +++ b/search/classes_e.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['pow_5ffun_0',['pow_fun',['../structxt_1_1math_1_1pow__fun.html',1,'xt::math']]], + ['precision_1',['precision',['../classxt_1_1print__options_1_1precision.html',1,'xt::print_options']]], + ['print_5foptions_5fimpl_2',['print_options_impl',['../structxt_1_1print__options_1_1print__options__impl.html',1,'xt::print_options']]], + ['promote_5fshape_3',['promote_shape',['../structxt_1_1promote__shape.html',1,'xt']]], + ['promote_5fstrides_4',['promote_strides',['../structxt_1_1promote__strides.html',1,'xt']]] +]; diff --git a/search/classes_f.js b/search/classes_f.js new file mode 100644 index 000000000..7eb8f862f --- /dev/null +++ b/search/classes_f.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['rad2deg_0',['rad2deg',['../structxt_1_1math_1_1rad2deg.html',1,'xt::math']]], + ['rangemaker_1',['rangemaker',['../structxt_1_1placeholders_1_1rangemaker.html',1,'xt::placeholders']]], + ['rangemaker_3c_20a_2c_20b_20_3e_2',['rangemaker< A, B >',['../structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html',1,'xt::placeholders']]], + ['rangemaker_3c_20a_2c_20b_2c_20c_20_3e_3',['rangemaker< A, B, C >',['../structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html',1,'xt::placeholders']]], + ['rebind_4',['rebind',['../structxt_1_1tracking__allocator_1_1rebind.html',1,'xt::tracking_allocator']]], + ['rebind_5fcontainer_5',['rebind_container',['../structxt_1_1rebind__container.html',1,'xt']]], + ['rebind_5fcontainer_3c_20x_2c_20c_3c_20t_2c_20a_20_3e_20_3e_6',['rebind_container< X, C< T, A > >',['../structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html',1,'xt']]], + ['rebind_5fcontainer_3c_20x_2c_20c_3c_20t_2c_20n_20_3e_20_3e_7',['rebind_container< X, C< T, N > >',['../structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html',1,'xt']]], + ['rebind_5fcontainer_3c_20x_2c_20svector_3c_20t_2c_20n_2c_20a_2c_20b_20_3e_20_3e_8',['rebind_container< X, svector< T, N, A, B > >',['../structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html',1,'xt']]], + ['reducer_5foptions_9',['reducer_options',['../structxt_1_1reducer__options.html',1,'xt']]], + ['reducer_5foptions_3c_20nr_2c_20t_20_3e_10',['reducer_options< NR, T >',['../structxt_1_1reducer__options.html',1,'xt']]], + ['remainder_5ffun_11',['remainder_fun',['../structxt_1_1math_1_1remainder__fun.html',1,'xt::math']]], + ['remove_5fclass_12',['remove_class',['../structxt_1_1remove__class.html',1,'xt']]], + ['remove_5fclass_3c_20r_28c_3a_3a_2a_29_28args_2e_2e_2e_29_20const_20_3e_13',['remove_class< R(C::*)(Args...) const >',['../structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html',1,'xt']]], + ['remove_5fclass_3c_20r_28c_3a_3a_2a_29_28args_2e_2e_2e_29_3e_14',['remove_class< R(C::*)(Args...)>',['../structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html',1,'xt']]], + ['revert_5fsimd_5ftraits_15',['revert_simd_traits',['../structxt__simd_1_1revert__simd__traits.html',1,'xt_simd']]], + ['rint_5ffun_16',['rint_fun',['../structxt_1_1math_1_1rint__fun.html',1,'xt::math']]], + ['round_5ffun_17',['round_fun',['../structxt_1_1math_1_1round__fun.html',1,'xt::math']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 000000000..337d6cc13 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/concepts_0.js b/search/concepts_0.js new file mode 100644 index 000000000..e530b8123 --- /dev/null +++ b/search/concepts_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['complex_5fconcept_0',['complex_concept',['../conceptxtl_1_1complex__concept.html',1,'xtl']]], + ['contiguous_5fview_5fconcept_1',['contiguous_view_concept',['../conceptxt_1_1contiguous__view__concept.html',1,'xt']]] +]; diff --git a/search/concepts_1.js b/search/concepts_1.js new file mode 100644 index 000000000..06fd931ba --- /dev/null +++ b/search/concepts_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fixed_5fshape_5fcontainer_5fconcept_0',['fixed_shape_container_concept',['../conceptxt_1_1fixed__shape__container__concept.html',1,'xt']]] +]; diff --git a/search/concepts_2.js b/search/concepts_2.js new file mode 100644 index 000000000..66f0b5f5f --- /dev/null +++ b/search/concepts_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['has_5fdata_5finterface_5fconcept_0',['has_data_interface_concept',['../conceptxt_1_1has__data__interface__concept.html',1,'xt']]], + ['has_5fiterator_5finterface_5fconcept_1',['has_iterator_interface_concept',['../conceptxt_1_1has__iterator__interface__concept.html',1,'xt']]], + ['has_5fsimd_5finterface_5fconcept_2',['has_simd_interface_concept',['../conceptxt_1_1has__simd__interface__concept.html',1,'xt']]] +]; diff --git a/search/concepts_3.js b/search/concepts_3.js new file mode 100644 index 000000000..e2dfd6cf0 --- /dev/null +++ b/search/concepts_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['integral_5fconcept_0',['integral_concept',['../conceptxtl_1_1integral__concept.html',1,'xtl']]], + ['iterator_5fconcept_1',['iterator_concept',['../conceptxt_1_1iterator__concept.html',1,'xt']]] +]; diff --git a/search/concepts_4.js b/search/concepts_4.js new file mode 100644 index 000000000..347316bda --- /dev/null +++ b/search/concepts_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['non_5fintegral_5fconcept_0',['non_integral_concept',['../conceptxtl_1_1non__integral__concept.html',1,'xtl']]] +]; diff --git a/search/concepts_5.js b/search/concepts_5.js new file mode 100644 index 000000000..ec5fe1745 --- /dev/null +++ b/search/concepts_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pointer_5fconcept_0',['pointer_concept',['../conceptxtl_1_1pointer__concept.html',1,'xtl']]] +]; diff --git a/search/concepts_6.js b/search/concepts_6.js new file mode 100644 index 000000000..7f4c4464a --- /dev/null +++ b/search/concepts_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['strided_5fview_5fconcept_0',['strided_view_concept',['../conceptxt_1_1strided__view__concept.html',1,'xt']]] +]; diff --git a/search/concepts_7.js b/search/concepts_7.js new file mode 100644 index 000000000..f3e0f7ebe --- /dev/null +++ b/search/concepts_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['with_5fmemory_5faddress_5fconcept_0',['with_memory_address_concept',['../conceptxt_1_1with__memory__address__concept.html',1,'xt']]], + ['without_5fmemory_5faddress_5fconcept_1',['without_memory_address_concept',['../conceptxt_1_1without__memory__address__concept.html',1,'xt']]] +]; diff --git a/search/concepts_8.js b/search/concepts_8.js new file mode 100644 index 000000000..49868349b --- /dev/null +++ b/search/concepts_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['xbroadcast_5fconcept_0',['xbroadcast_concept',['../conceptxt_1_1xbroadcast__concept.html',1,'xt']]], + ['xexpression_5fconcept_1',['xexpression_concept',['../conceptxt_1_1xexpression__concept.html',1,'xt']]], + ['xgenerator_5fconcept_2',['xgenerator_concept',['../conceptxt_1_1xgenerator__concept.html',1,'xt']]], + ['xscalar_5fconcept_3',['xscalar_concept',['../conceptxt_1_1xscalar__concept.html',1,'xt']]] +]; diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 000000000..611ac1e5a --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['access_5ft_0',['access_t',['../namespacext.html#a1390f61ac19aea31030f7065ec3a738f',1,'xt']]] +]; diff --git a/search/enums_1.js b/search/enums_1.js new file mode 100644 index 000000000..1cdc7e810 --- /dev/null +++ b/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['histogram_5falgorithm_0',['histogram_algorithm',['../group__histogram.html#gaaa63c71a8935d44bbec1aa9af4cb61b8',1,'xt']]] +]; diff --git a/search/enums_2.js b/search/enums_2.js new file mode 100644 index 000000000..5041e93e3 --- /dev/null +++ b/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['layout_5ftype_0',['layout_type',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6',1,'xt']]] +]; diff --git a/search/enums_3.js b/search/enums_3.js new file mode 100644 index 000000000..166d09d05 --- /dev/null +++ b/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pad_5fmode_0',['pad_mode',['../namespacext.html#aa9d095239ac8c959a5d0a5b7086b5ae7',1,'xt']]] +]; diff --git a/search/enums_4.js b/search/enums_4.js new file mode 100644 index 000000000..0b4fe457a --- /dev/null +++ b/search/enums_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quantile_5fmethod_0',['quantile_method',['../group__xt__xsort.html#ga2afe52f60aa76f33b0b883a78cabc1ed',1,'xt']]] +]; diff --git a/search/enums_5.js b/search/enums_5.js new file mode 100644 index 000000000..d2f1a0c91 --- /dev/null +++ b/search/enums_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sorting_5fmethod_0',['sorting_method',['../namespacext.html#ac4aea058f50a232746da4591e8956623',1,'xt']]], + ['stride_5ftype_1',['stride_type',['../group__xt__xstrides.html#ga743568032eda84a9d0df401f20317b7d',1,'xt']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 000000000..ecb4f8296 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['any_0',['any',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a100b8cad7cf2a56f6df78f171f97a1ec',1,'xt']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 000000000..ec5c55f3c --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bytes_0',['bytes',['../group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7da4b3a6218bb3e3a7303e8a171a60fcf92',1,'xt']]] +]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 000000000..5f07dcc27 --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['column_5fmajor_0',['column_major',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a8c23f260f0ec1479d3bfaf3a1305a347',1,'xt']]] +]; diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 000000000..8fa23c526 --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dynamic_0',['dynamic',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6ab72f3bd391ba731a35708bfd8cd8a68f',1,'xt']]] +]; diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js new file mode 100644 index 000000000..677342d66 --- /dev/null +++ b/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hazen_0',['hazen',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaf4b08e7cc0a94bb8f4e9969eeb532039',1,'xt']]] +]; diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 000000000..7c48a96b7 --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['internal_0',['internal',['../group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dad1efad72dc5b17dc66a46767c32fff40',1,'xt']]], + ['interpolated_5finverted_5fcdf_1',['interpolated_inverted_cdf',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda7f20bc9a8cd4acd58c1d9b46821e9242',1,'xt']]] +]; diff --git a/search/enumvalues_6.js b/search/enumvalues_6.js new file mode 100644 index 000000000..262e8fd28 --- /dev/null +++ b/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['linear_0',['linear',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda9a932b3cb396238423eb2f33ec17d6aa',1,'xt']]] +]; diff --git a/search/enumvalues_7.js b/search/enumvalues_7.js new file mode 100644 index 000000000..f3e8559ef --- /dev/null +++ b/search/enumvalues_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['median_5funbiased_0',['median_unbiased',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edaeddf62d602ae684d91d6f586f5e5cbaf',1,'xt']]] +]; diff --git a/search/enumvalues_8.js b/search/enumvalues_8.js new file mode 100644 index 000000000..f53630b0c --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['normal_0',['normal',['../group__xt__xstrides.html#gga743568032eda84a9d0df401f20317b7dafea087517c26fadd409bd4b9dc642555',1,'xt']]], + ['normal_5funbiased_1',['normal_unbiased',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1edad1056b777fd87429ccb7a8a55db32545',1,'xt']]] +]; diff --git a/search/enumvalues_9.js b/search/enumvalues_9.js new file mode 100644 index 000000000..a5fb6a0a4 --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quick_0',['quick',['../namespacext.html#ac4aea058f50a232746da4591e8956623a1df3746a4728276afdc24f828186f73a',1,'xt']]] +]; diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js new file mode 100644 index 000000000..9f3f6536a --- /dev/null +++ b/search/enumvalues_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['row_5fmajor_0',['row_major',['../namespacext.html#a54ee24a1069c6e670d687af9e6aa4ba6a641fabb8e5e7d1d0333e2c9c384f959c',1,'xt']]] +]; diff --git a/search/enumvalues_b.js b/search/enumvalues_b.js new file mode 100644 index 000000000..cfa3ba746 --- /dev/null +++ b/search/enumvalues_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['safe_0',['SAFE',['../namespacext.html#a1390f61ac19aea31030f7065ec3a738fab18288babd4636cff34b15e0d1340fc2',1,'xt']]], + ['stable_1',['stable',['../namespacext.html#ac4aea058f50a232746da4591e8956623af40faf6384fc85a33d3b05a9d41c012b',1,'xt']]] +]; diff --git a/search/enumvalues_c.js b/search/enumvalues_c.js new file mode 100644 index 000000000..04ddfc6b6 --- /dev/null +++ b/search/enumvalues_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unsafe_0',['UNSAFE',['../namespacext.html#a1390f61ac19aea31030f7065ec3a738fa2c7b3a8b9acd296488c69fb8f57587cf',1,'xt']]] +]; diff --git a/search/enumvalues_d.js b/search/enumvalues_d.js new file mode 100644 index 000000000..a437b3d5d --- /dev/null +++ b/search/enumvalues_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['weibull_0',['weibull',['../group__xt__xsort.html#gga2afe52f60aa76f33b0b883a78cabc1eda17198fea0bd47a1170b57db7db9e6060',1,'xt']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 000000000..0f9dd370d --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['abs_0',['abs',['../group__basic__functions.html#ga5a8df8c0823f064b710b90fdc73384f7',1,'xt']]], + ['accumulate_1',['accumulate',['../namespacext.html#a75bd621231562feb074486e7213ee86f',1,'xt::accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())'],['../namespacext.html#a89df2e50fff4b65f615aacfcdbb9ff74',1,'xt::accumulate(F &&f, E &&e, std::ptrdiff_t axis, EVS evaluation_strategy=EVS())']]], + ['acos_2',['acos',['../group__trigo__functions.html#gaef1a134c51ccdb072964383887b838c7',1,'xt']]], + ['acosh_3',['acosh',['../group__hyper__functions.html#ga982a251110da20b8dae705367b3ddd7e',1,'xt']]], + ['adapt_4',['adapt',['../group__xt__xadapt.html#ga80782b35941520fa1d729ed6224cba72',1,'xt::adapt(C &&container, const SC &shape, layout_type l=L)'],['../group__xt__xadapt.html#ga6d665539130b96871327cb7a4aa8b2e0',1,'xt::adapt(C &&container, SC &&shape, SS &&strides)'],['../group__xt__xadapt.html#ga5d6037b3273754077e434c1dd12d897c',1,'xt::adapt(P &&pointer, typename A::size_type size, O ownership, const SC &shape, layout_type l=L, const A &alloc=A())'],['../group__xt__xadapt.html#ga4170776d38583fd9bedf66df77f3d328',1,'xt::adapt(P &&pointer, typename A::size_type size, O ownership, SC &&shape, SS &&strides, const A &alloc=A())'],['../group__xt__xadapt.html#ga7ce00acd98d8aa752d44779e68b0c97c',1,'xt::adapt(T(&c_array)[N], const SC &shape, layout_type l=L)'],['../group__xt__xadapt.html#ga4a46bac84f94e0d22a5000df7008e7da',1,'xt::adapt(T(&c_array)[N], SC &&shape, SS &&strides)'],['../group__xt__xadapt.html#ga9481e907df524526bc4fd7b77a7c6dcc',1,'xt::adapt(C &&pointer, const fixed_shape< X... > &)'],['../group__xt__xadapt.html#ga2eeb31313c7f9661f62d8ae6a6005013',1,'xt::adapt(C &&container, layout_type l=L)'],['../group__xt__xadapt.html#gad7037a00f2c9e7679805e3b0b3515299',1,'xt::adapt(P &&pointer, typename A::size_type size, O ownership, layout_type l=L, const A &alloc=A())']]], + ['adapt_5fsmart_5fptr_5',['adapt_smart_ptr',['../group__xt__xadapt.html#ga399f6121a1ebe2bf8b338e731bdc2c4e',1,'xt::adapt_smart_ptr(P &&smart_ptr, const SC &shape, layout_type l=L)'],['../group__xt__xadapt.html#ga9b942dfcc4b69cd9883c99b803b003aa',1,'xt::adapt_smart_ptr(P &&data_ptr, const SC &shape, D &&smart_ptr, layout_type l=L)'],['../group__xt__xadapt.html#gabe827f240de5a66f559ae57fadd19aad',1,'xt::adapt_smart_ptr(P &&smart_ptr, const I(&shape)[N], layout_type l=L)'],['../group__xt__xadapt.html#ga4addfb25502247a072b944240b67fd3f',1,'xt::adapt_smart_ptr(P &&data_ptr, const I(&shape)[N], D &&smart_ptr, layout_type l=L)']]], + ['all_6',['all',['../group__logical__operators.html#ga8da84f179efb13f3d860c5950b5c626e',1,'xt::all(E &&e)'],['../namespacext.html#a1607ba0be938e3d0a9acecee22eb2efe',1,'xt::all() noexcept']]], + ['allclose_7',['allclose',['../group__classif__functions.html#ga07beaa8c1b5c159ac3f6c0c09ab1e05c',1,'xt']]], + ['amax_8',['amax',['../group__basic__functions.html#ga2087e1dd9e331edc470b4b78343f33af',1,'xt']]], + ['amin_9',['amin',['../group__basic__functions.html#gaab0c337a9aefb746fb8a8b6cfcb511ed',1,'xt']]], + ['angle_10',['angle',['../group__xt__xcomplex.html#gad2d3e146e64f9cb63d1b66e7d0d43867',1,'xt']]], + ['any_11',['any',['../group__logical__operators.html#gadf5680cca336e22d483b0bfa188db592',1,'xt']]], + ['arange_12',['arange',['../namespacext.html#a156656dea2a291a2b0978a2b02d7f0f7',1,'xt::arange(T start, T stop, S step=1) noexcept'],['../namespacext.html#ab7170425dd9da8585aefbd0eb79af4ec',1,'xt::arange(T stop) noexcept']]], + ['arg_13',['arg',['../group__xt__xcomplex.html#ga79e6cc463f0aeee688d90dcd320cd672',1,'xt']]], + ['argmax_14',['argmax',['../group__xt__xsort.html#ga258b6c4df6acf24de4bec48be87f0218',1,'xt']]], + ['argmin_15',['argmin',['../namespacext.html#af262fae4388b98687913a18fe321f88d',1,'xt']]], + ['argpartition_16',['argpartition',['../group__xt__xsort.html#gade27aa15bac807b65cd19bb13a23235e',1,'xt']]], + ['argsort_17',['argsort',['../group__xt__xsort.html#gaa3ce074f31b6284b63b0d5240820e50a',1,'xt']]], + ['argwhere_18',['argwhere',['../group__logical__operators.html#ga8e8213a0ec55abe31dc046b6a03379d7',1,'xt']]], + ['as_5fstrided_19',['as_strided',['../group__xt__xeval.html#ga67df3a5e9f6d3f55dceea48706539b46',1,'xt']]], + ['asin_20',['asin',['../group__trigo__functions.html#gabdab214ece01511604c914f91b81fdb1',1,'xt']]], + ['asinh_21',['asinh',['../group__hyper__functions.html#ga0893b951ad8fb1b23b97f0dae14651de',1,'xt']]], + ['assign_22',['assign',['../classxt_1_1xsemantic__base.html#aa4abcce752e16fea81c590cfdb48d099',1,'xt::xsemantic_base']]], + ['assign_5ftemporary_23',['assign_temporary',['../classxt_1_1xcontainer__semantic.html#aa6fec519f074fe655cd20aa1fd028dd3',1,'xt::xcontainer_semantic::assign_temporary()'],['../classxt_1_1xview__semantic.html#abaa88fce8540e36bf148047aa3110af9',1,'xt::xview_semantic::assign_temporary()']]], + ['at_24',['at',['../classxt_1_1xconst__accessible.html#a340069d14699c36602889101dd1f932a',1,'xt::xconst_accessible::at()'],['../classxt_1_1xaccessible.html#abd1a88f04c122d8d066a5b2abc7f2c8f',1,'xt::xaccessible::at()'],['../classxt_1_1xoptional__assembly__base.html#a73dd5d1abc3eeb977466ea06cbd010a6',1,'xt::xoptional_assembly_base::at(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#ab6aeecb3fd2184aa49cf51142487ae31',1,'xt::xoptional_assembly_base::at(Args... args) const -> const_reference']]], + ['atan_25',['atan',['../group__trigo__functions.html#gab62818bfe16f2dd284b39bea1a345383',1,'xt']]], + ['atan2_26',['atan2',['../group__trigo__functions.html#gaba0008974d39d88ec21dff058a642ca0',1,'xt']]], + ['atanh_27',['atanh',['../group__hyper__functions.html#gaf99552b5a0d06bfd92f42f272e7af623',1,'xt']]], + ['atleast_5f1d_28',['atleast_1d',['../group__xt__xmanipulation.html#ga220444924c684f9f2afbc3384a8ff09e',1,'xt']]], + ['atleast_5f2d_29',['atleast_2d',['../group__xt__xmanipulation.html#gae2392e470cec79a918e975987d431c54',1,'xt']]], + ['atleast_5f3d_30',['atleast_3d',['../group__xt__xmanipulation.html#gaf9edf6c754946e30b77d9617852ed15c',1,'xt']]], + ['atleast_5fnd_31',['atleast_Nd',['../group__xt__xmanipulation.html#ga66c613dc60a31ca07c28b45337ee59b7',1,'xt']]], + ['average_32',['average',['../group__red__functions.html#gac71fc60e960526979d68aece67232f82',1,'xt']]], + ['axis_5fbegin_33',['axis_begin',['../namespacext.html#a10d6b6dddf20a721f48bec57deee85c1',1,'xt::axis_begin(E &&e)'],['../namespacext.html#aeff80d8045ec5b2276cb70d3171890ef',1,'xt::axis_begin(E &&e, typename std::decay_t< E >::size_type axis)']]], + ['axis_5fend_34',['axis_end',['../namespacext.html#a8febb08b64e215650861f319845e0ba8',1,'xt::axis_end(E &&e)'],['../namespacext.html#a6a9d61065999823b0947aac4741a5255',1,'xt::axis_end(E &&e, typename std::decay_t< E >::size_type axis)']]], + ['axis_5fslice_5fbegin_35',['axis_slice_begin',['../namespacext.html#ac347d148c68881cdf4f5dbc488dc02bf',1,'xt::axis_slice_begin(E &&e)'],['../namespacext.html#a2a64b30629191a33452d47762e67386b',1,'xt::axis_slice_begin(E &&e, typename std::decay_t< E >::size_type axis)']]], + ['axis_5fslice_5fend_36',['axis_slice_end',['../namespacext.html#af214429c748c24ec2f26271be60ff9ea',1,'xt::axis_slice_end(E &&e)'],['../namespacext.html#a79a091d187f0ba564daabc12be1725ca',1,'xt::axis_slice_end(E &&e, typename std::decay_t< E >::size_type axis)']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 000000000..545d475e0 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['back_0',['back',['../classxt_1_1xconst__accessible.html#ae8c11bf107fb871f054e2194163778fd',1,'xt::xconst_accessible::back()'],['../classxt_1_1xaccessible.html#a905660a4d87f4d3e7b651bcf6bb690d0',1,'xt::xaccessible::back()'],['../classxt_1_1xoptional__assembly__base.html#a30a6a24dfa921de015892bddeef5e731',1,'xt::xoptional_assembly_base::back()'],['../classxt_1_1xoptional__assembly__base.html#a8d17eac6565a38c69ce3597b087daa24',1,'xt::xoptional_assembly_base::back() const'],['../classxt_1_1xcontainer.html#a905660a4d87f4d3e7b651bcf6bb690d0',1,'xt::xcontainer::back()'],['../classxt_1_1xscalar.html#a13a096e0045b2375006fec3bcd1c8d1c',1,'xt::xscalar::back()'],['../classxt_1_1xaccessible.html#ae8c11bf107fb871f054e2194163778fd',1,'xt::xaccessible::back()'],['../classxt_1_1xfunction.html#a02e02645e16da67cf9805d8bb06ec07e',1,'xt::xfunction::back()'],['../classxt_1_1xfunctor__applier__base.html#a905660a4d87f4d3e7b651bcf6bb690d0',1,'xt::xfunctor_applier_base::back()'],['../classxt_1_1xfunctor__applier__base.html#ae8c11bf107fb871f054e2194163778fd',1,'xt::xfunctor_applier_base::back() const'],['../classxt_1_1xmasked__view.html#a13a096e0045b2375006fec3bcd1c8d1c',1,'xt::xmasked_view::back()'],['../classxt_1_1xmasked__view.html#a37c6719faba4d4aa425d0e5302482e99',1,'xt::xmasked_view::back() const']]], + ['backstrides_1',['backstrides',['../classxt_1_1xcontainer.html#a238a7ac8797b8afa4906e6445483aa1d',1,'xt::xcontainer::backstrides()'],['../classxt_1_1xoptional__assembly__base.html#a0af0bee6bcff1b475520937f31b84bd5',1,'xt::xoptional_assembly_base::backstrides()'],['../classxt_1_1xfunctor__applier__base.html#a31682644280a7cb1f47f306e2fa832fe',1,'xt::xfunctor_applier_base::backstrides()'],['../classxt_1_1xmasked__view.html#a11f6663bf33dc7e1afbce7f6132e58fe',1,'xt::xmasked_view::backstrides()'],['../classxt_1_1xstrided__view__base.html#a736dcfe2b1e0a157f89a7a4c6445edd9',1,'xt::xstrided_view_base::backstrides()'],['../classxt_1_1xstrided__view.html#a418d8680d4b654413456e4380c2151eb',1,'xt::xstrided_view::backstrides()']]], + ['begin_2',['begin',['../classxt_1_1xfunctor__applier__base.html#acbbbfb5117f8a5cbbf6d884c99209aed',1,'xt::xfunctor_applier_base::begin() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a20bbfc1e10a26d6754e31ecaca3791db',1,'xt::xfunctor_applier_base::begin() const noexcept'],['../classxt_1_1xconst__iterable.html#a6ab0e76125fa876b97b53a813a3d4713',1,'xt::xconst_iterable::begin() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a095cfd6ccf0bb5696073af2c8536f8e9',1,'xt::xconst_iterable::begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#aa92f6e2edb798a381d131475e463bf31',1,'xt::xiterable::begin() noexcept -> layout_iterator< L >'],['../classxt_1_1xiterable.html#a4123b26a873b7ed680b13ef557cd3c3c',1,'xt::xiterable::begin(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#ac598e11fd3eb83a2dcb5c74582ffd95a',1,'xt::xcontiguous_iterable::begin() noexcept -> select_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#aa37724c4f2fe4ed455f37a2a485dcebc',1,'xt::xcontiguous_iterable::begin() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#aa93641d4488c4ddb95274b41df89401f',1,'xt::xcontiguous_iterable::begin(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a3b0ee4efcc6ed36094e02631279cb3ce',1,'xt::xcontiguous_iterable::begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a3ab9bf54021db8cea2150113376a271c',1,'xt::xfunctor_applier_base::begin(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a20fda1464f7c57d2bedac80130bc1b8a',1,'xt::xfunctor_applier_base::begin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >']]], + ['bin_5fitems_3',['bin_items',['../namespacext.html#a79e3638cd1a9a294abe0d95b9425049d',1,'xt::bin_items(size_t N, E &&weights)'],['../namespacext.html#a17da83b8f903ed63f70997ff399b70a3',1,'xt::bin_items(size_t N, size_t bins)']]], + ['bincount_4',['bincount',['../namespacext.html#aed5ac7b9e3af63f34daf465b902d0108',1,'xt']]], + ['bit_5fand_5fassign_5',['bit_and_assign',['../classxt_1_1xsemantic__base.html#a491f436cebf5ae09254782e8e39e07e4',1,'xt::xsemantic_base']]], + ['bit_5for_5fassign_6',['bit_or_assign',['../classxt_1_1xsemantic__base.html#a8f36e2f2e9869cb21ccb197f234838ec',1,'xt::xsemantic_base']]], + ['bit_5fxor_5fassign_7',['bit_xor_assign',['../classxt_1_1xsemantic__base.html#a2ecc711c54c031f9fae4f959ba54c756',1,'xt::xsemantic_base']]], + ['broadcast_8',['broadcast',['../namespacext.html#a0879929fad639a3a4256a702b9beba62',1,'xt']]], + ['broadcast_5fshape_9',['broadcast_shape',['../classxt_1_1xcontainer.html#a689eeba5b9b1b4e8943c335d39ecc240',1,'xt::xcontainer::broadcast_shape()'],['../classxt_1_1xfunction.html#a2ef3340ac01fdce40b012db3ca48d2ef',1,'xt::xfunction::broadcast_shape()'],['../classxt_1_1xgenerator.html#ae6b7796ce3f5e9aa5333e6c066013b24',1,'xt::xgenerator::broadcast_shape()'],['../classxt_1_1xoptional__assembly__base.html#a98fdda9ecaf31ce8310614ad46aee9cd',1,'xt::xoptional_assembly_base::broadcast_shape()'],['../classxt_1_1xreducer.html#a20c55f56bcedfe9f3e3662253a922073',1,'xt::xreducer::broadcast_shape()'],['../classxt_1_1xbroadcast.html#ad91b61dbfe7d500131c6f001aa0461e6',1,'xt::xbroadcast::broadcast_shape()'],['../classxt_1_1xfunctor__applier__base.html#ada44e2d571b044340c22c3c16137aa73',1,'xt::xfunctor_applier_base::broadcast_shape()'],['../classxt_1_1xindex__view.html#ac341559ffeb015df5070beec5596d2a9',1,'xt::xindex_view::broadcast_shape()'],['../classxt_1_1xrepeat.html#a2610f596c5e9b7475d30aa36132a93be',1,'xt::xrepeat::broadcast_shape()'],['../classxt_1_1xstrided__view__base.html#a6a79ebace6f36cfb560248f093b7dfa2',1,'xt::xstrided_view_base::broadcast_shape()'],['../classxt_1_1xview.html#a4fb1f607e8b93152ef8426c5ef524c3e',1,'xt::xview::broadcast_shape()'],['../classxt_1_1xdynamic__view.html#a0f7c1e14391c357570e1d054b19b6165',1,'xt::xdynamic_view::broadcast_shape()'],['../classxt_1_1xstrided__view.html#a0f7c1e14391c357570e1d054b19b6165',1,'xt::xstrided_view::broadcast_shape()']]] +]; diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 000000000..b60d6fd26 --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['rad2deg_0',['rad2deg',['../group__basic__functions.html#gab8884e81107ab3012f7604fa1826bca3',1,'xt']]], + ['radians_1',['radians',['../group__basic__functions.html#ga9bdbff83a3137d687d749c710fa466fb',1,'xt']]], + ['range_2',['range',['../namespacext.html#a12df38a6d4e688b6df1a4641930c6181',1,'xt::range(A start_val, B stop_val)'],['../namespacext.html#ad1605028ad21316d7118d9c2c56b93a4',1,'xt::range(A start_val, B stop_val, C step)']]], + ['ravel_3',['ravel',['../group__xt__xmanipulation.html#ga52d3b08fa67fe8c498e4271fca338e28',1,'xt']]], + ['ravel_5findices_4',['ravel_indices',['../namespacext.html#ab42ce054ae7c59ee974c25680a09218d',1,'xt']]], + ['rbegin_5',['rbegin',['../classxt_1_1xfunctor__applier__base.html#abacad02a84f1b459e87948192e2c5d05',1,'xt::xfunctor_applier_base::rbegin() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a683da35bece5497aead059605a406235',1,'xt::xfunctor_applier_base::rbegin() const noexcept'],['../classxt_1_1xconst__iterable.html#a52be134ecb3d529fddf7e8ba888a59a0',1,'xt::xconst_iterable::rbegin() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a3671f77843974f6962cd425318c0ef00',1,'xt::xconst_iterable::rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#a7bc86e4fb6f2f55c74e33836a32739eb',1,'xt::xiterable::rbegin() noexcept -> reverse_layout_iterator< L >'],['../classxt_1_1xiterable.html#a66bef4e8cff9bf584e71f0ac7ba828ad',1,'xt::xiterable::rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a9baaf955c445124c0ce0b15e46e9ea67',1,'xt::xcontiguous_iterable::rbegin() noexcept -> select_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a34ab77bf7e6f44cf32100dfa19016985',1,'xt::xcontiguous_iterable::rbegin() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a2464771d6d90297666b1e7e40ff21f70',1,'xt::xcontiguous_iterable::rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#af72e9e4372c87685b932899a7a411b2f',1,'xt::xcontiguous_iterable::rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#aff09d88c2dfc4cb00850f42c8f695337',1,'xt::xfunctor_applier_base::rbegin(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a81666e7d863a7679298d37a373cd1395',1,'xt::xfunctor_applier_base::rbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >']]], + ['real_6',['real',['../group__xt__xcomplex.html#ga40dd460909cc5b81f23947646eebd543',1,'xt']]], + ['reduce_7',['reduce',['../namespacext.html#a2bf61f96fdc4316d3eefa8dff6174ece',1,'xt']]], + ['remainder_8',['remainder',['../group__basic__functions.html#ga2322bc87a5871e26173db4b2383e1db8',1,'xt']]], + ['rend_9',['rend',['../classxt_1_1xfunctor__applier__base.html#a8201e2518627bdc8e1fb6f33653aacbb',1,'xt::xfunctor_applier_base::rend() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a20631d9fd8aaa1e5a95393c31537ef81',1,'xt::xfunctor_applier_base::rend() const noexcept'],['../classxt_1_1xconst__iterable.html#ade7cb42ea93353d00bbb739743be090d',1,'xt::xconst_iterable::rend() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a634cb122a80a40c5c38ff2b4527e3f26',1,'xt::xconst_iterable::rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#af04d43d598e8933225287e044c12d4c6',1,'xt::xiterable::rend() noexcept -> reverse_layout_iterator< L >'],['../classxt_1_1xiterable.html#a92e4a1b212968fcc8a8240be122fe8e4',1,'xt::xiterable::rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#ad8f400de36b11a40a49517ebe2f2f1fa',1,'xt::xcontiguous_iterable::rend() noexcept -> select_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a0fca0441c61348b6eb092456e123b869',1,'xt::xcontiguous_iterable::rend() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#ab805bb1e5bd7b9a0d22fe8fcda0ffeb8',1,'xt::xcontiguous_iterable::rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a3b9ef9be65f2c10776ee7055f4067bed',1,'xt::xcontiguous_iterable::rend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a23da38db60689cea813d3995b7b93de2',1,'xt::xfunctor_applier_base::rend(const S &shape) noexcept -> reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a367facbe0356cf7de42ed9cd1e60a163',1,'xt::xfunctor_applier_base::rend(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >']]], + ['repeat_10',['repeat',['../group__xt__xmanipulation.html#ga86b343ba5d1f6150c418475a00e3d3c3',1,'xt::repeat(E &&e, std::size_t repeats, std::size_t axis)'],['../group__xt__xmanipulation.html#ga0061839371ca8e1f29c37e812dee9ad1',1,'xt::repeat(E &&e, const std::vector< std::size_t > &repeats, std::size_t axis)'],['../group__xt__xmanipulation.html#ga7aba37875778e4c7a786cbe6ec909ef2',1,'xt::repeat(E &&e, std::vector< std::size_t > &&repeats, std::size_t axis)']]], + ['reshape_11',['reshape',['../classxt_1_1xstrided__container.html#ade4f89e605eb5ade6b47507eb411702b',1,'xt::xstrided_container::reshape()'],['../classxt_1_1xfixed__container.html#ab5b58143fbfe4d0b7c0ea353526b286f',1,'xt::xfixed_container::reshape()'],['../classxt_1_1xfixed__adaptor.html#a5fe78e6500ce0bddc63c8b7de09b8031',1,'xt::xfixed_adaptor::reshape()'],['../classxt_1_1xgenerator.html#a8d78d70b368a9010ded32ee263299b8b',1,'xt::xgenerator::reshape()'],['../classxt_1_1xoptional__assembly__base.html#adcf1eb03fa74eac4bfd3c1c53647e841',1,'xt::xoptional_assembly_base::reshape()']]], + ['reshape_5fview_12',['reshape_view',['../namespacext.html#a7bda1677287d8bee76befd8c427e3898',1,'xt']]], + ['resize_13',['resize',['../classxt_1_1xstrided__container.html#af38c6e8082f27cfbaa445767c14c0110',1,'xt::xstrided_container::resize(S &&shape, bool force=false)'],['../classxt_1_1xstrided__container.html#ac157fa05a058950206b21ed403d969fe',1,'xt::xstrided_container::resize(S &&shape, layout_type l)'],['../classxt_1_1xstrided__container.html#a9853404ceb5a3d42430c43508abb671b',1,'xt::xstrided_container::resize(S &&shape, const strides_type &strides)'],['../classxt_1_1xfixed__container.html#a1c6d4565311f46f74edd7bfbbf6a2616',1,'xt::xfixed_container::resize(ST &&shape, bool force=false) const'],['../classxt_1_1xfixed__container.html#a591c135ebc74e8067d19a7503c635280',1,'xt::xfixed_container::resize(ST &&shape, layout_type l) const'],['../classxt_1_1xfixed__container.html#a311dfc919ead913eb8c6f27b241619fb',1,'xt::xfixed_container::resize(ST &&shape, const strides_type &strides) const'],['../classxt_1_1xfixed__adaptor.html#a75fb0edc455232657d609bd9d79d6544',1,'xt::xfixed_adaptor::resize(ST &&shape, bool force=false) const'],['../classxt_1_1xfixed__adaptor.html#a10c880b192785a2108d5ab7047c1bed6',1,'xt::xfixed_adaptor::resize(ST &&shape, layout_type l) const'],['../classxt_1_1xfixed__adaptor.html#a656b75b805c1645d3c562a5797d7adb9',1,'xt::xfixed_adaptor::resize(ST &&shape, const strides_type &strides) const'],['../classxt_1_1xoptional__assembly__base.html#ad75f3602dcf419d0d35af7121da5e802',1,'xt::xoptional_assembly_base::resize(const S &shape, bool force=false)'],['../classxt_1_1xoptional__assembly__base.html#a346e0ff791f6279005d0229311e62b75',1,'xt::xoptional_assembly_base::resize(const S &shape, layout_type l)'],['../classxt_1_1xoptional__assembly__base.html#a6679efb40275d9066e15627f79430759',1,'xt::xoptional_assembly_base::resize(const S &shape, const strides_type &strides)']]], + ['right_5fshift_14',['right_shift',['../group__bitwise__operators.html#ga2eab76876895cd0cae2a667e513c9f92',1,'xt']]], + ['rint_15',['rint',['../group__nearint__functions.html#gaad503e7c9ee485a6b623770c8f43bde0',1,'xt']]], + ['roll_16',['roll',['../group__xt__xmanipulation.html#ga2211d25aea0f9a27855fb602419a365b',1,'xt::roll(E &&e, std::ptrdiff_t shift)'],['../group__xt__xmanipulation.html#ga957635620a4f4c19c4ee0546c69fcb1d',1,'xt::roll(E &&e, std::ptrdiff_t shift, std::ptrdiff_t axis)']]], + ['rot90_17',['rot90',['../group__xt__xmanipulation.html#gab5a947902290cc80a26e8d091428497e',1,'xt']]], + ['round_18',['round',['../group__nearint__functions.html#gaa8b6a7ec9f215261ace43466d4ae6f0b',1,'xt']]], + ['row_19',['row',['../namespacext.html#a445fa98828eab51048b87fc29d8e88ad',1,'xt']]] +]; diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 000000000..60de413ce --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['same_5fshape_0',['same_shape',['../group__xt__xshape.html#ga3c10cfb8271fbf79932a98edc5491ac7',1,'xt']]], + ['searchsorted_1',['searchsorted',['../group__searchsorted.html#ga7f2dbcb81b8a765fe3972a7490d62618',1,'xt']]], + ['setdiff1d_2',['setdiff1d',['../group__xt__xsort.html#gab6eedcadc051be2d6e3ad7890a5c2d90',1,'xt']]], + ['shape_3',['shape',['../classxt_1_1xcontainer.html#a69d345a40906cb982d205357520792fc',1,'xt::xcontainer::shape()'],['../classxt_1_1xconst__accessible.html#aec0ae6f83f7e86f32e083cb6714af552',1,'xt::xconst_accessible::shape()'],['../classxt_1_1xfunction.html#a41f3d01620f13c854d163235d03e534d',1,'xt::xfunction::shape()'],['../classxt_1_1xgenerator.html#a72035cb01c8e3ead3dedcd013fe59737',1,'xt::xgenerator::shape()'],['../classxt_1_1xoptional__assembly__base.html#a574aec951fe205155709a7871055ec75',1,'xt::xoptional_assembly_base::shape() const noexcept'],['../classxt_1_1xoptional__assembly__base.html#a58bcff261d17d4b7e5b89a9d4ac6a362',1,'xt::xoptional_assembly_base::shape(size_type index) const'],['../classxt_1_1xreducer.html#aaf23386e8c796f997a2e80c71e57e74c',1,'xt::xreducer::shape()'],['../classxt_1_1xbroadcast.html#ab55ff6c03aac9708dd319a0936a3fd18',1,'xt::xbroadcast::shape()'],['../classxt_1_1xfunctor__applier__base.html#a982e33a6deafe2b8f8048ce8c91956b3',1,'xt::xfunctor_applier_base::shape()'],['../classxt_1_1xindex__view.html#ad124eaa3959093d86deab646c4a2fb18',1,'xt::xindex_view::shape() const noexcept'],['../classxt_1_1xindex__view.html#a47f560d67ba251afd96c617e6c6e2a0e',1,'xt::xindex_view::shape(size_type index) const'],['../classxt_1_1xmasked__view.html#a3e501b72ae46be33e45dd249ac6e369c',1,'xt::xmasked_view::shape()'],['../classxt_1_1xrepeat.html#abbeb6ae19bc34035323c7577c65f0d84',1,'xt::xrepeat::shape()'],['../classxt_1_1xstrided__view__base.html#a7f03137aa8b79f042dd1eb5b769f5256',1,'xt::xstrided_view_base::shape()'],['../classxt_1_1xview.html#a4f26067384dd1d379fcd476127386966',1,'xt::xview::shape()'],['../classxt_1_1xfunction.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xfunction::shape()'],['../classxt_1_1xgenerator.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xgenerator::shape()'],['../classxt_1_1xbroadcast.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xbroadcast::shape()'],['../classxt_1_1xdynamic__view.html#a63efb4c728be80dc8154df1b578c33cd',1,'xt::xdynamic_view::shape()'],['../classxt_1_1xrepeat.html#ae7b5c2b34c43d49a8f2f82bd80ef30eb',1,'xt::xrepeat::shape()'],['../classxt_1_1xstrided__view.html#a63efb4c728be80dc8154df1b578c33cd',1,'xt::xstrided_view::shape()'],['../namespacext.html#ad761751bf328e1bedb307676ab8e7c8f',1,'xt::shape(const T(&list)[N])']]], + ['share_4',['share',['../namespacext.html#a39563f02e935d00d2df74796f2e19fb0',1,'xt::share(xexpression< E > &expr)'],['../namespacext.html#ad90d6213ecfc3ae99eba87429935a38a',1,'xt::share(xexpression< E > &&expr)']]], + ['sign_5',['sign',['../group__basic__functions.html#gad678caa2e599d095ad40e2b32bf4eb37',1,'xt']]], + ['sin_6',['sin',['../group__trigo__functions.html#gad8638d83d6874334a912c892b9d8a9c5',1,'xt']]], + ['sinh_7',['sinh',['../group__hyper__functions.html#ga43507ff72c11c17061fd4ae7716c11d5',1,'xt']]], + ['size_8',['size',['../classxt_1_1xcontainer.html#a1c0a41d160789e55b7bdfd797b3af1cb',1,'xt::xcontainer::size()'],['../classxt_1_1xconst__accessible.html#a1a12c20a1915c492894e68c39053cd1b',1,'xt::xconst_accessible::size()'],['../classxt_1_1xoptional__assembly__base.html#a21f778be8956cf3c7c72aa37169a0d2a',1,'xt::xoptional_assembly_base::size()'],['../classxt_1_1xfunctor__applier__base.html#ae971620a3e942d234f19e65a10005e45',1,'xt::xfunctor_applier_base::size()'],['../classxt_1_1xindex__view.html#a9c3f7c72cb0e1172b75bb256e92e6b94',1,'xt::xindex_view::size()'],['../classxt_1_1xmasked__view.html#a9b8f0d6d6f4fd32f161ffbae9828a7e2',1,'xt::xmasked_view::size()'],['../classxt_1_1xfunction.html#acf990ad65941e747a737622343bb43c2',1,'xt::xfunction::size()'],['../classxt_1_1xbroadcast.html#acf990ad65941e747a737622343bb43c2',1,'xt::xbroadcast::size()'],['../classxt_1_1xrepeat.html#acf990ad65941e747a737622343bb43c2',1,'xt::xrepeat::size()']]], + ['slices_9',['slices',['../classxt_1_1xview.html#a10687f1d5229c3d4f0b0af8766d9d64b',1,'xt::xview']]], + ['sort_10',['sort',['../group__xt__xsort.html#gae455f4aaacbc04bebc76451907003ee3',1,'xt']]], + ['split_11',['split',['../group__xt__xmanipulation.html#gaad5c56f6a09fb0a6ebaa2ec6cf22cf5c',1,'xt']]], + ['sqrt_12',['sqrt',['../group__pow__functions.html#ga2ac4c9ab16cee0b95b444191419c2802',1,'xt']]], + ['square_13',['square',['../group__pow__functions.html#ga6e5fca6d456f46a946b4a9707e1d442f',1,'xt']]], + ['squeeze_14',['squeeze',['../group__xt__xmanipulation.html#ga2734defabe45fcb86ed9545c1b033134',1,'xt::squeeze(E &&e)'],['../group__xt__xmanipulation.html#gafb20871153217193f33827b3b14e448a',1,'xt::squeeze(E &&e, S &&axis, Tag check_policy)']]], + ['stack_15',['stack',['../namespacext.html#a120ce2e841c6d13c8688cd12128fe942',1,'xt']]], + ['stddev_16',['stddev',['../group__red__functions.html#ga0c8291754c7c050cbfac3f6eeeaa1f77',1,'xt']]], + ['storage_17',['storage',['../classxt_1_1xcontainer.html#a19d0a91c82d0c35e414cf160751a9cb5',1,'xt::xcontainer::storage() noexcept'],['../classxt_1_1xcontainer.html#a75322e16f42222403daa18be69efa7d7',1,'xt::xcontainer::storage() const noexcept'],['../classxt_1_1xstrided__view__base.html#aeec822654cdb1a74d861e819b1c98730',1,'xt::xstrided_view_base::storage() noexcept'],['../classxt_1_1xstrided__view__base.html#a8b2e5b2c411cc06b834960f23dea39e7',1,'xt::xstrided_view_base::storage() const noexcept'],['../classxt_1_1xview.html#a7ed8a9e636959290636894572d1d2282',1,'xt::xview::storage()'],['../classxt_1_1xdynamic__view.html#a515e8cbd36c5494ab188f4c3e9d90861',1,'xt::xdynamic_view::storage() noexcept'],['../classxt_1_1xdynamic__view.html#a12ee07f7bf30d89f9ea691a03a122e3d',1,'xt::xdynamic_view::storage() const noexcept'],['../classxt_1_1xstrided__view.html#a515e8cbd36c5494ab188f4c3e9d90861',1,'xt::xstrided_view::storage() noexcept'],['../classxt_1_1xstrided__view.html#a12ee07f7bf30d89f9ea691a03a122e3d',1,'xt::xstrided_view::storage() const noexcept']]], + ['strided_5fview_18',['strided_view',['../namespacext.html#aca6714111810062b91a1c9e31bd69b26',1,'xt::strided_view(E &&e, S &&shape, X &&strides, std::size_t offset, layout_type layout) noexcept'],['../namespacext.html#ae5c7088d2beee486998238fbc29ee7b9',1,'xt::strided_view(E &&e, const xstrided_slice_vector &slices)']]], + ['strides_19',['strides',['../classxt_1_1xcontainer.html#a521fff0ce57a45da819d7e313b3133b4',1,'xt::xcontainer::strides()'],['../classxt_1_1xoptional__assembly__base.html#aa1afe87047106cd980f036335b978199',1,'xt::xoptional_assembly_base::strides()'],['../classxt_1_1xfunctor__applier__base.html#aee81935fb3b87f6e71e49e5410236645',1,'xt::xfunctor_applier_base::strides()'],['../classxt_1_1xmasked__view.html#a0cc1342c4e640acb9f726ccbb1a74da7',1,'xt::xmasked_view::strides()'],['../classxt_1_1xstrided__view__base.html#a60cc5bdc36e03dd0b339e89e16d4080c',1,'xt::xstrided_view_base::strides()'],['../classxt_1_1xview.html#a806d78f80c3cbf6624009bcb66a2ee5f',1,'xt::xview::strides()'],['../classxt_1_1xstrided__view.html#aec137e8210e4a11efc962df4e05b0680',1,'xt::xstrided_view::strides()'],['../group__xt__xstrides.html#ga651f61121a205e14993c06c52c6d2503',1,'xt::strides(const E &e, stride_type type=stride_type::normal) noexcept'],['../group__xt__xstrides.html#ga1ddf9b85add66ccc98661073a78cd953',1,'xt::strides(const E &e, std::size_t axis, stride_type type=stride_type::normal) noexcept']]], + ['sum_20',['sum',['../group__red__functions.html#ga018d66d27aae0df9558107d684380436',1,'xt']]], + ['swapaxes_21',['swapaxes',['../group__xt__xmanipulation.html#gaed086f2e402aa1e927f745fceae54018',1,'xt']]] +]; diff --git a/search/functions_12.js b/search/functions_12.js new file mode 100644 index 000000000..5ded02703 --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['tan_0',['tan',['../group__trigo__functions.html#gae6d7aef2bb82c074da4a500ca5eadc7b',1,'xt']]], + ['tanh_1',['tanh',['../group__hyper__functions.html#ga1b22c94cc8d9750ca8153d9b5bbb6c86',1,'xt']]], + ['tgamma_2',['tgamma',['../group__err__functions.html#gabe9c5e1fc33af3db795c8b3655321f02',1,'xt']]], + ['tile_3',['tile',['../namespacext.html#a65ddcadd66cb7d479944b1da073f2ce9',1,'xt::tile(E &&e, std::initializer_list< S > reps)'],['../namespacext.html#ad5270a2924bb17bc641c5846355149bc',1,'xt::tile(E &&e, S reps)']]], + ['to_5fjson_4',['to_json',['../namespacext.html#aafd7842df1c7034546b2a84bff7fd97b',1,'xt']]], + ['transpose_5',['transpose',['../group__xt__xmanipulation.html#ga620b1159b15601a1fd9b2ddaa746225e',1,'xt::transpose(E &&e) noexcept'],['../group__xt__xmanipulation.html#gae8b37193755be9f7e4c0161a6d9f9b6b',1,'xt::transpose(E &&e, S &&permutation, Tag check_policy)']]], + ['trapz_6',['trapz',['../group__red__functions.html#ga99e0a7ad0979b3ceeaf99d75fd30af9d',1,'xt::trapz(const xexpression< T > &y, double dx=1.0, std::ptrdiff_t axis=-1)'],['../group__red__functions.html#ga681c9cbfe336a5a7892633f189098c3d',1,'xt::trapz(const xexpression< T > &y, const xexpression< E > &x, std::ptrdiff_t axis=-1)']]], + ['tril_7',['tril',['../namespacext.html#ab524d3db6722f5d0e09347aedcf63837',1,'xt']]], + ['trim_5fzeros_8',['trim_zeros',['../group__xt__xmanipulation.html#ga938cc86961805cf29a1f68394922d9f7',1,'xt']]], + ['triu_9',['triu',['../namespacext.html#a5ca4a423657a4a9c4ec4852dd344164b',1,'xt']]], + ['trunc_10',['trunc',['../group__nearint__functions.html#ga1bf2a5edfa5f687938657e37064ddc74',1,'xt']]] +]; diff --git a/search/functions_13.js b/search/functions_13.js new file mode 100644 index 000000000..8dee9217a --- /dev/null +++ b/search/functions_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['unchecked_0',['unchecked',['../classxt_1_1xindex__view.html#aa6c15d2a26e0a3a993332606bb3d8ddc',1,'xt::xindex_view::unchecked(size_type idx)'],['../classxt_1_1xindex__view.html#a9ff5247ea89e3a5ed114685960edd042',1,'xt::xindex_view::unchecked(size_type idx) const'],['../classxt_1_1xcontainer.html#ac47ed05e4abb19044244cb26307cf8dc',1,'xt::xcontainer::unchecked(Args... args) -> reference'],['../classxt_1_1xcontainer.html#aa493271826c9bc5298a556949755e84a',1,'xt::xcontainer::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xfunction.html#ab99bdf99fd4e28328b2f4a24d6f763c2',1,'xt::xfunction::unchecked()'],['../classxt_1_1xgenerator.html#af95208893a8690ab495c3ac4f570d590',1,'xt::xgenerator::unchecked()'],['../classxt_1_1xoptional__assembly__base.html#afca63e0308421875f479c8373eea66d3',1,'xt::xoptional_assembly_base::unchecked(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#a53735c2da40556583e93ec94c618b325',1,'xt::xoptional_assembly_base::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xreducer.html#a55be3ba3c0268968d7c6efef7621e3e4',1,'xt::xreducer::unchecked()'],['../classxt_1_1xbroadcast.html#aecb99b5176966ab47f4dfe2b66385d56',1,'xt::xbroadcast::unchecked()'],['../classxt_1_1xfunctor__applier__base.html#ad86eba7c460e85d7e6bd558091531376',1,'xt::xfunctor_applier_base::unchecked(Args... args) -> reference'],['../classxt_1_1xfunctor__applier__base.html#a5b9d6e6df937ed2b534d8a68c0d4ceff',1,'xt::xfunctor_applier_base::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xmasked__view.html#a1f080554ead02ec72ee2e53691b2d793',1,'xt::xmasked_view::unchecked(Args... args) -> reference'],['../classxt_1_1xmasked__view.html#a430cf3c34d4e7ac88d55522fcef881ff',1,'xt::xmasked_view::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xrepeat.html#af545974287e021de5253fcfd602d2f6a',1,'xt::xrepeat::unchecked()'],['../classxt_1_1xstrided__view__base.html#a4a944cdaddacef0710cc4e601d95a1c8',1,'xt::xstrided_view_base::unchecked(Args... args) -> reference'],['../classxt_1_1xstrided__view__base.html#a4ed93202e4e30f980c2967c00e6044c4',1,'xt::xstrided_view_base::unchecked(Args... args) const -> const_reference'],['../classxt_1_1xview.html#afc28e491c5db09bcfe54e5eea176a5ec',1,'xt::xview::unchecked(Args... args) -> reference'],['../classxt_1_1xview.html#a8860cdb3a358dfee3af68fafdb5c7010',1,'xt::xview::unchecked(Args... args) const -> const_reference']]], + ['unique_1',['unique',['../group__xt__xsort.html#ga2b46eaf022e2fcd9e82ae5223fdd3ed5',1,'xt']]], + ['unwrap_2',['unwrap',['../group__basic__functions.html#gaeb6f80a96d7a1da033b737b34acaeb74',1,'xt']]], + ['use_5fcount_3',['use_count',['../classxt_1_1xshared__expression.html#ade23a460bdd1eb6102372076493f719e',1,'xt::xshared_expression']]] +]; diff --git a/search/functions_14.js b/search/functions_14.js new file mode 100644 index 000000000..38276efe6 --- /dev/null +++ b/search/functions_14.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['value_0',['value',['../classxt_1_1xoptional__assembly__base.html#a5b5b3c3f0201b416989eb3cc388c9ea2',1,'xt::xoptional_assembly_base::value() noexcept'],['../classxt_1_1xoptional__assembly__base.html#ad6761e5fda241e0eed545c4b545d9f1c',1,'xt::xoptional_assembly_base::value() const noexcept'],['../classxt_1_1xmasked__view.html#a888a7481ce4e40148e55a280dd2d721e',1,'xt::xmasked_view::value() noexcept'],['../classxt_1_1xmasked__view.html#a8c5a06d1b2b6f5aa3f08ac36dc6956f8',1,'xt::xmasked_view::value() const noexcept']]], + ['variance_1',['variance',['../group__red__functions.html#ga7001a4fe6acde5968aa526166659a5fa',1,'xt']]], + ['view_2',['view',['../namespacext.html#aedc2027ff309134dff5b0720699c5ffa',1,'xt']]], + ['visible_3',['visible',['../classxt_1_1xmasked__view.html#a420f33aa357210c322d5d34f06c6b81e',1,'xt::xmasked_view::visible() noexcept'],['../classxt_1_1xmasked__view.html#ae0e58b3d80d80523a86ee38b97550c68',1,'xt::xmasked_view::visible() const noexcept']]], + ['vsplit_4',['vsplit',['../group__xt__xmanipulation.html#gad25f3a38510304cf1e3489748a43812c',1,'xt']]], + ['vstack_5',['vstack',['../namespacext.html#a87a9e875318fc87aba41154dddee7c60',1,'xt']]] +]; diff --git a/search/functions_15.js b/search/functions_15.js new file mode 100644 index 000000000..07fca243c --- /dev/null +++ b/search/functions_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['where_0',['where',['../group__logical__operators.html#gabe2a59ff19cc1341bdaf0f833793cbd5',1,'xt::where(E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< detail::conditional_ternary, E1, E2, E3 >'],['../group__logical__operators.html#gad36802fb44a519f60e8c2d20ab5b6ef8',1,'xt::where(const T &condition)']]] +]; diff --git a/search/functions_16.js b/search/functions_16.js new file mode 100644 index 000000000..86c475d70 --- /dev/null +++ b/search/functions_16.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['xarray_5fadaptor_0',['xarray_adaptor',['../classxt_1_1xarray__adaptor.html#acc36cdfcb52803d3996a97569929eb72',1,'xt::xarray_adaptor::xarray_adaptor(storage_type &&storage)'],['../classxt_1_1xarray__adaptor.html#a7f70baf14dbcdfeffa82a4dc56d995e4',1,'xt::xarray_adaptor::xarray_adaptor(const storage_type &storage)'],['../classxt_1_1xarray__adaptor.html#a04e029bca1b4fbf0bb361898b93182fc',1,'xt::xarray_adaptor::xarray_adaptor(D &&storage, const shape_type &shape, layout_type l=L)'],['../classxt_1_1xarray__adaptor.html#a32fe6b670e042fff5d9a1f7c4d99c125',1,'xt::xarray_adaptor::xarray_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)']]], + ['xarray_5fcontainer_1',['xarray_container',['../classxt_1_1xarray__container.html#ae5c1e535231ddffdb7783d1445ffd66d',1,'xt::xarray_container::xarray_container()'],['../classxt_1_1xarray__container.html#a6b738f9e83ff453355414de037099d8c',1,'xt::xarray_container::xarray_container(const shape_type &shape, layout_type l=L)'],['../classxt_1_1xarray__container.html#a72aad798502aefff1285aa6f46941e9c',1,'xt::xarray_container::xarray_container(const shape_type &shape, const_reference value, layout_type l=L)'],['../classxt_1_1xarray__container.html#a0ca205f5f86d10d73b87b1d3ea7e6297',1,'xt::xarray_container::xarray_container(const shape_type &shape, const strides_type &strides)'],['../classxt_1_1xarray__container.html#a020df69d60ce91531bc3cf31af0b97ce',1,'xt::xarray_container::xarray_container(const shape_type &shape, const strides_type &strides, const_reference value)'],['../classxt_1_1xarray__container.html#a9e8b9a74e75fd76352d23346fa69a5c6',1,'xt::xarray_container::xarray_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)'],['../classxt_1_1xarray__container.html#a77e6553e8d27386c45f4fe7e80017e5c',1,'xt::xarray_container::xarray_container(const value_type &t)'],['../classxt_1_1xarray__container.html#a9cd19d110d8063589c6f6c08a44af6ad',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 1 > t)'],['../classxt_1_1xarray__container.html#a23f21da84072d9319fc8c826d98fb1de',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 2 > t)'],['../classxt_1_1xarray__container.html#aa7107f45d9ee3d9bb7a4a65f7c240edb',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 3 > t)'],['../classxt_1_1xarray__container.html#aaac4e823fd41ff9e9801a3cd8b1b5f6c',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 4 > t)'],['../classxt_1_1xarray__container.html#a44069c72b35f79263d7e24b6de2c4262',1,'xt::xarray_container::xarray_container(nested_initializer_list_t< value_type, 5 > t)'],['../classxt_1_1xarray__container.html#aad2ebb4b2fa3a2a3a33a8a57b6bfe60a',1,'xt::xarray_container::xarray_container(const xexpression< E > &e)']]], + ['xaxis_5fiterator_2',['xaxis_iterator',['../classxt_1_1xaxis__iterator.html#a27574105e56e37a1986b8cb5a141a9ea',1,'xt::xaxis_iterator::xaxis_iterator(CTA &&e, size_type axis)'],['../classxt_1_1xaxis__iterator.html#aacf91594c4a97e2811691d5678a95e4e',1,'xt::xaxis_iterator::xaxis_iterator(CTA &&e, size_type axis, size_type index, size_type offset)']]], + ['xaxis_5fslice_5fiterator_3',['xaxis_slice_iterator',['../classxt_1_1xaxis__slice__iterator.html#af741f5bf73967431bc0aba068da8fada',1,'xt::xaxis_slice_iterator::xaxis_slice_iterator(CTA &&e, size_type axis)'],['../classxt_1_1xaxis__slice__iterator.html#a0817357b924fd7c356a2a2f252fcb323',1,'xt::xaxis_slice_iterator::xaxis_slice_iterator(CTA &&e, size_type axis, size_type index, size_type offset)']]], + ['xbroadcast_4',['xbroadcast',['../classxt_1_1xbroadcast.html#aebbad01548cd2a4f5955c20f813b6314',1,'xt::xbroadcast::xbroadcast(CTA &&e, const S &s)'],['../classxt_1_1xbroadcast.html#ad96d515ec253f2745da1ccd7cbf44c97',1,'xt::xbroadcast::xbroadcast(CTA &&e, shape_type &&s)']]], + ['xfiltration_5',['xfiltration',['../classxt_1_1xfiltration.html#a70544dbbc899cd02b70dc5c473bffd02',1,'xt::xfiltration']]], + ['xfixed_5fadaptor_6',['xfixed_adaptor',['../classxt_1_1xfixed__adaptor.html#a4d68ba3b03788fbe1b70a7d6dce4040c',1,'xt::xfixed_adaptor::xfixed_adaptor(storage_type &&data)'],['../classxt_1_1xfixed__adaptor.html#adb3ce51eb417f3407c5b95d271c3f39c',1,'xt::xfixed_adaptor::xfixed_adaptor(const storage_type &data)'],['../classxt_1_1xfixed__adaptor.html#ab8855d521c67f4885638ab9d9108b36b',1,'xt::xfixed_adaptor::xfixed_adaptor(D &&data)']]], + ['xfixed_5fcontainer_7',['xfixed_container',['../classxt_1_1xfixed__container.html#a004eaea5e4f5ef36e227b2673c11b4cd',1,'xt::xfixed_container::xfixed_container(const inner_shape_type &shape, layout_type l=L)'],['../classxt_1_1xfixed__container.html#a41af8b86cc7d6df8d5713c29e404d4ab',1,'xt::xfixed_container::xfixed_container(const inner_shape_type &shape, value_type v, layout_type l=L)'],['../classxt_1_1xfixed__container.html#a5b08206bb93d07dc573823993aba8c67',1,'xt::xfixed_container::xfixed_container(nested_initializer_list_t< value_type, N > t)'],['../classxt_1_1xfixed__container.html#a0ddc275300f31caf95233120272df975',1,'xt::xfixed_container::xfixed_container(const xexpression< E > &e)']]], + ['xfunction_8',['xfunction',['../classxt_1_1xfunction.html#a63fa0bf1c338ba8ff119d97dc08de3b8',1,'xt::xfunction::xfunction(Func &&f, CTA &&... e) noexcept'],['../classxt_1_1xfunction.html#a08a95dc45143b002b300a6634774940d',1,'xt::xfunction::xfunction(xfunction< FA, CTA... > xf) noexcept']]], + ['xfunctor_5fapplier_5fbase_9',['xfunctor_applier_base',['../classxt_1_1xfunctor__applier__base.html#a41aab520408c7c729ae637b19d09be2b',1,'xt::xfunctor_applier_base::xfunctor_applier_base(undecay_expression) noexcept'],['../classxt_1_1xfunctor__applier__base.html#ac3b9ef5e95e61582edaff797f2ec7e1b',1,'xt::xfunctor_applier_base::xfunctor_applier_base(Func &&, E &&) noexcept']]], + ['xgenerator_10',['xgenerator',['../classxt_1_1xgenerator.html#a6f07eda985bc0f0e510a44afa3b8899d',1,'xt::xgenerator']]], + ['xindex_5fview_11',['xindex_view',['../classxt_1_1xindex__view.html#a0306275ff45341e84fe63836010c7ad5',1,'xt::xindex_view']]], + ['xmasked_5fview_12',['xmasked_view',['../classxt_1_1xmasked__view.html#a9c3d8a13f687279e628800050a8d4048',1,'xt::xmasked_view']]], + ['xoptional_5fassembly_13',['xoptional_assembly',['../classxt_1_1xoptional__assembly.html#a13b42b1a2ff43f41688d9e9dfecb70ab',1,'xt::xoptional_assembly::xoptional_assembly()'],['../classxt_1_1xoptional__assembly.html#a9148277e3915fdc930d875a7ad4b1156',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, layout_type l=base_type::static_layout)'],['../classxt_1_1xoptional__assembly.html#af86f39ed88264ad627dcc09454b02d3e',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, const value_type &value, layout_type l=base_type::static_layout)'],['../classxt_1_1xoptional__assembly.html#af53e6578e2720b3de87db901d4ef63c0',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, const strides_type &strides)'],['../classxt_1_1xoptional__assembly.html#a91d71b9f5a1c0df8f7f10568a667149c',1,'xt::xoptional_assembly::xoptional_assembly(const shape_type &shape, const strides_type &strides, const value_type &value)'],['../classxt_1_1xoptional__assembly.html#a3ded488b5944690be387afa5e35165fb',1,'xt::xoptional_assembly::xoptional_assembly(const VE &ve)'],['../classxt_1_1xoptional__assembly.html#aa525cc23b8a082ca1caf3fafcd321c88',1,'xt::xoptional_assembly::xoptional_assembly(VE &&ve)'],['../classxt_1_1xoptional__assembly.html#a18157a685aad00bd30890b9fe0484628',1,'xt::xoptional_assembly::xoptional_assembly(OVE &&ove, OFE &&ofe)'],['../classxt_1_1xoptional__assembly.html#ae5c0585bcb1ec14efb01b993aa17c9d7',1,'xt::xoptional_assembly::xoptional_assembly(const value_type &value)'],['../classxt_1_1xoptional__assembly.html#a2454d878267c2ac27179ef2ca365d48e',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 1 > t)'],['../classxt_1_1xoptional__assembly.html#ae13345d56e1c0e1b2a21290a66c8aa46',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 2 > t)'],['../classxt_1_1xoptional__assembly.html#a61dd51f2bf58adb62310d475253fc5b5',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 3 > t)'],['../classxt_1_1xoptional__assembly.html#ace216a4aee450e4bd52f50b791091d99',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 4 > t)'],['../classxt_1_1xoptional__assembly.html#a16611b26c4241fdbbc7e6afcc8a09780',1,'xt::xoptional_assembly::xoptional_assembly(nested_initializer_list_t< value_type, 5 > t)'],['../classxt_1_1xoptional__assembly.html#a251ff352299adb4dd685ae71755c112f',1,'xt::xoptional_assembly::xoptional_assembly(const xexpression< E > &e)']]], + ['xoptional_5fassembly_5fadaptor_14',['xoptional_assembly_adaptor',['../classxt_1_1xoptional__assembly__adaptor.html#a49ed47cb40d83d823a72f7907f4b4430',1,'xt::xoptional_assembly_adaptor']]], + ['xreducer_15',['xreducer',['../classxt_1_1xreducer.html#ac1a504813c1a2d91e1aa5c871bee7a77',1,'xt::xreducer']]], + ['xrepeat_16',['xrepeat',['../classxt_1_1xrepeat.html#a8597732ef22eb32ab54d780d1410386f',1,'xt::xrepeat']]], + ['xshared_5fexpression_17',['xshared_expression',['../classxt_1_1xshared__expression.html#a0eee9f39b506cc2e83b9b4c6dda150cf',1,'xt::xshared_expression']]], + ['xstrided_5fview_18',['xstrided_view',['../classxt_1_1xstrided__view.html#aeaca42937cad665d96b797421f114cca',1,'xt::xstrided_view']]], + ['xstrided_5fview_5fbase_19',['xstrided_view_base',['../classxt_1_1xstrided__view__base.html#a395bfaa7afcaf17190eaccebd998e1c4',1,'xt::xstrided_view_base']]], + ['xtensor_5fadaptor_20',['xtensor_adaptor',['../classxt_1_1xtensor__adaptor.html#aecf238db1fe9fda0797db5c10ced651b',1,'xt::xtensor_adaptor::xtensor_adaptor(storage_type &&storage)'],['../classxt_1_1xtensor__adaptor.html#ada04f10997a9bf3cb9d41ad0a57a071b',1,'xt::xtensor_adaptor::xtensor_adaptor(const storage_type &storage)'],['../classxt_1_1xtensor__adaptor.html#a08d8af6b5afb2cf0fdd0fa05ac254066',1,'xt::xtensor_adaptor::xtensor_adaptor(D &&storage, const shape_type &shape, layout_type l=L)'],['../classxt_1_1xtensor__adaptor.html#adf38d3f009485bbd13e05a33f3e126ed',1,'xt::xtensor_adaptor::xtensor_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)']]], + ['xtensor_5fcontainer_21',['xtensor_container',['../classxt_1_1xtensor__container.html#aa3a7016797e330568a8b4e5efb6f1c4b',1,'xt::xtensor_container::xtensor_container()'],['../classxt_1_1xtensor__container.html#a5d15ba6d111b6a3aa8403f69d4810c21',1,'xt::xtensor_container::xtensor_container(nested_initializer_list_t< value_type, N > t)'],['../classxt_1_1xtensor__container.html#aed68730c6dae5a8155b2c67140a63368',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, layout_type l=L)'],['../classxt_1_1xtensor__container.html#a56f009f40f5acb09f157345a1a174508',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, const_reference value, layout_type l=L)'],['../classxt_1_1xtensor__container.html#a27c45be9ad2e0da1a8ad0576c756f39e',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, const strides_type &strides)'],['../classxt_1_1xtensor__container.html#ad411469d4cd09d58528f489dd380de9e',1,'xt::xtensor_container::xtensor_container(const shape_type &shape, const strides_type &strides, const_reference value)'],['../classxt_1_1xtensor__container.html#ad82e5654ec5c9f23d5801aa5e84d4ddc',1,'xt::xtensor_container::xtensor_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)'],['../classxt_1_1xtensor__container.html#a76f048f11c76d405e2e93007e74e2c41',1,'xt::xtensor_container::xtensor_container(const xexpression< E > &e)']]], + ['xtensor_5fview_22',['xtensor_view',['../classxt_1_1xtensor__view.html#a3245a15af4f5a46b7315d4f14a1657d8',1,'xt::xtensor_view::xtensor_view(storage_type &&storage)'],['../classxt_1_1xtensor__view.html#ad26a102ac5d777f6d1b3dfad5a0ef1fa',1,'xt::xtensor_view::xtensor_view(const storage_type &storage)'],['../classxt_1_1xtensor__view.html#a70a1388809ad0d8d2869c56f2957fb73',1,'xt::xtensor_view::xtensor_view(D &&storage, const shape_type &shape, layout_type l=L)'],['../classxt_1_1xtensor__view.html#afd854308ee21d8738686c64a14363481',1,'xt::xtensor_view::xtensor_view(D &&storage, const shape_type &shape, const strides_type &strides)']]], + ['xtuple_23',['xtuple',['../namespacext.html#ae0a17e1fea8041f69a66d80928359150',1,'xt']]], + ['xview_24',['xview',['../classxt_1_1xview.html#a05ff5fb7b81610a17123a91729525c5c',1,'xt::xview']]] +]; diff --git a/search/functions_17.js b/search/functions_17.js new file mode 100644 index 000000000..477950168 --- /dev/null +++ b/search/functions_17.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['zeros_0',['zeros',['../namespacext.html#a700dc20edb5a81d66d5f89d350dca46f',1,'xt']]], + ['zeros_5flike_1',['zeros_like',['../namespacext.html#a68f9dd4af039df60663af606046a3b73',1,'xt']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 000000000..ef545f4a3 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['cast_0',['cast',['../group__casting__operators.html#ga8d57e20151af53f5ffec3afa6f834cf4',1,'xt']]], + ['cbegin_1',['cbegin',['../classxt_1_1xfunctor__applier__base.html#a8ff3057fce404b976998dda117b669b4',1,'xt::xfunctor_applier_base::cbegin()'],['../classxt_1_1xconst__iterable.html#a8e90c4de11331d25fcf27944833280af',1,'xt::xconst_iterable::cbegin() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a212ee6280ccfa5814e4f2c16d1880a84',1,'xt::xconst_iterable::cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a68fed899dcdd91ba8ffe1438f329e0fc',1,'xt::xcontiguous_iterable::cbegin() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#aa38da69077754acd8e5daf5f010b8591',1,'xt::xcontiguous_iterable::cbegin(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a358932daa1dd93cc97016f99f24b9be6',1,'xt::xfunctor_applier_base::cbegin()']]], + ['cbrt_2',['cbrt',['../group__pow__functions.html#gad5ff49e786eca533425d6f230c945184',1,'xt']]], + ['ceil_3',['ceil',['../group__nearint__functions.html#ga06d485029e29f092e60af3afabd0d154',1,'xt']]], + ['cend_4',['cend',['../classxt_1_1xfunctor__applier__base.html#a8f40de3c5e5d01ed40bab3060d1ad8e9',1,'xt::xfunctor_applier_base::cend()'],['../classxt_1_1xconst__iterable.html#a6b266693e1dfec18e39baf2d3b34c20e',1,'xt::xconst_iterable::cend() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#abc45bc962caf2ab0978a775836c6b3b8',1,'xt::xconst_iterable::cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a2f1e2287962220db88240b3a0e5cf196',1,'xt::xcontiguous_iterable::cend() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a93eb3f286ccab925d621ef1b87e6d126',1,'xt::xcontiguous_iterable::cend(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a3eb421464069330b8305abdb39b43f24',1,'xt::xfunctor_applier_base::cend()']]], + ['chunked_5farray_5',['chunked_array',['../group__xt__xchunked__array.html#ga8c408e717c7725211a42114adb4557b2',1,'xt::chunked_array(S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)'],['../group__xt__xchunked__array.html#ga7f77d42d689828b2d8e8cdd57c28ee9b',1,'xt::chunked_array(const xexpression< E > &e, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)'],['../group__xt__xchunked__array.html#ga2dae3e469de3f3ec7b0d4fc49f82de5c',1,'xt::chunked_array(const xexpression< E > &e, layout_type chunk_memory_layout=::xt::layout_type::row_major)']]], + ['clip_6',['clip',['../group__basic__functions.html#ga951c830ac7329af2e6de1194821c09c4',1,'xt']]], + ['cmap_7',['cmap',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a8a05211f1dec8baa4732be2407dfceed',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['cmap_5fat_8',['cmap_at',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a48ce7c87ea115701f789fa086de0190d',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['col_9',['col',['../namespacext.html#a5772db4fd8ebf31bc242dd1c2d2ddd1b',1,'xt']]], + ['compute_5flayout_10',['compute_layout',['../namespacext.html#a27b28c7951a0991e2e8d39422c2b46b2',1,'xt']]], + ['compute_5fstrides_11',['compute_strides',['../group__xt__xstrides.html#ga3b03c8046a44a3bf2d4800c7296ecefd',1,'xt']]], + ['concatenate_12',['concatenate',['../namespacext.html#a28c746e1a420f706892d9aff3ad0dd30',1,'xt']]], + ['conditional_5fcast_13',['conditional_cast',['../namespacext.html#af155a86146879d345b8acaa16d48c748',1,'xt']]], + ['conj_14',['conj',['../group__xt__xcomplex.html#ga77874ddd5efaa90065d692ee4a6049a2',1,'xt']]], + ['cos_15',['cos',['../group__trigo__functions.html#gabf9e140b22bb15dc6add351a7dc06d58',1,'xt']]], + ['cosh_16',['cosh',['../group__hyper__functions.html#ga4073cdc98201789ff723069156b4d34b',1,'xt']]], + ['cov_17',['cov',['../namespacext.html#af462add746658517456f484f2e80f609',1,'xt']]], + ['crbegin_18',['crbegin',['../classxt_1_1xfunctor__applier__base.html#afb3b6d645d6ef28238b50f032f3477f6',1,'xt::xfunctor_applier_base::crbegin()'],['../classxt_1_1xconst__iterable.html#a425b0d85a0ffbb1752c6f45f211c471b',1,'xt::xconst_iterable::crbegin() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a6fdbad0911ef9a473a18f109eb33a7ba',1,'xt::xconst_iterable::crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#ab363ab0f7faf25ed137b432eeaca6f43',1,'xt::xcontiguous_iterable::crbegin() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a74bc69cf0cbfcb235ec3ca8fe75b962a',1,'xt::xcontiguous_iterable::crbegin(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a69f77212c23e7a9e20b3774a2e59d3cc',1,'xt::xfunctor_applier_base::crbegin(const S &) const noexcept -> const_reverse_broadcast_iterator< S, L >']]], + ['crend_19',['crend',['../classxt_1_1xfunctor__applier__base.html#ae9c21d7315862c7b30de7f21d5d47bf3',1,'xt::xfunctor_applier_base::crend()'],['../classxt_1_1xconst__iterable.html#a804a4b52bdfa60d1855f9081fb11fb13',1,'xt::xconst_iterable::crend() const noexcept -> const_reverse_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a851fb3a86aacc069921e8719ec2a21e9',1,'xt::xconst_iterable::crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#aec3659b2356b81494ebfcb5a4bc0482e',1,'xt::xcontiguous_iterable::crend() const noexcept -> select_const_reverse_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a0b849e0972151523dd2bf988fe90c7da',1,'xt::xcontiguous_iterable::crend(const S &shape) const noexcept -> const_reverse_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a9424de315b89fd06b19590443bc20629',1,'xt::xfunctor_applier_base::crend()']]], + ['cube_20',['cube',['../group__pow__functions.html#ga0d98743e330f7ef3474bd706e186ac44',1,'xt']]], + ['cumprod_21',['cumprod',['../group__acc__functions.html#ga17f752dbaca06608f974c3514509fa7b',1,'xt']]], + ['cumsum_22',['cumsum',['../group__acc__functions.html#gaae1630a06b4975a5a759f2215e738123',1,'xt']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 000000000..f38877275 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['data_0',['data',['../classxt_1_1xcontainer.html#a71249b300db5d1bbab81c1cf6a5843b2',1,'xt::xcontainer::data() noexcept'],['../classxt_1_1xcontainer.html#a4a86bf768a1595ab704198ed8171b07c',1,'xt::xcontainer::data() const noexcept'],['../classxt_1_1xstrided__view__base.html#a6fe1b51b3991c9c94053d304feef646b',1,'xt::xstrided_view_base::data() noexcept'],['../classxt_1_1xstrided__view__base.html#a06823da680ffe172dee428c6245b249e',1,'xt::xstrided_view_base::data() const noexcept'],['../classxt_1_1xview.html#a2315b4504cabd5c6a0c6f80c782d1d8b',1,'xt::xview::data()'],['../classxt_1_1xstrided__view.html#a90ad7ad05c7837e0c26fdaa7cbe126c1',1,'xt::xstrided_view::data() noexcept'],['../classxt_1_1xstrided__view.html#aeed1c4b45db8fc518d5058ea39587e9f',1,'xt::xstrided_view::data() const noexcept']]], + ['data_5foffset_1',['data_offset',['../classxt_1_1xcontainer.html#a8a1a7ab7c076ce9b48301c42b825a83c',1,'xt::xcontainer::data_offset()'],['../classxt_1_1xstrided__view__base.html#ab4fb45717672e9ff1681c360d8199ed5',1,'xt::xstrided_view_base::data_offset()'],['../classxt_1_1xview.html#a869e2398c747ba94deaf0878bb348649',1,'xt::xview::data_offset()'],['../classxt_1_1xstrided__view.html#a52931ad61f35e598829290a885805e26',1,'xt::xstrided_view::data_offset()'],['../group__xt__xstrides.html#ga3bcc575a1a2870d78b96ff674e700ec7',1,'xt::data_offset(const S &strides, Arg arg, Args... args) noexcept']]], + ['deg2rad_2',['deg2rad',['../group__basic__functions.html#ga1bc991dd9cc5f66575ab91f87b140577',1,'xt']]], + ['degrees_3',['degrees',['../group__basic__functions.html#ga4450fb9262604f2ed230e479092e7fdb',1,'xt']]], + ['derived_5fcast_4',['derived_cast',['../classxt_1_1xexpression.html#a96fe8ebe879202c5a053ae5e0067b231',1,'xt::xexpression::derived_cast() &noexcept'],['../classxt_1_1xexpression.html#ab08a20008d390c970283c26f9f882483',1,'xt::xexpression::derived_cast() const &noexcept'],['../classxt_1_1xexpression.html#abf1d99fb093b7bab105ea3d8c4d8a548',1,'xt::xexpression::derived_cast() &&noexcept']]], + ['diag_5',['diag',['../namespacext.html#ad848dae0258c3e5755ff7ee55e7c7b30',1,'xt']]], + ['diagonal_6',['diagonal',['../namespacext.html#a96ad98d837a74211cc0e5f07b85c2414',1,'xt']]], + ['diff_7',['diff',['../group__red__functions.html#gab421eb4d3565597848ec53dad1b0d6c6',1,'xt']]], + ['digitize_8',['digitize',['../group__digitize.html#ga80fb5a6e58dafe175544508ea913cff0',1,'xt']]], + ['dimension_9',['dimension',['../classxt_1_1xcontainer.html#a2a8d4b0a73c42555c56b87384b251f2d',1,'xt::xcontainer::dimension()'],['../classxt_1_1xconst__accessible.html#a4b1a7ad9b1f0863c672782e53eed3042',1,'xt::xconst_accessible::dimension()'],['../classxt_1_1xfunction.html#a55ade0ce540d29ce39f0ca051946ff96',1,'xt::xfunction::dimension()'],['../classxt_1_1xoptional__assembly__base.html#a89f917b17d7b6ded98b95ba5f9c52de2',1,'xt::xoptional_assembly_base::dimension()'],['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#a8565c9e35a1e5c2c6462bcc248368b11',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >::dimension()'],['../classxt_1_1xindex__view.html#afeaa3f6f6c150f659935d1a625497203',1,'xt::xindex_view::dimension()']]], + ['divides_5fassign_10',['divides_assign',['../classxt_1_1xsemantic__base.html#a8390681df5ceb96cc3fe307bcb6f5878',1,'xt::xsemantic_base']]], + ['drop_11',['drop',['../namespacext.html#aaa0bb50983d32a17a7ccd3e8fab9c9d5',1,'xt']]], + ['dump_5fcsv_12',['dump_csv',['../namespacext.html#a809a1475d6c06e6209878b293ca0aa4d',1,'xt']]], + ['dump_5fnpy_13',['dump_npy',['../namespacext.html#abbb704b012b5b4a60523e183342660a8',1,'xt::dump_npy(const std::string &filename, const xexpression< E > &e)'],['../namespacext.html#a6d48f3428b263994fcfb707ca476847e',1,'xt::dump_npy(const xexpression< E > &e)']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 000000000..4e99cd21c --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['element_0',['element',['../classxt_1_1xcontainer.html#ac2d91aa6cdb9d2970b5505d55f462b61',1,'xt::xcontainer::element(It first, It last) -> reference'],['../classxt_1_1xcontainer.html#a9d3b8aa16501359595778305cdb6c3b4',1,'xt::xcontainer::element(It first, It last) const -> const_reference'],['../classxt_1_1xfunction.html#a31d1e0136cb9cfd071120e47b10ecaea',1,'xt::xfunction::element()'],['../classxt_1_1xgenerator.html#a78b35b4322ef73b541653bc0e009c058',1,'xt::xgenerator::element()'],['../classxt_1_1xoptional__assembly__base.html#a1878f869c91ab899acc2fc560990538c',1,'xt::xoptional_assembly_base::element(It first, It last) -> reference'],['../classxt_1_1xoptional__assembly__base.html#afe8cc2e4841489d3f1af56dbab957af3',1,'xt::xoptional_assembly_base::element(It first, It last) const -> const_reference'],['../classxt_1_1xreducer.html#aa6b950db4c421bef297b1b1d76047b23',1,'xt::xreducer::element()'],['../classxt_1_1xbroadcast.html#a0c5eeee79d7da9ebbe4bab731e7bdbdf',1,'xt::xbroadcast::element()'],['../classxt_1_1xfunctor__applier__base.html#a94f49676b373d866812ee9a128cdc3e8',1,'xt::xfunctor_applier_base::element(IT first, IT last) -> reference'],['../classxt_1_1xfunctor__applier__base.html#a173b3e1e7c31df616b7e978462fece33',1,'xt::xfunctor_applier_base::element(IT first, IT last) const -> const_reference'],['../classxt_1_1xindex__view.html#a4bdd94010df7af626590d532b2febefb',1,'xt::xindex_view::element(It first, It) -> reference'],['../classxt_1_1xindex__view.html#a49787050a31b9c40a75f6644c6ee4c10',1,'xt::xindex_view::element(It first, It) const -> const_reference'],['../classxt_1_1xmasked__view.html#a9ac6b54e4c97bd60b65a6c02d5823380',1,'xt::xmasked_view::element(It first, It last) -> reference'],['../classxt_1_1xmasked__view.html#ae44c90a8ceb326570ea97116ecc5dd2f',1,'xt::xmasked_view::element(It first, It last) const -> const_reference'],['../classxt_1_1xrepeat.html#a38462b0a1711572653036bb3f77e4d2a',1,'xt::xrepeat::element()'],['../classxt_1_1xstrided__view__base.html#a76377f2b31c5086bd56c169f39ab8e6b',1,'xt::xstrided_view_base::element(It first, It last) -> reference'],['../classxt_1_1xstrided__view__base.html#a0410b18c9448ceb36193b2b740d0419a',1,'xt::xstrided_view_base::element(It first, It last) const -> const_reference']]], + ['ellipsis_1',['ellipsis',['../namespacext.html#a7674e27693c74603e341cbf7beb91e7b',1,'xt']]], + ['empty_2',['empty',['../namespacext.html#af6f56a2111bfe2e7898ddb56dcdedc0e',1,'xt']]], + ['empty_5flike_3',['empty_like',['../namespacext.html#abda9d7634e3a60172e626271a0e50bae',1,'xt']]], + ['end_4',['end',['../classxt_1_1xfunctor__applier__base.html#a1ede7d79cffaf8f76e8b6895a7877759',1,'xt::xfunctor_applier_base::end() noexcept'],['../classxt_1_1xfunctor__applier__base.html#ab31ad55714884efed4c525ae1018339e',1,'xt::xfunctor_applier_base::end() const noexcept'],['../classxt_1_1xconst__iterable.html#a74906f6a3242a5a2b001e6a534007589',1,'xt::xconst_iterable::end() const noexcept -> const_layout_iterator< L >'],['../classxt_1_1xconst__iterable.html#a8ca771d1dda2e42203cfdaaebfeba601',1,'xt::xconst_iterable::end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xiterable.html#a76c73882716f9e9915dab847639db2da',1,'xt::xiterable::end() noexcept -> layout_iterator< L >'],['../classxt_1_1xiterable.html#a9b56f37894a5055ffe49a46c857b7111',1,'xt::xiterable::end(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a18eb1a595021e73f682b8443ea50f1ec',1,'xt::xcontiguous_iterable::end() noexcept -> select_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#a8e0a8bdffdcfd3c5bc80f358a6931f9f',1,'xt::xcontiguous_iterable::end() const noexcept -> select_const_iterator< L >'],['../classxt_1_1xcontiguous__iterable.html#ad75c7cb209c82c2d3ea6fa9e696f329e',1,'xt::xcontiguous_iterable::end(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xcontiguous__iterable.html#a11d0a0ce2bbaef8f6dda78febe364fec',1,'xt::xcontiguous_iterable::end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#a51190ea53109af3cdceebf66f8d10cbc',1,'xt::xfunctor_applier_base::end(const S &shape) noexcept -> broadcast_iterator< S, L >'],['../classxt_1_1xfunctor__applier__base.html#aba04a5d73546572558aa9bbb6e4eca36',1,'xt::xfunctor_applier_base::end(const S &shape) const noexcept -> const_broadcast_iterator< S, L >']]], + ['equal_5',['equal',['../classxt_1_1xaxis__iterator.html#ab4e285d56b758b9c9f95d4c63f39093c',1,'xt::xaxis_iterator::equal()'],['../classxt_1_1xaxis__slice__iterator.html#abb5ffe172da06056aa31e3f18b821b88',1,'xt::xaxis_slice_iterator::equal()'],['../group__comparison__operators.html#ga4c778acba0a9407a9093505fad0506d2',1,'xt::equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >']]], + ['erf_6',['erf',['../group__err__functions.html#ga996f61e9186110b7daa859da0a8d2755',1,'xt']]], + ['erfc_7',['erfc',['../group__err__functions.html#ga6af9a81a9ca2bab66e744167c9683920',1,'xt']]], + ['eval_8',['eval',['../group__xt__xeval.html#ga60f1ff0460adb785f2d4055d0863551b',1,'xt']]], + ['exp_9',['exp',['../group__exp__functions.html#gae0c736d69056d124184aada09007e70b',1,'xt']]], + ['exp2_10',['exp2',['../group__exp__functions.html#ga212886f718828e83aaf07cdabf60aeab',1,'xt']]], + ['expand_5fdims_11',['expand_dims',['../group__xt__xmanipulation.html#gabe8cb55041a20cb995a15c599b7a2bc2',1,'xt']]], + ['expm1_12',['expm1',['../group__exp__functions.html#ga1646ca23b54f4a72d4bbe46f1182921c',1,'xt']]], + ['expression_13',['expression',['../classxt_1_1xreducer.html#a35efc1a78c0ad4a52cef8dca2a472a83',1,'xt::xreducer::expression()'],['../classxt_1_1xbroadcast.html#a11fafd46c5300907473db9afddfb5969',1,'xt::xbroadcast::expression()'],['../classxt_1_1xfunctor__applier__base.html#a5c676f9bf0dcbba9c63d589d2a417abd',1,'xt::xfunctor_applier_base::expression() noexcept'],['../classxt_1_1xfunctor__applier__base.html#a62a9deb497e7420aed40dcd2bcac02bc',1,'xt::xfunctor_applier_base::expression() const noexcept'],['../classxt_1_1xindex__view.html#ab19a3dd1a9b7f67c557ee57bc189d319',1,'xt::xindex_view::expression() noexcept'],['../classxt_1_1xindex__view.html#abad555c9ed25f834763760c88a236325',1,'xt::xindex_view::expression() const noexcept'],['../classxt_1_1xrepeat.html#a54a644b7c615e8f1bca91c0f4ac5a714',1,'xt::xrepeat::expression()'],['../classxt_1_1xstrided__view__base.html#af4ec4a5c434d543b6c664f4572c849d4',1,'xt::xstrided_view_base::expression() noexcept'],['../classxt_1_1xstrided__view__base.html#a94e4948a88657428eb50b1a92c4c2a43',1,'xt::xstrided_view_base::expression() const noexcept'],['../classxt_1_1xview.html#a5ecd9f1273f10421fdd4c5d64c262585',1,'xt::xview::expression() noexcept'],['../classxt_1_1xview.html#a9c5da820e15f25932c740862e0f3150f',1,'xt::xview::expression() const noexcept'],['../classxt_1_1xdynamic__view.html#a0ab07e56a411fedb9e0e213b8ddbc693',1,'xt::xdynamic_view::expression() noexcept'],['../classxt_1_1xdynamic__view.html#a929958921ea6477ce8a3c5aba3936146',1,'xt::xdynamic_view::expression() const noexcept'],['../classxt_1_1xstrided__view.html#a0ab07e56a411fedb9e0e213b8ddbc693',1,'xt::xstrided_view::expression() noexcept'],['../classxt_1_1xstrided__view.html#a929958921ea6477ce8a3c5aba3936146',1,'xt::xstrided_view::expression() const noexcept']]], + ['eye_14',['eye',['../namespacext.html#a3702c94500428b6c0c24a493ea020606',1,'xt::eye(const std::vector< std::size_t > &shape, int k=0)'],['../namespacext.html#af1633ad856dcd79570c229d95b09cf19',1,'xt::eye(std::size_t n, int k=0)']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 000000000..03b40f958 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['fabs_0',['fabs',['../group__basic__functions.html#ga6548f786920ac988f0e655576b3a3c82',1,'xt']]], + ['fdim_1',['fdim',['../group__basic__functions.html#gaa68f33844e1bb457b87880b7433506d3',1,'xt']]], + ['fill_2',['fill',['../classxt_1_1xcontainer.html#af6898b9f125926922986af040eb90240',1,'xt::xcontainer::fill()'],['../classxt_1_1xoptional__assembly__base.html#a6b2d66863b5c7e149d54f75d3911d34d',1,'xt::xoptional_assembly_base::fill()'],['../classxt_1_1xindex__view.html#aeecb2ec9572eac54def9d4f9934a86fd',1,'xt::xindex_view::fill()'],['../classxt_1_1xmasked__view.html#a4c949ee680c72512a1d9f02b60536428',1,'xt::xmasked_view::fill()'],['../classxt_1_1xstrided__view.html#a2e8596cc0e323e5d8e884c5f88b00b8b',1,'xt::xstrided_view::fill()'],['../classxt_1_1xview.html#a76141e6f7f637ae7e070d860a08fc678',1,'xt::xview::fill()']]], + ['filter_3',['filter',['../namespacext.html#ae36e1cf727c1a3ea6c7889f149c0737b',1,'xt']]], + ['filtration_4',['filtration',['../namespacext.html#a588bc1e3b2c1f7c9b8238dddaf05a9df',1,'xt']]], + ['flat_5',['flat',['../classxt_1_1xcontainer.html#a416ecf1f18ce38fae7f93d98d0c238e6',1,'xt::xcontainer::flat(size_type i)'],['../classxt_1_1xcontainer.html#a58f5504c365d5e9c0ff9783c60e586af',1,'xt::xcontainer::flat(size_type i) const'],['../classxt_1_1xfunction.html#a8313f6caaa7e9229c10e3d221a8ab77b',1,'xt::xfunction::flat()'],['../classxt_1_1xoptional__assembly__base.html#abdea1fd8c021f170b2b34fbfae36f2db',1,'xt::xoptional_assembly_base::flat(size_type args)'],['../classxt_1_1xoptional__assembly__base.html#a2ab81721e7b9e8986206742c4baddf71',1,'xt::xoptional_assembly_base::flat(size_type args) const']]], + ['flatnonzero_6',['flatnonzero',['../namespacext.html#afe8bacc1aed492dc936c80bc58730463',1,'xt']]], + ['flatten_7',['flatten',['../group__xt__xmanipulation.html#ga10a975d3b718bfaf8ecf1db8072a0a0c',1,'xt']]], + ['flatten_5findices_8',['flatten_indices',['../namespacext.html#a5c1acf7068270be8ab0ef904dd0f5a54',1,'xt']]], + ['flip_9',['flip',['../group__xt__xmanipulation.html#gad4b24c51356470db0a22b0c6c7d7611d',1,'xt::flip(E &&e)'],['../group__xt__xmanipulation.html#ga4bf31ad3a5950024a3825118f9f6a4e7',1,'xt::flip(E &&e, std::size_t axis)']]], + ['floor_10',['floor',['../group__nearint__functions.html#ga651ff45bf2ffda746e6602773925ca5c',1,'xt']]], + ['fma_11',['fma',['../group__basic__functions.html#ga0f88cbfba7ddc6b5e8a1c74e422a0409',1,'xt']]], + ['fmax_12',['fmax',['../group__basic__functions.html#ga782cdb54181f69e99679e1045cb53323',1,'xt']]], + ['fmin_13',['fmin',['../group__basic__functions.html#gab8eb77690d6d7b651f61a961b0b4e472',1,'xt']]], + ['fmod_14',['fmod',['../group__basic__functions.html#ga51fa6991b9bc8878a763212346d6449b',1,'xt']]], + ['from_5findices_15',['from_indices',['../namespacext.html#ade2d67c70b0ec6af8294f4b7f201a722',1,'xt']]], + ['from_5fjson_16',['from_json',['../namespacext.html#a3d553d1a9a0e27ad8c9054389c1e2c59',1,'xt']]], + ['from_5fshape_17',['from_shape',['../classxt_1_1xarray__container.html#ab23fb8ed1e93061e427ef9da391336a0',1,'xt::xarray_container::from_shape()'],['../classxt_1_1xoptional__assembly.html#a04719a5f78f5bba3faa0f9a8d6aa393d',1,'xt::xoptional_assembly::from_shape()']]], + ['front_18',['front',['../classxt_1_1xconst__accessible.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8',1,'xt::xconst_accessible::front()'],['../classxt_1_1xaccessible.html#ad36ac2c194e7e6f470548dad89e88ca2',1,'xt::xaccessible::front()'],['../classxt_1_1xoptional__assembly__base.html#a0e191af3d00801e0018161ab739fc6d2',1,'xt::xoptional_assembly_base::front()'],['../classxt_1_1xoptional__assembly__base.html#aacfa0f794bd3a92bf3ad57833861f73e',1,'xt::xoptional_assembly_base::front() const'],['../classxt_1_1xcontainer.html#ad36ac2c194e7e6f470548dad89e88ca2',1,'xt::xcontainer::front()'],['../classxt_1_1xscalar.html#a13ab25eb31d4b48cb01b7bc38d27e8e0',1,'xt::xscalar::front()'],['../classxt_1_1xaccessible.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8',1,'xt::xaccessible::front()'],['../classxt_1_1xfunction.html#abd9b67dadb00c0bd094a71fe99ab0dfe',1,'xt::xfunction::front()'],['../classxt_1_1xfunctor__applier__base.html#ad36ac2c194e7e6f470548dad89e88ca2',1,'xt::xfunctor_applier_base::front()'],['../classxt_1_1xfunctor__applier__base.html#a06f3bb2ce9e0c3081ef0ce0ae40d1fe8',1,'xt::xfunctor_applier_base::front() const'],['../classxt_1_1xmasked__view.html#a13ab25eb31d4b48cb01b7bc38d27e8e0',1,'xt::xmasked_view::front()'],['../classxt_1_1xmasked__view.html#a2ba0b92d6fbdb39b879378eb72c285d4',1,'xt::xmasked_view::front() const']]], + ['full_5flike_19',['full_like',['../namespacext.html#a682f65e5eb55b03cbef5fbd25bbdc349',1,'xt']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 000000000..0567fd449 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['greater_0',['greater',['../group__comparison__operators.html#ga7c7efdc8246d1ae40ab7f6a8cffe0958',1,'xt']]], + ['greater_5fequal_1',['greater_equal',['../group__comparison__operators.html#ga68a359635b6a5d0940f97c7586a61ea3',1,'xt']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 000000000..9f971ae62 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['has_5flinear_5fassign_0',['has_linear_assign',['../classxt_1_1xcontainer.html#a5720f32fcd8bc068a5489eddcf7bd8b1',1,'xt::xcontainer::has_linear_assign()'],['../classxt_1_1xfunction.html#a7007affb74eb4e8e6dfbba267f6de5ba',1,'xt::xfunction::has_linear_assign()'],['../classxt_1_1xgenerator.html#ab1a2913449b319eede92915d0b410c0d',1,'xt::xgenerator::has_linear_assign()'],['../classxt_1_1xoptional__assembly__base.html#a7e2c9d6439909805db95ebe75339fc06',1,'xt::xoptional_assembly_base::has_linear_assign()'],['../classxt_1_1xreducer.html#a6dc809c4eefc124d5bfb4d579afea715',1,'xt::xreducer::has_linear_assign()'],['../classxt_1_1xbroadcast.html#afa95389819f8e9168213041757730903',1,'xt::xbroadcast::has_linear_assign()'],['../classxt_1_1xfunctor__applier__base.html#a9ded44a42136f6472c91f0d60462d7a5',1,'xt::xfunctor_applier_base::has_linear_assign()'],['../classxt_1_1xindex__view.html#a436dfb313bdf3ce42a16cfa2a5c9f98f',1,'xt::xindex_view::has_linear_assign()'],['../classxt_1_1xrepeat.html#a1cf9569d72c1fb3af6e2e29252b9f03b',1,'xt::xrepeat::has_linear_assign()'],['../classxt_1_1xstrided__view__base.html#a5264e47f30486f83a313b654d3dd7199',1,'xt::xstrided_view_base::has_linear_assign()'],['../classxt_1_1xview.html#a1249c703f1c218ce7998627aa91c10a6',1,'xt::xview::has_linear_assign()'],['../classxt_1_1xstrided__view.html#af8980bbe46da6333d9d81411bd9b6610',1,'xt::xstrided_view::has_linear_assign()']]], + ['has_5fshape_1',['has_shape',['../group__xt__xshape.html#ga56d28aa1be818adaecee7803249dad7d',1,'xt::has_shape(const E &e, std::initializer_list< S > shape) noexcept'],['../group__xt__xshape.html#ga4453a49484a5833cbf48e51eff2ed3df',1,'xt::has_shape(const E &e, const S &shape)']]], + ['has_5fvalue_2',['has_value',['../classxt_1_1xoptional__assembly__base.html#af274b99476f869609568a3e09fcf3c55',1,'xt::xoptional_assembly_base::has_value() noexcept'],['../classxt_1_1xoptional__assembly__base.html#a4501b171b337744f6c013a9a46c6414b',1,'xt::xoptional_assembly_base::has_value() const noexcept']]], + ['histogram_3',['histogram',['../group__histogram.html#ga95e9ea74b2e3f62bb682798bd5d7414d',1,'xt::histogram(E1 &&data, E2 &&bin_edges, E3 &&weights, bool density=false)'],['../group__histogram.html#ga0a5ba67f2a11ee24ccf629105d12e407',1,'xt::histogram(E1 &&data, E2 &&bin_edges, bool density=false)'],['../group__histogram.html#gad8379adac71c1af9b9bc50f835d9536f',1,'xt::histogram(E1 &&data, std::size_t bins=10, bool density=false)'],['../group__histogram.html#ga60449f18cbf62c0a104cf72e53f7948d',1,'xt::histogram(E1 &&data, std::size_t bins, E2 left, E2 right, bool density=false)'],['../group__histogram.html#ga8545490885a4a8466344d954bd5326c1',1,'xt::histogram(E1 &&data, std::size_t bins, E2 &&weights, bool density=false)'],['../group__histogram.html#gaaadf08c80728a3d2ace5739f3350f908',1,'xt::histogram(E1 &&data, std::size_t bins, E2 &&weights, E3 left, E3 right, bool density=false)']]], + ['histogram_5fbin_5fedges_4',['histogram_bin_edges',['../group__histogram.html#ga53ca89b6c48fc35c9a293c2d81f66288',1,'xt::histogram_bin_edges(E1 &&data, E2 &&weights, E3 left, E3 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)'],['../group__histogram.html#gaa3d16282168b4675fdc93c5563eb5324',1,'xt::histogram_bin_edges(E1 &&data, E2 &&weights, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)'],['../group__histogram.html#ga49105a6754699f6ab1073e9868782ec8',1,'xt::histogram_bin_edges(E1 &&data, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)'],['../group__histogram.html#ga5abbd094554988573b2c3cce9e521aab',1,'xt::histogram_bin_edges(E1 &&data, E2 left, E2 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)']]], + ['hsplit_5',['hsplit',['../group__xt__xmanipulation.html#gaf342a194380b6c7bbc7f2c89f4e88317',1,'xt']]], + ['hstack_6',['hstack',['../namespacext.html#aacc647d8af519da1d2126ec96a97849f',1,'xt']]], + ['hypot_7',['hypot',['../group__pow__functions.html#ga9b55bcc865f0dd82fd679e01c3838526',1,'xt']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 000000000..309d584ef --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['imag_0',['imag',['../group__xt__xcomplex.html#ga155e369dcf03bd465609d279b82f6da8',1,'xt']]], + ['in1d_1',['in1d',['../group__logical__operators.html#gab1bbf85dbe7bc76561321466d657bed4',1,'xt::in1d(E &&element, std::initializer_list< T > test_elements) noexcept'],['../group__logical__operators.html#gad8d2b8d4816486e29169f211636d9c97',1,'xt::in1d(E &&element, F &&test_elements) noexcept'],['../group__logical__operators.html#ga3f5912e0cd902bfd8c36037167001c73',1,'xt::in1d(E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept']]], + ['in_5fbounds_2',['in_bounds',['../classxt_1_1xconst__accessible.html#ace939a65a328afe7ef9241d4cc84b881',1,'xt::xconst_accessible::in_bounds()'],['../classxt_1_1xoptional__assembly__base.html#a109b7cd1df5661aaacc763e2c914795d',1,'xt::xoptional_assembly_base::in_bounds()'],['../classxt_1_1xfunction.html#a1caad16507368ef12100f68950787c47',1,'xt::xfunction::in_bounds()'],['../namespacext.html#a42f9ded8fbe013b13c186ae66474912d',1,'xt::in_bounds(const S &shape, Args &... args)']]], + ['index_5fview_3',['index_view',['../namespacext.html#abb28cb642ab427195ca6120d59f34f76',1,'xt']]], + ['interp_4',['interp',['../group__basic__functions.html#ga47e1576710edcbb14d2ccf4df7d62ec3',1,'xt::interp(const E1 &x, const E2 &xp, const E3 &fp, T left, T right)'],['../group__basic__functions.html#gaa909fc5959dbb290c47c9698d5076ed3',1,'xt::interp(const E1 &x, const E2 &xp, const E3 &fp)']]], + ['isclose_5',['isclose',['../group__classif__functions.html#ga94330518c2d0f78691dc8bb4b27eb72a',1,'xt']]], + ['isfinite_6',['isfinite',['../group__classif__functions.html#ga177a09c77ac16a253588403fe7cbeaec',1,'xt']]], + ['isin_7',['isin',['../group__logical__operators.html#gac71ec22119ac398c4c737d48197e5399',1,'xt::isin(E &&element, std::initializer_list< T > test_elements) noexcept'],['../group__logical__operators.html#gaf0995facdc63eee30636804c8296bb67',1,'xt::isin(E &&element, F &&test_elements) noexcept'],['../group__logical__operators.html#gae16e50a10ea871ad6bf8a42905db4b48',1,'xt::isin(E &&element, I &&test_elements_begin, I &&test_elements_end) noexcept']]], + ['isinf_8',['isinf',['../group__classif__functions.html#ga94db88dbac47fd2e3cce71c568332554',1,'xt']]], + ['isnan_9',['isnan',['../group__classif__functions.html#ga41ec7bcedb794bccf3535bac9c3142ab',1,'xt']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 000000000..50f94648a --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keep_0',['keep',['../namespacext.html#ab6dcd225400d75a98e0b048d7ed9b5c9',1,'xt']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 000000000..0ee14dcd2 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['layout_0',['layout',['../classxt_1_1xstrided__container.html#a475028ed0b0719aebc55afe8fc00728e',1,'xt::xstrided_container::layout()'],['../classxt_1_1xfunction.html#a40bd918815f66f76ad0f05d3e33fbdbb',1,'xt::xfunction::layout()'],['../classxt_1_1xoptional__assembly__base.html#a894c8a27844c4543906eb44fb33f579e',1,'xt::xoptional_assembly_base::layout()'],['../classxt_1_1xreducer.html#aeee3a89a9dd452a00cfd55cbbfd2aa17',1,'xt::xreducer::layout()'],['../classxt_1_1xbroadcast.html#aca1bb5d073d6fbbfec6e82cbc456cadd',1,'xt::xbroadcast::layout()'],['../classxt_1_1xfunctor__applier__base.html#a41a690f43f808ba326e0bd3e4ab19f95',1,'xt::xfunctor_applier_base::layout()'],['../classxt_1_1xmasked__view.html#a7f160d16d17eea921739b9ff1457c374',1,'xt::xmasked_view::layout()'],['../classxt_1_1xrepeat.html#a44b37d9a8b603737eec64e57ce108ad0',1,'xt::xrepeat::layout()'],['../classxt_1_1xstrided__view__base.html#a10da93fc02c2c53dde8d9f171ce053a6',1,'xt::xstrided_view_base::layout()'],['../classxt_1_1xview.html#aface2a61c07630c793d71241d13de29d',1,'xt::xview::layout()'],['../classxt_1_1xdynamic__view.html#ae3ff4c9cf2e6873fbc934e946f1b702b',1,'xt::xdynamic_view::layout()'],['../classxt_1_1xstrided__view.html#ae3ff4c9cf2e6873fbc934e946f1b702b',1,'xt::xstrided_view::layout()']]], + ['left_5fshift_1',['left_shift',['../group__bitwise__operators.html#ga2cd49affcc3745f02fbb43f1bed16ed1',1,'xt']]], + ['less_2',['less',['../group__comparison__operators.html#ga2c830ecb583258f639e710642dbf0d7c',1,'xt']]], + ['less_5fequal_3',['less_equal',['../group__comparison__operators.html#ga9e84bf652cf6e810f974a8bcb51f1511',1,'xt']]], + ['lgamma_4',['lgamma',['../group__err__functions.html#ga5216029cd6e56b81f5145041540d043e',1,'xt']]], + ['linspace_5',['linspace',['../namespacext.html#a84b4f2192981c30e7ee35fba2b164cb2',1,'xt']]], + ['load_5fcsv_6',['load_csv',['../namespacext.html#a1a7ff9a44466a0de5525ac507db04e6a',1,'xt']]], + ['load_5fnpy_7',['load_npy',['../namespacext.html#a09f40ac64487910bfee944c044c9739c',1,'xt::load_npy(std::istream &stream)'],['../namespacext.html#a2466a03b0fed69ae73a2e01490af1fec',1,'xt::load_npy(const std::string &filename)']]], + ['log_8',['log',['../group__exp__functions.html#gaaeb73f780e08001206f1f9ed9db161e1',1,'xt']]], + ['log10_9',['log10',['../group__exp__functions.html#gae6585ff00a0cf0fdcdf659639e8d1ca0',1,'xt']]], + ['log1p_10',['log1p',['../group__exp__functions.html#ga08b8fa80ab57f38bb87e8c01b943d7f7',1,'xt']]], + ['log2_11',['log2',['../group__exp__functions.html#gae08fcbd5914db4f5b2649f5333375d95',1,'xt']]], + ['logspace_12',['logspace',['../namespacext.html#ae448d7eb5de30ef12ca38ca7d6d15356',1,'xt']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 000000000..6663de8af --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['make_5flambda_5fxfunction_0',['make_lambda_xfunction',['../namespacext.html#a259a5c38335a33c4a6f8aff517494efb',1,'xt']]], + ['make_5fxshared_1',['make_xshared',['../namespacext.html#ab3cc0ff08a76f5d91bcb294a06f8c784',1,'xt']]], + ['map_2',['map',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#aed240e2021f2f3e9f8cba86234d24f2e',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['map_5fat_3',['map_at',['../classxt_1_1index__mapper_3_01xt_1_1xview_3_01_underlying_container_00_01_slices_8_8_8_01_4_01_4.html#ac6608a673491a49d7ff37d23aaa8ebeb',1,'xt::index_mapper< xt::xview< UnderlyingContainer, Slices... > >']]], + ['maximum_4',['maximum',['../group__basic__functions.html#ga72354e9ca3d4446608c32d77d78fc721',1,'xt']]], + ['mean_5',['mean',['../group__red__functions.html#gad0919b7cd9e5d8907363a2a146c1ec09',1,'xt']]], + ['median_6',['median',['../group__xt__xsort.html#gae6a650f8da9d0066e26ecda36ee293e4',1,'xt']]], + ['meshgrid_7',['meshgrid',['../namespacext.html#a513e9f91fb23575e3e35eff04c628e19',1,'xt']]], + ['minimum_8',['minimum',['../group__basic__functions.html#ga6ba20f491bf0a014df5a219461ac8c98',1,'xt']]], + ['minmax_9',['minmax',['../group__red__functions.html#gab752be31d54ec7e45daef9a5d3868030',1,'xt']]], + ['minus_5fassign_10',['minus_assign',['../classxt_1_1xsemantic__base.html#a9ae9f40db494b08455a84b3ba24e87e2',1,'xt::xsemantic_base']]], + ['modulus_5fassign_11',['modulus_assign',['../classxt_1_1xsemantic__base.html#a30eeb2e83b810139f5111c161055e041',1,'xt::xsemantic_base']]], + ['moveaxis_12',['moveaxis',['../group__xt__xmanipulation.html#ga2d8bcbb846f2efae57cf6fb4aa24625a',1,'xt']]], + ['multiplies_5fassign_13',['multiplies_assign',['../classxt_1_1xsemantic__base.html#aafe434601607910fc1d8e95dde649bff',1,'xt::xsemantic_base']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 000000000..26efb6150 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['nan_5fto_5fnum_0',['nan_to_num',['../group__nan__functions.html#gae82e0b56454b586ec1ffbf57d6d2122f',1,'xt']]], + ['nancumprod_1',['nancumprod',['../group__nan__functions.html#ga4fb43a2f434821dfec8464e84ad05de7',1,'xt']]], + ['nancumsum_2',['nancumsum',['../group__nan__functions.html#ga48eab6816103340e288db50e05f00e60',1,'xt']]], + ['nanmax_3',['nanmax',['../group__nan__functions.html#ga0e300ce1d00beec93e45d7aa0e308ceb',1,'xt']]], + ['nanmean_4',['nanmean',['../group__nan__functions.html#ga5ff43d5bf500e85b384c2c08d2ababe9',1,'xt']]], + ['nanmin_5',['nanmin',['../group__nan__functions.html#gaaade983a5b6b9406608d54f3ba37a264',1,'xt']]], + ['nanprod_6',['nanprod',['../group__nan__functions.html#gad63669d7342cc68dae7b15f3c49ca1c2',1,'xt']]], + ['nanstd_7',['nanstd',['../group__nan__functions.html#ga21421ea090897548b9199c1fdb3049be',1,'xt']]], + ['nansum_8',['nansum',['../group__nan__functions.html#gadbfe228ebc452fabfdbf4067274a471a',1,'xt']]], + ['nanvar_9',['nanvar',['../group__nan__functions.html#ga3c3fdce46c4143d595e11db1646f7d89',1,'xt']]], + ['nearbyint_10',['nearbyint',['../group__nearint__functions.html#ga297d1cfd2029ec779f3b2caf20cae56f',1,'xt']]], + ['newaxis_11',['newaxis',['../namespacext.html#a534914903c805a597a5fac60e60e7c43',1,'xt']]], + ['nonzero_12',['nonzero',['../group__logical__operators.html#ga9f570271ba6f20a0d6a5880fa4ae83cb',1,'xt']]], + ['norm_13',['norm',['../group__xt__xcomplex.html#gad3afef5ff535998e5dd0d95a979c54bf',1,'xt']]], + ['norm_5finduced_5fl1_14',['norm_induced_l1',['../group__red__functions.html#ga6756e0125ea6eaf41da4d72c863222ad',1,'xt']]], + ['norm_5finduced_5flinf_15',['norm_induced_linf',['../group__red__functions.html#ga32553e96de228c6a760ea1e7eac51dbd',1,'xt']]], + ['norm_5fl0_16',['norm_l0',['../group__red__functions.html#gad29e1eba5e05138bd5db7bfc577215f1',1,'xt']]], + ['norm_5fl1_17',['norm_l1',['../group__red__functions.html#ga75c1f16a4c45c0ded05f6a50f8245385',1,'xt']]], + ['norm_5fl2_18',['norm_l2',['../group__red__functions.html#ga612264ac7b3ed369ebe6da569e2bf7f5',1,'xt::norm_l2(E &&e, EVS es=EVS()) noexcept'],['../group__red__functions.html#gad8d838a048615ed661350fcd7af66d06',1,'xt::norm_l2(E &&e, X &&axes, EVS es=EVS()) noexcept']]], + ['norm_5flinf_19',['norm_linf',['../group__red__functions.html#gad3987362169c6b7f82dc4acaa012c65f',1,'xt']]], + ['norm_5flp_20',['norm_lp',['../group__red__functions.html#ga4f5622197f95e83dafec8394265fd750',1,'xt']]], + ['norm_5flp_5fto_5fp_21',['norm_lp_to_p',['../group__red__functions.html#gaa1062bcc8bc659e9a09a5816626d5575',1,'xt']]], + ['norm_5fsq_22',['norm_sq',['../group__red__functions.html#ga243ff01254cf5c1bcfe3ef6b6b67331d',1,'xt']]], + ['normalize_5fperiodic_23',['normalize_periodic',['../group__xt__xstrides.html#gafa51177b0954ec061327dab5d8055ddb',1,'xt']]], + ['not_5fequal_24',['not_equal',['../group__comparison__operators.html#ga014ea335af4e1334f9d95ca6f9b9f6ce',1,'xt']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 000000000..98cf99c36 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['ones_0',['ones',['../namespacext.html#a498ae15885758184e0ee9def889b6bfb',1,'xt']]], + ['ones_5flike_1',['ones_like',['../namespacext.html#a40664e859ef008b427ea6d8a013ebb96',1,'xt']]], + ['operator_21_2',['operator!',['../group__logical__operators.html#ga669c5968e594e618cd199674074c32e4',1,'xt']]], + ['operator_21_3d_3',['operator!=',['../group__comparison__operators.html#gaae699c5c8cda32f45372da2daee9a9b4',1,'xt::operator!=(const xexpression< E1 > &e1, const xexpression< E2 > &e2)'],['../namespacext.html#aafb4918c6aea49e7968e4ed024a70a99',1,'xt::operator!=(const xaxis_iterator< CT > &lhs, const xaxis_iterator< CT > &rhs)'],['../namespacext.html#a1e99b6c54f3a5fca29006d1b114e356d',1,'xt::operator!=(const xaxis_slice_iterator< CT > &lhs, const xaxis_slice_iterator< CT > &rhs)']]], + ['operator_25_4',['operator%',['../group__arithmetic__operators.html#gaa3c78e8ff8a284881563ccbdd64bf145',1,'xt']]], + ['operator_25_3d_5',['operator%=',['../classxt_1_1xsemantic__base.html#a097cecfc7ed32171204a465c057b21aa',1,'xt::xsemantic_base::operator%=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#afc0cf14e98f80e1a266aed5ab59d3a26',1,'xt::xsemantic_base::operator%=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a75cb70a24a3740144a49ca60edfa6b65',1,'xt::xfiltration::operator%=()']]], + ['operator_26_6',['operator&',['../group__bitwise__operators.html#ga0084d8f6f0f513d35a35e79f7fffc2fb',1,'xt']]], + ['operator_26_26_7',['operator&&',['../group__logical__operators.html#ga95f7645635520ba70e7d0d9b0e989205',1,'xt']]], + ['operator_26_3d_8',['operator&=',['../classxt_1_1xsemantic__base.html#a9e53cf500ff97971980632a01242e40f',1,'xt::xsemantic_base::operator&=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#aa64e63246393baa97cda0409dfe880f9',1,'xt::xsemantic_base::operator&=(const xexpression< E > &e) -> derived_type &']]], + ['operator_28_29_9',['operator()',['../classxt_1_1xindex__view.html#ab0eefdf0f3dedf19a78763643718e353',1,'xt::xindex_view::operator()(size_type idx=size_type(0))'],['../classxt_1_1xindex__view.html#aab9b1fd3d2f19db29b52cd9cad772a2d',1,'xt::xindex_view::operator()(size_type idx=size_type(0)) const'],['../classxt_1_1xcontainer.html#a6bcf87fdd442aa26095837b359d9b4e8',1,'xt::xcontainer::operator()(Args... args) -> reference'],['../classxt_1_1xcontainer.html#aeee2e07bb1f3e66193e5ef3432b4011a',1,'xt::xcontainer::operator()(Args... args) const -> const_reference'],['../classxt_1_1xfunction.html#af161015b6c0ce2dc7654f26b6e1a16c2',1,'xt::xfunction::operator()()'],['../classxt_1_1xgenerator.html#a5d2e22a7df365f2d238aef28715a46f8',1,'xt::xgenerator::operator()()'],['../classxt_1_1xoptional__assembly__base.html#aea309f566b610b826a2609bb32b63d25',1,'xt::xoptional_assembly_base::operator()(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#ab5abb6c1e1c8c57c1662421c5f679b5a',1,'xt::xoptional_assembly_base::operator()(Args... args) const -> const_reference'],['../classxt_1_1xreducer.html#a979a86f103f655328d35e67fcc5bca7b',1,'xt::xreducer::operator()()'],['../classxt_1_1xbroadcast.html#afca42261ce09c53e109862b63ea8bf87',1,'xt::xbroadcast::operator()()'],['../classxt_1_1xfunctor__applier__base.html#a5b63f2bdd4620e52cc453fafd78831d3',1,'xt::xfunctor_applier_base::operator()(Args... args) -> reference'],['../classxt_1_1xfunctor__applier__base.html#a63939aecf0c7f315aab8119a2790aa69',1,'xt::xfunctor_applier_base::operator()(Args... args) const -> const_reference'],['../classxt_1_1xmasked__view.html#a871b0392cccaac8fb981273bb5008186',1,'xt::xmasked_view::operator()(Args... args) -> reference'],['../classxt_1_1xmasked__view.html#a7cd2236961bba48f19933c8450052790',1,'xt::xmasked_view::operator()(Args... args) const -> const_reference'],['../classxt_1_1xrepeat.html#aa896d82b715c106f2424266feabfe7d9',1,'xt::xrepeat::operator()()'],['../classxt_1_1xstrided__view__base.html#a567f05613c6dfb65b68289e994d09183',1,'xt::xstrided_view_base::operator()(Args... args) -> reference'],['../classxt_1_1xstrided__view__base.html#a986bbe34c4e1ffb0948b9d9a2238c7ce',1,'xt::xstrided_view_base::operator()(Args... args) const -> const_reference'],['../classxt_1_1xview.html#a16ffe8d0c8b973c2fa28e75c2f353437',1,'xt::xview::operator()(Args... args) -> reference'],['../classxt_1_1xview.html#a9bfc52bb7a7844eb976a096875d6a5a6',1,'xt::xview::operator()(Args... args) const -> const_reference']]], + ['operator_2a_10',['operator*',['../classxt_1_1xaxis__iterator.html#a150d158b5c15befbed66477acf3ea890',1,'xt::xaxis_iterator::operator*()'],['../classxt_1_1xaxis__slice__iterator.html#a8250c9f5f36a93e0e3ff856f9bd6ab2b',1,'xt::xaxis_slice_iterator::operator*()'],['../group__arithmetic__operators.html#gaee209a211df9c1fdd671fe786c01eca6',1,'xt::operator*()']]], + ['operator_2a_3d_11',['operator*=',['../classxt_1_1xsemantic__base.html#abc6dededcc7548c86d0e680723332507',1,'xt::xsemantic_base::operator*=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#aaec30e9ec0a24602c707935671e72798',1,'xt::xsemantic_base::operator*=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a5911e1b618eb8b240f8f93accccda5d7',1,'xt::xfiltration::operator*=()']]], + ['operator_2b_12',['operator+',['../group__arithmetic__operators.html#ga4f6fda1324731f7d8c7bedfd786fd711',1,'xt::operator+(E &&e) noexcept -> detail::xfunction_type_t< detail::identity, E >'],['../group__arithmetic__operators.html#ga3a0012dd54e6eddb1dc1499bda3835fc',1,'xt::operator+(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::plus, E1, E2 >']]], + ['operator_2b_2b_13',['operator++',['../classxt_1_1xaxis__iterator.html#aa6a381b3f4e53a2b7b2a0385e2675b65',1,'xt::xaxis_iterator::operator++()'],['../classxt_1_1xaxis__iterator.html#af118e8a489b3ee60287f8848a42c3ec8',1,'xt::xaxis_iterator::operator++(int)'],['../classxt_1_1xaxis__slice__iterator.html#a6712f741da8a93fa4c0785888d008608',1,'xt::xaxis_slice_iterator::operator++()'],['../classxt_1_1xaxis__slice__iterator.html#a58c7c5d0bec327a8fb5d1f63b6122822',1,'xt::xaxis_slice_iterator::operator++(int)']]], + ['operator_2b_3d_14',['operator+=',['../classxt_1_1xsemantic__base.html#a8d5c560eb7c807fb0806864fb0b46c50',1,'xt::xsemantic_base::operator+=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#a9e31dbd09cdb7b7676d33243732f3ac7',1,'xt::xsemantic_base::operator+=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a2fae2b71a4134ec799668a13cdc60d9a',1,'xt::xfiltration::operator+=()']]], + ['operator_2d_15',['operator-',['../group__arithmetic__operators.html#gae9984fddddb53d90fcef38c017ebb5c9',1,'xt::operator-(E &&e) noexcept -> detail::xfunction_type_t< detail::negate, E >'],['../group__arithmetic__operators.html#gadcc7da6c96325690024067869af4e3bf',1,'xt::operator-(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::minus, E1, E2 >']]], + ['operator_2d_3d_16',['operator-=',['../classxt_1_1xsemantic__base.html#afa46b608eb0ee224aa7592404ba01b20',1,'xt::xsemantic_base::operator-=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#aa9edf1d0dba25f33a6f1955dfe333d66',1,'xt::xsemantic_base::operator-=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#acfb314430c89b71133595cb83f84a75e',1,'xt::xfiltration::operator-=()']]], + ['operator_2d_3e_17',['operator->',['../classxt_1_1xaxis__iterator.html#a265baea7c543cabd5f9b074d39371310',1,'xt::xaxis_iterator::operator->()'],['../classxt_1_1xaxis__slice__iterator.html#a98d80126e4d0c78658fabe73303913bb',1,'xt::xaxis_slice_iterator::operator->()']]], + ['operator_2f_18',['operator/',['../group__arithmetic__operators.html#ga5c9e3cca169a86ea0974e67d562f7f8c',1,'xt']]], + ['operator_2f_3d_19',['operator/=',['../classxt_1_1xsemantic__base.html#af008542eab3a41140cfe12dca74232ee',1,'xt::xsemantic_base::operator/=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#a2ff7796563ea73e3aff6ce17ff2c1f42',1,'xt::xsemantic_base::operator/=(const xexpression< E > &e) -> derived_type &'],['../classxt_1_1xfiltration.html#a2bc58cd24579e8d62efd55fdb750ed40',1,'xt::xfiltration::operator/=()']]], + ['operator_3c_20',['operator<',['../group__comparison__operators.html#ga2adbdc9609fe51aa3e50955fe039ba67',1,'xt']]], + ['operator_3c_3c_21',['operator<<',['../group__bitwise__operators.html#gaa7b48fdbaa2c12656338470eb3cc5c8e',1,'xt']]], + ['operator_3c_3d_22',['operator<=',['../group__comparison__operators.html#gaf7b3cb0fe146e5a95a750a1291bfdcca',1,'xt']]], + ['operator_3d_23',['operator=',['../classxt_1_1xarray__container.html#ac47c631a33e292371fab8acff451f269',1,'xt::xarray_container::operator=()'],['../classxt_1_1xarray__adaptor.html#aece6f91aa92298df35846b524613828b',1,'xt::xarray_adaptor::operator=()'],['../classxt_1_1xfixed__container.html#a02686e37949d2c9076cd7b5656e7db3b',1,'xt::xfixed_container::operator=()'],['../classxt_1_1xfixed__adaptor.html#a5eba04b65afb8377a248f1253605f7d2',1,'xt::xfixed_adaptor::operator=()'],['../classxt_1_1xtensor__container.html#a1b82b2aea047cca3d11106062721c34c',1,'xt::xtensor_container::operator=()'],['../classxt_1_1xtensor__adaptor.html#af034feb75cd6690b25a4c6b7b4a20bc5',1,'xt::xtensor_adaptor::operator=()'],['../classxt_1_1xtensor__view.html#a595e97c93a52f5f196d00396435ec76b',1,'xt::xtensor_view::operator=()'],['../classxt_1_1xoptional__assembly.html#af67042d373194546b43afffb160ce687',1,'xt::xoptional_assembly::operator=()'],['../classxt_1_1xoptional__assembly__adaptor.html#ae9fc0069591e77f0b879152b82032987',1,'xt::xoptional_assembly_adaptor::operator=()'],['../classxt_1_1xfunctor__view.html#a9e41f726bcd647106ca9f420a045d228',1,'xt::xfunctor_view::operator=()'],['../classxt_1_1xfunctor__adaptor.html#a4eaf31a6089dc47d2e772fa6590514bd',1,'xt::xfunctor_adaptor::operator=()'],['../classxt_1_1xindex__view.html#aac159eb55755735609a3095f1e73bf3a',1,'xt::xindex_view::operator=()'],['../classxt_1_1xfiltration.html#a13d467d1d2a39fb0b3cdee0b60d2db68',1,'xt::xfiltration::operator=()'],['../classxt_1_1xstrided__view.html#a48ae99185454667efcd738a48ddc43bf',1,'xt::xstrided_view::operator=()'],['../classxt_1_1xview.html#af7f042302a75ce76b1ce094b38529188',1,'xt::xview::operator=()']]], + ['operator_3d_3d_24',['operator==',['../group__comparison__operators.html#gaa82e19b7daac1f55388a62f89cd5f9c7',1,'xt::operator==(const xexpression< E1 > &e1, const xexpression< E2 > &e2)'],['../namespacext.html#a49dd71cabe349f77ec771f01fc46aeb3',1,'xt::operator==(const xaxis_iterator< CT > &lhs, const xaxis_iterator< CT > &rhs)'],['../namespacext.html#aa8afbf971ca9887515e974de1775cf03',1,'xt::operator==(const xaxis_slice_iterator< CT > &lhs, const xaxis_slice_iterator< CT > &rhs)']]], + ['operator_3e_25',['operator>',['../group__comparison__operators.html#ga3addaced4bd7bdacea4a842d9d6c850a',1,'xt']]], + ['operator_3e_3d_26',['operator>=',['../group__comparison__operators.html#gaa40baca1e4f53789261cd3e8736a98ef',1,'xt']]], + ['operator_3e_3e_27',['operator>>',['../group__bitwise__operators.html#gace6ce969d4a7bdee37e410309448df92',1,'xt']]], + ['operator_5b_5d_28',['operator[]',['../classxt_1_1xconst__accessible.html#a125b98dd7a0ea4919f19b69256930ff8',1,'xt::xconst_accessible::operator[]()'],['../classxt_1_1xaccessible.html#a45649ae70e8ea6cbda28caa423347c96',1,'xt::xaccessible::operator[]()'],['../classxt_1_1xoptional__assembly__base.html#ab9a1749164786ed873b216223098fe31',1,'xt::xoptional_assembly_base::operator[](const S &index) -> disable_integral_t< S, reference >'],['../classxt_1_1xoptional__assembly__base.html#af783d13bcc3bbd5082fdc79f8f2aeee8',1,'xt::xoptional_assembly_base::operator[](const S &index) const -> disable_integral_t< S, const_reference >'],['../classxt_1_1xindex__view.html#a5f26e28734c1db46865b6eeb39009a2a',1,'xt::xindex_view::operator[](const S &index) -> disable_integral_t< S, reference >'],['../classxt_1_1xindex__view.html#a2a2211fb97b8bbb0b6a8ea3e4ac6c0b5',1,'xt::xindex_view::operator[](const S &index) const -> disable_integral_t< S, const_reference >']]], + ['operator_5e_29',['operator^',['../group__bitwise__operators.html#ga85c9a2b613116854aa104a4005f2a0f4',1,'xt']]], + ['operator_5e_3d_30',['operator^=',['../classxt_1_1xsemantic__base.html#a7c74b14f291bccf501760aa166cd7bd6',1,'xt::xsemantic_base::operator^=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#a61d5bbbb065e48c74db69c4276673a34',1,'xt::xsemantic_base::operator^=(const xexpression< E > &e) -> derived_type &']]], + ['operator_7c_31',['operator|',['../group__bitwise__operators.html#gac1e3650f1eae70c7ab951cce7df0b7ac',1,'xt']]], + ['operator_7c_3d_32',['operator|=',['../classxt_1_1xsemantic__base.html#a5fe0e38a7065e67565d46179727fe399',1,'xt::xsemantic_base::operator|=(const E &e) -> disable_xexpression< E, derived_type & >'],['../classxt_1_1xsemantic__base.html#ab09ec4698094a4a1efbaa1ccbb609d42',1,'xt::xsemantic_base::operator|=(const xexpression< E > &e) -> derived_type &']]], + ['operator_7c_7c_33',['operator||',['../group__logical__operators.html#gab0fb5db8b5da410253c08053a1c9c518',1,'xt']]], + ['operator_7e_34',['operator~',['../group__bitwise__operators.html#ga61f9831f1f2da86982f23d8e4e45e3db',1,'xt']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 000000000..182dfeb8b --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['pad_0',['pad',['../namespacext.html#a030cc6fd43c1f7a452a4ed069881a4fa',1,'xt::pad(E &&e, const std::vector< std::vector< S > > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)'],['../namespacext.html#abd5658ce24f2035e2175546c9ca6ec59',1,'xt::pad(E &&e, const std::vector< S > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)'],['../namespacext.html#ad10c047180a5ce9129d25c180369ad00',1,'xt::pad(E &&e, S pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)']]], + ['partition_1',['partition',['../group__xt__xsort.html#ga443845cd4d1992ae5e7ec155529b1636',1,'xt']]], + ['periodic_2',['periodic',['../classxt_1_1xconst__accessible.html#a34d4a20e640737443fd0a7266b77b2b2',1,'xt::xconst_accessible::periodic()'],['../classxt_1_1xaccessible.html#a038772dfb1936fa221a220c5ded4ac05',1,'xt::xaccessible::periodic()'],['../classxt_1_1xoptional__assembly__base.html#a1b77e82dc265d815b17f17d337d96636',1,'xt::xoptional_assembly_base::periodic(Args... args) -> reference'],['../classxt_1_1xoptional__assembly__base.html#a282a52135c367ae4d80db9575f41d3a5',1,'xt::xoptional_assembly_base::periodic(Args... args) const -> const_reference']]], + ['plus_5fassign_3',['plus_assign',['../classxt_1_1xsemantic__base.html#aabefbeb56a74c2098c0fe976227ebdc8',1,'xt::xsemantic_base']]], + ['pow_4',['pow',['../group__pow__functions.html#ga726d449a0411dabbe7451c38cec235ae',1,'xt::pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >'],['../group__pow__functions.html#ga9cf15362f1892675576f2298c01e2b6b',1,'xt::pow(E &&e) noexcept']]], + ['prod_5',['prod',['../group__red__functions.html#ga90d729a5dc08b66740997ad3e7fdb0c1',1,'xt']]] +]; diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 000000000..69f572c5c --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['quantile_0',['quantile',['../group__xt__xsort.html#ga7dd83e71409830d5211608257f18e361',1,'xt::quantile(E &&e, const P &probas, std::ptrdiff_t axis, T alpha, T beta)'],['../group__xt__xsort.html#gae3b1b26f618ece7324455223330d5780',1,'xt::quantile(E &&e, const P &probas, T alpha, T beta)'],['../group__xt__xsort.html#ga632a72d1def84debe56b68d79a451f11',1,'xt::quantile(E &&e, const P &probas, std::ptrdiff_t axis, quantile_method method=quantile_method::linear)'],['../group__xt__xsort.html#gaa8159912f652b20d4477c0187dfb301f',1,'xt::quantile(E &&e, const P &probas, quantile_method method=quantile_method::linear)']]] +]; diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 000000000..643e554bb --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['a_20shape_20array_0',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['accumulating_20functions_1',['accumulating functions',['../group__acc__functions.html',1,'']]], + ['adaptors_20of_20stl_20like_20containers_2',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['and_20flat_20indices_3',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['and_20gamma_20functions_4',['Error and gamma functions',['../group__err__functions.html',1,'']]], + ['arithmetic_20operators_5',['Arithmetic operators',['../group__arithmetic__operators.html',1,'']]], + ['array_6',['array',['../group__xt__xchunked__array.html',1,'Chunked array'],['../group__xt__xshape.html',1,'Support functions to get/check a shape array.']]], + ['array_20indices_20and_20flat_20indices_7',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['array_20manipulation_8',['Array manipulation',['../group__xt__xmanipulation.html',1,'']]] +]; diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 000000000..1cf26ce6d --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['basic_20functions_0',['Basic functions',['../group__basic__functions.html',1,'']]], + ['between_20array_20indices_20and_20flat_20indices_1',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['bitwise_20operators_2',['Bitwise operators',['../group__bitwise__operators.html',1,'']]] +]; diff --git a/search/groups_10.js b/search/groups_10.js new file mode 100644 index 000000000..03d3dc25e --- /dev/null +++ b/search/groups_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['to_20get_20check_20a_20shape_20array_0',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['trigonometric_20function_1',['Trigonometric function',['../group__trigo__functions.html',1,'']]] +]; diff --git a/search/groups_11.js b/search/groups_11.js new file mode 100644 index 000000000..09fb09c74 --- /dev/null +++ b/search/groups_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['view_0',['Functor view',['../group__xt__xfunctor__view.html',1,'']]] +]; diff --git a/search/groups_2.js b/search/groups_2.js new file mode 100644 index 000000000..9de1581a5 --- /dev/null +++ b/search/groups_2.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['casting_20operators_0',['Casting operators',['../group__casting__operators.html',1,'']]], + ['check_20a_20shape_20array_1',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['chunked_20array_2',['Chunked array',['../group__xt__xchunked__array.html',1,'']]], + ['classification_20functions_3',['Classification functions',['../group__classif__functions.html',1,'']]], + ['comparison_20operators_4',['Comparison operators',['../group__comparison__operators.html',1,'']]], + ['complex_20numbers_5',['Complex numbers',['../group__xt__xcomplex.html',1,'']]], + ['containers_6',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]] +]; diff --git a/search/groups_3.js b/search/groups_3.js new file mode 100644 index 000000000..9666e65e3 --- /dev/null +++ b/search/groups_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['digitize_20helpers_0',['Digitize helpers',['../group__digitize.html',1,'']]] +]; diff --git a/search/groups_4.js b/search/groups_4.js new file mode 100644 index 000000000..754bbd138 --- /dev/null +++ b/search/groups_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['error_20and_20gamma_20functions_0',['Error and gamma functions',['../group__err__functions.html',1,'']]], + ['evaluation_1',['Evaluation',['../group__xt__xeval.html',1,'']]], + ['exponential_20functions_2',['Exponential functions',['../group__exp__functions.html',1,'']]] +]; diff --git a/search/groups_5.js b/search/groups_5.js new file mode 100644 index 000000000..7922cedd7 --- /dev/null +++ b/search/groups_5.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['flat_20indices_0',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['floating_20point_20operations_1',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['function_2',['Trigonometric function',['../group__trigo__functions.html',1,'']]], + ['functions_3',['functions',['../group__acc__functions.html',1,'accumulating functions'],['../group__basic__functions.html',1,'Basic functions'],['../group__classif__functions.html',1,'Classification functions'],['../group__err__functions.html',1,'Error and gamma functions'],['../group__exp__functions.html',1,'Exponential functions'],['../group__histogram.html',1,'Histogram functions'],['../group__hyper__functions.html',1,'Hyperbolic functions'],['../group__nan__functions.html',1,'nan functions'],['../group__pow__functions.html',1,'Power functions'],['../group__red__functions.html',1,'reducing functions'],['../group__xt__xsort.html',1,'Sorting functions.']]], + ['functions_20swich_20between_20array_20indices_20and_20flat_20indices_4',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['functions_20to_20get_20check_20a_20shape_20array_5',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['functor_20view_6',['Functor view',['../group__xt__xfunctor__view.html',1,'']]] +]; diff --git a/search/groups_6.js b/search/groups_6.js new file mode 100644 index 000000000..be56a94ff --- /dev/null +++ b/search/groups_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['gamma_20functions_0',['Error and gamma functions',['../group__err__functions.html',1,'']]], + ['get_20check_20a_20shape_20array_1',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]] +]; diff --git a/search/groups_7.js b/search/groups_7.js new file mode 100644 index 000000000..50915bff4 --- /dev/null +++ b/search/groups_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['helpers_0',['helpers',['../group__digitize.html',1,'Digitize helpers'],['../group__searchsorted.html',1,'Searchsorted helpers']]], + ['histogram_20functions_1',['Histogram functions',['../group__histogram.html',1,'']]], + ['hyperbolic_20functions_2',['Hyperbolic functions',['../group__hyper__functions.html',1,'']]] +]; diff --git a/search/groups_8.js b/search/groups_8.js new file mode 100644 index 000000000..ebf805b22 --- /dev/null +++ b/search/groups_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['indices_0',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['indices_20and_20flat_20indices_1',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['integer_20floating_20point_20operations_2',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]] +]; diff --git a/search/groups_9.js b/search/groups_9.js new file mode 100644 index 000000000..546b43aa2 --- /dev/null +++ b/search/groups_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['like_20containers_0',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['logical_20operators_1',['Logical operators',['../group__logical__operators.html',1,'']]] +]; diff --git a/search/groups_a.js b/search/groups_a.js new file mode 100644 index 000000000..6b560e40d --- /dev/null +++ b/search/groups_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['manipulation_0',['Array manipulation',['../group__xt__xmanipulation.html',1,'']]] +]; diff --git a/search/groups_b.js b/search/groups_b.js new file mode 100644 index 000000000..5640835b6 --- /dev/null +++ b/search/groups_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['nan_20functions_0',['nan functions',['../group__nan__functions.html',1,'']]], + ['nearest_20integer_20floating_20point_20operations_1',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['numbers_2',['Complex numbers',['../group__xt__xcomplex.html',1,'']]] +]; diff --git a/search/groups_c.js b/search/groups_c.js new file mode 100644 index 000000000..76764b9b8 --- /dev/null +++ b/search/groups_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['of_20stl_20like_20containers_0',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['operations_1',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['operators_2',['operators',['../group__arithmetic__operators.html',1,'Arithmetic operators'],['../group__bitwise__operators.html',1,'Bitwise operators'],['../group__casting__operators.html',1,'Casting operators'],['../group__comparison__operators.html',1,'Comparison operators'],['../group__logical__operators.html',1,'Logical operators']]] +]; diff --git a/search/groups_d.js b/search/groups_d.js new file mode 100644 index 000000000..6e11c4028 --- /dev/null +++ b/search/groups_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['point_20operations_0',['Nearest integer floating point operations',['../group__nearint__functions.html',1,'']]], + ['power_20functions_1',['Power functions',['../group__pow__functions.html',1,'']]] +]; diff --git a/search/groups_e.js b/search/groups_e.js new file mode 100644 index 000000000..0164190f5 --- /dev/null +++ b/search/groups_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['reducing_20functions_0',['reducing functions',['../group__red__functions.html',1,'']]] +]; diff --git a/search/groups_f.js b/search/groups_f.js new file mode 100644 index 000000000..7e5656648 --- /dev/null +++ b/search/groups_f.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['searchsorted_20helpers_0',['Searchsorted helpers',['../group__searchsorted.html',1,'']]], + ['shape_20array_1',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['sorting_20functions_2',['Sorting functions.',['../group__xt__xsort.html',1,'']]], + ['stl_20like_20containers_3',['Adaptors of STL-like containers',['../group__xt__xadapt.html',1,'']]], + ['support_20functions_20swich_20between_20array_20indices_20and_20flat_20indices_4',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]], + ['support_20functions_20to_20get_20check_20a_20shape_20array_5',['Support functions to get/check a shape array.',['../group__xt__xshape.html',1,'']]], + ['swich_20between_20array_20indices_20and_20flat_20indices_6',['Support functions swich between array indices and flat indices',['../group__xt__xstrides.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 000000000..ffb6cf0d0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 000000000..4122773f9 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 000000000..553dba877 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 000000000..c906f84c8 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 000000000..16f6e9ab6 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['xt_0',['xt',['../namespacext.html',1,'']]] +]; diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 000000000..4d858458c --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['deprecated_20list_0',['Deprecated List',['../deprecated.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 000000000..1ad91e39e --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['list_0',['Deprecated List',['../deprecated.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 000000000..a53214fcd --- /dev/null +++ b/search/search.css @@ -0,0 +1,286 @@ +/*---------------- Search Box */ + +#MSearchBox { + position: absolute; + right: 5px; +} +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 000000000..666af01e5 --- /dev/null +++ b/search/search.js @@ -0,0 +1,694 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +const SEARCH_COOKIE_NAME = ''+'search_grp'; + +const searchResults = new SearchResults(); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) { + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + function getXPos(item) { + let x = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; + } + + function getYPos(item) { + let y = 0; + if (item.offsetWidth) { + while (item && item!=document.body) { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; + } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = () => document.getElementById("MSearchField"); + this.DOMSearchSelect = () => document.getElementById("MSearchSelect"); + this.DOMSearchSelectWindow = () => document.getElementById("MSearchSelectWindow"); + this.DOMPopupSearchResults = () => document.getElementById("MSearchResults"); + this.DOMPopupSearchResultsWindow = () => document.getElementById("MSearchResultsWindow"); + this.DOMSearchClose = () => document.getElementById("MSearchClose"); + this.DOMSearchBox = () => document.getElementById("MSearchBox"); + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() { + const searchSelectWindow = this.DOMSearchSelectWindow(); + const searchField = this.DOMSearchSelect(); + + const left = getXPos(searchField); + const top = getYPos(searchField) + searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) { + if (this.keyTimeout) { // kill running timer + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + const e = evt ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) { + if (e.shiftKey==1) { + this.OnSearchSelectShow(); + const win=this.DOMSearchSelectWindow(); + for (let i=0;i do a search + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) { // Up + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() { + this.keyTimeout = 0; + + // strip leading whitespace + const searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + const code = searchValue.toLowerCase().charCodeAt(0); + let idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) { // surrogate pair + idxChar = searchValue.substr(0, 2); + } + + let jsFile; + let idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) { + const hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + const loadJS = function(url, impl, loc) { + const scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + const domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + const domSearchBox = this.DOMSearchBox(); + const domPopupSearchResults = this.DOMPopupSearchResults(); + const domSearchClose = this.DOMSearchClose(); + const resultsPath = this.resultsPath; + + const handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') { + domSearchClose.style.display = 'inline-block'; + let left = getXPos(domSearchBox) + 150; + let top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + const maxWidth = document.body.clientWidth; + const maxHeight = document.body.clientHeight; + let width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + let height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } else if (!isActive) { // directly remove the panel + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults() { + + function convertToId(search) { + let result = ''; + for (let i=0;i. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) { + const parentElement = document.getElementById(id); + let element = parentElement.firstChild; + + while (element && element!=parentElement) { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { + element = element.firstChild; + } else if (element.nextSibling) { + element = element.nextSibling; + } else { + do { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) { + const element = this.FindChildElement(id); + if (element) { + if (element.style.display == 'block') { + element.style.display = 'none'; + } else { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) { + if (!search) { // get search word from URL + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + const resultRows = document.getElementsByTagName("div"); + let matches = 0; + + let i = 0; + while (i < resultRows.length) { + const row = resultRows.item(i); + if (row.className == "SRResult") { + let rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) { + row.style.display = 'block'; + matches++; + } else { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) { // no results + document.getElementById("NoMatches").style.display='block'; + } else { // at least one result + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) { + let focusItem; + for (;;) { + const focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') { + break; + } else if (!focusItem) { // last element + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) { + if (e.type == "keydown") { + this.repeatOn = false; + this.lastKey = e.keyCode; + } else if (e.type == "keypress") { + if (!this.repeatOn) { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } else if (e.type == "keyup") { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + const newIndex = itemIndex-1; + let focusItem = this.NavPrev(newIndex); + if (focusItem) { + let child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') { // children visible + let n=0; + let tmpElem; + for (;;) { // search for last child + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) { + focusItem = tmpElem; + } else { // found it! + break; + } + n++; + } + } + } + if (focusItem) { + focusItem.focus(); + } else { // return focus to search field + document.getElementById("MSearchField").focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = itemIndex+1; + let focusItem; + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') { // children visible + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } else if (this.lastKey==39) { // Right + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } else if (this.lastKey==37) { // Left + const item = document.getElementById('Item'+itemIndex); + const elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) { + const e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) { // Up + if (childIndex>0) { + const newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } else { // already at first child, jump to parent + document.getElementById('Item'+itemIndex).focus(); + } + } else if (this.lastKey==40) { // Down + const newIndex = childIndex+1; + let elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) { // last child, jump to parent next parent + elem = this.NavNext(itemIndex+1); + } + if (elem) { + elem.focus(); + } + } else if (this.lastKey==27) { // Escape + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } else if (this.lastKey==13) { // Enter + return true; + } + return false; + } +} + +function createResults(resultsPath) { + + function setKeyActions(elem,action) { + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); + } + + function setClassAttr(elem,attr) { + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); + } + + const results = document.getElementById("SRResults"); + results.innerHTML = ''; + searchData.forEach((elem,index) => { + const id = elem[0]; + const srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + const srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + const srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+index); + setKeyActions(srLink,'return searchResults.Nav(event,'+index+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = elem[1][0]; + srEntry.appendChild(srLink); + if (elem[1].length==2) { // single result + srLink.setAttribute('href',resultsPath+elem[1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (elem[1][1][1]) { + srLink.setAttribute('target','_parent'); + } else { + srLink.setAttribute('target','_blank'); + } + const srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = elem[1][1][2]; + srEntry.appendChild(srScope); + } else { // multiple results + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + const srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (let c=0; c-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..8367416d757fd7b6dc4272b6432dc75a75abd068 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhFKy35^fiT zT~&lUj3=cDh^%3HDY9k5CEku}PHXNoNC(_$U3XPb&Q*ME25pT;2(*BOgAf<+R$lzakPG`kF31()Fx{L5Wrac|GQzjeE= zueY1`Ze{#x<8=S|`~MgGetGce)#vN&|J{Cd^tS%;tBYTo?+^d68<#n_Y_xx`J||4O V@QB{^CqU0Kc)I$ztaD0e0svEzbJzd? literal 0 HcmV?d00001 diff --git a/structxt_1_1acquire__ownership.html b/structxt_1_1acquire__ownership.html new file mode 100644 index 000000000..989bc6bef --- /dev/null +++ b/structxt_1_1acquire__ownership.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::acquire_ownership Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::acquire_ownership Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 33 of file xbuffer_adaptor.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1aligned__mode.html b/structxt_1_1aligned__mode.html new file mode 100644 index 000000000..0d551877e --- /dev/null +++ b/structxt_1_1aligned__mode.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::aligned_mode Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::aligned_mode Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 93 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1big__promote__value__type-members.html b/structxt_1_1big__promote__value__type-members.html new file mode 100644 index 000000000..34e4af136 --- /dev/null +++ b/structxt_1_1big__promote__value__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::big_promote_value_type< E > Member List
    +
    +
    + +

    This is the complete list of members for xt::big_promote_value_type< E >, including all inherited members.

    + + +
    type typedef (defined in xt::big_promote_value_type< E >)xt::big_promote_value_type< E >
    +
    + + + + diff --git a/structxt_1_1big__promote__value__type.html b/structxt_1_1big__promote__value__type.html new file mode 100644 index 000000000..7aa7d188b --- /dev/null +++ b/structxt_1_1big__promote__value__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::big_promote_value_type< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::big_promote_value_type< E > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtl::big_promote_type_t<typename std::decay_t<E>::value_type>
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::big_promote_value_type< E >
    +

    Definition at line 188 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::big_promote_value_type< E >::type = xtl::big_promote_type_t<typename std::decay_t<E>::value_type>
    +
    + +

    Definition at line 190 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types.html b/structxt_1_1buffer__inner__types.html new file mode 100644 index 000000000..cef112d4b --- /dev/null +++ b/structxt_1_1buffer__inner__types.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::buffer_inner_types< D > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::buffer_inner_types< D > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class D>
    +struct xt::buffer_inner_types< D >
    +

    Definition at line 259 of file xbuffer_adaptor.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html b/structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html new file mode 100644 index 000000000..4eecfbb5e --- /dev/null +++ b/structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html @@ -0,0 +1,133 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > > Member List
    +
    +
    + +

    This is the complete list of members for xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >, including all inherited members.

    + + + + + + + + + + + + + + +
    base_type typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    const_iterator typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    const_pointer typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    const_reference typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    const_reverse_iterator typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    difference_type typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    index_type typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    iterator typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    pointer typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    reference typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    reverse_iterator typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    size_type typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    value_type typedef (defined in xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >)xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html b/structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..4aea95193 --- /dev/null +++ b/structxt_1_1buffer__inner__types_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html @@ -0,0 +1,393 @@ + + + + + + + +xtensor: xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using base_type = detail::buffer_storage_t<CP, A, O>
     
    using value_type = typename base_type::value_type
     
    using reference = typename base_type::reference
     
    using const_reference = typename base_type::const_reference
     
    using pointer = typename base_type::pointer
     
    using const_pointer = typename base_type::const_pointer
     
    using size_type = typename base_type::size_type
     
    using difference_type = typename base_type::difference_type
     
    using iterator = pointer
     
    using const_iterator = const_pointer
     
    using reverse_iterator = std::reverse_iterator<iterator>
     
    using const_reverse_iterator = std::reverse_iterator<const_iterator>
     
    using index_type = size_type
     
    +

    Detailed Description

    +
    template<class CP, class O, class A>
    +struct xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >
    +

    Definition at line 347 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::base_type = detail::buffer_storage_t<CP, A, O>
    +
    + +

    Definition at line 349 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::const_iterator = const_pointer
    +
    + +

    Definition at line 358 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::const_pointer = typename base_type::const_pointer
    +
    + +

    Definition at line 354 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::const_reference = typename base_type::const_reference
    +
    + +

    Definition at line 352 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::const_reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 360 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::difference_type = typename base_type::difference_type
    +
    + +

    Definition at line 356 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ index_type

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::index_type = size_type
    +
    + +

    Definition at line 361 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::iterator = pointer
    +
    + +

    Definition at line 357 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::pointer = typename base_type::pointer
    +
    + +

    Definition at line 353 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::reference = typename base_type::reference
    +
    + +

    Definition at line 351 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::reverse_iterator = std::reverse_iterator<iterator>
    +
    + +

    Definition at line 359 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::size_type = typename base_type::size_type
    +
    + +

    Definition at line 355 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::buffer_inner_types< xbuffer_adaptor< CP, O, A > >::value_type = typename base_type::value_type
    +
    + +

    Definition at line 350 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html b/structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html new file mode 100644 index 000000000..260875064 --- /dev/null +++ b/structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::buffer_inner_types< xiterator_adaptor< I, CI > > Member List
    +
    +
    + +

    This is the complete list of members for xt::buffer_inner_types< xiterator_adaptor< I, CI > >, including all inherited members.

    + + + + + + + + + + + + + + + +
    const_iterator typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    const_pointer typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    const_reference typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    const_reverse_iterator typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    const_traits typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    difference_type typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    index_type typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    iterator typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    pointer typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    reference typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    reverse_iterator typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    size_type typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    traits typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    value_type typedef (defined in xt::buffer_inner_types< xiterator_adaptor< I, CI > >)xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html b/structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html new file mode 100644 index 000000000..37f7b59f1 --- /dev/null +++ b/structxt_1_1buffer__inner__types_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html @@ -0,0 +1,413 @@ + + + + + + + +xtensor: xt::buffer_inner_types< xiterator_adaptor< I, CI > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::buffer_inner_types< xiterator_adaptor< I, CI > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = std::iterator_traits<I>
     
    using const_traits = std::iterator_traits<CI>
     
    using value_type = std::common_type_t<typename traits::value_type, typename const_traits::value_type>
     
    using reference = typename traits::reference
     
    using const_reference = typename const_traits::reference
     
    using pointer = typename traits::pointer
     
    using const_pointer = typename const_traits::pointer
     
    using difference_type = std::common_type_t<typename traits::difference_type, typename const_traits::difference_type>
     
    using size_type = std::make_unsigned_t<difference_type>
     
    using iterator = I
     
    using const_iterator = CI
     
    using reverse_iterator = std::reverse_iterator<iterator>
     
    using const_reverse_iterator = std::reverse_iterator<const_iterator>
     
    using index_type = difference_type
     
    +

    Detailed Description

    +
    template<class I, class CI>
    +struct xt::buffer_inner_types< xiterator_adaptor< I, CI > >
    +

    Definition at line 420 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::const_iterator = CI
    +
    + +

    Definition at line 434 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::const_pointer = typename const_traits::pointer
    +
    + +

    Definition at line 429 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::const_reference = typename const_traits::reference
    +
    + +

    Definition at line 427 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::const_reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 436 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_traits

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::const_traits = std::iterator_traits<CI>
    +
    + +

    Definition at line 423 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::difference_type = std::common_type_t<typename traits::difference_type, typename const_traits::difference_type>
    +
    + +

    Definition at line 430 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ index_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::index_type = difference_type
    +
    + +

    Definition at line 437 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::iterator = I
    +
    + +

    Definition at line 433 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::pointer = typename traits::pointer
    +
    + +

    Definition at line 428 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::reference = typename traits::reference
    +
    + +

    Definition at line 426 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::reverse_iterator = std::reverse_iterator<iterator>
    +
    + +

    Definition at line 435 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::size_type = std::make_unsigned_t<difference_type>
    +
    + +

    Definition at line 431 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::traits = std::iterator_traits<I>
    +
    + +

    Definition at line 422 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::buffer_inner_types< xiterator_adaptor< I, CI > >::value_type = std::common_type_t<typename traits::value_type, typename const_traits::value_type>
    +
    + +

    Definition at line 425 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html b/structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html new file mode 100644 index 000000000..a75e248b1 --- /dev/null +++ b/structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > > Member List
    +
    +
    + +

    This is the complete list of members for xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >, including all inherited members.

    + + + + + + + + + + + + + + + +
    const_iterator typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    const_pointer typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    const_reference typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    const_reverse_iterator typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    const_traits typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    difference_type typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    index_type typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    iterator typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    pointer typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    reference typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    reverse_iterator typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    size_type typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    traits typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    value_type typedef (defined in xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >)xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    +
    + + + + diff --git a/structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html b/structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html new file mode 100644 index 000000000..023796fa5 --- /dev/null +++ b/structxt_1_1buffer__inner__types_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html @@ -0,0 +1,413 @@ + + + + + + + +xtensor: xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using iterator = typename IG::iterator
     
    using const_iterator = typename IG::const_iterator
     
    using reverse_iterator = std::reverse_iterator<iterator>
     
    using const_reverse_iterator = std::reverse_iterator<const_iterator>
     
    using traits = std::iterator_traits<iterator>
     
    using const_traits = std::iterator_traits<const_iterator>
     
    using value_type = std::common_type_t<typename traits::value_type, typename const_traits::value_type>
     
    using reference = typename traits::reference
     
    using const_reference = typename const_traits::reference
     
    using pointer = typename traits::pointer
     
    using const_pointer = typename const_traits::pointer
     
    using difference_type = std::common_type_t<typename traits::difference_type, typename const_traits::difference_type>
     
    using size_type = std::make_unsigned_t<difference_type>
     
    using index_type = difference_type
     
    +

    Detailed Description

    +
    template<class C, class IG>
    +struct xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >
    +

    Definition at line 499 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::const_iterator = typename IG::const_iterator
    +
    + +

    Definition at line 502 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::const_pointer = typename const_traits::pointer
    +
    + +

    Definition at line 513 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::const_reference = typename const_traits::reference
    +
    + +

    Definition at line 511 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::const_reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 504 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ const_traits

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::const_traits = std::iterator_traits<const_iterator>
    +
    + +

    Definition at line 507 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::difference_type = std::common_type_t<typename traits::difference_type, typename const_traits::difference_type>
    +
    + +

    Definition at line 514 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ index_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::index_type = difference_type
    +
    + +

    Definition at line 516 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::iterator = typename IG::iterator
    +
    + +

    Definition at line 501 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::pointer = typename traits::pointer
    +
    + +

    Definition at line 512 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::reference = typename traits::reference
    +
    + +

    Definition at line 510 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::reverse_iterator = std::reverse_iterator<iterator>
    +
    + +

    Definition at line 503 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::size_type = std::make_unsigned_t<difference_type>
    +
    + +

    Definition at line 515 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::traits = std::iterator_traits<iterator>
    +
    + +

    Definition at line 506 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::buffer_inner_types< xiterator_owner_adaptor< C, IG > >::value_type = std::common_type_t<typename traits::value_type, typename const_traits::value_type>
    +
    + +

    Definition at line 509 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1can__assign.html b/structxt_1_1can__assign.html new file mode 100644 index 000000000..906653bfb --- /dev/null +++ b/structxt_1_1can__assign.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::can_assign< LHS, RHS > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::can_assign< LHS, RHS > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::can_assign< LHS, RHS >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class LHS, class RHS>
    +struct xt::can_assign< LHS, RHS >
    +

    Definition at line 202 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1can__assign.png b/structxt_1_1can__assign.png new file mode 100644 index 0000000000000000000000000000000000000000..e20f69daa83759b086ebb2ccbfc9c677812eed81 GIT binary patch literal 808 zcmeAS@N?(olHy`uVBq!ia0vp^2Y@($gBeIxq;!=5Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_q|ho-U3d6^w7^-WGbKAmCCR z_vYV!{WxEb1c`#h($g1lEuHMqb~;gS-=Q-(X$L)u;&d4%$*g2`n4}!axI{kvKI^V| zp0=VV@7y_k{cEWI9LHBLqGOm9PU?RZJn$`GmYi&DH^YZVw-x3W$rU_!DbbZ}bn}|U zuJ8XImF_JPR*+y}n6##ZNn+;giJ{t!9^GeoxhKm=Tl#Ca37lNS%8(vtGo7K*<7MNu zhfgx^PP=NXL<$Bf(f?0w%hhVlJS;S+lq zI`PQX!-s!ZEa#tf?yT%ZUr!m^gp|Bcj@Yw|`#<{^J#cOa<6BZ;u{vO5S!}D{k$~2s zi#PY>uL|HZj(;kfc)2O%X5MdgIn%SQ4Vxq;ESc^tJ?T%>{PRWq?7wnUeg@wab5gN% z;%-oJ&tjbL#KV^H%o#N?hCdjHv@xP79+y}4_yWZiIuDj49XaaKKP}j8FQ<7e$Ha_xCB(^DYa7W z!1jpz<4dRiep^}_DwsaO>X+E0Cne?$Dy5;!Is8w(+}-axO`5}Wz;4L{zy9MFcQ9Mt zpL_l9m2X=Q-!x@>^ys~g%1Osm86zG2)@FE!f=7}OUXcJOTQk6@hhdg|jlXWe69!K|3@OHo9Om*H#F+6CE_ z4_>S6d(>!hgz-ph?8(MGSL66V!Z literal 0 HcmV?d00001 diff --git a/structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html b/structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html new file mode 100644 index 000000000..265b7671b --- /dev/null +++ b/structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::can_assign< xstrided_view< CT, S, L, FST >, RHS > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::can_assign< xstrided_view< CT, S, L, FST >, RHS > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::can_assign< xstrided_view< CT, S, L, FST >, RHS >:
    +
    +
    + + +xt::can_assign< CT, RHS > + +
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST, class RHS>
    +struct xt::can_assign< xstrided_view< CT, S, L, FST >, RHS >
    +

    Definition at line 105 of file xstrided_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.png b/structxt_1_1can__assign_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_00_01_r_h_s_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..93c574ae8600689b3c450fed003a1c92dc2fc99d GIT binary patch literal 2645 zcmcImX;f257EZusP+1%|VnEWgh=xW@G(k3@T~Go78i?#$2LS;Cp;-c96A(m*(XfOa zQQ{JiAP6CXMzno8qM`^%YX~3_fiR$KCK8r;VVpU0PS5n8nR!3nyZ5X6RlR#p)pslV zn9~u>Rq$012t*TScL)!Gr~sgSPF)pzzoCj7z>n^+qpr3~OG}_R^4HlI`orsHC}bpz z`FvzxU;xCiFHTg0V=JTaPA(A8Uw-zgly-yI0PfI!R|<5zd@QQb7-FjvXjCdo8GOUO zlv7l_u8>uq+T- zv#mh6DFdStrh!U7qu`yDOjX%Sj5W9+CKtT&9=9Bs_4Ml{@#Bj5jHuBt6P)BW0NDfM z-rWCetDPgVsqo=#SFu*Q)t$uLnfpMGOEg8#aP&#NGKNjwc;l$#QGP*SK?^UK;1T#` z46`^-E#qo69%@zw@Uo9=qLW)jnuJ)NhB~jcpKuEv$F-+TXgMAE7QXLr0k#hfh1kfs-pzsIP_D^a9%>G=*f$?pRsK^LRU=e+uoLp*E{v@0B}KJqrm zee~4CGu&&TMzhv$bWGe+mvx!S9G6Z{N%*xFT?^=UjRXq#a3%w@UYR*g*BIyb0l|Ok zCl63oh~FftyhN!uPwy_M{xrEw-&q-CQv$r{Q!p?ZN@pp32V-WNvKsXO1EUT?s$hB2 zm8t&@P&Zhy?tuCh2nup-zEu?lQH^x0MW;ercFJ1!si7du$8c3x>ey7kZKdb7>^Ts# zp&Ad)g7d2lJai|5lz?RlN&tHR@rH$I_(OK)V!?17KuKOrr2YTHc_n~BhW`QefEDrO z5nR!WUJ_TNuFeQF934htFQ5;vBj(!B!L1eGE`bsC{@8N9IvIOgc<;U3BQJJ4PC6Cx zdOUJuF{+D#%x3}y0F2+BlU&J<+_w|)OxoGe6#CUw zOh*HgZLi!J_y5AgPWUE&Ej8IZRppX$Z88U%kUkEtY~nKjG(dT|JJecF8b`A{{c|qa z#6z+ptx%f)=N5knY1_;->hQH@3+D!7oqJ-~r(X`GR9bd2EJ^9(Tv_|pA-s1IT2RV- zxEE7cop}?^QQ6?pl9c%C$qfv}y@eK|(a=Ey=Z<+A`eT>S41fhUgy~g#r*-G2JM3rM z_l%>S5+AL0lZwWB9}^;^S+lM9BP+F$OPJZ5v6t@G=>am2UHqADj27CIWkonYL^S}| zu8wi#{lb=n6^>?$!s- zRSjGaQROQdnhz1Li?0LB36@d-JrLb}ney$8lYHZZ%4O)_JPcCHHRtT%&&n?{z!+KmL-|v(5*-6rig26-P z+|?q}eRguL9OJ7QjwSuj+|0Q!_^Fy)Iz~U=kCS{qgb($mP!cQMeBRmZvxX_WsKTks zWZe(jrn=+ZQzXeni#b5kuN=(IN_H_kLWKZFh{Hdfh1KA(FV+TG@~=$lWp`kF{XW-N zG@Xetz7;1-5}izlep}ak+2lvVp@y*fP7lqQk$RuaM-zJ|p0@Oc_vyqWE#3>WWkm$1 z2D67_soQY2UpLTn@`M*4(*ZYfVp;zA+b*_NqL*m>b5f0(at>LjHcdYH_oCP5ENV$@)nOdWqK z-{92aiM4e?9e)&P22kRmfO71d&fmxW3H&4YzX5=SWPYh)AsL~O3Pm}Yf?5{;zt*y2 z1#1qV3^GtE5LHysMZCQcD?eF(S(D4~_TNMq$@(VKzk|~61N{Yx@nm|Yh&K@j8yc#A zFNpwUretpV%onX-)jOwU=&0-Yc#C$p>hpnMtP_&O4Kbork?oQDh@%&^%jfpc{4`$a zh70AkRB+Yo3g?s0!V!r5-9h4ncl5Bsx2U~FJ$3DHszctDgJ{o*78zbve(xYE-SukIV#D~)+&#-}v@vd}!*)Q?7m>gf z&YuOe!A!B@{&$L3f1>4Ri3n~L7TP(nNvoHROHOnQ!{ZFW-}%MtwY*9++>t0|?fb6d zj%VrV9Z`$=xf~27@RZn~GkQIzO?-*Wd)uZXoih=69v>BL8Yq_X#C=FseuDBcWYwRQ zkDpUJsOE@d?KOX%Quq+bnmL~$M=Q(I|6BFeE~j5^AebQdU4`={ynUzq$BkaZROEbO zWU?P0r1}NWph5mac>7aploWv(D_?CHqPhHM=vzmGxJhgl6zzh!sP0kl0tms`IvuJz H;Ggz4fd1n5 literal 0 HcmV?d00001 diff --git a/structxt_1_1check__policy_1_1full.html b/structxt_1_1check__policy_1_1full.html new file mode 100644 index 000000000..4c1ced29c --- /dev/null +++ b/structxt_1_1check__policy_1_1full.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::check_policy::full Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::check_policy::full Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 39 of file xmanipulation.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1check__policy_1_1none.html b/structxt_1_1check__policy_1_1none.html new file mode 100644 index 000000000..0725275f3 --- /dev/null +++ b/structxt_1_1check__policy_1_1none.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::check_policy::none Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::check_policy::none Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 35 of file xmanipulation.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1check__strides__overlap.html b/structxt_1_1check__strides__overlap.html new file mode 100644 index 000000000..8e2acfcaf --- /dev/null +++ b/structxt_1_1check__strides__overlap.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::check_strides_overlap< L > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::check_strides_overlap< L > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<layout_type L>
    +struct xt::check_strides_overlap< L >
    +

    Definition at line 134 of file xstrides.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xstrides.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4-members.html b/structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4-members.html new file mode 100644 index 000000000..2c6eea858 --- /dev/null +++ b/structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::check_strides_overlap< layout_type::column_major > Member List
    +
    +
    + +

    This is the complete list of members for xt::check_strides_overlap< layout_type::column_major >, including all inherited members.

    + + +
    get(const S1 &s1, const S2 &s2) (defined in xt::check_strides_overlap< layout_type::column_major >)xt::check_strides_overlap< layout_type::column_major >inlinestatic
    +
    + + + + diff --git a/structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html b/structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html new file mode 100644 index 000000000..7c30a9004 --- /dev/null +++ b/structxt_1_1check__strides__overlap_3_01layout__type_1_1column__major_01_4.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::check_strides_overlap< layout_type::column_major > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::check_strides_overlap< layout_type::column_major > Struct Reference
    +
    +
    + + + + + +

    +Static Public Member Functions

    template<class S1, class S2>
    static std::size_t get (const S1 &s1, const S2 &s2)
     
    +

    Detailed Description

    +
    +

    Definition at line 819 of file xstrides.hpp.

    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + +
    + + + + + + + + + + + +
    static std::size_t xt::check_strides_overlap< layout_type::column_major >::get (const S1 & s1,
    const S2 & s2 )
    +
    +inlinestatic
    +
    + +

    Definition at line 822 of file xstrides.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xstrides.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4-members.html b/structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4-members.html new file mode 100644 index 000000000..36f776a39 --- /dev/null +++ b/structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::check_strides_overlap< layout_type::row_major > Member List
    +
    +
    + +

    This is the complete list of members for xt::check_strides_overlap< layout_type::row_major >, including all inherited members.

    + + +
    get(const S1 &s1, const S2 &s2) (defined in xt::check_strides_overlap< layout_type::row_major >)xt::check_strides_overlap< layout_type::row_major >inlinestatic
    +
    + + + + diff --git a/structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html b/structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html new file mode 100644 index 000000000..65fafb751 --- /dev/null +++ b/structxt_1_1check__strides__overlap_3_01layout__type_1_1row__major_01_4.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::check_strides_overlap< layout_type::row_major > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::check_strides_overlap< layout_type::row_major > Struct Reference
    +
    +
    + + + + + +

    +Static Public Member Functions

    template<class S1, class S2>
    static std::size_t get (const S1 &s1, const S2 &s2)
     
    +

    Detailed Description

    +
    +

    Definition at line 797 of file xstrides.hpp.

    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<class S1, class S2>
    + + + + + +
    + + + + + + + + + + + +
    static std::size_t xt::check_strides_overlap< layout_type::row_major >::get (const S1 & s1,
    const S2 & s2 )
    +
    +inlinestatic
    +
    + +

    Definition at line 800 of file xstrides.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xstrides.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1common__difference__type-members.html b/structxt_1_1common__difference__type-members.html new file mode 100644 index 000000000..e8044e8f2 --- /dev/null +++ b/structxt_1_1common__difference__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::common_difference_type< Args > Member List
    +
    +
    + +

    This is the complete list of members for xt::common_difference_type< Args >, including all inherited members.

    + + +
    type typedef (defined in xt::common_difference_type< Args >)xt::common_difference_type< Args >
    +
    + + + + diff --git a/structxt_1_1common__difference__type.html b/structxt_1_1common__difference__type.html new file mode 100644 index 000000000..4f11eed45 --- /dev/null +++ b/structxt_1_1common__difference__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::common_difference_type< Args > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::common_difference_type< Args > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::common_type_t<typename Args::difference_type...>
     
    +

    Detailed Description

    +
    template<class... Args>
    +struct xt::common_difference_type< Args >
    +

    Definition at line 79 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... Args>
    + + + + +
    using xt::common_difference_type< Args >::type = std::common_type_t<typename Args::difference_type...>
    +
    + +

    Definition at line 81 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1common__difference__type_3_4-members.html b/structxt_1_1common__difference__type_3_4-members.html new file mode 100644 index 000000000..074e20923 --- /dev/null +++ b/structxt_1_1common__difference__type_3_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::common_difference_type<> Member List
    +
    +
    + +

    This is the complete list of members for xt::common_difference_type<>, including all inherited members.

    + + + +
    type typedef (defined in xt::common_difference_type<>)xt::common_difference_type<>
    type typedef (defined in xt::common_difference_type<>)xt::common_difference_type<>
    +
    + + + + diff --git a/structxt_1_1common__difference__type_3_4.html b/structxt_1_1common__difference__type_3_4.html new file mode 100644 index 000000000..dd88b7464 --- /dev/null +++ b/structxt_1_1common__difference__type_3_4.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::common_difference_type<> Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::common_difference_type<> Struct Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::ptrdiff_t
     
    using type
     
    +

    Detailed Description

    +
    +

    Definition at line 85 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::common_difference_type< Args >::type
    +
    + +

    Definition at line 81 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    + + + + +
    using xt::common_difference_type<>::type = std::ptrdiff_t
    +
    + +

    Definition at line 87 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1common__size__type-members.html b/structxt_1_1common__size__type-members.html new file mode 100644 index 000000000..570aa052b --- /dev/null +++ b/structxt_1_1common__size__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::common_size_type< Args > Member List
    +
    +
    + +

    This is the complete list of members for xt::common_size_type< Args >, including all inherited members.

    + + +
    type typedef (defined in xt::common_size_type< Args >)xt::common_size_type< Args >
    +
    + + + + diff --git a/structxt_1_1common__size__type.html b/structxt_1_1common__size__type.html new file mode 100644 index 000000000..34fc5072c --- /dev/null +++ b/structxt_1_1common__size__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::common_size_type< Args > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::common_size_type< Args > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::common_type_t<typename Args::size_type...>
     
    +

    Detailed Description

    +
    template<class... Args>
    +struct xt::common_size_type< Args >
    +

    Definition at line 60 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... Args>
    + + + + +
    using xt::common_size_type< Args >::type = std::common_type_t<typename Args::size_type...>
    +
    + +

    Definition at line 62 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1common__size__type_3_4-members.html b/structxt_1_1common__size__type_3_4-members.html new file mode 100644 index 000000000..5336bddf4 --- /dev/null +++ b/structxt_1_1common__size__type_3_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::common_size_type<> Member List
    +
    +
    + +

    This is the complete list of members for xt::common_size_type<>, including all inherited members.

    + + + +
    type typedef (defined in xt::common_size_type<>)xt::common_size_type<>
    type typedef (defined in xt::common_size_type<>)xt::common_size_type<>
    +
    + + + + diff --git a/structxt_1_1common__size__type_3_4.html b/structxt_1_1common__size__type_3_4.html new file mode 100644 index 000000000..ed217549f --- /dev/null +++ b/structxt_1_1common__size__type_3_4.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::common_size_type<> Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::common_size_type<> Struct Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::size_t
     
    using type
     
    +

    Detailed Description

    +
    +

    Definition at line 66 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::common_size_type< Args >::type
    +
    + +

    Definition at line 62 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    + + + + +
    using xt::common_size_type<>::type = std::size_t
    +
    + +

    Definition at line 68 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1common__tensor__type.html b/structxt_1_1common__tensor__type.html new file mode 100644 index 000000000..7e1962106 --- /dev/null +++ b/structxt_1_1common__tensor__type.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::common_tensor_type< C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::common_tensor_type< C > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::common_tensor_type< C >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class... C>
    +struct xt::common_tensor_type< C >
    +

    Definition at line 176 of file xexpression_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1common__tensor__type.png b/structxt_1_1common__tensor__type.png new file mode 100644 index 0000000000000000000000000000000000000000..736481f5620c0ce98723c48a5a09eb633f697938 GIT binary patch literal 1108 zcmeAS@N?(olHy`uVBq!ia0y~yV2lQ`12~w0WWz$W6+lWlz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6`M#%%V@L(#+qt*PUMujp zxa-gT`Cs2Ix5km_j>YP*Szj`A%O20_zQ}e&`^*_GwXOFaculrrU&Fme^ zR{wRrp4%QhlS{j+B%M^y{AKo+hg*gTDJ^(Fw+jkDf0Veo^(S*Kd;Yn)CyHT$@@%CZ$23+rOWUnAdgX@y@;Cum@F7hECedy18Sy{ zk_zMPX=$x9Z$3SsvU0+bZq4nJra14MxO214WIy-a?)s;Fzk4*u%aVuL;W$*rj~w#2aCiawe!d9!n#U&Qxlo;8|gE42eX)7Sj9*#6hckFD#U z>efkF-*xZkRjRJADtWCntP?=`R2|ImMT``so<|23Ym zmeYmb?Xo?y{q~%DcK7r0Zo58RpFermC9OTTpBDT!dBDb*_q{J#DdM(AR_aOpNmKmt z_Dx;#{1W%{CHEht-o2-{C^-7e_Am9SFT;OE|Gsv&YSNd}f40t1@LcbN5)MV$o|ZMc hOpSpVcHJ}iifyZwOuI4f3^4yQc)I$ztaD0e0s!+-A`Ack literal 0 HcmV?d00001 diff --git a/structxt_1_1common__value__type-members.html b/structxt_1_1common__value__type-members.html new file mode 100644 index 000000000..565523b1d --- /dev/null +++ b/structxt_1_1common__value__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::common_value_type< C > Member List
    +
    +
    + +

    This is the complete list of members for xt::common_value_type< C >, including all inherited members.

    + + +
    type typedef (defined in xt::common_value_type< C >)xt::common_value_type< C >
    +
    + + + + diff --git a/structxt_1_1common__value__type.html b/structxt_1_1common__value__type.html new file mode 100644 index 000000000..230eac20f --- /dev/null +++ b/structxt_1_1common__value__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::common_value_type< C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::common_value_type< C > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::common_type_t<typename std::decay_t<C>::value_type...>
     
    +

    Detailed Description

    +
    template<class... C>
    +struct xt::common_value_type< C >
    +

    Definition at line 47 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... C>
    + + + + +
    using xt::common_value_type< C >::type = std::common_type_t<typename std::decay_t<C>::value_type...>
    +
    + +

    Definition at line 49 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1conditional__cast__functor.html b/structxt_1_1conditional__cast__functor.html new file mode 100644 index 000000000..813471e8a --- /dev/null +++ b/structxt_1_1conditional__cast__functor.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::conditional_cast_functor< condition, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::conditional_cast_functor< condition, T > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<bool condition, class T>
    +struct xt::conditional_cast_functor< condition, T >
    +

    Definition at line 651 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html b/structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html new file mode 100644 index 000000000..1cabcb81c --- /dev/null +++ b/structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::conditional_cast_functor< false, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::conditional_cast_functor< false, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::conditional_cast_functor< false, T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::conditional_cast_functor< false, T >
    +

    Definition at line 654 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.png b/structxt_1_1conditional__cast__functor_3_01false_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..062d3a6bc3fd0ade1e5f86c5c0da811a0d7585ad GIT binary patch literal 715 zcmeAS@N?(olHy`uVBq!ia0vp^FMv3JgBeJwygLaJkPh$(asB`QKS=J)*V6t&%PkBv z3nZqWdGX-E1E9F+*{~%*InI(GzhDL+9}LWyW?x}oU<&heaSW+od^`8t;M z{{Hi~`PU$D*A6o;1YUuKT}BP)yZJOty%A0KmU^1m)Xl_ zALRb$8F2bGUyb&QXJxkgb6hTew%W(H=5F3(UH6ZD-78jni{>iYx%RerQ=Y_IxwUOR z&&5hkzm$8i<7SOYX|>?l+1J`W|91GEbcJ#2!jOxX_DPv+P7{ePHLi+kXiPuzqBtb< ztN1L|k_R#WL|&X&`Df#m&`{aM456W4mw*Y@5SJ7t#skN{GBikjNr=bu0Slsy-hJIuemm#ZrC`>gl(&nYzLU9Zx-^!A=-)TyVtjuy$@JvMv$ z@8G?=mRaY0PS|A5cPh2|qRZ);V>{{vrySaLHC9r5Q(oDbWhIXn|KIldz@#ZHYyV%q zRknHAF595%ZHph2Z}`1BaN6qG8M)_fdxrmC<9Pe#w$?@4Ub}5sbFrS~uJL~3wR4Kz zH_Y0z#w_Av#VXsg!BPFeulDiY@{Qg6WcteAvpb|7=Y6f0x>)u;UWhAlyY+?Jwpm%1 zGW)k}{`=i_mSb?FZRlO)aK3xX7?!CAt82?!a?Wnv@GCAfboDClO<7ZS2VdQ5xnoxG z6qWrU<}%6-+do~9%hTVddUAWo^9%kio}W6Irl{CzI(S~1oW>+7IMc!Yc!cbxWzNlI Qz+}hZ>FVdQ&MBb@0J*zSeE + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::conditional_cast_functor< true, T > Member List
    +
    +
    + +

    This is the complete list of members for xt::conditional_cast_functor< true, T >, including all inherited members.

    + + +
    operator()(U &&u) const (defined in xt::conditional_cast_functor< true, T >)xt::conditional_cast_functor< true, T >inline
    +
    + + + + diff --git a/structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html b/structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html new file mode 100644 index 000000000..1a08948f0 --- /dev/null +++ b/structxt_1_1conditional__cast__functor_3_01true_00_01_t_01_4.html @@ -0,0 +1,167 @@ + + + + + + + +xtensor: xt::conditional_cast_functor< true, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::conditional_cast_functor< true, T > Struct Template Reference
    +
    +
    + + + + + +

    +Public Member Functions

    template<class U>
    auto operator() (U &&u) const
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::conditional_cast_functor< true, T >
    +

    Definition at line 659 of file xutils.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    +
    +template<class U>
    + + + + + +
    + + + + + + + +
    auto xt::conditional_cast_functor< true, T >::operator() (U && u) const
    +
    +inline
    +
    + +

    Definition at line 662 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1const__array-members.html b/structxt_1_1const__array-members.html new file mode 100644 index 000000000..0a6769831 --- /dev/null +++ b/structxt_1_1const__array-members.html @@ -0,0 +1,146 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::const_array< T, N > Member List
    +
    +
    + +

    This is the complete list of members for xt::const_array< T, N >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    back() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    begin() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    cbegin() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    cend() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    const_iterator typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    const_pointer typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    const_reference typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    const_reverse_iterator typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    crbegin() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    crend() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    data() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    difference_type typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    empty() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    end() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    front() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    iterator typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    m_data (defined in xt::const_array< T, N >)xt::const_array< T, N >
    operator[](std::size_t idx) const (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    pointer typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    rbegin() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    reference typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    rend() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    reverse_iterator typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    size() const noexcept (defined in xt::const_array< T, N >)xt::const_array< T, N >inline
    size_type typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    value_type typedef (defined in xt::const_array< T, N >)xt::const_array< T, N >
    +
    + + + + diff --git a/structxt_1_1const__array.html b/structxt_1_1const__array.html new file mode 100644 index 000000000..447a13ad2 --- /dev/null +++ b/structxt_1_1const__array.html @@ -0,0 +1,824 @@ + + + + + + + +xtensor: xt::const_array< T, N > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::const_array< T, N > Struct Template Reference
    +
    +
    + +

    A std::array like class with all member function (except reverse iterators) as constexpr. + More...

    + +

    #include <xstorage.hpp>

    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using size_type = std::size_t
     
    using value_type = T
     
    using pointer = value_type*
     
    using const_pointer = const value_type*
     
    using reference = value_type&
     
    using const_reference = const value_type&
     
    using difference_type = std::ptrdiff_t
     
    using iterator = pointer
     
    using const_iterator = const_pointer
     
    using reverse_iterator = std::reverse_iterator<const_iterator>
     
    using const_reverse_iterator = std::reverse_iterator<const_iterator>
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    constexpr const_reference operator[] (std::size_t idx) const
     
    constexpr const_iterator begin () const noexcept
     
    constexpr const_iterator end () const noexcept
     
    constexpr const_iterator cbegin () const noexcept
     
    constexpr const_iterator cend () const noexcept
     
    reverse_iterator rbegin () const noexcept
     
    reverse_iterator rend () const noexcept
     
    const_reverse_iterator crbegin () const noexcept
     
    const_reverse_iterator crend () const noexcept
     
    constexpr const_pointer data () const noexcept
     
    constexpr const_reference front () const noexcept
     
    constexpr const_reference back () const noexcept
     
    constexpr bool empty () const noexcept
     
    constexpr size_type size () const noexcept
     
    + + + +

    +Public Attributes

    const T m_data [N > 0 ? N :1]
     
    +

    Detailed Description

    +
    template<class T, std::size_t N>
    +struct xt::const_array< T, N >

    A std::array like class with all member function (except reverse iterators) as constexpr.

    +

    The data is immutable once set.

    + +

    Definition at line 1488 of file xstorage.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_iterator

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::const_iterator = const_pointer
    +
    + +

    Definition at line 1498 of file xstorage.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::const_pointer = const value_type*
    +
    + +

    Definition at line 1493 of file xstorage.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::const_reference = const value_type&
    +
    + +

    Definition at line 1495 of file xstorage.hpp.

    + +
    +
    + +

    ◆ const_reverse_iterator

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::const_reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 1501 of file xstorage.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::difference_type = std::ptrdiff_t
    +
    + +

    Definition at line 1496 of file xstorage.hpp.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::iterator = pointer
    +
    + +

    Definition at line 1497 of file xstorage.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::pointer = value_type*
    +
    + +

    Definition at line 1492 of file xstorage.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::reference = value_type&
    +
    + +

    Definition at line 1494 of file xstorage.hpp.

    + +
    +
    + +

    ◆ reverse_iterator

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::reverse_iterator = std::reverse_iterator<const_iterator>
    +
    + +

    Definition at line 1500 of file xstorage.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::size_type = std::size_t
    +
    + +

    Definition at line 1490 of file xstorage.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    using xt::const_array< T, N >::value_type = T
    +
    + +

    Definition at line 1491 of file xstorage.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ back()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_reference xt::const_array< T, N >::back () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1571 of file xstorage.hpp.

    + +
    +
    + +

    ◆ begin()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_iterator xt::const_array< T, N >::begin () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1512 of file xstorage.hpp.

    + +
    +
    + +

    ◆ cbegin()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_iterator xt::const_array< T, N >::cbegin () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1522 of file xstorage.hpp.

    + +
    +
    + +

    ◆ cend()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_iterator xt::const_array< T, N >::cend () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1527 of file xstorage.hpp.

    + +
    +
    + +

    ◆ crbegin()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_reverse_iterator xt::const_array< T, N >::crbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1543 of file xstorage.hpp.

    + +
    +
    + +

    ◆ crend()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_reverse_iterator xt::const_array< T, N >::crend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1548 of file xstorage.hpp.

    + +
    +
    + +

    ◆ data()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_pointer xt::const_array< T, N >::data () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1553 of file xstorage.hpp.

    + +
    +
    + +

    ◆ empty()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    bool xt::const_array< T, N >::empty () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1581 of file xstorage.hpp.

    + +
    +
    + +

    ◆ end()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_iterator xt::const_array< T, N >::end () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1517 of file xstorage.hpp.

    + +
    +
    + +

    ◆ front()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_reference xt::const_array< T, N >::front () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1562 of file xstorage.hpp.

    + +
    +
    + +

    ◆ operator[]()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    const_reference xt::const_array< T, N >::operator[] (std::size_t idx) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 1503 of file xstorage.hpp.

    + +
    +
    + +

    ◆ rbegin()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    reverse_iterator xt::const_array< T, N >::rbegin () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1533 of file xstorage.hpp.

    + +
    +
    + +

    ◆ rend()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    reverse_iterator xt::const_array< T, N >::rend () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 1538 of file xstorage.hpp.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + + +
    + + + + + + + +
    size_type xt::const_array< T, N >::size () const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 1586 of file xstorage.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_data

    + +
    +
    +
    +template<class T, std::size_t N>
    + + + + +
    const T xt::const_array< T, N >::m_data[N > 0 ? N :1]
    +
    + +

    Definition at line 1594 of file xstorage.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1const__value-members.html b/structxt_1_1const__value-members.html new file mode 100644 index 000000000..5737fa998 --- /dev/null +++ b/structxt_1_1const__value-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::const_value< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::const_value< T >, including all inherited members.

    + + + + + + + + +
    const_value()=default (defined in xt::const_value< T >)xt::const_value< T >
    const_value(T t) (defined in xt::const_value< T >)xt::const_value< T >inline
    m_value (defined in xt::const_value< T >)xt::const_value< T >
    operator()() const (defined in xt::const_value< T >)xt::const_value< T >inline
    rebind() const (defined in xt::const_value< T >)xt::const_value< T >
    rebind_t typedef (defined in xt::const_value< T >)xt::const_value< T >
    value_type typedef (defined in xt::const_value< T >)xt::const_value< T >
    +
    + + + + diff --git a/structxt_1_1const__value.html b/structxt_1_1const__value.html new file mode 100644 index 000000000..d308d0bda --- /dev/null +++ b/structxt_1_1const__value.html @@ -0,0 +1,295 @@ + + + + + + + +xtensor: xt::const_value< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::const_value< T > Struct Template Reference
    +
    +
    + + + + + + + +

    +Public Types

    using value_type = T
     
    template<class NT>
    using rebind_t = const_value<NT>
     
    + + + + + + + + +

    +Public Member Functions

    constexpr const_value (T t)
     
    constexpr T operator() () const
     
    template<class NT>
    const_value< NT > rebind () const
     
    + + + +

    +Public Attributes

    m_value
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::const_value< T >
    +

    Definition at line 572 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class T>
    +
    +template<class NT>
    + + + + +
    using xt::const_value< T >::rebind_t = const_value<NT>
    +
    + +

    Definition at line 589 of file xreducer.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::const_value< T >::value_type = T
    +
    + +

    Definition at line 574 of file xreducer.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ const_value()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xt::const_value< T >::const_value (T t)
    +
    +inlineconstexpr
    +
    + +

    Definition at line 578 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    T xt::const_value< T >::operator() () const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 583 of file xreducer.hpp.

    + +
    +
    + +

    ◆ rebind()

    + +
    +
    +
    +template<class T>
    +
    +template<class NT>
    + + + + + + + +
    const_value< NT > xt::const_value< T >::rebind () const
    +
    + +

    Definition at line 1216 of file xreducer.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_value

    + +
    +
    +
    +template<class T>
    + + + + +
    T xt::const_value< T >::m_value
    +
    + +

    Definition at line 594 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1const__xclosure-members.html b/structxt_1_1const__xclosure-members.html new file mode 100644 index 000000000..6c71dedd7 --- /dev/null +++ b/structxt_1_1const__xclosure-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::const_xclosure< E, EN > Member List
    +
    +
    + +

    This is the complete list of members for xt::const_xclosure< E, EN >, including all inherited members.

    + + +
    type typedef (defined in xt::const_xclosure< E, EN >)xt::const_xclosure< E, EN >
    +
    + + + + diff --git a/structxt_1_1const__xclosure.html b/structxt_1_1const__xclosure.html new file mode 100644 index 000000000..8e09b188d --- /dev/null +++ b/structxt_1_1const__xclosure.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::const_xclosure< E, EN > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::const_xclosure< E, EN > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtl::const_closure_type_t<E>
     
    +

    Detailed Description

    +
    template<class E, class EN = void>
    +struct xt::const_xclosure< E, EN >
    +

    Definition at line 277 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E, class EN = void>
    + + + + +
    using xt::const_xclosure< E, EN >::type = xtl::const_closure_type_t<E>
    +
    + +

    Definition at line 279 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html b/structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html new file mode 100644 index 000000000..b7905ca52 --- /dev/null +++ b/structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html b/structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html new file mode 100644 index 000000000..23a69d828 --- /dev/null +++ b/structxt_1_1const__xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = xscalar<xtl::const_closure_type_t<E>>
     
    using type
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > >
    +

    Definition at line 283 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > >::type
    +
    + +

    Definition at line 279 of file xexpression.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::const_xclosure< E, disable_xexpression< std::decay_t< E > > >::type = xscalar<xtl::const_closure_type_t<E>>
    +
    + +

    Definition at line 285 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html b/structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html new file mode 100644 index 000000000..67fbaf4c8 --- /dev/null +++ b/structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html b/structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html new file mode 100644 index 000000000..cf4dc8991 --- /dev/null +++ b/structxt_1_1const__xclosure_3_01xshared__expression_3_01_e_01_4_01_6_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = xshared_expression<E>
     
    using type
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >
    +

    Definition at line 289 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::const_xclosure< E, std::enable_if_t< true > >::type
    +
    + +

    Definition at line 279 of file xexpression.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::const_xclosure< xshared_expression< E > &, std::enable_if_t< true > >::type = xshared_expression<E>
    +
    + +

    Definition at line 291 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1container__simd__return__type.html b/structxt_1_1container__simd__return__type.html new file mode 100644 index 000000000..06f8911a3 --- /dev/null +++ b/structxt_1_1container__simd__return__type.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::container_simd_return_type< C, T1, T2 > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::container_simd_return_type< C, T1, T2 > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::container_simd_return_type< C, T1, T2 >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class C, class T1, class T2>
    +struct xt::container_simd_return_type< C, T1, T2 >
    +

    Definition at line 327 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1container__simd__return__type.png b/structxt_1_1container__simd__return__type.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd1ba5f873788a2eea44f3229a380535baf30ea GIT binary patch literal 1574 zcmc&!`#Y3r7@nxBXl1dhLM%Jdi7A@C4h}V|%)|_fP?9#8E@k>8hsjc<<-A@8^g2x}N)f<6Q_28tQuL z2n0d{hqZS_AXEUjcG;i`->vspo-pXUIJqBRU0sFC4-<+|+6(rBk1IYSyIwbop>9_UprGv}R6PFug$X3VbU z>iT3$?y)u)o~SX`(!$x>YinK8!O*pFCy}GNqsd59dO3#tBQ73UlnP;8O>nze06hcS zs?GqEG?@iMV=*u;pSO&TD2-Yjn`;d0jim1nMici<4nHl9fxHwlh%d*}oLm(d4W0ti zQ*X59q4z6lU^oBGBWxj4-yt~kmv91xo;NLCu^SYZRxhx(bI4RSp!m}w&P{kISNR}8 z7^Nx=%l7rg1UPY`Y^ib*GyMSSK#E-Kn@nLno~m*Vk$e)wu3Q-FwMnM%o)j%#3vzh- zv@JN+zkp-NX8O%xnDjAK>XN6RL#28Ij~(Vjm20$38rPN&(&!Rl=MIl-*M!Bu&u7gdP`% zG#M~NsMWkg-CFy@nrAq&YARyS^tfjNj6G(eHCTl1{M+sIFkVfE5JlitzOVRnk__1~!a50`B;+QMRoaYn% zpx_+<$Ykvt8Pv3reb%9~*Xl38uR%|^@IXvh_UDq@imYamN!88Nf@Gk~a-V|OZZfeF z;lWNx3LV2w`QE=uti^*6l+7FzccA5=7msuoI0b6>yP&5}GrDD@7*akzz*%^RYManz z*c28qi|JZ8z;UE)rQWizV-vb&y)9pv@oj=FM=mjy)&1fQ_R^4F)fjWrM0zaAd0{v2 zRivL3^)|ymy3&XR1CNx-VIRV~qTKo1059#Fv8YsD$M^hKvK7Y1VZYjwvZVRkvNHOm TR^)B?M@Qg}6YPsI=cE4ynfMmv literal 0 HcmV?d00001 diff --git a/structxt_1_1convolve__mode_1_1full.html b/structxt_1_1convolve__mode_1_1full.html new file mode 100644 index 000000000..af94a3d08 --- /dev/null +++ b/structxt_1_1convolve__mode_1_1full.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::convolve_mode::full Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::convolve_mode::full Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 3246 of file xmath.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1convolve__mode_1_1valid.html b/structxt_1_1convolve__mode_1_1valid.html new file mode 100644 index 000000000..302c496c8 --- /dev/null +++ b/structxt_1_1convolve__mode_1_1valid.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::convolve_mode::valid Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::convolve_mode::valid Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 3242 of file xmath.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1decay__all.html b/structxt_1_1decay__all.html new file mode 100644 index 000000000..646ced46b --- /dev/null +++ b/structxt_1_1decay__all.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::decay_all< S, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::decay_all< S, X > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class S, class... X>
    +struct xt::decay_all< S, X >
    +

    Definition at line 91 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4-members.html b/structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..a6af995e1 --- /dev/null +++ b/structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::decay_all< S< X... > > Member List
    +
    +
    + +

    This is the complete list of members for xt::decay_all< S< X... > >, including all inherited members.

    + + +
    type typedef (defined in xt::decay_all< S< X... > >)xt::decay_all< S< X... > >
    +
    + + + + diff --git a/structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html b/structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..47a0aabd6 --- /dev/null +++ b/structxt_1_1decay__all_3_01_s_3_01_x_8_8_8_01_4_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::decay_all< S< X... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::decay_all< S< X... > > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = S<std::decay_t<X>...>
     
    +

    Detailed Description

    +
    template<template< class... > class S, class... X>
    +struct xt::decay_all< S< X... > >
    +

    Definition at line 94 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<template< class... > class S, class... X>
    + + + + +
    using xt::decay_all< S< X... > >::type = S<std::decay_t<X>...>
    +
    + +

    Definition at line 96 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1disable__indexed__stepper.html b/structxt_1_1disable__indexed__stepper.html new file mode 100644 index 000000000..b8d40365d --- /dev/null +++ b/structxt_1_1disable__indexed__stepper.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::disable_indexed_stepper< T, R > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::disable_indexed_stepper< T, R > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::disable_indexed_stepper< T, R >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T, class R = T>
    +struct xt::disable_indexed_stepper< T, R >
    +

    Definition at line 235 of file xiterator.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1disable__indexed__stepper.png b/structxt_1_1disable__indexed__stepper.png new file mode 100644 index 0000000000000000000000000000000000000000..6388c591a2a7740104c6864161d64fd6bda4497e GIT binary patch literal 1095 zcmeAS@N?(olHy`uVBq!ia0y~yVAKV&12~w0Wc9bpb0z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6`I4uLV@L(#+qt)^9vg79 zw9h`b=fCj!$u|sNBnao$;8!sQO zlV7{$=*2}3@A$oL`*g1O;=V7A6_PvoTkk1PVUoWeo2;!@Ft6U z})(|b24>1CKNEX>c-`tjy_-|zKo7tcNX);DXd z(iTD8_g61UNqjr!R&Bav+xxpy*Ig|9ew&Z~o?Ld){X1IkZad^0e%v#ySipGW@~;|Y zdU3NAUKHm`&qz(`nPRGH_WbX``Ny-q^L^u8{qEJf&-s#fT5@K0IkWFO#sBCi>ph)5 zYYD||ZU@ExZ#lQ?yv?lMZ$EEDW%3$NT#|i!W9pN8YBPTX-IY>!+jTi=!(mgst7{Wa zeO)szq4_y?Y4+*1x4ug6*Wd@@|5cirxtPGl>x(p{) zM=&~sxpFgX(u!i35PFfR0ca9KO6V2_h1Ebkz!+vYu?nbzN=oK?oj$WBC2g93&m^x& zC94*xdID|mJhdvrGbqf}d(x&|e%d#5=UzL1>;0YMjm>w}`BXI*e-+JUQ+c`Tp1XHY zhH=!SnBR6$kNH2B@6fwY_2$*S%b)H`MfYz!e#Pj=kIlS44DN`%yL>zL+Sb=s_8s1( zwd>pOySpaU{AP(VDm|-mf0tqTDT}Aq*dO=SY+ty&|6O=8Fxhg;NX>Ko%e7m+oyk~qM1J%Bw^n=qeLD8Gt#I4c_Z(mL zM&!inJJnC_lwJFA`g^{+$K7^s+kZ2`?AH9_VKToK-pKNP)w)X*lora@hrbSUe<=Lw zTABWTp|bo(f7Ab|RULjZdxw3`W%IzGjPnKm&zc8LsteUqRDJ1^zvsdEi@U@hUl&S9 z`y{ls{N8)}4qeZx$^Sf~CVkP?ikdVf^x~u?Yr3YXq=s%$(Olg+ZD!=jGjC$*8J;-g Vo)Ho9b^~U422WQ%mvv4FO#qfI8HfM? literal 0 HcmV?d00001 diff --git a/structxt_1_1driven__align__mode-members.html b/structxt_1_1driven__align__mode-members.html new file mode 100644 index 000000000..b1ad4fc58 --- /dev/null +++ b/structxt_1_1driven__align__mode-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::driven_align_mode< A1, A2 > Member List
    +
    +
    + +

    This is the complete list of members for xt::driven_align_mode< A1, A2 >, including all inherited members.

    + + +
    type typedef (defined in xt::driven_align_mode< A1, A2 >)xt::driven_align_mode< A1, A2 >
    +
    + + + + diff --git a/structxt_1_1driven__align__mode.html b/structxt_1_1driven__align__mode.html new file mode 100644 index 000000000..a63f74929 --- /dev/null +++ b/structxt_1_1driven__align__mode.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::driven_align_mode< A1, A2 > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::driven_align_mode< A1, A2 > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename detail::driven_align_mode_impl<A1, A2>::type
     
    +

    Detailed Description

    +
    template<class A1, class A2>
    +struct xt::driven_align_mode< A1, A2 >
    +

    Definition at line 232 of file xtensor_simd.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class A1, class A2>
    + + + + +
    using xt::driven_align_mode< A1, A2 >::type = typename detail::driven_align_mode_impl<A1, A2>::type
    +
    + +

    Definition at line 234 of file xtensor_simd.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1enable__indexed__stepper.html b/structxt_1_1enable__indexed__stepper.html new file mode 100644 index 000000000..c5babee2d --- /dev/null +++ b/structxt_1_1enable__indexed__stepper.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::enable_indexed_stepper< T, R > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::enable_indexed_stepper< T, R > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::enable_indexed_stepper< T, R >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T, class R = T>
    +struct xt::enable_indexed_stepper< T, R >
    +

    Definition at line 227 of file xiterator.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1enable__indexed__stepper.png b/structxt_1_1enable__indexed__stepper.png new file mode 100644 index 0000000000000000000000000000000000000000..92b60081a0490f7895ab41eacdc50c8eaf02358a GIT binary patch literal 1080 zcmeAS@N?(olHy`uVBq!ia0y~yVAKb)12~w0WIZ#p7m$(;@CkAK|NlRb`Qpvj(*8rs zEetdZB&MHv@!-J&pt$MTuq8k_&XOR%UpW90Uwo4?&%Wud=|RL z!)W~@*GZM8d#0VUJiOTTJY)Cbx3fOq+@k0?FH18`rE=9_QFp#~PriQITGtnT?NQFf zg1qNnTPy`@Gvcj`>w0{g7n-+E{`^ZO-z?Ml-OIYqTdQZVo0UIg`InGbUcV%L`jUKh zjYlV^@7=vR=Ce^z{yt&$w##zI%8tIc`t^2h#+})-vtmtl9~ahPyLgU~KRxsN+x12z z7d}Zzd^_h>ZMtXIX|s=}R?p-%GOt%}JGaJj-oxsW>uo1Q_2n5J+J4*fY{~PaZJf;V zM`JT&_8gbcJ$*Rh?sxb5eAnK|z0vnNYqxXHowJdTUmR*Y|Gjxe;lXl|)3QDP0!u!M z*+-S%^|zhX`|anCs0!Zu%AVKHJwAP6uk4=V)t|yUj;NNlckh|Hzm0$W@~sPb=iNUM z|GGP3_2pNG)Tga9|0{dtc;ZB<{l~ArdK{<1|62Lvgs*Y}Hi{+o*u2cr6u&b&T&8XQl8 z3^j}PF)UzV&=l2Y@Ob@tbpxYA*imkVOH~iF5*Q|gd}L|}581+?u>KJ%LnTnjiPaU1 z4sk#QpS0o_CWHf}f$_`mBy)QQ;XBchq|l(7H)e!aq)0 zvS;7n*LR9$z7;##C@lZ>N;iA#t4L!7&-)kOf1dQ@*7=W8|4r_*eiK_?nf^WdZ2a4g zH@~X2&cCUDXZiKpI@!}#p8dZ|YuC5mw!0_Q{1%Bb+M2uX)sF2+w{yR1Znu*-AKd(Q zPi@J5376f*$ZH%daJ_c>d$^%<{au`+WK5@Z%4IKV7fd{<5l?@ypYKU)JmTqmP}setfTo+%o`$|FP-Pr`P8loOsfE&%3?%|10cMd1>}{@*b6!{ULi) wG}k{;^#n$i=c(18(BqFwOH(!8-1Colm3P4*FGhiPz&y_2>FVdQ&MBb@0Ev(odH?_b literal 0 HcmV?d00001 diff --git a/structxt_1_1evaluation__strategy_1_1immediate__type.html b/structxt_1_1evaluation__strategy_1_1immediate__type.html new file mode 100644 index 000000000..a51041d23 --- /dev/null +++ b/structxt_1_1evaluation__strategy_1_1immediate__type.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: xt::evaluation_strategy::immediate_type Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::evaluation_strategy::immediate_type Struct Reference
    +
    +
    +
    +Inheritance diagram for xt::evaluation_strategy::immediate_type:
    +
    +
    + +
    +

    Detailed Description

    +
    +

    Definition at line 226 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1evaluation__strategy_1_1immediate__type.png b/structxt_1_1evaluation__strategy_1_1immediate__type.png new file mode 100644 index 0000000000000000000000000000000000000000..ff33b29504a536dbc5c523dfbdc4a60d9b2fee12 GIT binary patch literal 815 zcmV+~1JL}5P)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0008I zNkl^dfh3)4QIez& zElQH~p+_mr>hfZqCSRD3Ozk9jMK7nE@A=@v|Aul~_VZVi4PmowmU6QZOQtlO7erfe zzQ0BH=7l8h)%92gvb`cvHZZWgs(B+@IkAz8%Q1c+V^gR~Y|X~ZNlfP01vcT03u`0E zyYzI*J&9u~K1vxYBHpg2>=QD!BN(t;qb$aQeoT_T>A~(}2oCD9i8mRlYe4y5>M~Jo zpfRngmYJKV-DTZRn;vUpS=wqmmN)fSlDwujeDPmVZXM=&$VhUi6-$!zp+!lOKC~!F z(uZ!8A%x&v0Px590s!~=2+FUoPr&>L${XYdV15SW>ahUeMT-&ud}vVufDbK70Pvwj z2>?E{C;`BS79{}q(4qtYA6k?E;6sZN0DNds0)P)KN&xVoMF{|}PzWKo7lI@?*P@gp zA6k@>*J0Gu*Y}PWO`P%Y1FL7fBlGVMn=)3I@0k@&rojnpMRD-usvp_ zH)Hs@)uUzgW=ylTb>(%RwJ%NXO02RmMXsOUy2|^_drV8xaE@h=nrrwoGNhL_qw=oC z4m$g8i#YkAo!_~#`P@yk8JlC5W82J}8v42UskR*)-|V1=^M9x8_dcVH*}JDf%w?Og z$CSli;~+m(tB)w#`JJoLAvVK(#@brW$$lbZ2Mxm1b`yhgzWa0; zTixo~IYHSS?XWJ-QJ$^KL^-X?L}@!&sjqDyx=6!mdee_h#@3y3?|r6cmQxJU@EZ46 z-)K=vk`FCPN%El^We6d7*EcGN6qh1&o4f!3002ovPDHLkV1gJEiI)HX literal 0 HcmV?d00001 diff --git a/structxt_1_1evaluation__strategy_1_1lazy__type.html b/structxt_1_1evaluation__strategy_1_1lazy__type.html new file mode 100644 index 000000000..84885307d --- /dev/null +++ b/structxt_1_1evaluation__strategy_1_1lazy__type.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: xt::evaluation_strategy::lazy_type Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::evaluation_strategy::lazy_type Struct Reference
    +
    +
    +
    +Inheritance diagram for xt::evaluation_strategy::lazy_type:
    +
    +
    + +
    +

    Detailed Description

    +
    +

    Definition at line 232 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1evaluation__strategy_1_1lazy__type.png b/structxt_1_1evaluation__strategy_1_1lazy__type.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0b049d1102c636c29f1a45cb44e6bc51968c96 GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^M}atigBeK9^K~==QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B+jJzX3_Dj46+y<7BJfu|+h z{ATTcbvw>y{t`8FmiQL7Nv@CP7Wg$GATKektn#48r$Lh_XoCQ_FtRBE0%LGDDK~p$(p>+Sucjo$&bId_qW2y|1WFw zdUEDV6q;SQVRv=UytQ*Y&L4d#V;dOwa)o!^onw6^2FLY3u)d6`koJ^&mD{!UMAFJV z-h$d@`_4_j!Y#VBdxP-nY>}fC7tVWZx;lCLZP$td{aG~=!)#@{{O@+V2s$L)T0L#@ z>$tC{pas9)*i^)HRG|E4J2dGOiYZ&K{qmJ7sCwaZYG9j7Zx!zSP~^f@4X&!?7BwX>Zj9s6bAT48UMFURpeZK-~G z#hzCeH(5zsUbA6cP2T2hOHao3DemgxetmFD_{|kAvx^ghK9~Ie!t?U*)o@djf(@H@ zABgVy>vpwZ<%*hbPhMpBg8vmr& z*G1j>vUHK3%2xaR^_&}{1OMqgO|l6Ld@K58_AlA4jpes2C(la~_x)e?UhCBJ@|g3B zjot-|*fV$a+*&SiuiGWi%Kc1OO?%@DCEn#PeeH`yr#hYbT-#r?HTZY$YPJ q9^ay&k_ilCU_g~~8E;HFN3G6pUXO@geCw2T5tgX literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1expression__tag__and.html b/structxt_1_1extension_1_1expression__tag__and.html new file mode 100644 index 000000000..b6827d729 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< T > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class... T>
    +struct xt::extension::expression_tag_and< T >
    +

    Definition at line 332 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html b/structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html new file mode 100644 index 000000000..24a8907c3 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< T1, T... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< T1, T... > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::expression_tag_and< T1, T... >:
    +
    +
    + + +xt::extension::expression_tag_and< T1, expression_tag_and< T... >::type > + +
    +

    Detailed Description

    +
    template<class T1, class... T>
    +struct xt::extension::expression_tag_and< T1, T... >
    +

    Definition at line 370 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.png b/structxt_1_1extension_1_1expression__tag__and_3_01_t1_00_01_t_8_8_8_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..291c05a84dd6fc87c065af09cc34667480da6ef8 GIT binary patch literal 1206 zcmeAS@N?(olHy`uVBq!ia0y~yVB7#?2XHV0N&m$c^njFffKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP`w9aCi=(HDV@L(#+qticUMujl zOix|5`ThSR%h#Qi6*5=PTNEa{FH?Jh&K8A#O2;JTN+fS#RPwY^$z&AoQQ>{qG;xVy zjKL(67H+pmZ7*23RV)p*uREhsIW4r~^TOLx6aW8Q|76|iPL=REz5nc+CO&bsiJFtL zBVJ+BAG!atg+15(T$hkJ`{w)C=TFT#_jaF>{G)3&JH*=07PRb_U-auy+PmcInQOW( z-@LD+J}G9yQ46~`rn7fG@p7k_OWf$Gtxm}}ekSJcWS-A6oI5rh&MHlQzi<2bQtxBi zzKB^)T;m?KT_^3^YNx5wZj}8iy7DXJ^7_uocef_by{@=wRsZ{oFD}a*jc(d&p*|@m z!*uSnUGY0bboSnj{B|egn$@{j?d4gI(mM9kX!s?|?EVY^pLw(sAX?YuWd_EFhIxjl*N&v&Xww;i*J`Sp}ndws$C`aNfzh4)_;n*2Iq zfkWA2ze2V5uJ+~cc&khOR9+iqRB@EO;?=G`sb3WI^G4!r-&NBtHr?v{lP|mW-P)h1^0VgJ-PtPspDHG-eBNEG zbdvR{%)}>C%!S{)UOIPc*FnEY<&j&ICfS^y43ditS2)@DeShNlwI_E!+fq~OY4$kl zpvNV}lj^9ESO63hnBR0%VzF>?j~YWm{7H5O3x)({aUO;@A3i?pVr-C%F<{tmczN79 z35JM+tjr9-J7O3TIDqmz51SYpfXRWupoN=_p{?K`!vO(32?mKnKt;|w5~!)DBVId# zL(xL9C4rg6vqC5rk~rH`&|F{ ze*O4griSNZt2ceNatZzV(00}jlhpsucz1_vnh#24KYgCNZNFCdF3K`g*xdQa)8>TU z!Z*kIw;bVC{XG$wxE`f0nzBB>KKpuG)k&)(xr%?=mi`U#|4~@6xpc*q+=E@OHKHc$ zDsh) literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4-members.html b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4-members.html new file mode 100644 index 000000000..647040fff --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< T, T > Member List
    +
    +
    + +

    This is the complete list of members for xt::extension::expression_tag_and< T, T >, including all inherited members.

    + + +
    type typedef (defined in xt::extension::expression_tag_and< T, T >)xt::extension::expression_tag_and< T, T >
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html new file mode 100644 index 000000000..e91b3ea6e --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< T, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::expression_tag_and< T, T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::extension::expression_tag_and< T, T >
    +

    Definition at line 347 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::extension::expression_tag_and< T, T >::type = T
    +
    + +

    Definition at line 349 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..83085a04a --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< T, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..badefb24c --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,143 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< T, xtensor_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::expression_tag_and< T, xtensor_expression_tag > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::expression_tag_and< T, xtensor_expression_tag >:
    +
    +
    + + +xt::extension::expression_tag_and< xtensor_expression_tag, T > + +
    + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::extension::expression_tag_and< xtensor_expression_tag, T >
    using type = T
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::extension::expression_tag_and< T, xtensor_expression_tag >
    +

    Definition at line 359 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.png b/structxt_1_1extension_1_1expression__tag__and_3_01_t_00_01xtensor__expression__tag_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..04d798db5c37f2b85791e98a4f3c15b3decea764 GIT binary patch literal 1191 zcmeAS@N?(olHy`uVBq!ia0y~yU@QT$12~w0q}}(ruRuyVz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6#mLjeF{Fa=?cBG0o2__S z)SI`=`n~_rWigJQ221X$+SRJAuh_Qs;JFl!Ir}4~rE*S7jr?=KX%eGnmEf|;ON_sGsz#S^82Xv(R)_ zWxn~}(#({%M?42q%KRf62%EPg*CVt?_d3s#6OK|?fZDpE^=Uv_UAZF8vS(;@j zR>HTtJFjllQVgz*eE8_N+=lEjRlc=HFNf}t%-=g*zS4bWXhGYJTVEa>yBPQBw9e5d z8UGVo-d>qDrzS4x|FxrU=Tyy(<;r_)+3_~l-n2H`w36@kyuCHzWmywL?(EQ+DF5D9 ztGPB^nrquDU*X&Tqw2rCJz7zHymxWdZLf2|y*vB7V$Q$MTH4PNtzA3q#zU`s{u#M~ zvd6uy?`C_O>i_onq!Z7i&K%A;SmrO!we9w4nT?0%)$z>cpZqA~{PE)b(Wf^|-Sz%_ z&AIK?+g8?S)Ev7WdF5?_apvU2Gao|=!~%5pb0+Ps^WU_iZ=T=>p}z6o(wb1~5__H77M}kYH$U)AYA@Yazx4hqQ_p#iRm--$RFRyZv)*8?%3RLN zo|k6A8SO7mZ_+uqNvB(y;Y0r?W(G!vAA-x68}#k%A6hZ&5CSpz&mS&j_@Ls$&QN}+ zh@n6Y$Vfj_LKns}c{AIkQ<|m(ePZ^U#N_!&$!EF>&~DEnH5g-=;oUlB_4iNPu9t>A z`g`f?_U2ac$GNiR zeOkHNmj0&C%(Mz^=lh5K%3!+YHD7IC?8~=}n{*dFmUvlpb-~^@EBAg=F}?1v{bteq z*Dnuq-gukZRs4R6rFG8F-KD}h>6A7s4&agTEV0T + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::extension::expression_tag_and< T >, including all inherited members.

    + + +
    type typedef (defined in xt::extension::expression_tag_and< T >)xt::extension::expression_tag_and< T >
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html b/structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html new file mode 100644 index 000000000..f14b95bfc --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::expression_tag_and< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::extension::expression_tag_and< T >
    +

    Definition at line 341 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::extension::expression_tag_and< T >::type = T
    +
    + +

    Definition at line 343 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4-members.html b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4-members.html new file mode 100644 index 000000000..e901d4532 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< xtensor_expression_tag, T > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html new file mode 100644 index 000000000..f6ad2ba45 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.html @@ -0,0 +1,162 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< xtensor_expression_tag, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::expression_tag_and< xtensor_expression_tag, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::expression_tag_and< xtensor_expression_tag, T >:
    +
    +
    + + +xt::extension::expression_tag_and< T, xtensor_expression_tag > + +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::extension::expression_tag_and< xtensor_expression_tag, T >
    +

    Definition at line 353 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::extension::expression_tag_and< xtensor_expression_tag, T >::type = T
    +
    + +

    Definition at line 355 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.png b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7efde04e029b7b54e051df84ef329a13ecd83eae GIT binary patch literal 1192 zcmeAS@N?(olHy`uVBq!ia0y~yU@QT$12~w0q}}(ruRuyVz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6#n{uuF{Fa=?cBG0o2__S z)SI`=`n~_rWigJQ221Wv|52j4zGBkY5lVC#+HAcK}Yw`(DR)9!wabLQI<*cy|iDi z>wiYY#dp7`(zdm`eq&m2`|c~s4<&D$>h~5=wmY2rHptC(b@suXDHBbD-<&8>-8y~J zs_amurN1^EI@)iWaQ%&!OjP&s)fL9~wxxY@zZaM$I!AGv*T) zV7qim)0ChhW`=(n_6!0H4f2Ur3_m`77GB5Ppbchzu!&)3@IO?-P@t~E&X5jbsQJ)` z@o&S+)0=eaC(lofoMz7{Hi^gMQn$femARakJul6KGmd?6nIv2GMaO5-`=YQ%e=mKV zocUKdGS*x}^<-Oo_kZ!ro<&0YP5-J~EoaJ~{jX|6jLQ1;t|fb?%FWNtIlc05?5l|% zcygW|SM3s<|8QHG=HpvmUUNQC>{>GO(eA19PCQFWDqX8QdF8$}1s{|7ZzDD-^qI?-<*!xCzW43L)7=|_yO%sVmfHEJBHv5$jrHx;m)}^{{JMPPebDc3Nqg2l zJ{Gt%SM~YIV|UzC*FFDy(o5d=K-A02N49J4wGG(jS|XzyyIyL`bla`hfi9GKVHW+a z+P2n$arfRc0{LIQB+sa+5LsSP_+$I-%{?skdh|Q|mwMdfC%tEc>~EIxI8zO V-c-zX9ayF?c)I$ztaD0e0sxJ0PlEse literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..65c72a465 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and< xtensor_expression_tag, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..446166984 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_01xtensor__expression__tag_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,150 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and< xtensor_expression_tag, xtensor_expression_tag > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::expression_tag_and< xtensor_expression_tag, xtensor_expression_tag > Struct Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_expression_tag
     
    +

    Detailed Description

    +
    +

    Definition at line 364 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + + +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_4-members.html b/structxt_1_1extension_1_1expression__tag__and_3_4-members.html new file mode 100644 index 000000000..72a33bdad --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::expression_tag_and<> Member List
    +
    +
    + +

    This is the complete list of members for xt::extension::expression_tag_and<>, including all inherited members.

    + + +
    type typedef (defined in xt::extension::expression_tag_and<>)xt::extension::expression_tag_and<>
    +
    + + + + diff --git a/structxt_1_1extension_1_1expression__tag__and_3_4.html b/structxt_1_1extension_1_1expression__tag__and_3_4.html new file mode 100644 index 000000000..a18a11db0 --- /dev/null +++ b/structxt_1_1extension_1_1expression__tag__and_3_4.html @@ -0,0 +1,150 @@ + + + + + + + +xtensor: xt::extension::expression_tag_and<> Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::expression_tag_and<> Struct Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_expression_tag
     
    +

    Detailed Description

    +
    +

    Definition at line 335 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + +

    Definition at line 337 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag-members.html b/structxt_1_1extension_1_1get__expression__tag-members.html new file mode 100644 index 000000000..43b5e1b3e --- /dev/null +++ b/structxt_1_1extension_1_1get__expression__tag-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::get_expression_tag< E > Member List
    +
    +
    + +

    This is the complete list of members for xt::extension::get_expression_tag< E >, including all inherited members.

    + + +
    type typedef (defined in xt::extension::get_expression_tag_impl< E, class >)xt::extension::get_expression_tag_impl< E, class >
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag.html b/structxt_1_1extension_1_1get__expression__tag.html new file mode 100644 index 000000000..dd8b2f3bb --- /dev/null +++ b/structxt_1_1extension_1_1get__expression__tag.html @@ -0,0 +1,143 @@ + + + + + + + +xtensor: xt::extension::get_expression_tag< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::get_expression_tag< E > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::get_expression_tag< E >:
    +
    +
    + + +xt::extension::get_expression_tag_impl< E, class > + +
    + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::extension::get_expression_tag_impl< E, class >
    using type = xtensor_expression_tag
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::extension::get_expression_tag< E >
    +

    Definition at line 324 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag.png b/structxt_1_1extension_1_1get__expression__tag.png new file mode 100644 index 0000000000000000000000000000000000000000..ed65e1340c16a374c7d2f8df89639511354ee773 GIT binary patch literal 951 zcmV;o14#UdP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0009* zNkl`Ad9?s6 z01E&~&Z`VSAjv}YXe&(8luM0B(y7(!Mm!6J=Z_@4UI9RoL%q_MB)x99LgN zmmMB|8b<(*<`KYg5xQJFfYhUIY0OMT*E%-81ivY(2W08xW)4X6ittRzHm^W_ zk8L<{H&vroAhvA10{$B9@gwOqPC)e)@HwE81WEF38ot*z9(0ndt8Q}7`WFD?_;>af zpJkG)sPs5r{L=g50L~Lll1;sS0-B?I9so)HH(CG|fCYdg=hXwiwr$(Q0)UU|3jk); z>;S&LCMPgEfXDjhCNMpKl>`@n1pokM)&c+kGiw0=fSI)b0Km*z003ZSEdT&8vlajV zm{|(|0L-if003sz0ssIrYXJa&nY91_z$X<#2r~;olIGO{umCIok~FWn0P0nZ4wpdw zjCQM6*KN=7lGN4v07%kM?>%mP0FpFT9l$eY0X{!Xbgv4J|2=l}@!_*;sq^{ixg=BWoq&{)>?%y2DlT9TKqm*BmL-HBWn}>1 ztvMjgD`qE?vdt@y-(wq2iOp1vUV+%M^$PfFw8!`57hCRffF#w_$^nw}HVub(%N%}Y z^6LQno}C->vp2i#k&hxt*Yx`*;L + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::get_expression_tag< xtl::xoptional< T, B > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html b/structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html new file mode 100644 index 000000000..d3a72e869 --- /dev/null +++ b/structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html @@ -0,0 +1,165 @@ + + + + + + + +xtensor: xt::extension::get_expression_tag< xtl::xoptional< T, B > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::get_expression_tag< xtl::xoptional< T, B > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::get_expression_tag< xtl::xoptional< T, B > >:
    +
    +
    + + +xt::extension::get_expression_tag_impl< E, class > + +
    + + + + + + + +

    +Public Types

    using type = xoptional_expression_tag
     
    - Public Types inherited from xt::extension::get_expression_tag_impl< E, class >
    using type = xtensor_expression_tag
     
    +

    Detailed Description

    +
    template<class T, class B>
    +struct xt::extension::get_expression_tag< xtl::xoptional< T, B > >
    +

    Definition at line 47 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T, class B>
    + + + + +
    using xt::extension::get_expression_tag< xtl::xoptional< T, B > >::type = xoptional_expression_tag
    +
    + +

    Definition at line 49 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.png b/structxt_1_1extension_1_1get__expression__tag_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..11a2c32461fe521d3b5cf28896b79c7ac2d3629f GIT binary patch literal 1321 zcmeAS@N?(olHy`uVBq!ia0y~yV9Wus12~w0Bv;@5mq1E7z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6Ws9eaV@L(#+qtj%UMujl zw0CZq^}YVl+P12mSCz^A%O7oNr zo<<&U249)tNx#Q0bbK!LOqWwS>9#pE|44hkUDI-DtC{(aQ~wq-PO`ZepD_8!(tn$# zsYLI6_)RlslFZ84MPK4?+~cdRy%uxs^YYGh!B0Qd_vU8b`mk?{-_6%%)2_a#tV^!S z%GKSj!}jRezO@n?f5h%OUT$S}*6uz3?caYn&A9(2BpP3vJ8`M(;ey8r+b-K1p1T^k zeQKnw&!3aaZk{P@+|2S>*kbX$_afW0_wMW6ay|U?Y59vP-xB#tIc`tMTYb1BZ|{Gp zqwJ-ZKf7Ny@9dK=d{H+_kKVX6V`gXY>&G9bCv2Br zb3XAs=Uw&>i+XtqzUQU{IF&AvD-2`aw?sYkW#eu4XV=6(Za(!*U2^%%BXKKp%5Q8w zwJu)U`%KN@W7V?`*uA{DJC%RWguIvo^A^Z_d-F}@-I2}nY_sOxe{pl_!NSh!re6!? zzQ%sn%bT3G>ZS6tp6JUf=2u^Li#fLI^Zg&+9Os0T-4<+rZk_knWApoM{(IGO{=Uh! zcy&|d=E`q5lm5(FcPY-^VN$r%?3$FnAM5T#Rxszphn=_nzWv{`hgJQ1Wvbr?+{jZTjD^fR*)$U;r%Zq|;af@%(37?V;~F=A zi(_A|+=|MJbaTJ)*jo1Wmh-63eR4P1{Rt&S8hw0sA=mG@y@uNR z%$Gc~en@=e`QE+3{BiRCXk*L0&0=M-hTBZi(jHy;RZ-Kwz5S2Ow|6fW#BQ0GeJ326 z8f(K85UJ7G=dho}iBhK9|Ez(jabCan?z*))hM#$*^DCHsFG+tt&Gv)R&O*l9U*D8% zeir~ti?8~&e}8l8!H$Qv)qlJCf32$y-0o?7^@|{LLblZLmV9NsWZP@`HL2z)g)$F! z+&G+hKj8host7lj4gdCG-pS*d|2JH}ow$AL4$&6<&T{P~ zpFc#Zyo{MI_gjC*yY+9vMo4dt&(Tw9z(S3|)78&qol`;+02dRA#Q*>R literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1get__expression__tag__impl-members.html b/structxt_1_1extension_1_1get__expression__tag__impl-members.html new file mode 100644 index 000000000..8ed61068f --- /dev/null +++ b/structxt_1_1extension_1_1get__expression__tag__impl-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::get_expression_tag_impl< E, class > Member List
    +
    +
    + +

    This is the complete list of members for xt::extension::get_expression_tag_impl< E, class >, including all inherited members.

    + + +
    type typedef (defined in xt::extension::get_expression_tag_impl< E, class >)xt::extension::get_expression_tag_impl< E, class >
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag__impl.html b/structxt_1_1extension_1_1get__expression__tag__impl.html new file mode 100644 index 000000000..78a37dadd --- /dev/null +++ b/structxt_1_1extension_1_1get__expression__tag__impl.html @@ -0,0 +1,163 @@ + + + + + + + +xtensor: xt::extension::get_expression_tag_impl< E, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::get_expression_tag_impl< E, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::get_expression_tag_impl< E, class >:
    +
    +
    + + +xt::extension::get_expression_tag< xtl::xoptional< T, B > > +xt::extension::get_expression_tag< E > + +
    + + + + +

    +Public Types

    using type = xtensor_expression_tag
     
    +

    Detailed Description

    +
    template<class E, class = void_t<int>>
    +struct xt::extension::get_expression_tag_impl< E, class >
    +

    Definition at line 312 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E, class = void_t<int>>
    + + + + +
    using xt::extension::get_expression_tag_impl< E, class >::type = xtensor_expression_tag
    +
    + +

    Definition at line 314 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag__impl.png b/structxt_1_1extension_1_1get__expression__tag__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..8c9aba49c1da83d715d07c9bb9642de2d723f767 GIT binary patch literal 1710 zcmbVNc~p{F6#t+!(iW^}+9sqZ&D|I+qtXaeoI(+GMjg{*g@tL7hG{O;aZ+q1>^m+2 zdQ3C}3eC!8%x$bR6ST!;)I^&U6~v{q+=%&f=FB*$RBrk*CE zjL9k;ENTk&4|?sI2s?Z&-P6F+tx1m!)Co?}H{RkoAcgQ%7@{5S(+;BECPE5>t|X-x z*d!s_WwPr?R1g9q;qkt~nAIVzNE*k8iEdiAZuH!?>goDRxbzwwkJnzsWF7TlV`fqr zbQb5lQ6k3AT*C8BMxy$|w~fF2lJig*r?YUr>p!9%|IWUaw${2hy!@q^PtrTMcJnQC z<(hzN*&)7Jj-+ly#fFQVK0%*s6kNR6A#KfY2VMYe& zm*55eR}9-btS9cp^wLx9-nF6h4h-~ydS9h_?_-p}hfBE1s<69l&Y_K|wJRIr0Say}Ms!DoK^j6oZm6CcD!^sv`QTr%Ii@A=w7_H4kqWRfe zPrF52oV1p9rfjQV`@E`MENX0jkWm^puz%|L%vqA%Bb5p@R3>sJ>CK?`x6FGT^Xn;l z9l*n*N=;+J)PaPt)5q!Zix`IVJuAZ{G``TBfv3g$wc4$w!t|MzD*9k|dB{E0jey4* zZK3;tOl{PN_BrR)R!wYvm{$Ia0H4@kg65j3=7QUwX6Xl7hUA<@>D*eOCfT@;U*UD( zf1(UL1QXKk9XLZ*5*B|i(5Tchgk~9Pn9b|@G^4$?hL@4 zfC=tL00F?+Pu2g#s>O3AZS>fbR`uE z^Ir-p-%Zp*0O7||43NM(K5{X^ZYd!YD(CM6ohi5RgVDk5+~j=#jBR++oed)f!xmEF z;H!++8TPvjtPcWi{s=hk$OV?AJcG{|%`V^Mgxy%jePL1u>?i>eh=*bNNRHmb&W|f? z*sd0A^#6mHu;s`dhSv7qjBG(WVeN;qS2$%BIDy+tNg0a*LEY8FMS6q!NTC~u#z?TM zjfojpM}il5i&KgjIUz{|e#drh!;Y9fq3bYZToNgI3cxQ-7a zANc);Hm>4^eLOf7sW9>et(gAed=c1oGWwqF7Y=HHD|CCatG43X8k(h$BJjv&kLNxg zjxvwe<}@gyRqqGeH9j$gscHVV&zGd$zMI#a_Q^u(k~n7d;kxhXg29COL(TWWGIiqm zY3o0391)s{tJA##-tKc1*Hk|BP6~cMZ!#CDA#@I2xL&e*%Cuo}hq@$8I!JNtE^=#g z)*Dad7brbFFUHriqG(uh@uSkOm4)YqL;>z4`I-p9m2i40&hL@_p*7VDW)0ExZISkq zczj=j1+F{AFSBBqcdwsr=zL>zC109Wkjpex9c<$Be*2KU`+ke;v$NwVqx%)iEwS-& zn~Q6|4hgMn1?NsY{(3`_Pt?|F{@~1JO6EKI9L#%u4a;%)S$ycpipF9&W%dPgxG1=n z)x}d2+dj6ENntf1r$}0S+0&9)YhjDvRh+^;_CePQ-X6;3p3uy+`BAL+H>C_@?0O|~8rzv63OL?N)EbuMQxpRJ7^(No1N+ojoN6O=iu1WgY1}N8bZzjriO!sM z?g`~@E+5z84iDZ@zn)vEwz_{aQ%{rcZu>ikcp```n$Gj5_*{O69f|pD+wF@T$<9?y-uW_Sq6%0F zAd=z>`)hSn>++1em?|czdW7Zr#&8t`G39=twZoc>ru@q-hjsWD + + + + + + +xtensor: xt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename std::decay_t<E>::expression_tag
     
    using type
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >
    +

    Definition at line 318 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::extension::get_expression_tag_impl< E, class >::type
    +
    + +

    Definition at line 314 of file xexpression.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > >::type = typename std::decay_t<E>::expression_tag
    +
    + +

    Definition at line 320 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de4e085c648bbd1efca51f7b5461e984a5.html b/structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de4e085c648bbd1efca51f7b5461e984a5.html new file mode 100644 index 000000000..14718f291 --- /dev/null +++ b/structxt_1_1extension_1_1get__expression__tag__impl_3_01_e_00_01void__t_3_01typename_01std_1_1de4e085c648bbd1efca51f7b5461e984a5.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::get_expression_tag_impl< E, void_t< typename std::decay_t< E >::expression_tag > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__base.html b/structxt_1_1extension_1_1xarray__adaptor__base.html new file mode 100644 index 000000000..138a09a65 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__base.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xarray_adaptor_base< EC, L, SC, Tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_adaptor_base< EC, L, SC, Tag > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC, class Tag>
    +struct xt::extension::xarray_adaptor_base< EC, L, SC, Tag >
    +

    Definition at line 161 of file xarray.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html new file mode 100644 index 000000000..75cda8537 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html new file mode 100644 index 000000000..9da0b04e0 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using traits = xarray_adaptor_optional_traits<EC, L, SC>
     
    using type = xcontainer_optional_base<traits>
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >
    +

    Definition at line 400 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ traits

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >::traits = xarray_adaptor_optional_traits<EC, L, SC>
    +
    + +

    Definition at line 402 of file xoptional.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_adaptor_base< EC, L, SC, xoptional_expression_tag >::type = xcontainer_optional_base<traits>
    +
    + +

    Definition at line 403 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..9f4438f79 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..df351877a --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >
    +

    Definition at line 164 of file xarray.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_adaptor_base< EC, L, SC, xtensor_expression_tag >::type = xtensor_empty_base
    +
    + +

    Definition at line 166 of file xarray.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__optional__traits-members.html b/structxt_1_1extension_1_1xarray__adaptor__optional__traits-members.html new file mode 100644 index 000000000..79b595ed1 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__optional__traits-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__optional__traits.html b/structxt_1_1extension_1_1xarray__adaptor__optional__traits.html new file mode 100644 index 000000000..41c6e2329 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__adaptor__optional__traits.html @@ -0,0 +1,175 @@ + + + + + + + +xtensor: xt::extension::xarray_adaptor_optional_traits< EC, L, SC > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_adaptor_optional_traits< EC, L, SC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xarray_adaptor_optional_traits< EC, L, SC >:
    +
    +
    + + +xt::extension::xarray_optional_traits< EC, L, SC > + +
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using derived_type = xarray_adaptor<EC, L, SC, xoptional_expression_tag>
     
    - Public Types inherited from xt::extension::xarray_optional_traits< EC, L, SC >
    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xarray_adaptor<value_container&, L, SC>
     
    using flag_expression = xarray_adaptor<flag_container&, L, SC>
     
    using const_value_expression = xarray_adaptor<const value_container&, L, SC>
     
    using const_flag_expression = xarray_adaptor<const flag_container&, L, SC>
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_adaptor_optional_traits< EC, L, SC >
    +

    Definition at line 394 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_adaptor_optional_traits< EC, L, SC >::derived_type = xarray_adaptor<EC, L, SC, xoptional_expression_tag>
    +
    + +

    Definition at line 396 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__adaptor__optional__traits.png b/structxt_1_1extension_1_1xarray__adaptor__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..1dec675a7ac39b0c0c5bad86b9f36ef14a97cc54 GIT binary patch literal 1271 zcmeAS@N?(olHy`uVBq!ia0y~yUL&E4oHYI`yh=rK)#Tqg zE7wiidUEa?&kF7tN}iv5{8#$xaTKjD=S@(Pw}rexO;xetyNyNw%#W>=H`P9Eh_OrHdpdp zN=un0Kk>g@Uc@lzkE|Cktk*8_nsgD)*cEtpTdp@S4v%s&)OGA*P+(p|++4S0|Isyveu0wM=K1%&zS^@z%D{~+VCoW!z22dd`nD|D6?ILm ze3SY^-GnZg6@KSmAd=VTU76LVf8F_h&p6>$R*xuRi zv1xH#{Xcd5bLx0*3|JkFv$@0L52H7bSJ-w@XPF;H*H%YT(o=myD>37F7F-Lu_-d*!QC(x$m>!ier zsLRK~L*(-=toUZVE^+r0(}NH6oo^=JTDkn*0;@wWQ*UsoiB~KPpWYsq`{*QN%%YbU zx6KcWE#f#*w^6S01J@thtI6yi${x>oXd7?4!0PL(3XK_m?azTyU3Zm?l74{g_p6nz z6W>(Ke03}Q`Q%#H(hb{hhHH2CZP@Gj%wwL+0srfpw^g}m@0C3}S^DaVx@q_Se-AIY zx5)PWS*zy^?{0pbdqsZP_WQrGjP(zn-Z7K+h4`d1FZOA9%3r)J9k=p@a;W^b6)Luu zpRe4OXHj?N^x=c+cewm}qc-V_OTP18o2%U0f1B;q^2~o(U%=q`>#5hONg`{PXn6ut n6O^$lPbP0l+XkK^y_a} literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xarray__container__base.html b/structxt_1_1extension_1_1xarray__container__base.html new file mode 100644 index 000000000..162a8a159 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__base.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xarray_container_base< EC, L, SC, Tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_container_base< EC, L, SC, Tag > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC, class Tag>
    +struct xt::extension::xarray_container_base< EC, L, SC, Tag >
    +

    Definition at line 32 of file xarray.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html new file mode 100644 index 000000000..cda380fdd --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html new file mode 100644 index 000000000..6667117b8 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xoptional__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using traits = xarray_container_optional_traits<EC, L, SC>
     
    using type = xcontainer_optional_base<traits>
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag >
    +

    Definition at line 380 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ traits

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag >::traits = xarray_container_optional_traits<EC, L, SC>
    +
    + +

    Definition at line 382 of file xoptional.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_container_base< EC, L, SC, xoptional_expression_tag >::type = xcontainer_optional_base<traits>
    +
    + +

    Definition at line 383 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..1dc5ed17b --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..0c4e9f18a --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__base_3_01_e_c_00_01_l_00_01_s_c_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag >
    +

    Definition at line 35 of file xarray.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_container_base< EC, L, SC, xtensor_expression_tag >::type = xtensor_empty_base
    +
    + +

    Definition at line 37 of file xarray.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__container__optional__traits-members.html b/structxt_1_1extension_1_1xarray__container__optional__traits-members.html new file mode 100644 index 000000000..f69ce775b --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__optional__traits-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1extension_1_1xarray__container__optional__traits.html b/structxt_1_1extension_1_1xarray__container__optional__traits.html new file mode 100644 index 000000000..5ed2cb824 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__container__optional__traits.html @@ -0,0 +1,175 @@ + + + + + + + +xtensor: xt::extension::xarray_container_optional_traits< EC, L, SC > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_container_optional_traits< EC, L, SC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xarray_container_optional_traits< EC, L, SC >:
    +
    +
    + + +xt::extension::xarray_optional_traits< EC, L, SC > + +
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using derived_type = xarray_container<EC, L, SC, xoptional_expression_tag>
     
    - Public Types inherited from xt::extension::xarray_optional_traits< EC, L, SC >
    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xarray_adaptor<value_container&, L, SC>
     
    using flag_expression = xarray_adaptor<flag_container&, L, SC>
     
    using const_value_expression = xarray_adaptor<const value_container&, L, SC>
     
    using const_flag_expression = xarray_adaptor<const flag_container&, L, SC>
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_container_optional_traits< EC, L, SC >
    +

    Definition at line 374 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_container_optional_traits< EC, L, SC >::derived_type = xarray_container<EC, L, SC, xoptional_expression_tag>
    +
    + +

    Definition at line 376 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__container__optional__traits.png b/structxt_1_1extension_1_1xarray__container__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..eff0323049fb7c084291682bde1b9ab88c7f7576 GIT binary patch literal 1282 zcmeAS@N?(olHy`uVBq!ia0y~yV2lT{12~w0WT#i#B_Jgo;1lBd|Nnm=^TnI5rTvGN zTNr2-NK8NT;=zLlKylNvVM~B=oFzei!3;n?7??B7zQVx3((CEs7*fIbcJAwtAA)8#e)R>!wzZfC4h@w5w-iJw%nlJ8pN zr&!$58rOc1d3m^+;`ctzK(D2cl)Wg|9{^%Yw}CE%WJO|uiv29bn~#q|NZYR z)8?B!OEvoSr}fE=SMSgFC)-X^ng1%~uh=D1u~}vJg(GvKOTIH#{COc5YxwTW_S$RA z&njvk9QbK--|G0c`DI<3|2;T$8(GUQd4Ic)Vh=d(4XaPmL?PK7`gAc>1tj`nP4( z)|2vQa#ys~%zMAje#XkbRsCP9&(@d!*tezbceKg7q?(0%xi|A)d<>ZTEc(R8*k`-H z#b*b&*UX)|_gcO7RKCr3PyO3*{$IlG*QeuTm*(!im!7V2_)nHw@R{Q#ukD=oR9O{& zwdGkQb=4uSU|pfZe}$8qtzPd}`6>2xufB@p+Pk|{PriS-{9~@EsmSS>YjYHbuk5}nk`|sZ$i)+fYf5lFkiq0%M@2#~>ch_%5o4PL@>lTP5 zzPj#bVZGfWdA9ma&F;Ir8_$1UTb%QMM#^XQ@+)lTS(3J_m%KG&{!WYCHR)&G9pR1N zeO)#zZ{p1LCsQNN#q`wGs(#(}oIy{wJ>e)g*~J(3-epM~gldEjZmjBROH2+(>Qtw-%`&<7<6dvc#ou73A9c81yQxUZR;`#rCoSXNUtCGoMdUaqcZ^6G!Leex8Z z=d9v;AwQ|@+TZX=_ZErk|Csit{B_u*c`yIgM9037-=QLV`mC++6YJBp-0y$?+*h-6 z`+a*)tF`|R%B#GbANXnN5@2HT> + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xarray_optional_traits< EC, L, SC > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__optional__traits.html b/structxt_1_1extension_1_1xarray__optional__traits.html new file mode 100644 index 000000000..486596d93 --- /dev/null +++ b/structxt_1_1extension_1_1xarray__optional__traits.html @@ -0,0 +1,263 @@ + + + + + + + +xtensor: xt::extension::xarray_optional_traits< EC, L, SC > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xarray_optional_traits< EC, L, SC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xarray_optional_traits< EC, L, SC >:
    +
    +
    + + +xt::extension::xarray_adaptor_optional_traits< EC, L, SC > +xt::extension::xarray_container_optional_traits< EC, L, SC > + +
    + + + + + + + + + + + + + + +

    +Public Types

    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xarray_adaptor<value_container&, L, SC>
     
    using flag_expression = xarray_adaptor<flag_container&, L, SC>
     
    using const_value_expression = xarray_adaptor<const value_container&, L, SC>
     
    using const_flag_expression = xarray_adaptor<const flag_container&, L, SC>
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC>
    +struct xt::extension::xarray_optional_traits< EC, L, SC >
    +

    Definition at line 363 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_flag_expression

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_optional_traits< EC, L, SC >::const_flag_expression = xarray_adaptor<const flag_container&, L, SC>
    +
    + +

    Definition at line 370 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_value_expression

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_optional_traits< EC, L, SC >::const_value_expression = xarray_adaptor<const value_container&, L, SC>
    +
    + +

    Definition at line 369 of file xoptional.hpp.

    + +
    +
    + +

    ◆ flag_container

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_optional_traits< EC, L, SC >::flag_container = typename std::remove_reference_t<EC>::flag_container_type
    +
    + +

    Definition at line 366 of file xoptional.hpp.

    + +
    +
    + +

    ◆ flag_expression

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_optional_traits< EC, L, SC >::flag_expression = xarray_adaptor<flag_container&, L, SC>
    +
    + +

    Definition at line 368 of file xoptional.hpp.

    + +
    +
    + +

    ◆ value_container

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_optional_traits< EC, L, SC >::value_container = typename std::remove_reference_t<EC>::base_container_type
    +
    + +

    Definition at line 365 of file xoptional.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class EC, layout_type L, class SC>
    + + + + +
    using xt::extension::xarray_optional_traits< EC, L, SC >::value_expression = xarray_adaptor<value_container&, L, SC>
    +
    + +

    Definition at line 367 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xarray__optional__traits.png b/structxt_1_1extension_1_1xarray__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..71a54ad251da578d07b7733daa56740483ab14c6 GIT binary patch literal 1756 zcmcIlYgm%m7XFNrl%;0cF>hVK%cOpR{%}Zv2Hi|e->cOL8Dk;Z8k3uGl zW_ZbF5F8t|CvgG=#d1_?FwMLK#Ym6XOevM7IO>?^!+GX8KhF7k_K&sK+WURiv-e)_ zdUkP0&~alUYa;*vjBzLYLjhoe4Dv%Z!5|Axr29dWO~|Qm?AqEI0mwvE+(6^Guh z{WyNeks2`Ba=XzxdfwV>6DCRR+WltJ-oH3q-Bt*w0jA?k4u(X6ky!?OHKLkx?IG6i zW&tCawBK3&-p_8&)nK^xYEFrOwGt`fbSt(x_cki@8+YcsNCWOBa@WJxeU#Jx{l5k8*KsoYAK*lU2m`#@tNFei582PFx7wj+tf4daZ^^ zBWg^0OR48HnT1_Q7!@qiRZPY1om-vO#`lX#Wr`F1SQAoqc9f<*9Z5dC{no$m_kF&* z$Jpvt9O)l4mI_~PrYzm6U3{ayTd(vKd5o=2gq|sB)5RWrXM87mb%ccY`<0es`=5aV z2|l0D*G{M?;oBtdn4)tOXY@soeENr6Uig&rq}+;<6$c8W>u(|U|C#bAdBr<}R8Ek~ zW8%vCQSRNgT_-i~h+Q*sH_)329e@sAj3en(`eKn;1M&bp^8wZqw4p@=2vE$!<`YZw}6 z=))S4fuL)Qt!kjg+ENcbv=06XPXyrV5h%S$cjG!CY!dM&ffkOc{HeDckE(nMpaH)R zR0Bt~FO1pqapO%I+}O=z(DK5DT^`+NpIF-FOGCiq{|V5r<#6B5;2#|za}{nE&otk2 zl8wZ{WY`<_$JvHzMBp$QPsCNx82fRPWR^qH22`v4wI1w^`pqI4+rz{%itRXLjyVzP zC#Bpy&(8A&m8@5HQ*>3lx-kySsu@QbL42h&ecTw5-%#JIhO2iz4E3c1w3e zv2%QKB38d-FeEq?_2N()RSYF9h*iA{e1`H*9qZG&e^1CW8Xx4P+DX29@?P8`OgK$K zT70cIn*g4tjPvrJB7aCqWTloL!_96Ly0Yh5^YTAA>Y|TYEKOQv^$goeYN^!0wDzSm|21YRjWQczym+Tt^$w5l&uJn!ccpvGGef0d=#6M^-` zT2-fcy>t{k;}J?~JZZmgzOU4A!w3^xjA<1=CBe>D(3zoZ6MV_lHjO)9uOpn^7iWzyb;G{259ebF=(>mTh@&SwqY z#(ao*j;s=nhb^_s(%paF(auCx4?Y@3VOwrVW9}tb=U!}Ib)eT=vKXa9dw()IW0a8*4Dak>U25G= z#scw;!EEWIlF#Y&JlT~YuxfJU6J9NHGmqR84BY{M-!EF zsFuYluYA#i2cGPCr;gk!_IBTzL4uimeW}Y^Yg#O6eyAE~iY6?e?N_+fCx*>Gy`FW# z=H0qye?%RglpmmheO#%si(=;u{^FmPi=L>}6;X(|W!K--rTcMfrvI(P{~^~%Ry^}* n@xeYbBBFmM*F2ty{0%;xk#_D>$QR4dKLp^gLH;d&yHN0N{ZK~~ literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xbroadcast__base.html b/structxt_1_1extension_1_1xbroadcast__base.html new file mode 100644 index 000000000..16dec0871 --- /dev/null +++ b/structxt_1_1extension_1_1xbroadcast__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xbroadcast_base< CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xbroadcast_base< CT, X > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xbroadcast_base< CT, X >:
    +
    +
    + + +xt::extension::xbroadcast_base_impl< xexpression_tag_t< CT >, CT, X > + +
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::extension::xbroadcast_base< CT, X >
    +

    Definition at line 58 of file xbroadcast.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xbroadcast__base.png b/structxt_1_1extension_1_1xbroadcast__base.png new file mode 100644 index 0000000000000000000000000000000000000000..0d121d3dd6ff3d6adf121474381afa54387a5c60 GIT binary patch literal 1289 zcmeAS@N?(olHy`uVBq!ia0y~yU|bAj2XHV0$!4opM}d@dfKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP`w9aC%M?!+$B+ufw{t&ETCKx# zl>hk5xqJQ#*XOeODy%5~er@*K>3z$y8aRGBe$tyE{#PlS44mxu zda>~<^&XF+Rojh~PWsuWxlEe3&Zuhd`+612tXnUCzUs~Hxn|h)`qZt2`qJp?E7R|- z*|+a&jnu09Zh)D;bQJHW#)FVi!I&%nY{6=KDOE|n)g1_^PL6hp&qp_`)*DClz4ga zuLY9@WrQv#zu>!FJoj$r?{%-1uV}hByV`%RjQp(|&#kPFB%2f&C~g$iRFQqD?;n1} zKkob`-wRfMrd_(2xLNl0?J0q0tECsu`p9>2uA!0LwzKK>CT|3ankKPacbYo&4VDQ{<1`GPO@-RwgE|D=s^CZ-al~odeDv_Q+Zryt0jQn|v+%`HJ~F zjkPCl;**r!@H_hXiq-CiEpKVBe7FA9>Ui5ZGq)QiyZo!Oef8(&rv=lttUoe0RPk%+ zp^UixTj6}KC*ICXd2(fOE${8RobGknvsKD-<1YJh`<_)aoxe3&_v^fi>&kL+mG=~1 zS?VRrwppk=%*=6i>nhn~HT&-R*^dIU&S+ddnUj~kV3oVd&*-N*Ju2?8?>r_M*PcIF za%JW2jGnmGnj7=dZSNh;_!D+^&hpJFo{QfrpDK2lRKLjH#d(tb)pP@;ljlQ?luq98 za#N9vhNlu+3Ek71mH^YxA}$6y?|6m@Obr{n+!zF+;^R3v8I-go867fg1yofSIM$@F zFkGD4!l1Bik|4v8Fe9c0pivA0(I+_=l0eFU367y-El|%l52aEi^GRZ9`AYc8mVhxCJfQzocX5 zwS;bwYTq-wAK_^>iZ5ICdC#@83-@$(>WejNBV*9-lS*KCjBsZp+5=rDY!G z%Y)sn6)-RTEqQg%cEeSY?*;BkDnCxP=KAJ*ST1nwdU4^m-Opc$d6_@6+Wg3ldu54n zYKrjWN#$bf{nIAiu6ij``t^nIxr=f4zY2w3{l2>W@QPkZ%e@QbwyvLR@T;e4i+kDX zuexcb_sp7C#-u1{tjkWgw*Obm-Sum`=`=Ux1KOX^aUTXBE85Wy>g%*RStDnm{r-UW|seNM) literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xbroadcast__base__impl.html b/structxt_1_1extension_1_1xbroadcast__base__impl.html new file mode 100644 index 000000000..85d33544b --- /dev/null +++ b/structxt_1_1extension_1_1xbroadcast__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xbroadcast_base_impl< Tag, CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xbroadcast_base_impl< Tag, CT, X > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT, class X>
    +struct xt::extension::xbroadcast_base_impl< Tag, CT, X >
    +

    Definition at line 49 of file xbroadcast.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html new file mode 100644 index 000000000..f74d2c677 --- /dev/null +++ b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html new file mode 100644 index 000000000..7a0316c97 --- /dev/null +++ b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xbroadcast_optional<CT, X>
     
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X >
    +

    Definition at line 574 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::extension::xbroadcast_base_impl< xoptional_expression_tag, CT, X >::type = xbroadcast_optional<CT, X>
    +
    + +

    Definition at line 576 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html new file mode 100644 index 000000000..6e9f54496 --- /dev/null +++ b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html new file mode 100644 index 000000000..c3bef033e --- /dev/null +++ b/structxt_1_1extension_1_1xbroadcast__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X >
    +

    Definition at line 52 of file xbroadcast.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::extension::xbroadcast_base_impl< xtensor_expression_tag, CT, X >::type = xtensor_empty_base
    +
    + +

    Definition at line 54 of file xbroadcast.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xdynamic__view__base.html b/structxt_1_1extension_1_1xdynamic__view__base.html new file mode 100644 index 000000000..41a3c20a1 --- /dev/null +++ b/structxt_1_1extension_1_1xdynamic__view__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xdynamic_view_base< CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xdynamic_view_base< CT, S, L, FST > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xdynamic_view_base< CT, S, L, FST >:
    +
    +
    + + +xt::extension::xdynamic_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST > + +
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::extension::xdynamic_view_base< CT, S, L, FST >
    +

    Definition at line 79 of file xdynamic_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xdynamic__view__base.png b/structxt_1_1extension_1_1xdynamic__view__base.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd1ca544ae41606ac513113b4469cd686ae0f5d GIT binary patch literal 1469 zcmb_cc`(}v6#kJ$>#EK=q6j^rY8)-nJaDGWb$nU9lIBkm8r3}nZPfyG1wp{;O zc~3dX2aN^f`QK)*SjqVN#V6;aDF!Y;j;m z!$1T&g?MnjX@9{inf){}(u>YnPTX}VWJREtOYEEt@lO3In4;O|Y}OlCv?SoD(R<+y z>c`FX@Bd4q**=hp7??Y%XK1Y80e{LXM$-zpj(+&1{)mjJB6*P-Vodgd_<1~oC*qP{Q3 zJzO%@9exe4o9+Y3hrtpXuCUZ@jRP_!^-R_ho z{J)ZJSEEhqFdn9Nx*ozzVW^5mXA6{khjCxFVjHXzQ&|jy5Fz3(=0%;Suv<4s-?{~Y zhank)xvjcp9!R9n3KVYC?op`53%(k&x9w-e0ZvNN!{S_dnQDk+S zDP=S$p4Z=kyexwXlQ(zz<7i4o9H_Fv1XS!Sy{3lG+}iL@k$NE-Yo*?WsmbXc*1Xq2 zFGgn^!29Ds!)PXytR!(@O&vX6QQb5+dsgiIf}yo;ueEmDdlAkX-TSS3@&`Rf*z?q< zdF9s5R^`-y;gXVpJt4V^|<-Bn-^ulW9> zU$@}A&fG4+R=ds^i#^m}Qp+Z9*$^cPR6JZPiJ1DtRE*;;7U3S#pRI^$uwG|En+1XV z?ezF88U!WkvtUGbkXVoIw%o50QbF#+SR#U6Tx+r+bAQ$U`%9$fu-C$7HJh?YWDJUh zb@yOgNt(MXgwJW$MGfcALm+sR3ThY*zK%+$`p@NlRV8?sX8U+7^h%755Gpqb+h>&J Pj}}0=p + + + + + + +xtensor: xt::extension::xdynamic_view_base_impl< Tag, CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xdynamic_view_base_impl< Tag, CT, S, L, FST > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT, class S, layout_type L, class FST>
    +struct xt::extension::xdynamic_view_base_impl< Tag, CT, S, L, FST >
    +

    Definition at line 70 of file xdynamic_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html new file mode 100644 index 000000000..bac5cc4ad --- /dev/null +++ b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xdynamic_view_optional<CT, S, L, FST>
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >
    +

    Definition at line 546 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST >::type = xdynamic_view_optional<CT, S, L, FST>
    +
    + +

    Definition at line 548 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_b6d8a7e2879c1a8ee678dc4152371fc6.html b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_b6d8a7e2879c1a8ee678dc4152371fc6.html new file mode 100644 index 000000000..daf26c898 --- /dev/null +++ b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_b6d8a7e2879c1a8ee678dc4152371fc6.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xdynamic_view_base_impl< xoptional_expression_tag, CT, S, L, FST > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html new file mode 100644 index 000000000..ececd970a --- /dev/null +++ b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >
    +

    Definition at line 73 of file xdynamic_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST >::type = xtensor_empty_base
    +
    + +

    Definition at line 75 of file xdynamic_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01aef227a96c9a95959d74cc8b3d2137ea.html b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01aef227a96c9a95959d74cc8b3d2137ea.html new file mode 100644 index 000000000..0a6f4e889 --- /dev/null +++ b/structxt_1_1extension_1_1xdynamic__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01aef227a96c9a95959d74cc8b3d2137ea.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xdynamic_view_base_impl< xtensor_expression_tag, CT, S, L, FST > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xfunction__base.html b/structxt_1_1extension_1_1xfunction__base.html new file mode 100644 index 000000000..1e3f21f80 --- /dev/null +++ b/structxt_1_1extension_1_1xfunction__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xfunction_base< F, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunction_base< F, CT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xfunction_base< F, CT >:
    +
    +
    + + +xt::extension::xfunction_base_impl< xexpression_tag_t< CT... >, F, CT... > + +
    +

    Detailed Description

    +
    template<class F, class... CT>
    +struct xt::extension::xfunction_base< F, CT >
    +

    Definition at line 102 of file xfunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunction__base.png b/structxt_1_1extension_1_1xfunction__base.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc5cd5deb6bfe5d4fed5136e5571713747713bf GIT binary patch literal 1267 zcmb`H`&W`@9Kc^&&LV^DlwHW#>R^{~3@@N<_!oAel2pIrpeuRw z%e^o8TYzXflIdw}=wyx&gDSP6% z+8(0-hv{X0Yp$_8`om=)q`yt7t?jft4)c?&kkuZYRHy(|N_q*t~9qv#3b>xk211;9yl)%nN%1eqa z%3d2Is~QXKZH?3x7l+ki8QZ3;$s@zw?Y=R_LF(Koj+k*r*z)|`e1eEAdQ#pq$wF^! zy%>YjayF=gDb*B4-Dq{GXbYWNdHO*qKTSAun@>8Xsb8j=n|4j%LJ?)+NZTjSmzJ>bf>(i>IQWIORf zNhYl5Z&<2PBo1p*64-xoF$%s|j?ZQLYffG9#c9M)Mhe{twB%CU@^Ifh(0d1nQD}lEW<^=#U z576&wUjod(Z$pR!%rd0ue=M3}bIbE1HU4MvuMFtQA^$n@@D))X3= zBcr=dWHu8a(gBX8mG$ltJxKD9Fla5Xb0CXk}8hfcYqKx|rZZi?Ax8H+nSVXV6s zJACAeeqcCb())A|X2aCT*ihBIK{`g;61v}ewI}*?42EDy@MBTW0+^zZx=7U>V|el`5tdVIHRiyq|K4voav9OtBHT=b8O8<78VVwV d%km>FrF_VmY_#WGW+C4b08+yOt9Kqe`!B=Dag_i7 literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xfunction__base__impl.html b/structxt_1_1extension_1_1xfunction__base__impl.html new file mode 100644 index 000000000..d57f943d4 --- /dev/null +++ b/structxt_1_1extension_1_1xfunction__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xfunction_base_impl< Tag, F, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunction_base_impl< Tag, F, CT > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class F, class... CT>
    +struct xt::extension::xfunction_base_impl< Tag, F, CT >
    +

    Definition at line 93 of file xfunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html b/structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html new file mode 100644 index 000000000..7a79f1ac9 --- /dev/null +++ b/structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html b/structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html new file mode 100644 index 000000000..b76ae2ea6 --- /dev/null +++ b/structxt_1_1extension_1_1xfunction__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xfunction_optional_base<F, CT...>
     
    +

    Detailed Description

    +
    template<class F, class... CT>
    +struct xt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... >
    +

    Definition at line 511 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::extension::xfunction_base_impl< xoptional_expression_tag, F, CT... >::type = xfunction_optional_base<F, CT...>
    +
    + +

    Definition at line 513 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html b/structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html new file mode 100644 index 000000000..acc55371e --- /dev/null +++ b/structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html b/structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html new file mode 100644 index 000000000..c0a5b1f41 --- /dev/null +++ b/structxt_1_1extension_1_1xfunction__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_8_8_8_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class F, class... CT>
    +struct xt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... >
    +

    Definition at line 96 of file xfunction.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::extension::xfunction_base_impl< xtensor_expression_tag, F, CT... >::type = xtensor_empty_base
    +
    + +

    Definition at line 98 of file xfunction.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunctor__view__base.html b/structxt_1_1extension_1_1xfunctor__view__base.html new file mode 100644 index 000000000..9e8499d70 --- /dev/null +++ b/structxt_1_1extension_1_1xfunctor__view__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xfunctor_view_base< F, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunctor_view_base< F, CT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xfunctor_view_base< F, CT >:
    +
    +
    + + +xt::extension::xfunctor_view_base_impl< xexpression_tag_t< CT >, F, CT > + +
    +

    Detailed Description

    +
    template<class F, class CT>
    +struct xt::extension::xfunctor_view_base< F, CT >
    +

    Definition at line 54 of file xfunctor_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunctor__view__base.png b/structxt_1_1extension_1_1xfunctor__view__base.png new file mode 100644 index 0000000000000000000000000000000000000000..dc45f944b383d0e6b3507d9a95271e296c4324d7 GIT binary patch literal 1316 zcmeAS@N?(olHy`uVBq!ia0y~yVB8F32XHV0$t6>=b%B(0fKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP`w9aC%X&{2$B+ufw{u^wlUC$u zX^(uFaqoZU>@@uwF_U~3O}?frZxJ}wP<&1~XG^w;!73<#W^t-=bSciQ+c)Z&;&Bk2mB>OB&i@Wi8^{?OmwO6^B zW$^9BE8#R1%d1zOoweDQ`pwXIlFUn;&A-e4DxUQFdqQ~i+?!U117ba`UwqGe-Sc+w z+dP}x$*V5DOOJkTmaw*rJ2^{TLjAXH+46$eOmpk98_N&1gx!^6zWUw7MZTqX(O&)h z&{lRa-C0`%Dkp?mW4B+wQL>Mp+f-X3XT@zc7tCRxVmy&$TYS z^@+pP@67_cBhKjU&eWCkUt7IpUZn5L+&;dvb+>#2>JF@lTf6JhgqgRecW;}p?dGaC z<=0xC#av%v&$n^ye_z)6u&1+T`CZzQ9#)$xBcn3Cpq$B_@$1%)rfFYq?-BXy)%Rj& z^|iK3IZL$*`DfZD{Cs4q{PNb#>M;4F*-D>n%3W)=6+S+>PyF!rHMd`ybgSRr{A}i@ z^WC>^{=2w7;>0rBM6>$yeGB5M&d-b7dPZx(Za`iLsz4oGJTkcLSe4d>wywlS0xZg9IZ$Wmdmqk`Q4|`{;eDZXLgtq54 zE8B@G=~d@XE}rEvDfn-8+V}GP)^peUNSynjoAx&3{EfGbQUr? zD5x4UbSzV0V*n;G28C&pBpHqb0To7gr7;M21C=Fd&SZ1|rbC8~r72WZRFassbjl>H zrBe)?CN7zx!Ww8ac?rzt_2jMo?IHIz&f=ffv;WS2m8;vz z)-d0<`T1Yf*mG7^*5@>Z^qHQMF7I9b&*M`0m)B>mEjZ&C!@t~mIo`zmPTz03+T}vi zG_9=JT`{}=2QOLXyUX{|>kR9#<}CK=w8yo%!hHVEXVflrt6OL$7k>QNhZk@EOO|Y( z=jO(HUefsUL-Q*+3zF~KMNO{$#+r3MecRDGgW{`sO`n+4zGhvW+IHs7zIXC^f1hVR zULX8BDYxX~)|19pGfu5p-@D#$_5EjiUxyp*&dpl0<$YMRVGu snJPzvPy+kqu{BeIf|gDZa;;~G7cF|td@JWMusmb%boFyt=akR{03c6)ga7~l literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xfunctor__view__base__impl.html b/structxt_1_1extension_1_1xfunctor__view__base__impl.html new file mode 100644 index 000000000..a8378313f --- /dev/null +++ b/structxt_1_1extension_1_1xfunctor__view__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xfunctor_view_base_impl< Tag, F, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunctor_view_base_impl< Tag, F, CT > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class F, class CT>
    +struct xt::extension::xfunctor_view_base_impl< Tag, F, CT >
    +

    Definition at line 45 of file xfunctor_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4-members.html b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4-members.html new file mode 100644 index 000000000..64bc3e382 --- /dev/null +++ b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html new file mode 100644 index 000000000..6bb79c331 --- /dev/null +++ b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xfunctor_view_optional<F, CT>
     
    +

    Detailed Description

    +
    template<class F, class CT>
    +struct xt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT >
    +

    Definition at line 609 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::extension::xfunctor_view_base_impl< xoptional_expression_tag, F, CT >::type = xfunctor_view_optional<F, CT>
    +
    + +

    Definition at line 611 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4-members.html b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4-members.html new file mode 100644 index 000000000..00b0b0b4f --- /dev/null +++ b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html new file mode 100644 index 000000000..3ffa4b47f --- /dev/null +++ b/structxt_1_1extension_1_1xfunctor__view__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class F, class CT>
    +struct xt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT >
    +

    Definition at line 48 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::extension::xfunctor_view_base_impl< xtensor_expression_tag, F, CT >::type = xtensor_empty_base
    +
    + +

    Definition at line 50 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xgenerator__base.html b/structxt_1_1extension_1_1xgenerator__base.html new file mode 100644 index 000000000..a8bd96003 --- /dev/null +++ b/structxt_1_1extension_1_1xgenerator__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xgenerator_base< F, R, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xgenerator_base< F, R, S > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xgenerator_base< F, R, S >:
    +
    +
    + + +xt::extension::xgenerator_base_impl< xexpression_tag_t< R >, F, R, S > + +
    +

    Detailed Description

    +
    template<class F, class R, class S>
    +struct xt::extension::xgenerator_base< F, R, S >
    +

    Definition at line 46 of file xgenerator.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xgenerator__base.png b/structxt_1_1extension_1_1xgenerator__base.png new file mode 100644 index 0000000000000000000000000000000000000000..8aea40cb24e3d99b53fca90696c481719624524e GIT binary patch literal 1327 zcmb_c`%_X06u#QSqAc6B#+4qXSJTp6!-R^ZSjF@@rlN)$1ht8o1)7M`YH7X_(;l*> zS&C_DnXf4oSD>tIvrI|x84}_H3`dmN#7DTr-rXPi3-wnze>*{pQs-ROdGBN_! z-6f=QxVM@eS^>6nD_nnTy zp?*`%CPcoR-4OjMRy6`88ot=I7Y+fB!)Nutm z^R~H&FvWq2S4K(xho56bJugt}UazSsc_<$cVjqpm{g0lS4f5thJpPl24pQW=?_U_b z%*bKh`0TO>*z&X?QAAr&8=;pqTzGmYrG-3wsVFllf$D53|6poE>_!#TJ=7Bj_-XoZ6iu z*J66A4F_a_0S~YCyceW7ck%hM4)@|Dt|Qiw%WA>eV?5~-8|x37;JoN%u8F>MIcpRd z5Z=0BTsX0K!IRn87PV>f6=vuy2+eesc&g?5!%FXLE;5uFwsh%kh+}A!ZyYkBxUI+E z&ZsjfeP+Y8d-|$_2|F~`d_y@jpWEoSBVLXv4lvH0>B*?~&439T>aIR^pnja*d z)b@63A4Jh}w&zlpOr+t_QmK9`QB9sNmKESh6ROKHgnEs7DJ z&A5riqLDJ3`wXLWYK*zgFH5E2=RlZ!CDxZ;Wq{cJW-fTJMwSYGio`v6>us7KY5#j( zJf=etW(RM8U5!sidmGs3v7Ll*atq^&mD+4I^?Ww}{W9ojH8NUyRV1wF&ZTofCDFzf z8blDlN%B|4;4EA^9;d^4DnbBXTrQg6R{`Rk7ABV>E?!(=2b`jLgHTba^Kjofs(6nOL<$37z#g3!VKD)AA_fz_#C1T3@Ea;DC23~Ak?fGqU4p= zIkh(yaqJ7@Pt=jHHnCGA#{m|;lBmilNI7VCruep!r;ni?)4X}Lx-RX)C{5PdIfZSt+EgQCkvQkCmu)D9dK_K0WS2OX(u5U}j#h&^%#5bopdaJ}DcVd?DP8;rT6Ls|-}`#QJ8icyg)Jm>H%^?~WFEaW+{&AMYwdHQ;1&#lL6X v$OYS*Omo2&k_`_WOtA5FstELT+Sk9WDj`f~&9btBUmE~<`4j3qPNe<=j5T`k literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xgenerator__base__impl.html b/structxt_1_1extension_1_1xgenerator__base__impl.html new file mode 100644 index 000000000..02f782ccf --- /dev/null +++ b/structxt_1_1extension_1_1xgenerator__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xgenerator_base_impl< Tag, F, R, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xgenerator_base_impl< Tag, F, R, S > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class F, class R, class S>
    +struct xt::extension::xgenerator_base_impl< Tag, F, R, S >
    +

    Definition at line 37 of file xgenerator.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html new file mode 100644 index 000000000..61300ba2f --- /dev/null +++ b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html new file mode 100644 index 000000000..54646ba17 --- /dev/null +++ b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xgenerator_optional<F, R, S>
     
    +

    Detailed Description

    +
    template<class F, class R, class S>
    +struct xt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S >
    +

    Definition at line 873 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::extension::xgenerator_base_impl< xoptional_expression_tag, F, R, S >::type = xgenerator_optional<F, R, S>
    +
    + +

    Definition at line 875 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html new file mode 100644 index 000000000..091abed31 --- /dev/null +++ b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html new file mode 100644 index 000000000..148800aa0 --- /dev/null +++ b/structxt_1_1extension_1_1xgenerator__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_r_00_01_s_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class F, class R, class S>
    +struct xt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S >
    +

    Definition at line 40 of file xgenerator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class R, class S>
    + + + + +
    using xt::extension::xgenerator_base_impl< xtensor_expression_tag, F, R, S >::type = xtensor_empty_base
    +
    + +

    Definition at line 42 of file xgenerator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xindex__view__base.html b/structxt_1_1extension_1_1xindex__view__base.html new file mode 100644 index 000000000..816b1297f --- /dev/null +++ b/structxt_1_1extension_1_1xindex__view__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xindex_view_base< CT, I > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xindex_view_base< CT, I > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xindex_view_base< CT, I >:
    +
    +
    + + +xt::extension::xindex_view_base_impl< xexpression_tag_t< CT >, CT, I > + +
    +

    Detailed Description

    +
    template<class CT, class I>
    +struct xt::extension::xindex_view_base< CT, I >
    +

    Definition at line 45 of file xindex_view.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xindex__view__base.png b/structxt_1_1extension_1_1xindex__view__base.png new file mode 100644 index 0000000000000000000000000000000000000000..72d72aea232b8d9e3ff7e7f1d12103d89582814f GIT binary patch literal 1294 zcmb`HeN>Wn6vrQ=GEH;G)~qaN`dGfjtTZ$*4Ka93vCv|r)bx}Fft6_q*kWzfsYcqP z=a>UqFHG|VGc*>%x0YojXpzZC6WS_7P(w2dQuegJcFz9Y{p0@b{hj+g=bn2%=bqU@ zA-TIQaRmUt9U>E{0DuxB@s_!0#Am#=HY1Psmc-O}hr@w{Lzc<>qTj0`!-5VjDpL&^ z3 zO^h1hwLW2o?<|c+N82AV_B?jK?8Cx!u-gSOZ8iw!)$@sP_rhYbM(*SZt*1E$U3ht! zW3J)!aTwgkyy%<^Yr$vGu6?fzM|if6xD8WZf>F$j@SBeLAlzJ?9gU9|wRZ(5&x{hD z>CMj2`JIdDvFq!+#m-rAg;-qZ_-6fpN>PNlf3LSbn76v6N_xk1mBMTN+>0a4jCQfP zT@J;(~;V5WVCMc&xy;-bc8*|lVbNsd#>ta?|hueQT}N02WH*57?&=VEo?x2|Dw1{94=?o~Z&_W3@Y zs(e;7Gx8>FWwpm;h5b}bzKh9eu;*tnw@9XACnj=_9upw!fUm1cFrb~atNuqU=Mxny0nH4+n1*5E^}CYRIeA>>fG$^iub)*eg+ltrxiVh>9|Fa1DLn$@kN-1?b1cY267(pG%t>=Rf(gUcJJHcR- zw$@jjy+d_O4)$|eZ24m&*Pj^mR=MN-cmZUqPba`)A-C`D^Fs>ybU_N4#8+eRM=Et< zg)Za5Zrke>+w4P`>4|K=Mz1HlU~ds-xXIWhx`&ISQXPRxyqyOBmi?HO#w$XLf8_GR zcPFh2Z15p0X-LrM`{q5QM=fRB63p)-7^C>4w!~I0IpnOGl|sT&H1on*e5jaX0Wai3 zbgAN0FPHUj$JlXKWnI>B)4)LB(U|k5ldrmoTB9T=Vl%k}W<*~seb>_IuxN%)J9sOr zcTKU6FwMnp0>rwD+_{Gj#N2@QyuF31K4kAcswsc=)AO}ANoMPYQe1y?3|egIEm-Qi zmxLCJ23y)I3BOE7L9ocYfSM3=lA55D%%E$wW@T4OF)xtI1wio>Vm;xT6MqAcCTM8@ literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xindex__view__base__impl.html b/structxt_1_1extension_1_1xindex__view__base__impl.html new file mode 100644 index 000000000..4473d6b34 --- /dev/null +++ b/structxt_1_1extension_1_1xindex__view__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xindex_view_base_impl< Tag, CT, I > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xindex_view_base_impl< Tag, CT, I > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT, class I>
    +struct xt::extension::xindex_view_base_impl< Tag, CT, I >
    +

    Definition at line 36 of file xindex_view.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4-members.html b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4-members.html new file mode 100644 index 000000000..3d36322ba --- /dev/null +++ b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html new file mode 100644 index 000000000..aa3c523a2 --- /dev/null +++ b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_i_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xindex_view_optional<CT, I>
     
    +

    Detailed Description

    +
    template<class CT, class I>
    +struct xt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I >
    +

    Definition at line 644 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::extension::xindex_view_base_impl< xoptional_expression_tag, CT, I >::type = xindex_view_optional<CT, I>
    +
    + +

    Definition at line 646 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4-members.html b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4-members.html new file mode 100644 index 000000000..71bc8afa6 --- /dev/null +++ b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html new file mode 100644 index 000000000..554ed4736 --- /dev/null +++ b/structxt_1_1extension_1_1xindex__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_i_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT, class I>
    +struct xt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I >
    +

    Definition at line 39 of file xindex_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::extension::xindex_view_base_impl< xtensor_expression_tag, CT, I >::type = xtensor_empty_base
    +
    + +

    Definition at line 41 of file xindex_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xreducer__base.html b/structxt_1_1extension_1_1xreducer__base.html new file mode 100644 index 000000000..9d61a4b68 --- /dev/null +++ b/structxt_1_1extension_1_1xreducer__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xreducer_base< F, CT, X, O > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xreducer_base< F, CT, X, O > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xreducer_base< F, CT, X, O >:
    +
    +
    + + +xt::extension::xreducer_base_impl< xexpression_tag_t< CT >, F, CT, X, O > + +
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +struct xt::extension::xreducer_base< F, CT, X, O >
    +

    Definition at line 725 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xreducer__base.png b/structxt_1_1extension_1_1xreducer__base.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0c4b9372fd29e600f543ccf16ff03f300fe24d GIT binary patch literal 1360 zcmb_ceK^wz9RG>R2#21#BBLTV>9BIznYWVpsSrj=N;D~QXKX{Jd3)~8j_XHOo0dn6 zLc?NSHZN0`9dggD7It1%G&65k^O9)yyZhsw=l;L%AK%x{^Z7o{_xU{E9|HYx26|?C z000<(zTQCqpe2CwKwWLvA=sBd>L`llx*Cg8sF zKxhR#LnH_J2Lo{ZkGX7Oy#N3m8R+d5LeZMLI}Gh{-R3O`H@5hoIe$IwO2cI34P>?J zjImrtAnt3Z2(#~NtSGq@{u-eVa(vND6C}6=FWM_E^P^br3_%oHXFsHc`8G;gQluv! zA$#XKrT@Z{9GcxBu3cKV{3V#Sfxtr7&n(bz&`)Cx7-&{) zFGv?sZ^l%0#D1e{AE{>zkICz_x5<~zwb&+EHWv)pCGgJ8NSn!-E7znmrEjX{YtC@< zXK(eiIHk;%dsGioomJ#yDt#bpv@_0_CBHDVw|2DJ}#jfSPu1Px#fM`F9ZfV-Wp@0+wx9o=%X(U z9jH1YriVSXKzCP!c4Y^|DJAHZ5;$8g0;z>-*e?m2MV4e&-QClS*fznI!(i_M@irAoCq@@F3@7 zJ%&OOw$mdsEw3@dg$jcLd2OrXa;c(8mOzpm>kOvY2A)@Ap-1cBa}}0LNWLnX{O}c` z-=E)p*C;4G%WM*xIq?j`bygb2JU_)B*S3!dMs~3jf;U|bQv!LdlYsETO7W72EKKdZ zJ*O^;xX5~CML0*$PpuhVd$ShNbvUg+pC~T>ne#a6mAgfIhH39W0q0qLfO1H@s~FU>s;ar(Q9CQoN>7A!EFQzLBmx^L#5 zzp5`XB7>0sy-N%>4l-KWa}W|7p~-JfcGl(KAg^1CzUbB@ZUaUuQkS|LCb|`+ z7OR3u+%@-jiw67%A>EbVEd1C`=7lPDc`Vu0EVcDUVzOU-7}+%z+FCrOaO3)(Jau#b z{%sFd(Fx0;5d-%R87H(XBR7_54qd!}Xq^Q}H_dAZTPk)N7B*>i(&}B3PVWe4-q7}F z$XCx}0{@!Tp@ zj$ZM4gJ=>jZP5G=L1A$Zup%v8F~=qnOZLS}rSqSv7D@c~QN)1Q>{3O>ge_*_^!vYM zx6qsF%JI9>sc1^6BS%SG#`AOeDTxGCp^E4gik3^ z`|s;OftqZpiy$#}mFA%n#bDclr~Z3uKMJ%x1Q7sb&1~To2L)9YoA_(AnqAXz-L&3T Q`1b+eF@NtzM=oUj1s5ln + + + + + + +xtensor: xt::extension::xreducer_base_impl< Tag, F, CT, X, O > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xreducer_base_impl< Tag, F, CT, X, O > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class F, class CT, class X, class O>
    +struct xt::extension::xreducer_base_impl< Tag, F, CT, X, O >
    +

    Definition at line 716 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html b/structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html new file mode 100644 index 000000000..4244be73d --- /dev/null +++ b/structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html b/structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html new file mode 100644 index 000000000..ccc429b20 --- /dev/null +++ b/structxt_1_1extension_1_1xreducer__base__impl_3_01xoptional__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xreducer_optional<F, CT, X, O>
     
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +struct xt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >
    +

    Definition at line 681 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::extension::xreducer_base_impl< xoptional_expression_tag, F, CT, X, O >::type = xreducer_optional<F, CT, X, O>
    +
    + +

    Definition at line 683 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html b/structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html new file mode 100644 index 000000000..0c6749d08 --- /dev/null +++ b/structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html b/structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html new file mode 100644 index 000000000..1c2c2106a --- /dev/null +++ b/structxt_1_1extension_1_1xreducer__base__impl_3_01xtensor__expression__tag_00_01_f_00_01_c_t_00_01_x_00_01_o_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +struct xt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >
    +

    Definition at line 719 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::extension::xreducer_base_impl< xtensor_expression_tag, F, CT, X, O >::type = xtensor_empty_base
    +
    + +

    Definition at line 721 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xrepeat__base.html b/structxt_1_1extension_1_1xrepeat__base.html new file mode 100644 index 000000000..dbe18a569 --- /dev/null +++ b/structxt_1_1extension_1_1xrepeat__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xrepeat_base< CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xrepeat_base< CT, X > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xrepeat_base< CT, X >:
    +
    +
    + + +xt::extension::xrepeat_base_impl< xexpression_tag_t< CT >, CT, X > + +
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::extension::xrepeat_base< CT, X >
    +

    Definition at line 44 of file xrepeat.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xrepeat__base.png b/structxt_1_1extension_1_1xrepeat__base.png new file mode 100644 index 0000000000000000000000000000000000000000..7faf31ce775281da8fa63657ec5c6ce463bf400d GIT binary patch literal 1253 zcmb_cYg1DP5WR>R2~azY)>i6`j2A{J6m1oV(nbVHf*2vDDo8+ii5LXYAP^vk&QPcl zxEh0kiW5Qb0rCp3rU;INV1R)XnGgd(qddYZPaq+txBbvx(EYG`cK3YPnR90Ig2)7W z^ky^w0QMxJ9|Zuc*a!|Z+cVb`YrI^pU`O~;nZgIo+TcwbWapqr#^8mmBz$}-1kdcA zyT`bx#JJSg%-Z>{(A600Ba4rPV}`cRzOcagDxZa_&+5DiMGRj~EsW+hE$Oy^D(14I zC|u%W2`6a30A;25<6T2r!*dh18MyqmaPz=$zY9CP%5YH+C!GJ(6W4agppr0aXNNm3C;i0fRx{2`6{GIkfq-jFYu^1 zw7*~A3BEPQcATv=oik}Ns1jrPo^Dw4u-VJShZZXhdDS$xp)umYKJ0Vu4Gc|+`*@*q zs;Q4~k#%W;_bx-fH2uqri%P6beqfn14}{tBOOMZOs$n|k(MQ&>m(4|sX(=o_l-_&o zB0=igCy0`m`kdFa&W-jE?~My5cw{9Z)2Qmlt!1=CM#||ijiewZZDU_ugW#OF;>k?+ z{nFRQq}sO4V%ML#q1jWB3|67CWcLX!6d{pxWyK5)Uk^M(yK6cGs+?ry@}b`@t0#x| z78p2O=&WvUffp9SNj!HIDvvO1*TZ&2%JTn=fCix{LdR9eJlPQya@(oF_04-9V8OIIcNa@JdH;5RzPvE!y0%ud1YHRkd0Zh9$0u(W(6Rg0$w7X0+xaiA|4F_3Iak~ z*`5kyWB(!X6#pwpx67Lnu;Ugb;D>7v$&r*?rf?)7H$WnGPA;?@yif??TYnd(azrEe zi&f&R5pw!ULc0o|^7*-q3eJTD)$`gDLJrn6K5A5_fHIG#4Km6=^vAt)huZcAIpZam zX?~`u*dgeVHN@a~seXNB8WVWH1LR})POOYqBh=V0M z=P}Dp2rG&b)JM3xv%W3z!oo^|B@u*mA!rbR9lkIk84*S#BWZXj_ALs!{1%KdqrO{B VmF-)$*CG!IARQ$8RUbH&^Ec6@bvpn6 literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xrepeat__base__impl.html b/structxt_1_1extension_1_1xrepeat__base__impl.html new file mode 100644 index 000000000..b44297c33 --- /dev/null +++ b/structxt_1_1extension_1_1xrepeat__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xrepeat_base_impl< Tag, CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xrepeat_base_impl< Tag, CT, X > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT, class X>
    +struct xt::extension::xrepeat_base_impl< Tag, CT, X >
    +

    Definition at line 35 of file xrepeat.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html new file mode 100644 index 000000000..3f86ee9ef --- /dev/null +++ b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html new file mode 100644 index 000000000..7d747befc --- /dev/null +++ b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_x_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xrepeat_optional<CT, X>
     
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X >
    +

    Definition at line 709 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::extension::xrepeat_base_impl< xoptional_expression_tag, CT, X >::type = xrepeat_optional<CT, X>
    +
    + +

    Definition at line 711 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html new file mode 100644 index 000000000..78140acf2 --- /dev/null +++ b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html new file mode 100644 index 000000000..32dfaf4ea --- /dev/null +++ b/structxt_1_1extension_1_1xrepeat__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_x_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X >
    +

    Definition at line 38 of file xrepeat.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::extension::xrepeat_base_impl< xtensor_expression_tag, CT, X >::type = xtensor_empty_base
    +
    + +

    Definition at line 40 of file xrepeat.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__base.html b/structxt_1_1extension_1_1xscalar__base.html new file mode 100644 index 000000000..410f478a5 --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xscalar_base< CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xscalar_base< CT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xscalar_base< CT >:
    +
    +
    + + +xt::extension::xscalar_base_impl< get_expression_tag_t< std::decay_t< CT > >, CT > + +
    +

    Detailed Description

    +
    template<class CT>
    +struct xt::extension::xscalar_base< CT >
    +

    Definition at line 43 of file xscalar.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__base.png b/structxt_1_1extension_1_1xscalar__base.png new file mode 100644 index 0000000000000000000000000000000000000000..61102ad0d16e4efdb4a4bdcaf36a1d2480ca3535 GIT binary patch literal 1342 zcmb`H|2NZn9LGN{xk*y@-UwM=OzDeMz9dqnq0f-D+!2X;%c5dvTgkVs++3Zs`sDj; zT<3$DFN=mUZQWa~bl237Si~K%mMJ#Iu=}~)bMCo+z(7_@;{Owf6~F{T2NZC;wmpmhZabl;X1X)+8n z5VPkl%5Rff_Kt5dOtS@rl`*)04kwSJg$H(eLv$jvp=~ivg0{eb#b_Hl@a72vXV@5| zSxzgdH-|#VN&8R<(JESG7LlxWU@H3><6905PdcUx7OoG~Uo+wFFGjzUm|oBs!(bwu zj-6E>6&#od*=V>$o|L)UcycD*ci8z1s(uf*k5)%5o4IWmVb)b8` zHgv{WP|J7k*(Fsbmi!Tw-}^4}&N7$5o`*it`Vp~1DLRlsx-(2!#}ImT6H|WX##ZsD zGWR*+vXfk%Gx?2Iv{htlr@4B#<^2bW^^Ri^&8w5eHKxs_+cHU&q+Vue_&E>Pb92&5 zv>)-+&4DX@Pppz*MC$qg{}EmhJE3oknojeDY3WT$9aV3%A)SIedtFyJbg-@Wz?dM z(DkLPw=R?|mS!@K*C!2A)u`1&hup5Q&z2VUi%@wi0>gZ4Mo`$Hop~cso=u>ueluDn z+%1YR7njql7P3lMbeh!jCcTQs-Iy#-c^9 z1{3n96e`wU$7nFPCam#D(=&6=!;2WHVI!f6Kc^f8#k!p5uV;n5If*T`3kt~JwJwG6 zs98h%={`fqk(4~PZ~EL6yis~9^gR2xz*^gL3O5&7iw>9!?&4z}RDl!b(dj);trDXE zkR|smnS<|E?_F3Y=h%!A3eZd+8=*{VV4+Dn8wkF+P5ecSe(2!fyzE zmo@2lQHM)f+qQq+O@c03-?l3c26tvaPM{C|U+hZZs+eLzhf_ei8IalWH2?zxgE$GW z+;h#EY)gQ}L7M=2DkHZ;`VVD!u-@9skRyP_LxvX-Xo2Mz&=Od02kLto*v0_Alp)#` zxrhj{_+Lf-l8Rhtb46~Ju{T73RMECE;FU78J&2guZpwhTXz!OVK>8)A(acz0>u@;K z`h4W%LfZTd*h&GywsQN_cJ1k-^APN=sDnqWo$l`(q5D;I-${Br@sbv1rtq9RY{K8l z#yEEFxoV1q^5K2o-zctJkI?Sj@DJ^xw(Y{r?AXEkCaWQS!b$;I-QN%=73Dlz+;fXJ zJ@k2NU>Y}-TgTJiA(l%U7M$S%9RJ3#Q<_1&c*gjgg(CDBZ+{di#l!UquS;85Gam7v zkJOU*VS*gQ)IL^`rfyN-ux|S&q8MP<2wB`$DGfNwfw=&`0{E2=d8EpAgnH=axz(Hv~U~k2!9o1H@ zhm%0xVZcxb*_Iyx+17stxECxS;MlnYR;>;YJ6GT(A8oYAPX~bB2eEZtkr{shrYDow literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xscalar__base__impl.html b/structxt_1_1extension_1_1xscalar__base__impl.html new file mode 100644 index 000000000..eba5922bc --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__base__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xscalar_base_impl< Tag, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xscalar_base_impl< Tag, CT > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT>
    +struct xt::extension::xscalar_base_impl< Tag, CT >
    +

    Definition at line 34 of file xscalar.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4-members.html b/structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4-members.html new file mode 100644 index 000000000..4ad99fea0 --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xscalar_base_impl< xoptional_expression_tag, CT > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html b/structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html new file mode 100644 index 000000000..33f9fa3c3 --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__base__impl_3_01xoptional__expression__tag_00_01_c_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xscalar_base_impl< xoptional_expression_tag, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xscalar_base_impl< xoptional_expression_tag, CT > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xscalar_optional_base<CT>
     
    +

    Detailed Description

    +
    template<class CT>
    +struct xt::extension::xscalar_base_impl< xoptional_expression_tag, CT >
    +

    Definition at line 324 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_base_impl< xoptional_expression_tag, CT >::type = xscalar_optional_base<CT>
    +
    + +

    Definition at line 326 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4-members.html b/structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4-members.html new file mode 100644 index 000000000..6a8fb9a99 --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xscalar_base_impl< xtensor_expression_tag, CT > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html b/structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html new file mode 100644 index 000000000..353f553eb --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__base__impl_3_01xtensor__expression__tag_00_01_c_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xscalar_base_impl< xtensor_expression_tag, CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xscalar_base_impl< xtensor_expression_tag, CT > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT>
    +struct xt::extension::xscalar_base_impl< xtensor_expression_tag, CT >
    +

    Definition at line 37 of file xscalar.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_base_impl< xtensor_expression_tag, CT >::type = xtensor_empty_base
    +
    + +

    Definition at line 39 of file xscalar.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__optional__traits-members.html b/structxt_1_1extension_1_1xscalar__optional__traits-members.html new file mode 100644 index 000000000..7c42e393d --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__optional__traits-members.html @@ -0,0 +1,137 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xscalar_optional_traits< CT > Member List
    +
    +
    + +

    This is the complete list of members for xt::extension::xscalar_optional_traits< CT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + +
    closure_type typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    const_flag_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    const_flag_expression typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    const_raw_flag_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    const_raw_value_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    const_value_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    const_value_expression typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    flag_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    flag_expression typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    is_const (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >static
    is_ref (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >static
    raw_closure_type typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    raw_flag_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    raw_value_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    unref_closure_type typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    value_closure typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    value_expression typedef (defined in xt::extension::xscalar_optional_traits< CT >)xt::extension::xscalar_optional_traits< CT >
    +
    + + + + diff --git a/structxt_1_1extension_1_1xscalar__optional__traits.html b/structxt_1_1extension_1_1xscalar__optional__traits.html new file mode 100644 index 000000000..d098c73cd --- /dev/null +++ b/structxt_1_1extension_1_1xscalar__optional__traits.html @@ -0,0 +1,498 @@ + + + + + + + +xtensor: xt::extension::xscalar_optional_traits< CT > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xscalar_optional_traits< CT > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using closure_type = CT
     
    using unref_closure_type = std::remove_reference_t<closure_type>
     
    using raw_closure_type = std::decay_t<CT>
     
    using raw_value_closure = typename raw_closure_type::value_closure
     
    using raw_flag_closure = typename raw_closure_type::flag_closure
     
    using const_raw_value_closure = std::add_const_t<raw_value_closure>
     
    using const_raw_flag_closure = std::add_const_t<raw_flag_closure>
     
    using value_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_value_closure>, raw_value_closure>
     
    using flag_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_flag_closure>, raw_flag_closure>
     
    using const_value_closure
     
    using const_flag_closure
     
    using value_expression = xscalar<std::conditional_t<is_const, const_value_closure, value_closure>>
     
    using flag_expression = xscalar<std::conditional_t<is_const, const_flag_closure, flag_closure>>
     
    using const_value_expression = xscalar<const_value_closure>
     
    using const_flag_expression = xscalar<const_flag_closure>
     
    + + + + + +

    +Static Public Attributes

    static constexpr bool is_ref = std::is_reference<closure_type>::value
     
    static constexpr bool is_const = std::is_const<unref_closure_type>::value
     
    +

    Detailed Description

    +
    template<class CT>
    +struct xt::extension::xscalar_optional_traits< CT >
    +

    Definition at line 278 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ closure_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::closure_type = CT
    +
    + +

    Definition at line 280 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_flag_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::const_flag_closure
    +
    +Initial value:
    std::
    +
    conditional_t<is_ref, std::add_lvalue_reference_t<const_raw_flag_closure>, raw_flag_closure>
    +
    +

    Definition at line 295 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_flag_expression

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::const_flag_expression = xscalar<const_flag_closure>
    +
    + +

    Definition at line 301 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_raw_flag_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::const_raw_flag_closure = std::add_const_t<raw_flag_closure>
    +
    + +

    Definition at line 289 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_raw_value_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::const_raw_value_closure = std::add_const_t<raw_value_closure>
    +
    + +

    Definition at line 288 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_value_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::const_value_closure
    +
    +Initial value:
    std::
    +
    conditional_t<is_ref, std::add_lvalue_reference_t<const_raw_value_closure>, raw_value_closure>
    +
    +

    Definition at line 293 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_value_expression

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::const_value_expression = xscalar<const_value_closure>
    +
    + +

    Definition at line 300 of file xoptional.hpp.

    + +
    +
    + +

    ◆ flag_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::flag_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_flag_closure>, raw_flag_closure>
    +
    + +

    Definition at line 292 of file xoptional.hpp.

    + +
    +
    + +

    ◆ flag_expression

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::flag_expression = xscalar<std::conditional_t<is_const, const_flag_closure, flag_closure>>
    +
    + +

    Definition at line 299 of file xoptional.hpp.

    + +
    +
    + +

    ◆ raw_closure_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::raw_closure_type = std::decay_t<CT>
    +
    + +

    Definition at line 284 of file xoptional.hpp.

    + +
    +
    + +

    ◆ raw_flag_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::raw_flag_closure = typename raw_closure_type::flag_closure
    +
    + +

    Definition at line 287 of file xoptional.hpp.

    + +
    +
    + +

    ◆ raw_value_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::raw_value_closure = typename raw_closure_type::value_closure
    +
    + +

    Definition at line 286 of file xoptional.hpp.

    + +
    +
    + +

    ◆ unref_closure_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::unref_closure_type = std::remove_reference_t<closure_type>
    +
    + +

    Definition at line 282 of file xoptional.hpp.

    + +
    +
    + +

    ◆ value_closure

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::value_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_value_closure>, raw_value_closure>
    +
    + +

    Definition at line 291 of file xoptional.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::extension::xscalar_optional_traits< CT >::value_expression = xscalar<std::conditional_t<is_const, const_value_closure, value_closure>>
    +
    + +

    Definition at line 298 of file xoptional.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ is_const

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    bool xt::extension::xscalar_optional_traits< CT >::is_const = std::is_const<unref_closure_type>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 283 of file xoptional.hpp.

    + +
    +
    + +

    ◆ is_ref

    + +
    +
    +
    +template<class CT>
    + + + + + +
    + + + + +
    bool xt::extension::xscalar_optional_traits< CT >::is_ref = std::is_reference<closure_type>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 281 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xstrided__view__base.html b/structxt_1_1extension_1_1xstrided__view__base.html new file mode 100644 index 000000000..f786b35d7 --- /dev/null +++ b/structxt_1_1extension_1_1xstrided__view__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xstrided_view_base< CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xstrided_view_base< CT, S, L, FST > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xstrided_view_base< CT, S, L, FST >:
    +
    +
    + + +xt::extension::xstrided_view_base_impl< xexpression_tag_t< CT >, CT, S, L, FST > + +
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::extension::xstrided_view_base< CT, S, L, FST >
    +

    Definition at line 47 of file xstrided_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xstrided__view__base.png b/structxt_1_1extension_1_1xstrided__view__base.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d49f4452817e2cfbdd2d9387cce1bbe6e890c8 GIT binary patch literal 1437 zcmb_ceKgYx82)J`#4OT6!>u3rJe#hM$&g!OI3pb8l6>Z4a~W5|t(|iGa-|HX zn~#bylh1s$LJQluOSFc~<>X`8mMkIduKQo-{(Ij)-uHRm=Q-#7<9*J1Es)@?qh+K8 z0DunO=VTB7sLiTypax8p4b$Dus)})-e~6b-sZ_zm_loplc0Cqjm3-j#=%QFGR?Qv9 zLTglDnQRR za=8SrCjL+|@XNvB6za`6EM03izR-tXn~%X~g(58QJS{f36y{kDy2YE(eNy?|nUlRo zIY|=x4H;}kw~a}{ctBI}NO4MT)^=sTEY~M>f_rhz5EfD-Io)@n987W`%^)l|ZIpO* zk%d2G<7WOPvBMOixBYmxyX-HSw-q&jCe@}du<0!wg18dnm`sn*^sJoGx=Qaj$7)<8 zs>9NFU$awo+&Dt^`*hlb>x5ln0mC%>{mPCjRI=fm4y*Mrr=a~*hhgH2;!Nrtth>KM zz~HGmsUR&=6fvSs+{+cZ>?QJEHc4gE+{QnZ8GUws!Whv_dFP*rvLUHUP|>B0w+N|G#<6GeS53v9qfTwVx;VafNJ3)sr5Cz- zg4+Asdlz+=nf8%4S>}-qq_G5x9OA0cD&4W|xA6TY9%#*qFojpawRfB_Vd80-qrTK* z%9i=M>7GctGhjf1rh!{E@aBdLR4kWIi+Sr_F6lvT;`GOae${07Pdd31cs zNGgInL&t4P6qN*6fu5`OX+v%(${z4s$dzri)-eK6Z{v`@!GSm{=5)l>g1{Zy( zXrWNv2S=|{8k>xdi@=@-&k{Ha`E9qC#w`z{bJp(|j+pFw!mTHlPCTw!C3nvWB=mC$ zm!(WQmrvS?JvJrX$uT$VB~orgCC8xm=%9<*I&tX5KHn3p(h__2pk*EWR*k;h8DHqW zi7_-!=trKHIOcRV_Jd?b?rr(jS;7&ejk+JL`Vg-8k1JnSZ1McXn7ldot$F7)FDAGV z)dl)P_ssmE+`RAIhGq|^9K1J&g;(#$^YHBl%yt3<1FG6U3uRmDIUqjcc>p*l*@Z>G z@*;Lc0dj_T4^Z`uZ_UR5q)>!9pfW8W4pYf+HX5+J3*SVIX4?O!NU^Y&U{xFFYvp19 zfdwF^HlGQSLlI@5YBe+;=6M#vNrI`9_b(4oFtyQ;Xd-4+v^%?Jb8XW#SESV5-pYF& zg**;Xf|PhRly?8=$3iB^P>io7Oj7o5yRx0tz$I_R9F^ylKKu#y@?Ch(7=bo*;K|m? zLqc=0;PFRG#=BcZ4RiZrum1hI5Pie316@b^L4XAtYd)NY$kt9)>AbopTQlKK^6Sa& zX#H75Bg^x~WAiE93_Qs|a#*kl3+pD1PGG+?g7~5PCahdre2Srxav2m-$o{eHxK7`X&|2{3 zaa0+Yc{gK)_0^Z(Z(dIoIWJjj&KUXdiAvLflp=FZ+kcN^qu~c#=+&q%4YI5)&0a>g XO7Fze%vqVLM+)G*2q&9 + + + + + + +xtensor: xt::extension::xstrided_view_base_impl< Tag, CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xstrided_view_base_impl< Tag, CT, S, L, FST > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT, class S, layout_type L, class FST>
    +struct xt::extension::xstrided_view_base_impl< Tag, CT, S, L, FST >
    +

    Definition at line 38 of file xstrided_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html new file mode 100644 index 000000000..fc821e976 --- /dev/null +++ b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xstrided_view_optional<CT, S, L, FST>
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >
    +

    Definition at line 744 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST >::type = xstrided_view_optional<CT, S, L, FST>
    +
    + +

    Definition at line 746 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_4a6b46e0ed70869936639a514f730fbb.html b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_4a6b46e0ed70869936639a514f730fbb.html new file mode 100644 index 000000000..31e233f43 --- /dev/null +++ b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_4a6b46e0ed70869936639a514f730fbb.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xstrided_view_base_impl< xoptional_expression_tag, CT, S, L, FST > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html new file mode 100644 index 000000000..d0f1ddafe --- /dev/null +++ b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >
    +

    Definition at line 41 of file xstrided_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST >::type = xtensor_empty_base
    +
    + +

    Definition at line 43 of file xstrided_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01b284f3952f1f4d8d4ad036b645dd2641.html b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01b284f3952f1f4d8d4ad036b645dd2641.html new file mode 100644 index 000000000..0e5fc597b --- /dev/null +++ b/structxt_1_1extension_1_1xstrided__view__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01b284f3952f1f4d8d4ad036b645dd2641.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xstrided_view_base_impl< xtensor_expression_tag, CT, S, L, FST > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__base.html b/structxt_1_1extension_1_1xtensor__adaptor__base.html new file mode 100644 index 000000000..c3e4f5dd1 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__base.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xtensor_adaptor_base< EC, N, L, Tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_adaptor_base< EC, N, L, Tag > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::extension::xtensor_adaptor_base< EC, N, L, Tag >
    +

    Definition at line 157 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html new file mode 100644 index 000000000..9d648afa7 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html new file mode 100644 index 000000000..1de1a93b7 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using traits = xtensor_adaptor_optional_traits<EC, N, L>
     
    using type = xcontainer_optional_base<traits>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >
    +

    Definition at line 451 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ traits

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >::traits = xtensor_adaptor_optional_traits<EC, N, L>
    +
    + +

    Definition at line 453 of file xoptional.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_adaptor_base< EC, N, L, xoptional_expression_tag >::type = xcontainer_optional_base<traits>
    +
    + +

    Definition at line 454 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..023f1a241 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..700951bcf --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >
    +

    Definition at line 160 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_adaptor_base< EC, N, L, xtensor_expression_tag >::type = xtensor_empty_base
    +
    + +

    Definition at line 162 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__optional__traits-members.html b/structxt_1_1extension_1_1xtensor__adaptor__optional__traits-members.html new file mode 100644 index 000000000..38398c59a --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__optional__traits-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html b/structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html new file mode 100644 index 000000000..305f74ad8 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__adaptor__optional__traits.html @@ -0,0 +1,175 @@ + + + + + + + +xtensor: xt::extension::xtensor_adaptor_optional_traits< EC, N, L > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_adaptor_optional_traits< EC, N, L > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xtensor_adaptor_optional_traits< EC, N, L >:
    +
    +
    + + +xt::extension::xtensor_optional_traits< EC, N, L > + +
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using derived_type = xtensor_adaptor<EC, N, L, xoptional_expression_tag>
     
    - Public Types inherited from xt::extension::xtensor_optional_traits< EC, N, L >
    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xtensor_adaptor<value_container&, N, L>
     
    using flag_expression = xtensor_adaptor<flag_container&, N, L>
     
    using const_value_expression = xtensor_adaptor<const value_container&, N, L>
     
    using const_flag_expression = xtensor_adaptor<const flag_container&, N, L>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_adaptor_optional_traits< EC, N, L >
    +

    Definition at line 445 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_adaptor_optional_traits< EC, N, L >::derived_type = xtensor_adaptor<EC, N, L, xoptional_expression_tag>
    +
    + +

    Definition at line 447 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__adaptor__optional__traits.png b/structxt_1_1extension_1_1xtensor__adaptor__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..50924e8d9bd042fa8d8850145e8d1762e81dd5b9 GIT binary patch literal 1204 zcmeAS@N?(olHy`uVBq!ia0y~yU3f*F8(FfeDDeT9L6#op7!F{Fa=?cBut&k8&( z{oN*a|NlRlf4zm_*cRXCZ||z)&$%M;=74Z={n2f?(OI{*>3ZDoFmj!w=(R{ia;1vb zq=|4w)zl2dlb-uZQ|l5Zsfh3Txi)6@-8B(Er~HopYuf(GH~jl=T^G-ymHGmzp8np8 zw6|a05iA=~Z+-El_r3bEYqhJc?0v(3El0`HuKn%h8_O^4eDnFc%yzrpYUz6g^$Iup zf4!+~P<*icNrvLtgog&-geRoRaDT4)q+m8Db>o_w$7aVWSL}Y1wBNhrmx)T|mqTmK zGcU}qu?e}o({#26w|w=C%$d^VYOj_w9SnTEB3h-VHsx94N|9x=lZo|&TSaqoh zi?_v=tiKc8P@mKOB6z;&MW=6%jV_kTmR9|3(cRM*#>eaW`fIxIx4eSeFmkEg!~KGP|IujqtfDH_Q@LleA~(+#)tjd`{mu|eTdMp3kp0Cdqe|s*m{l>S%vuc+PrQfiR*RCydFWnGny~Hn8X{GeqKCesfFKX}pHF56m@9~qwe)YS2uZh@m&s4g9 z`U?B1P8HjWslbFbNo3W1uaHUqmQ7lr;;Pl@6|@A-$aC@5R1NjgH2lRbvQ1p~imcNV QVEMw}>FVdQ&MBb@01oUs_y7O^ literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xtensor__container__base.html b/structxt_1_1extension_1_1xtensor__container__base.html new file mode 100644 index 000000000..4283fd6f4 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__base.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xtensor_container_base< EC, N, L, Tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_container_base< EC, N, L, Tag > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::extension::xtensor_container_base< EC, N, L, Tag >
    +

    Definition at line 33 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html new file mode 100644 index 000000000..2b2664399 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html new file mode 100644 index 000000000..f6a94c9e2 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using traits = xtensor_container_optional_traits<EC, N, L>
     
    using type = xcontainer_optional_base<traits>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag >
    +

    Definition at line 431 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ traits

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag >::traits = xtensor_container_optional_traits<EC, N, L>
    +
    + +

    Definition at line 433 of file xoptional.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_container_base< EC, N, L, xoptional_expression_tag >::type = xcontainer_optional_base<traits>
    +
    + +

    Definition at line 434 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..7b05103b7 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..73e0ffac4 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag >
    +

    Definition at line 36 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_container_base< EC, N, L, xtensor_expression_tag >::type = xtensor_empty_base
    +
    + +

    Definition at line 38 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__optional__traits-members.html b/structxt_1_1extension_1_1xtensor__container__optional__traits-members.html new file mode 100644 index 000000000..c5c6450ed --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__optional__traits-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__optional__traits.html b/structxt_1_1extension_1_1xtensor__container__optional__traits.html new file mode 100644 index 000000000..a1a503ed4 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__container__optional__traits.html @@ -0,0 +1,175 @@ + + + + + + + +xtensor: xt::extension::xtensor_container_optional_traits< EC, N, L > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_container_optional_traits< EC, N, L > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xtensor_container_optional_traits< EC, N, L >:
    +
    +
    + + +xt::extension::xtensor_optional_traits< EC, N, L > + +
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using derived_type = xtensor_container<EC, N, L, xoptional_expression_tag>
     
    - Public Types inherited from xt::extension::xtensor_optional_traits< EC, N, L >
    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xtensor_adaptor<value_container&, N, L>
     
    using flag_expression = xtensor_adaptor<flag_container&, N, L>
     
    using const_value_expression = xtensor_adaptor<const value_container&, N, L>
     
    using const_flag_expression = xtensor_adaptor<const flag_container&, N, L>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_container_optional_traits< EC, N, L >
    +

    Definition at line 425 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_container_optional_traits< EC, N, L >::derived_type = xtensor_container<EC, N, L, xoptional_expression_tag>
    +
    + +

    Definition at line 427 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__container__optional__traits.png b/structxt_1_1extension_1_1xtensor__container__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..eb756ad6c9c2fb16c39f1487316698266b95bafa GIT binary patch literal 1216 zcmeAS@N?(olHy`uVBq!ia0y~yV2lQ`12~w0WWz$W6+lWlz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6#oN=xF{Fa=?c9fXU$l5! z+B-we{eF@y4 z>M0Lr%uSl@vFY*+D`WW|6IIl!ew>ZzzI$fI&n3^}>s~ouUFQAs*GAQoE9(wSQ*ocQ zY3|Oq$EM~x{}sPkw)=O@nl-QeHPg55i`d+0^5JIA{bRfKe9OFlzV^x%G6aDago=8&AJl#{2kN4!djOfhTp=If}>bowM}#u5^2?{hK*n(~6%=dwb(K zQ*?Jm|Azk?!asFf-(h<_cjf%zj(0cbU8q^5-Sw+)?uOdu#q-|oP&Zk3b>)lodp_sn zuZ^xg7$P69-)q>wcze5@@wU!2$1}HmuA5!_YTdj0FSpP1XxudaP*G$5x$@j|+rM+q zKbtmflK$_~F!Ap{!=^``)ct?qYxA!A&+a8^@6_zHX;tZem9by-Wc|v^+{!06OO>-v z+Ox#|blF<1+Ydd9v>rQ6T3%v&Yen>=l1s}ssGjr>MhSgTG+b(q-83;_n3!nIW_$2|QFz^s)T4i07978F^G)WSndhr6KVNPak~{0; zPsV7^S+C5tO)3e{pA+}?>Wtja7bd*XopeQe^V_l)KO-Wq&kyR`gOre5PVFx(dmQIF zOCyXCfCo7buBe%`&L>dE(uVJ3|HS8^wv2?#R2REz*AzDqj$eb?sXonQ3W_=9YLk>%H%*=fnsJHzVOmo{88eA{%zyr-Cx`12LHSyvoqEDo8_6Z^8CkhQ?do$3f}s#O@Gg-+uL-% z7H@N?_20mqXTEKpx_Zw2pE9Y|Rhzsk&zId1mb(7R)?PmsCxW6AwACDv1QlUB{HF4&h{yst6-$CTas{Eo-G zn0d{3_P2`u+Uw_YZsNaLQT!U{SHWFR-j(@O1TaS?83{1OSVNaNYm_ literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xtensor__empty__base-members.html b/structxt_1_1extension_1_1xtensor__empty__base-members.html new file mode 100644 index 000000000..6423fea5f --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__empty__base-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__empty__base.html b/structxt_1_1extension_1_1xtensor__empty__base.html new file mode 100644 index 000000000..d4e825e1f --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__empty__base.html @@ -0,0 +1,150 @@ + + + + + + + +xtensor: xt::extension::xtensor_empty_base Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_empty_base Struct Reference
    +
    +
    + + + + +

    +Public Types

    using expression_tag = xtensor_expression_tag
     
    +

    Detailed Description

    +
    +

    Definition at line 377 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ expression_tag

    + +
    +
    + +

    Definition at line 379 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__optional__traits-members.html b/structxt_1_1extension_1_1xtensor__optional__traits-members.html new file mode 100644 index 000000000..0293a47a7 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__optional__traits-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_optional_traits< EC, N, L > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__optional__traits.html b/structxt_1_1extension_1_1xtensor__optional__traits.html new file mode 100644 index 000000000..05dd44e53 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__optional__traits.html @@ -0,0 +1,264 @@ + + + + + + + +xtensor: xt::extension::xtensor_optional_traits< EC, N, L > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_optional_traits< EC, N, L > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xtensor_optional_traits< EC, N, L >:
    +
    +
    + + +xt::extension::xtensor_adaptor_optional_traits< EC, N, L > +xt::extension::xtensor_container_optional_traits< EC, N, L > +xt::extension::xtensor_view_optional_traits< EC, N, L > + +
    + + + + + + + + + + + + + + +

    +Public Types

    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xtensor_adaptor<value_container&, N, L>
     
    using flag_expression = xtensor_adaptor<flag_container&, N, L>
     
    using const_value_expression = xtensor_adaptor<const value_container&, N, L>
     
    using const_flag_expression = xtensor_adaptor<const flag_container&, N, L>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_optional_traits< EC, N, L >
    +

    Definition at line 414 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_flag_expression

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_optional_traits< EC, N, L >::const_flag_expression = xtensor_adaptor<const flag_container&, N, L>
    +
    + +

    Definition at line 421 of file xoptional.hpp.

    + +
    +
    + +

    ◆ const_value_expression

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_optional_traits< EC, N, L >::const_value_expression = xtensor_adaptor<const value_container&, N, L>
    +
    + +

    Definition at line 420 of file xoptional.hpp.

    + +
    +
    + +

    ◆ flag_container

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_optional_traits< EC, N, L >::flag_container = typename std::remove_reference_t<EC>::flag_container_type
    +
    + +

    Definition at line 417 of file xoptional.hpp.

    + +
    +
    + +

    ◆ flag_expression

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_optional_traits< EC, N, L >::flag_expression = xtensor_adaptor<flag_container&, N, L>
    +
    + +

    Definition at line 419 of file xoptional.hpp.

    + +
    +
    + +

    ◆ value_container

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_optional_traits< EC, N, L >::value_container = typename std::remove_reference_t<EC>::base_container_type
    +
    + +

    Definition at line 416 of file xoptional.hpp.

    + +
    +
    + +

    ◆ value_expression

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_optional_traits< EC, N, L >::value_expression = xtensor_adaptor<value_container&, N, L>
    +
    + +

    Definition at line 418 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__optional__traits.png b/structxt_1_1extension_1_1xtensor__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..57610801d7c1a3dfe1dbe2be64448fdc5936c7bf GIT binary patch literal 2062 zcmb_cX;@Q97Jcl)>Lk#zOA`npO%zbT1wkYVuM-vl6=iKUWeG8?LI;9F%O(h9=m4^7 zMp|^x2qcoQ+6YJpG@vM;fGEbWibNoUWnN%+0e+>tu z{i4G&($f{fWdRA3qjWSHElrn97E{yqL?93np5m=QRL${;czpGBkR4p8KQgJ%c(C&8_d!ELv6i z>k4m&vTL#mr-yj+zKs_uM#@V^hnj`XrqtSQ|M~KZ{&$Mg(~s{wp)<5u;8nnC82e== zA{@HsXuyafvjG=3_D^Iie<*yBx5mI{Bs^U%ODTJ_or(1>ID7MA+&Xi7?aO5p&E}&F z<+7zPAhq+lP@;OyJ6#{qO~?MmXt#CVNte=v+XCh}-_MhF8&6&cKiXqYjcP72k(uQQ z-J#fhcg8PH=IU)zu}*8wWZV3VjHr55-g|D0*3Jk>pcEpymmed~oe!VA;^`)29>-`! z|AZ3r13I|hU>=ML>0$ULwt#8=DkYX-trIm9W--M987zw>pT2JAEhb%feTo1(Lw|UG zrPDm8iASAn7>C0MDm!&zKhuFNa@U_5F?I=F2H>_Uy0^al%RflQ^Ib;8x-i&*#b9vz z6<3`?Gtv!5)$V7d-yYsp!Ra?77>wH~D%YI=3>qEihk-=XPlJkTwv(v;Eg48(!ME=6 z<^VN7!Vmb;urn(>vJi2C_FM=J9?F0;WLJcWlw|@)S4?8yLp!EnvFPy%$zqpjdZNh$ zF#r8fhlmQ~_d-NiBw&r-BL+as00}=JRFr1O`$YD?gZv`W_J4w?k=av`rUmRN|NRB* zAn07{D1i<S+qOS$5K0ZNuXF?{me-gf8I7Vb5*YOiBG)nM?8_ z*r7vL;=@GvHZ1biDnXqP!6NUJS}74M@{YXn{|sK#cCw5czbBP#)wg7F_(OadH&E+~ zRbP}@4>?eu$H|v622Yd6vg|0-z;IcxyA4`H+`#WUD7jQEuU2yYpFzvUrr<#8#+c8_ zwHxHR&fwqjE;P^c-qM#X+guW^!32wP87Z_hG?>QN21rG zb)ohr{TP88#$jMj-}2L>u9vpo@aXpBqm9qtl55B$>HxMgT{+SyGMo zjO?VEv{MU_AxxX_|NaSVvb^z^jDv^OX=AnC&o>?<6^A;$QU-%qcp1bHCB#J*zOCT}XZW zGI6Ec-+|kd*+9~W6t>i(Ccw~J24_(=<8S>eD;59FkHTDb9X)g}l;qO?QW$>73=BGU zMl8;l)?G);v0qreRK+T~cQCkigrkL1n@i`kv%VWnZFIACJh|1Zmg9VrT7OnAc2jS< zFivhYKu|*nXX7ndXULl!@N!3@uj8*OpKUS5yF8aJ=#1qsInkt^p%4yEGib9ScJ#rX zgI4>kJ~XPniRiM_UP$wD<~JcX_m9^grwudB70LV?lvQ?S1Y+YF(%P$48*}KuKvLMW z>rCQxrEEcLA6}gJ7XDS$ZNS})Bs)Etv^!FJk)CW*jNe-~=XOi=Sj@n<$7EE7D#fFZ zef}s(Y{ApN-@TMK$6p(ae^`ob(HS<8hyoQtWQ{+9!Q2YNO)Kh@`7+=PL8j`h7?rIr#xM#_# eMKcXrm-LWI$PATur)PBlG{93%=$ey$fBP5v6vdwa literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xtensor__view__base.html b/structxt_1_1extension_1_1xtensor__view__base.html new file mode 100644 index 000000000..7271eb2fe --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__base.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::extension::xtensor_view_base< EC, N, L, Tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_view_base< EC, N, L, Tag > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::extension::xtensor_view_base< EC, N, L, Tag >
    +

    Definition at line 274 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html new file mode 100644 index 000000000..6c245e213 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html new file mode 100644 index 000000000..331b412f1 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xoptional__expression__tag_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using traits = xtensor_view_optional_traits<EC, N, L>
     
    using type = xcontainer_optional_base<traits>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag >
    +

    Definition at line 471 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ traits

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag >::traits = xtensor_view_optional_traits<EC, N, L>
    +
    + +

    Definition at line 473 of file xoptional.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_view_base< EC, N, L, xoptional_expression_tag >::type = xcontainer_optional_base<traits>
    +
    + +

    Definition at line 474 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html new file mode 100644 index 000000000..56273ecbf --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html new file mode 100644 index 000000000..c8eb7e57d --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__base_3_01_e_c_00_01_n_00_01_l_00_01xtensor__expression__tag_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag >
    +

    Definition at line 277 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_view_base< EC, N, L, xtensor_expression_tag >::type = xtensor_empty_base
    +
    + +

    Definition at line 279 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__optional__traits-members.html b/structxt_1_1extension_1_1xtensor__view__optional__traits-members.html new file mode 100644 index 000000000..56c8c1e68 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__optional__traits-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xtensor_view_optional_traits< EC, N, L > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__optional__traits.html b/structxt_1_1extension_1_1xtensor__view__optional__traits.html new file mode 100644 index 000000000..c1da5f020 --- /dev/null +++ b/structxt_1_1extension_1_1xtensor__view__optional__traits.html @@ -0,0 +1,175 @@ + + + + + + + +xtensor: xt::extension::xtensor_view_optional_traits< EC, N, L > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xtensor_view_optional_traits< EC, N, L > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xtensor_view_optional_traits< EC, N, L >:
    +
    +
    + + +xt::extension::xtensor_optional_traits< EC, N, L > + +
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using derived_type = xtensor_view<EC, N, L, xoptional_expression_tag>
     
    - Public Types inherited from xt::extension::xtensor_optional_traits< EC, N, L >
    using value_container = typename std::remove_reference_t<EC>::base_container_type
     
    using flag_container = typename std::remove_reference_t<EC>::flag_container_type
     
    using value_expression = xtensor_adaptor<value_container&, N, L>
     
    using flag_expression = xtensor_adaptor<flag_container&, N, L>
     
    using const_value_expression = xtensor_adaptor<const value_container&, N, L>
     
    using const_flag_expression = xtensor_adaptor<const flag_container&, N, L>
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L>
    +struct xt::extension::xtensor_view_optional_traits< EC, N, L >
    +

    Definition at line 465 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L>
    + + + + +
    using xt::extension::xtensor_view_optional_traits< EC, N, L >::derived_type = xtensor_view<EC, N, L, xoptional_expression_tag>
    +
    + +

    Definition at line 467 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xtensor__view__optional__traits.png b/structxt_1_1extension_1_1xtensor__view__optional__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..a29cf1c4d2090c793a1d49bcaecbf8e0ff4c7940 GIT binary patch literal 1180 zcmeAS@N?(olHy`uVBq!ia0y~yU~~Yo12~w0Wc>S>?LbO8z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6McvcIF{Fa=?cCRWug!Q` z+>;Xw-~T`2n{;~DCG))Mq5w8Ig=Matzf>mGZ`3(06g4fiQcXuiQt6~RSA)vS00tG$ zb|wW+D-j0IOACb?I#t-uuATPtkozQ)FP}EYbnlf;{JG@3{(tG^t9-*B|MhK9$vnk4 zK_%UYF)D9&Ve5?re{&lSTh{&yyY@Bsl=pi5y*p=TKH7Zq-mzbc-W>b z9@u%Fxxu!*w(alXI`#B`XR4dmDLt0peptz6{+ai9bh!cZgPG@R8$OHV#jO5q`)$^5 zhWGam?AsKsz2<7wzSEosg5|jrlwLnKbJ)%1x9fw$$!O-!+fJYJ7Qc7bCspBIn*#Tx%^>ycM)}|KzhfpDU_VD(q&P^kn{(sV_V)Ev+<~ z{3Nti@W9u)FQL;_d`tCID!uFK{(qPDm}FP0?=a~PH#ooLWF_wz(NKN2B3)y1sXsl&Wr-oQu3>+L362ym*&!Rr%6jDsMrQFOi^iP zTA*Sn!k~I`A%lh|Un#?L6W(L(FY@P~4sE|~k)5%zTv=!S*8XSpk3+VeY}8dmH_cWZozJvp@%`W()`zPW z=XR*}-Me!(<;RzWUm0fa{T5y#GmHIPOxx;<@9S1KUhaAS=Ix9kHn9V`bIT=CRcB}O z7rZmJynXPY-hp|C_qo_U4r9_=RuG(~mb|U=m`Gk5|MGBi4NziYJn$)wy`HaN-l4;9 z=Y{pBGqg)vtbcPfD<_HR!1uC^$ z|4nvyep1J??VrMduRr*wy=RNz{8HlQX>}pDu8>*vgTe~DWM4fz(EyL literal 0 HcmV?d00001 diff --git a/structxt_1_1extension_1_1xview__base.html b/structxt_1_1extension_1_1xview__base.html new file mode 100644 index 000000000..6cc6b9609 --- /dev/null +++ b/structxt_1_1extension_1_1xview__base.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::extension::xview_base< CT, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xview_base< CT, S > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::extension::xview_base< CT, S >:
    +
    +
    + + +xt::extension::xview_base_impl< xexpression_tag_t< CT >, CT, S... > + +
    +

    Detailed Description

    +
    template<class CT, class... S>
    +struct xt::extension::xview_base< CT, S >
    +

    Definition at line 56 of file xview.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xview__base.png b/structxt_1_1extension_1_1xview__base.png new file mode 100644 index 0000000000000000000000000000000000000000..c683843cf466cc7c5bae40660c00fe6d5985a515 GIT binary patch literal 1261 zcmb_c`BPJO5dXeN2FMt&DpC(1(Whf54%GqzHQY*`0|CQrK`j+2X@cP_5ROnNLQ5gM zgu^Jd*2kqFl4wAnLhWFK3bjNKNpR>GX(R+j2?(K(zILYnLHCE9{p@~bcV_o9TNcU; zB$IZK003l!5x@cf65?^F#RlAib>%wlcZLRqA2pdwc&MFS%&5HIFf2W3yvF$YZrqO=S|;)Ja7;!-+i;l3YAMGZdyKeS@24`ZZ?V1anD02K*j3t)8CWv)I$ zs?^YlRymIeFsGZj>V%cbJ%Ck4;ik8fajS7jeYi`nhtZN%Cp$&+N7VZvKhfkY~MoMW!3+ zGq29M^>i1+s`@-*_oW8`O1T|6C`UR|Lcu8Cjv3yTlh!-XB=sVwgLt=dNhO!GW1J%q zUO^jmmaAHM(&tQW&8_R}sC3rSsi`H7Yf~%lS#+_yTYvSsz3 z4GsnOwLMgFT=GA%Fx@`MbvBA!-4DJx8pAE%^{CEUX=`5aDQ$s0hHrO{+-z%!h@18x zrV?f@BrA{;^T~{i<{P|-R~?UJvS3Y2+Mr#D_8d9scv0}{>3#OrYvpB}38FBY+!F8E zPW8VQMk(6Cl8b)(qr;RZ5~WYtlv^p1mC)ctI7-j)?54UkNXU{q)8#Qk99E>PdL~O# zeVMo#9q%xnBR+WO>wfGD^tPjGF}%jE$wo%Baw;-xxFUMpJm1B)SDZ}hDf%+u4UMuE z%O~{4?nQR2SyXmW;iSc2D|n^I7$p#DOny)?Y)2Cau|331XgceJ0=zNcVSw;|k_?FgOw8KfAkMWwP(M`T3k9I~Fb0YbLsBuY8>uij3E#wuY}7I1 z>ggr6SL86&IRy7W6AoG!vK(;9j%kE*|`kCtrdmT2Yyf+**CXs<5tX%>0w? z5Rv%6Thx$3zao9iRQW`DB#^KnRwf?7MPuuTYO<6j+|~Rt zFpe(Sm3FNpywDqZ`;M)6&$xMQk3aV(Ra&i-^KQbE(i3d1VQ^P3ulS-#eC7>ZxxN?*v?&mK_Ef3H7Xc})G^(zg1*gH?o5*n + + + + + + +xtensor: xt::extension::xview_base_impl< Tag, CT, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xview_base_impl< Tag, CT, S > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class CT, class... S>
    +struct xt::extension::xview_base_impl< Tag, CT, S >
    +

    Definition at line 47 of file xview.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html b/structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html new file mode 100644 index 000000000..0c25e27f2 --- /dev/null +++ b/structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xview_base_impl< xoptional_expression_tag, CT, S... > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html b/structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html new file mode 100644 index 000000000..dba4c7a0f --- /dev/null +++ b/structxt_1_1extension_1_1xview__base__impl_3_01xoptional__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xview_base_impl< xoptional_expression_tag, CT, S... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xview_base_impl< xoptional_expression_tag, CT, S... > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xview_optional<CT, S...>
     
    +

    Detailed Description

    +
    template<class CT, class... S>
    +struct xt::extension::xview_base_impl< xoptional_expression_tag, CT, S... >
    +

    Definition at line 779 of file xoptional.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::extension::xview_base_impl< xoptional_expression_tag, CT, S... >::type = xview_optional<CT, S...>
    +
    + +

    Definition at line 781 of file xoptional.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html b/structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html new file mode 100644 index 000000000..aa04f6cce --- /dev/null +++ b/structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::extension::xview_base_impl< xtensor_expression_tag, CT, S... > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html b/structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html new file mode 100644 index 000000000..8e7a28350 --- /dev/null +++ b/structxt_1_1extension_1_1xview__base__impl_3_01xtensor__expression__tag_00_01_c_t_00_01_s_8_8_8_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::extension::xview_base_impl< xtensor_expression_tag, CT, S... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::extension::xview_base_impl< xtensor_expression_tag, CT, S... > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtensor_empty_base
     
    +

    Detailed Description

    +
    template<class CT, class... S>
    +struct xt::extension::xview_base_impl< xtensor_expression_tag, CT, S... >
    +

    Definition at line 50 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::extension::xview_base_impl< xtensor_expression_tag, CT, S... >::type = xtensor_empty_base
    +
    + +

    Definition at line 52 of file xview.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1filter__fixed__shape.html b/structxt_1_1filter__fixed__shape.html new file mode 100644 index 000000000..2f78bd3b5 --- /dev/null +++ b/structxt_1_1filter__fixed__shape.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::filter_fixed_shape< S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::filter_fixed_shape< S > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::filter_fixed_shape< S >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class S>
    +struct xt::filter_fixed_shape< S >
    +

    Definition at line 567 of file xshape.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1filter__fixed__shape.png b/structxt_1_1filter__fixed__shape.png new file mode 100644 index 0000000000000000000000000000000000000000..51b7be3a73053606307f80cb1057a930d7c2e52a GIT binary patch literal 846 zcmeAS@N?(olHy`uVBq!ia0vp^4}ds;gBeJgTXrr3QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B*+JzX3_Dj46+y*O!$7Eg<{ z`R&U8>UPErvsenQ&ieV?!O-Dn1W~D8ipG$cc@>U zcf@O9;c+}>(_0((kNsi@=xyx-z7^~Uq89XLAK3sbx_vb=}XO)jz9{n{b z`m@ob^2^;be|A5AzJ2cYO7W|ko|%Py&v`UuZ?_}&1eNA*99)vO_dVEX(z-6NV#_1J z?dhj2)c(9%;dWj^%^*KPy!f9%{yWWAcas*CvgpR_Fk4Xm>f9Ugl05U|y3?nGr#9}l z);)5cq4?Ug6kArEpLbbJv_mze$~L^7%W%#0DBqNuR<5f#+>U=!miU%&HhlZ?uE-rP z!<8kvd_)fhDAet2E)Tl0=FaZsd27nqrNgf^MI1OLd#A7PidL}e=UJI99=G4jix$mg zo)>n})^&32`mT3tLtXXj*gZe>e|=r~PWFd%!%91oyOl?kM2_A1@Sf50(@wSy1; z3fCD96|1Z^i7i<5>clS23W@GL);m|Oa(h}C8oJz~ ztnz!gV@T-U)yo^6F66!u{Z%tzQ?*lts6qaQYD3#4)8>ErA-Kh8zijsG@<89@_pIN< zo!$p73B9`Yw4lh<3n5=JBGsCuKX;nwz0mzrb?u(gea~yJHKSr`m>wKTp2?qF-8pye z<_wEBhL6%2yx)~Eey%auSXU@^b6?vA=5WFH%QMuQ9x|-`$#A1%=1*}2r-?snSeylS z&RFzp?LFBqDR-@3Fzhd6-@f?P`uUo|DB=8X^?RUy#J{#~u8}gh+8!J~Kaz)G#j0O1 xmzh_ss*B(b2rUH$Z|K#DUztP%XGZ*I+| + + + + + + +xtensor: xt::fixed_xreducer_shape_type< S1, S2 > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::fixed_xreducer_shape_type< S1, S2 > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class S1, class S2>
    +struct xt::fixed_xreducer_shape_type< S1, S2 >
    +

    Definition at line 188 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4-members.html b/structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..1cdd843f8 --- /dev/null +++ b/structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html b/structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..ffbdc26d1 --- /dev/null +++ b/structxt_1_1fixed__xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_01_4.html @@ -0,0 +1,156 @@ + + + + + + + +xtensor: xt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type
     
    +

    Detailed Description

    +
    template<std::size_t... I, std::size_t... J>
    +struct xt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >
    +

    Definition at line 1229 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<std::size_t... I, std::size_t... J>
    + + + + +
    using xt::fixed_xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... > >::type
    +
    +Initial value:
    typename detail::
    +
    fixed_xreducer_shape_type_impl<sizeof...(I) - 1, fixed_shape<I...>, fixed_shape<J...>, fixed_shape<>>::type
    +
    Fixed shape implementation for compile time defined arrays.
    +
    +

    Definition at line 1231 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1forbid__simd.html b/structxt_1_1forbid__simd.html new file mode 100644 index 000000000..afe347d1f --- /dev/null +++ b/structxt_1_1forbid__simd.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::forbid_simd< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::forbid_simd< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::forbid_simd< T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::forbid_simd< T >
    +

    Definition at line 302 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1forbid__simd.png b/structxt_1_1forbid__simd.png new file mode 100644 index 0000000000000000000000000000000000000000..7dd0dbf45b1adf7f47fb03c2e8b89e6b36ccdb09 GIT binary patch literal 574 zcmeAS@N?(olHy`uVBq!ia0vp^)j%A;!3-q%ihk_?QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E7XJzX3_Dj46+joiFiL7=5N z?$Y1?^&d@78L@nDDdu1DDqtb+=>yMoUTL2>qsHkrDR|2b70a;ur}?sP9tqmM`E8f_ z^&98Dncwv1-|k-U-eq#F%z90(;}+2^SJwvXPA*w{+|0<_{)GGfGe2veuFLEB_2$tM zqeVY&2$v<>dtUcTzL#cyzfJGi@7o*u!prtcf0-PWePm6~&i7NqrpkJTRhi${EmOZg zvDW&&;k=FKV%z$o@~&5UT~#mjo3vf@hDznK|3~@apL~*3JSqIQ>HgL387k3H_YEh> zthPU6W;|P&VaIxQ2A@kV-yR$C+fCfNaQVUXP5*P|>YFj}TuWj;5TR?v&~p_lBX#CX zUm>4K%Q7~qX0F-SF_%5;Ua-W}`rh2Ng)6c=wXP)pFPNn=cSTfwUdNliv);dZ(Xvo> zf9CTxM7k#ZbCn!(PH1A!*v#*!doJ;Mi{G=^8dx`kY-JjZLJ&E4+ zc-j5Thr!#rD>vTLyE-ZE_#dU{O{-$RSc``C=LY4it-1dC{WI%L!8@O1eGjx*{rSn4 zr&iOK9NcyK-QLwIFJsr{cdGPWP4d1Jk(*<@+42{=X3mt8TyqNDficbC>FVdQ&MBb@ E0AZ;aj{pDw literal 0 HcmV?d00001 diff --git a/structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html b/structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..6d4a9e9cb --- /dev/null +++ b/structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::forbid_simd< const std::vector< bool, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::forbid_simd< const std::vector< bool, A > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::forbid_simd< const std::vector< bool, A > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class A>
    +struct xt::forbid_simd< const std::vector< bool, A > >
    +

    Definition at line 312 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.png b/structxt_1_1forbid__simd_3_01const_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f40dfa6b297d9f7ab2daa088af73e29c5460877f GIT binary patch literal 1277 zcma)6Yfw{17~M-O3Is&Km?}yeLI!Qr%gX`^s08H}2n?n?iVC-NLgOG0L93#WL83@( zk(5^+h+qt&wVFl|1}&Kz@s&U{iU@5C9VMWk7DL2fBi;5-`>)-Zv-|D&&g{4QotZtF z$lm1YyvP{<;EKhtk^pc(VVpRJ1ZR}hwGu9i6XQ71Gcz+V938jrt|VGQ&}DhlI^F2d z&=BN%Y#y0($N_`(TQ)Cvo%|E>7q11y%A22!ygx zv>d`Qm5QB(Sah)wy}#B{II(|CyWmvv7!|LzU2T{SsjBo)i2DhsDCm6QJF$14{Xx-; zZF(?wsoi#rH#yA>W@3?=mjv0;v3rEicJGNG%7U)61Y zDBa9bNzn#x`~K=}QMpOa1Pm;aKnU{d*13I7%>zohRnUEo3o zif}Hd_O1=tq(Q z=YoT&IXAs31fj7(EhbzcRiPqIC|#0~D5CSSiesV9sDuLy|gz{Lk!06}6N zqkj(J+V1Qz4<9@=k3l0QHAslag^#2@$pg!KXJzs=h~Ji#ZXcW!YLGJ_9(=@Y_Q||& zuQ!3oyb!P;%K=sY2AKIYK=N{1*DVI*e^`#pNezyW67w1VJ6WS0-sNAX9X62EK<0VD zosT>!6Cfy%UPOUorU%7Q4YCOWQ2FtxR6x4ut8pBV)eI*2zr}gQG+G=>=c)#i z<+`~0UKGd7a=~q#fk{@oyL>M`okrz7n_Y-DVt&iY)RvDFN#mI!UF-|5w`A#;&y?W)tw!H2cf~oO0NES0!2D7dILw>Msn9*`?G#<2mQYG<87r{M zw1`4pZc~BXF6UmdHihT=XXGBat=j?(JbWN#RiI_c(pPy2_Wpfb{g|d`O+a7?VluYC z7QapyN5x{P@?XBB*6Wx(1RyI>ahe25zQhAmK`tcpI + + + + + + +xtensor: xt::forbid_simd< const xtl::xdynamic_bitset< B, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::forbid_simd< const xtl::xdynamic_bitset< B, A > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::forbid_simd< const xtl::xdynamic_bitset< B, A > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class B, class A>
    +struct xt::forbid_simd< const xtl::xdynamic_bitset< B, A > >
    +

    Definition at line 322 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.png b/structxt_1_1forbid__simd_3_01const_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..542931d7b3717113866bebce8eea5123d4d45ad3 GIT binary patch literal 1395 zcmeAS@N?(olHy`uVBq!ia0y~yU@8K#12~w0zz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6<)5dEV@L(#+qpNVJ=PFm zdA!f!{r~!pH?FZwiV^#=Wy!0_dW&+lFsO4rnA*W1ELbS>%-^M@v%`W<(bH{GUyznM zh)Q~@vQki6-E(h*rDxWWQ=UQkVSbaOHWp2~(mi$Z61O#TRK6B1EJ{A^{onBaAA@DP z&%C#t68-%9YA&$KRVd zGB)pcw_W3V%!Kvlg=PZ-M){8JuJ|3Ndlzp7hSV|LMZc%AuU3gYlW!ZL`mzcbXr`cW z6$ge*FECtR9R-G~GB8}LK;hZ})E+nQl&i~(j*i13P@3V+6!r$j7YAN4nmoF|P*qsP zkZU97$Gd=kIs1hUXXY12Uovj_c;?JX#*&9$7^Dg_81`D&Hl)c&I_UfHFA!{JyU=}^ zIpfGe#xIW$(rz+Rq)0#cSYdPK@yCi1#sr3ck~Yg3*dC~?k!fJG;M8VMVDLM1icz9r z@`fVvg+K5M2_`Bj^)V+f?CLnjj&2OAf4gT}{P{C?(l4Jrw>m!hw#^2f&!321p6&Q>m7SvK+Kt(@ae0$2J!^i7%e)cJd8{_Jq`*lX3%DS4+a#hY%5+PG?= z*W*Q%AdBbJ$(E%ZoA&m}J5J;7sQGEypTpEEOLs~I{5|(vb<@XXdqTGbeA~GF{oC%a z4lZEm{4jp%6?*FTRhM^K+uwbdUG#O|?#=zRL3ueDRq587s-{PK?@*o#^6uVj6Rqiz zvx_pOujakIYqMBx`FZOlF+UI7JF#tb^3%QLmJR>=m7XNVeV^KWW@$*V*v!{P+aiB# zv6a;ho%Zf@`7v$xsjFQ(&xC4<#C-kaxij|R8kqz01GLS3e+S4X>GhquxNkn+wX1($ zZi(9Ws`+d1_u%uv*+)Iv+PWtCP3J0nmUvb>;Z4m}S-;~MPamZHnHebtjIHz2D~yfb zABdMr3;rC&w_yIhoi+LVt96x)Kj#;&S^h3?>)xcN48MMg?!L2^Efd62WzSA~7K=6J lF%yRiDBC<{xHIEFgU%(Z`n~KiWx(Q*!PC{xWt~$(69D^srwIT6 literal 0 HcmV?d00001 diff --git a/structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html b/structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..a804c90be --- /dev/null +++ b/structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::forbid_simd< std::vector< bool, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::forbid_simd< std::vector< bool, A > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::forbid_simd< std::vector< bool, A > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class A>
    +struct xt::forbid_simd< std::vector< bool, A > >
    +

    Definition at line 307 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.png b/structxt_1_1forbid__simd_3_01std_1_1vector_3_01bool_00_01_a_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..3f6c5f91bed2904fd02300be1f18dce2b68b03a4 GIT binary patch literal 1037 zcmeAS@N?(olHy`uVBq!ia0y~yV0;B+2XHV0$%j*qtp`%l0X`wF|Ns97GGDy;TH1eT zxrKpdfyDGPFCIL202DVp8@2=}$5|5O7t8?UgMm5I>?;fm%riV)978G?-_E@|YmtEf z>*{=)=YQu{gbE1NmE7?!DBC@Ein3aR`c#wcE-ooeFGU3>aym`=bYa!BB{oyCJiQ!O zPFo@ZXUHt8+ViI7>kPYhcRtRUY47~i==Wvmx!WH21>e21EaboWs{G&PZQC_Z{QdFK z?(N5i6>^5(;_TP#Qhg~bv!=@Y_uB%#`l>g{A?+sHza{i-`LWJ+z5VOY+5aN0DxO_? z{^pV2PHzr}0gyU*MD9U zm;OKKjWhR;39Bzxt@ia@^ROcH_q&tV?@s!{=%@MM^qb;;hJRjeEGlp8)@;J3I~fv44!`;iA!UuJl1Rav?q z#5;%!&RDlfSxM;PioOmHmIL8C7?!BSehT89(0E#P_3M(8-lh(0>nbPj@|(UVgjq!~ z`>)>&AY;h_0{B7E&X`F|0St2-&YC%Jd6|-f53B^nG?Rj6;_XU}tJ~%_1?Aq>L}K)J z&anULonZ6of9{-ZwSV5k-1e=$^!v>sdyBmx?^o36y}#O1=Uuv|EOyoV_l32#-@d#( zTv0Lm!0Y>eXD9AA7yk9**T1I~Q@=Xx{K}jEH!JJ?C7xM%yFXa)DVcIVWrhS+Ck z#ma6=i7N+ZzpD9s_d(&i`E9MX+n?%&{l9g)Ec~YR+S`vldqu4~9(4EIlVj6fXZmbm zHF>jb>#}LhVcTEK)eXD(Nh^QFy@|1_{)d$YAK3k`Y}RhayGD|)zwd~@zH0aCKMr62 zu-uv&yGq*s{mO00SEuc++OA}BT>i$@;EyX}c{ePZxghb~_Rx0Q?Q7G&?yCPDd3Wc{ z`Y?Ufy;Wh~SG|tpy>M~$zT0&^4;h|J}H4e{=8s7F>F3TX4XtTx(WL#>!B47Zs)l b*?$-l{dTL$EYuGGW?TkOS3j3^P6 + + + + + + +xtensor: xt::forbid_simd< xtl::xdynamic_bitset< B, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::forbid_simd< xtl::xdynamic_bitset< B, A > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::forbid_simd< xtl::xdynamic_bitset< B, A > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class B, class A>
    +struct xt::forbid_simd< xtl::xdynamic_bitset< B, A > >
    +

    Definition at line 317 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.png b/structxt_1_1forbid__simd_3_01xtl_1_1xdynamic__bitset_3_01_b_00_01_a_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb27fa107cab9d6076ceb3aedc7ecadae4f79cb GIT binary patch literal 1298 zcma)6TToM16g?q9P(h1T$_O%Yi89!$O`|BH;43Lao)bX1Rg^kj5g#BSDsMA&2I9~L z6X5c06cUhDFou^RwxK|42q;7hD6g~@FeJum2r(E|;P=1JHkB%q~LA(G^+(>3RF5=>S^W5T+VV!83d^^fP*>Hp(Xg|A6THmQ&SJSBry0h?H$BeIH(L6K%$AEt ze2u}#Gd-Ek9YY!O_VEf<$-^Pd>PNe1Ma`#Hcyo4; zQZTqu*xpW4h?A%q`g(>?orx?{*4=uH>slR+Xxb*B#wWcpakHFXq!7$5ZWzwVk&b$l zq#W1ispY2iSvM}~^aY}DRtsFsPW-qR8HspWlp&p+8!wcX9x|9m`qx(8Bc)7j-SS=! z{W3IPnmxz<@sRMST=!Y9((BF%*Jm}2>t}h>^KlQK<&ZT=?VI_c0^dun0@2ZwY)Wh4 zq`53}&1o_=>D)1zg{EEFrhw`OS9OdoFjCCQDuDz z^*#m508vs)r?>@a?GORHjK8seNJ^4G4ce*fd9(*dDI+JMNzBZg^7m z-O~n7%vLRA9xxtG_mw#QU+-t|MBX^Q`%2rW zrT$T5t2T*9wG6F738`i>B=-X*TITMDJb3md5}8@q$_-tYwzb+#u8i)+-C?4o(`-K> zHN;ghQvRytdY>_IBBj+(pHPx8IO{W2GdM<_f~MH}#*V2%Ylj=nEGH*h+2VjiE#L(h5AG4_%Mi%!aE!W#BX6cJ6%-E4R5%3LNeZMbT-8^ZxaF z9P|n|3U?AHRyfryG=;5$@MXdw;zKSXssk*`{Vi`V@1hEX`1S$}dKj%?Z`{{^0iK<5 ADF6Tf literal 0 HcmV?d00001 diff --git a/structxt_1_1get__init__type.html b/structxt_1_1get__init__type.html new file mode 100644 index 000000000..75d2a09a7 --- /dev/null +++ b/structxt_1_1get__init__type.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::get_init_type< V, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_init_type< V, S > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class V, class S>
    +struct xt::get_init_type< V, S >
    +

    Definition at line 237 of file xfixed.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4-members.html b/structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..d5b33e198 --- /dev/null +++ b/structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_init_type< V, fixed_shape< X... > > Member List
    +
    +
    + +

    This is the complete list of members for xt::get_init_type< V, fixed_shape< X... > >, including all inherited members.

    + + +
    type typedef (defined in xt::get_init_type< V, fixed_shape< X... > >)xt::get_init_type< V, fixed_shape< X... > >
    +
    + + + + diff --git a/structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html b/structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..c7a103436 --- /dev/null +++ b/structxt_1_1get__init__type_3_01_v_00_01fixed__shape_3_01_x_8_8_8_01_4_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::get_init_type< V, fixed_shape< X... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_init_type< V, fixed_shape< X... > > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename detail::get_init_type_impl<V, X...>::type
     
    +

    Detailed Description

    +
    template<class V, std::size_t... X>
    +struct xt::get_init_type< V, fixed_shape< X... > >
    +

    Definition at line 240 of file xfixed.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class V, std::size_t... X>
    + + + + +
    using xt::get_init_type< V, fixed_shape< X... > >::type = typename detail::get_init_type_impl<V, X...>::type
    +
    + +

    Definition at line 242 of file xfixed.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__rank-members.html b/structxt_1_1get__rank-members.html new file mode 100644 index 000000000..5df869dc7 --- /dev/null +++ b/structxt_1_1get__rank-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_rank< E, typename > Member List
    +
    +
    + +

    This is the complete list of members for xt::get_rank< E, typename >, including all inherited members.

    + + +
    value (defined in xt::get_rank< E, typename >)xt::get_rank< E, typename >static
    +
    + + + + diff --git a/structxt_1_1get__rank.html b/structxt_1_1get__rank.html new file mode 100644 index 000000000..d3a1263e5 --- /dev/null +++ b/structxt_1_1get__rank.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::get_rank< E, typename > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_rank< E, typename > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::size_t value = SIZE_MAX
     
    +

    Detailed Description

    +
    template<class E, typename = void>
    +struct xt::get_rank< E, typename >
    +

    Definition at line 1014 of file xutils.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class E, typename = void>
    + + + + + +
    + + + + +
    std::size_t xt::get_rank< E, typename >::value = SIZE_MAX
    +
    +staticconstexpr
    +
    + +

    Definition at line 1016 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4-members.html b/structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4-members.html new file mode 100644 index 000000000..e7c81a553 --- /dev/null +++ b/structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_rank< E, decltype((void) E::rank, void())> Member List
    +
    + +
    + + + + diff --git a/structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html b/structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html new file mode 100644 index 000000000..4c6f01974 --- /dev/null +++ b/structxt_1_1get__rank_3_01_e_00_01decltype_07_07void_08_01_e_1_1rank_00_01void_07_08_08_4.html @@ -0,0 +1,187 @@ + + + + + + + +xtensor: xt::get_rank< E, decltype((void) E::rank, void())> Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_rank< E, decltype((void) E::rank, void())> Struct Template Reference
    +
    +
    + + + + + + +

    +Static Public Attributes

    static constexpr std::size_t value = E::rank
     
    static constexpr std::size_t value
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::get_rank< E, decltype((void) E::rank, void())>
    +

    Definition at line 1020 of file xutils.hpp.

    +

    Member Data Documentation

    + +

    ◆ value [1/2]

    + +
    +
    + + + + + +
    + + + + +
    std::size_t xt::get_rank< E, typename >::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 1016 of file xutils.hpp.

    + +
    +
    + +

    ◆ value [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + +
    std::size_t xt::get_rank< E, decltype((void) E::rank, void())>::value = E::rank
    +
    +staticconstexpr
    +
    + +

    Definition at line 1022 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__strides__type-members.html b/structxt_1_1get__strides__type-members.html new file mode 100644 index 000000000..efe3f58e2 --- /dev/null +++ b/structxt_1_1get__strides__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_strides_type< S > Member List
    +
    +
    + +

    This is the complete list of members for xt::get_strides_type< S >, including all inherited members.

    + + +
    type typedef (defined in xt::get_strides_type< S >)xt::get_strides_type< S >
    +
    + + + + diff --git a/structxt_1_1get__strides__type.html b/structxt_1_1get__strides__type.html new file mode 100644 index 000000000..bb6e9f5a5 --- /dev/null +++ b/structxt_1_1get__strides__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::get_strides_type< S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_strides_type< S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename rebind_container<std::ptrdiff_t, S>::type
     
    +

    Detailed Description

    +
    template<class S>
    +struct xt::get_strides_type< S >
    +

    Definition at line 960 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::get_strides_type< S >::type = typename rebind_container<std::ptrdiff_t, S>::type
    +
    + +

    Definition at line 962 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html b/structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..d0c6142fb --- /dev/null +++ b/structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_strides_type< fixed_shape< I... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html b/structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..47edb3856 --- /dev/null +++ b/structxt_1_1get__strides__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::get_strides_type< fixed_shape< I... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_strides_type< fixed_shape< I... > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::array<std::ptrdiff_t, sizeof...(I)>
     
    using type
     
    +

    Detailed Description

    +
    template<std::size_t... I>
    +struct xt::get_strides_type< fixed_shape< I... > >
    +

    Definition at line 966 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::get_strides_type< fixed_shape< I... > >::type
    +
    + +

    Definition at line 962 of file xutils.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<std::size_t... I>
    + + + + +
    using xt::get_strides_type< fixed_shape< I... > >::type = std::array<std::ptrdiff_t, sizeof...(I)>
    +
    + +

    Definition at line 971 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html b/structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html new file mode 100644 index 000000000..5e17ff69b --- /dev/null +++ b/structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_strides_type< xbuffer_adaptor< CP, O, A > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html b/structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..f64df737b --- /dev/null +++ b/structxt_1_1get__strides__type_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html @@ -0,0 +1,174 @@ + + + + + + + +xtensor: xt::get_strides_type< xbuffer_adaptor< CP, O, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_strides_type< xbuffer_adaptor< CP, O, A > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type
     
    using type
     
    +

    Detailed Description

    +
    template<class CP, class O, class A>
    +struct xt::get_strides_type< xbuffer_adaptor< CP, O, A > >
    +

    Definition at line 978 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::get_strides_type< xbuffer_adaptor< CP, O, A > >::type
    +
    + +

    Definition at line 962 of file xutils.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::get_strides_type< xbuffer_adaptor< CP, O, A > >::type
    +
    +Initial value:
    std::vector<
    +
    typename xbuffer_adaptor<CP, O, A>::value_type,
    +
    typename xbuffer_adaptor<CP, O, A>::allocator_type>
    +
    +

    Definition at line 983 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__value__type-members.html b/structxt_1_1get__value__type-members.html new file mode 100644 index 000000000..ddcb55345 --- /dev/null +++ b/structxt_1_1get__value__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_value_type< T, class > Member List
    +
    +
    + +

    This is the complete list of members for xt::get_value_type< T, class >, including all inherited members.

    + + +
    type typedef (defined in xt::get_value_type< T, class >)xt::get_value_type< T, class >
    +
    + + + + diff --git a/structxt_1_1get__value__type.html b/structxt_1_1get__value__type.html new file mode 100644 index 000000000..86511903a --- /dev/null +++ b/structxt_1_1get__value__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::get_value_type< T, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_value_type< T, class > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<class T, class = void_t<>>
    +struct xt::get_value_type< T, class >
    +

    Definition at line 481 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T, class = void_t<>>
    + + + + +
    using xt::get_value_type< T, class >::type = T
    +
    + +

    Definition at line 483 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4-members.html b/structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4-members.html new file mode 100644 index 000000000..90da46694 --- /dev/null +++ b/structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::get_value_type< T, void_t< typename T::value_type > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html b/structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html new file mode 100644 index 000000000..8b4034220 --- /dev/null +++ b/structxt_1_1get__value__type_3_01_t_00_01void__t_3_01typename_01_t_1_1value__type_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::get_value_type< T, void_t< typename T::value_type > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::get_value_type< T, void_t< typename T::value_type > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename T::value_type
     
    using type
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::get_value_type< T, void_t< typename T::value_type > >
    +

    Definition at line 487 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::get_value_type< T, class >::type
    +
    + +

    Definition at line 483 of file xutils.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::get_value_type< T, void_t< typename T::value_type > >::type = typename T::value_type
    +
    + +

    Definition at line 489 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__assign__conversion-members.html b/structxt_1_1has__assign__conversion-members.html new file mode 100644 index 000000000..fcc9593d1 --- /dev/null +++ b/structxt_1_1has__assign__conversion-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_assign_conversion< FROM, TO > Member List
    +
    +
    + +

    This is the complete list of members for xt::has_assign_conversion< FROM, TO >, including all inherited members.

    + + + + +
    argument_type typedef (defined in xt::has_assign_conversion< FROM, TO >)xt::has_assign_conversion< FROM, TO >
    result_type typedef (defined in xt::has_assign_conversion< FROM, TO >)xt::has_assign_conversion< FROM, TO >
    value (defined in xt::has_assign_conversion< FROM, TO >)xt::has_assign_conversion< FROM, TO >static
    +
    + + + + diff --git a/structxt_1_1has__assign__conversion.html b/structxt_1_1has__assign__conversion.html new file mode 100644 index 000000000..46204ea94 --- /dev/null +++ b/structxt_1_1has__assign__conversion.html @@ -0,0 +1,208 @@ + + + + + + + +xtensor: xt::has_assign_conversion< FROM, TO > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::has_assign_conversion< FROM, TO > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using argument_type = std::decay_t<FROM>
     
    using result_type = std::decay_t<TO>
     
    + + + +

    +Static Public Attributes

    static const bool value
     
    +

    Detailed Description

    +
    template<class FROM, class TO>
    +struct xt::has_assign_conversion< FROM, TO >
    +

    Definition at line 635 of file xassign.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ argument_type

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + +
    using xt::has_assign_conversion< FROM, TO >::argument_type = std::decay_t<FROM>
    +
    + +

    Definition at line 637 of file xassign.hpp.

    + +
    +
    + +

    ◆ result_type

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + +
    using xt::has_assign_conversion< FROM, TO >::result_type = std::decay_t<TO>
    +
    + +

    Definition at line 638 of file xassign.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + + +
    + + + + +
    const bool xt::has_assign_conversion< FROM, TO >::value
    +
    +static
    +
    +Initial value:
    = is_narrowing_conversion<argument_type, result_type>::value
    +
    || has_sign_conversion<argument_type, result_type>::value
    +
    +

    Definition at line 640 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__assign__to.html b/structxt_1_1has__assign__to.html new file mode 100644 index 000000000..f5da92527 --- /dev/null +++ b/structxt_1_1has__assign__to.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_assign_to< E1, E2, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_assign_to< E1, E2, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_assign_to< E1, E2, class >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E1, class E2, class = void>
    +struct xt::has_assign_to< E1, E2, class >
    +

    Definition at line 777 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__assign__to.png b/structxt_1_1has__assign__to.png new file mode 100644 index 0000000000000000000000000000000000000000..18283a61493a6dec0e298b53f09c56930a9ffb0e GIT binary patch literal 749 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#Nr;JY5_^Dj46+y)Cp@LBORt z?$Y1?@q6+@-p$H5kv45nms!_?f@jmhXUyzXk?`zW%;_>|o@t}UrOmq-bLV%)Z!V}# zcxXNEk5s^?oB#P<v%s#&41kW_H9w{UbU0fuNYENWL`SkLa%_EVSn@|@L5Gl6=fUtJcF(ww|JrfTx~ z71t&{VgKdCyS0HYD}()0sB^W|+gQDov$js&x;y4XNO^3ZN`5x8(n-5tj2AY4+a9qb zeA1to{k<2`s$~==y;%cywU~nO=0+BV|1SIt5}u10ZRMH;d)c;p=y5fXx$vfl;X$-8 z2ZK#E6JtZVuL8q|HJmIAK;JSP*sLbNP;rfgiQ)V#2Zjfc7>deM(#$3$OfuG#FOuf6jV11i`Y*rF$)>Fa&Utz&}cO^)(Hz48T~Pdk1;y7c1R zkx2c + + + + + + +xtensor: xt::has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E1, class E2>
    +struct xt::has_assign_to< E1, E2, void_t< decltype(std::declval< const E2 & >().assign_to(std::declval< E1 & >()))> >
    +

    Definition at line 782 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.png b/structxt_1_1has__assign__to_3_01_e1_00_01_e2_00_01void__t_3_01decltype_07std_1_1declval_3_01cons059ed553ffd14856020f06c40d9ce771.png new file mode 100644 index 0000000000000000000000000000000000000000..35ef95d6e90b08f62c955c6fe8ad1fc00584f783 GIT binary patch literal 2067 zcmc&#YgAKL7QVz(qDzs-SSc1k6d1G$t@4I|@`xCP0J$I;AXE!Zc?H3M2nnH1%c8Z= zQF$nZSZo@&5RjGxB)lwImJN_W3IReOKt%||U}*vbNP3datToGj^K0(f_nve1IcJ}5 z?{DvO3kkuv-8(IILJ+h&=!}0D1igg>i#y zjDr1?X@y`=X>U?vffV4;$Y(Myox(fXhTu$m8KhH8o8}|mc!byxsG{ujQujnrqvuNL z0+DvkhM+VNd$fDT+{F(U*rMPpi9?6~eVNZK43Xv!CMn!x;i%E zEGi+LB`DniwtU6MV}e=R=C)b$?phu{)G;_*UZx`zeB^?eBg%f zP`tRX`&5cb>FUAJ9|F*QsGDY%VThLNNK2!I`UsmRJ~0Xy#Axi4!33&@LJ z5AI$V&H>TMJ7`;@F899=C_Ap>XXSq)Oo&7CMo7&%8P9LSBy+fb*UL5oba!|#WMB-1 zf4kEFB~5d{GN5vM7-J0KJS)R!kbx5(F}8+`%4W7<7};T;LI!Eg#p8G-*mt=0Gy`&r z{(O%$G#9iNh3-Z>c>iZ}0sb{u;q~T<>9Aa2G2~5)t$(rdh5BwEL1P#_tThM~S4BMN z3%z^%si85n@+PkTHa)R$)#K^E-}5MAogdnFqPldg!E&H!{{O9`J;mX^t(VNh3<$#r zBEc{b4uFTR=s-Dz+dM>$Ac#>Z2Dp6JG#`dTVd_JFYY>Gyn0n-M1i4|0GC;+B=O3rr zXZfB9AmjwcX1Q&JA2-3jp4(2Nr3%T#Oko5p@nDh~%%gKM=4ZRl`h`%LRPVYb*LQJ-**#s;3kx7EiqXf}XwDNZyb%y`XBZ2-2t0 zr(Nb%LrKb;{i_Q5dZx3{bHTGD$1aL`Gq028$y@pBK!=>~n*8y+esxl>%O<#40BKg-dO-v?Sws;uQEj-0oHvohH*GVgS)(HDN9r=NM`YujO1yn) zDyeev(M9(hHmkp@Um92}n~V1vz&;aBH9Dx4>a~wYw>!|;vyzj$j)$N@YMv9RV>`a* zR}Lo8qYlglWbMzVy~v|&H)+kvyqRRiTV5mWwROnSlq(^_0EBNgvH^?2NVIPh{r3-=MI{{hK_+Y&EAuj+35WWQuZE z)4>sblD!q76O@JTWsbeL8{+1cdlQ3h{DiWpOC>HLeQK*O<*K)u#jmlU6h9|D!zq3j zTmM1%g6_`yxwPZyXd{DZlUBj-2?RD5;f|kYHX?Ujy7*N}MMA2f>%A`dTI%!o{ia)w z*$G>epE5U6T4n_UDUh8ma~e`(sFW4uxUA<2tsXum?!YV^)wY8x?bTGL9gAy^s>+`6v8$oIij|(>7QcO6Dj?mTg<3DRUi4&j~%N^EGmC9%4!h?I5 SV=~>Z9SRBv_HQ^H_sJh-g}=A} literal 0 HcmV?d00001 diff --git a/structxt_1_1has__data__interface.html b/structxt_1_1has__data__interface.html new file mode 100644 index 000000000..b27e873c1 --- /dev/null +++ b/structxt_1_1has__data__interface.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_data_interface< E, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_data_interface< E, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_data_interface< E, class >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E, class = void>
    +struct xt::has_data_interface< E, class >
    +

    Definition at line 562 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__data__interface.png b/structxt_1_1has__data__interface.png new file mode 100644 index 0000000000000000000000000000000000000000..586ceb7ffebff9277c3d9b15fa76c010faa5bfbd GIT binary patch literal 737 zcmeAS@N?(olHy`uVBq!ia0vp^XMs3?gBeKn&SE?Uq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#NsxJY5_^Dj46+y}0eQ0*6cc zbmKq&#pjzCb_L#6JNxqKt_bbPSplcSo=7SwUFL9_G+86VsIxwotn}2Uwz*avtVD9lxJMnBE^%@UrJ|v-Lzci zhPh|mn);cuznq_ZVZxKWTvC(1tX!bzIX^1H#U)LUp~lgk!Jv29qMtu!a;9s|Vog(; zvomASa>j;mR$hi5Ar}}L{7GOOi0tg}QSMmvN`*@*G;}_gu)6T%B=@nTJh49CPsa}C zuJsJvdaXLW&i<@H({?5)T`Tv^`_69kusZo=snxpFPczmn`(*TgckZ@j$ETN0`FnHz z^1$V_$0K%ip4%yS_0`G6pU$@2o>7&SY$TnvJ#(?8Yv@-0&*oF#Gl#F-Qp0l1^I^`P z>&s>>W8Av$wXgN-7x%9G`+U!8(VJhazIqd;r5Vq3wVhR4AA6=c=k*%#n(52Bmaf}k zlCAxA#)D@Dv$8U^*M2NNaZz#M*T@yCDqk(R5s~AxJ2t_k_}e`m?YG|F)yn5R`;`~Z zX1lgTznbs&|6B9Iv~)usELeW?)|)R|WKMscw`|ob&*_J(95>6}F8Im4dDSb<*w2s6 s%vY^iE^4xBl^vKcmF?{~q4SG%aq6!>DhKp7023pFr>mdKI;Vst054T-k^lez literal 0 HcmV?d00001 diff --git a/structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html b/structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html new file mode 100644 index 000000000..c904d87a0 --- /dev/null +++ b/structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_data_interface< E, void_t< decltype(std::declval< E >().data())> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_data_interface< E, void_t< decltype(std::declval< E >().data())> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_data_interface< E, void_t< decltype(std::declval< E >().data())> >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::has_data_interface< E, void_t< decltype(std::declval< E >().data())> >
    +

    Definition at line 567 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.png b/structxt_1_1has__data__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8data_07_08_08_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0d9c1957391e2142ffbfb7775046d83ec45191 GIT binary patch literal 1616 zcmbtSX;4#F6n>Ba6oDGGh*(L>00Sb6paubzYA8f7LBRk43=SnqXaY0_kdzQ{a0f<8 zzz7H}$dW)J4KE3cfC4&b&|wKGn*n7fEK0%>Li%u~Kif{H=g0ZJbM86!-m~2F!+06$ zo9Y7qV2JicodEzC9^!tRV30o#ix!#!3BcOB5Hez1D{!<;m(Wu=iOVDXqpV`RJ*A1mi$7sC&90 z=V_ocukwe}C%ZmoNEX|D=PblOT334MlKnPc&FGej)^f$&J4 z8*{0M>bZ5p5f1l<&C@~w0}pt{@DDoaRTOQ7~!9oiR|HX*V0fI3|pHB3?>v7tbw44?RY3b^LA%q^=JV*zCe( z@W`S&D1@!&k|K$eckYb0OQZJ_9JV(D*~9R0b$#&95y8>9S(M?&4+h4cRK=>Ni0#5D z+^3*>$d1`~p=2gw{7wjkfY1zBISCH;HC7=98M*x;SctCZlCWU8B}Z4ivIopKS0L41 zKGZwv>h$J=BE~Md^aYO;FnFqUOrtD2yX0Lp8jkx=ag@azO!)T;DWlGgN1&aO>nk~ad{i|w5_wi u5x1qt7-#EDP5PG|hQrUBn~&+rY*+N$+_qnRHd-GFK!Wzfpm@i_Q~v}z)C}hU literal 0 HcmV?d00001 diff --git a/structxt_1_1has__fixed__rank-members.html b/structxt_1_1has__fixed__rank-members.html new file mode 100644 index 000000000..4a172b8a0 --- /dev/null +++ b/structxt_1_1has__fixed__rank-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_fixed_rank< E > Member List
    +
    +
    + +

    This is the complete list of members for xt::has_fixed_rank< E >, including all inherited members.

    + + +
    type typedef (defined in xt::has_fixed_rank< E >)xt::has_fixed_rank< E >
    +
    + + + + diff --git a/structxt_1_1has__fixed__rank.html b/structxt_1_1has__fixed__rank.html new file mode 100644 index 000000000..aff2d1d51 --- /dev/null +++ b/structxt_1_1has__fixed__rank.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::has_fixed_rank< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::has_fixed_rank< E > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::integral_constant<bool, get_rank<std::decay_t<E>>::value != SIZE_MAX>
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::has_fixed_rank< E >
    +

    Definition at line 1030 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::has_fixed_rank< E >::type = std::integral_constant<bool, get_rank<std::decay_t<E>>::value != SIZE_MAX>
    +
    + +

    Definition at line 1032 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__iterator__interface.html b/structxt_1_1has__iterator__interface.html new file mode 100644 index 000000000..24edd8117 --- /dev/null +++ b/structxt_1_1has__iterator__interface.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_iterator_interface< E, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_iterator_interface< E, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_iterator_interface< E, class >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E, class = void>
    +struct xt::has_iterator_interface< E, class >
    +

    Definition at line 585 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__iterator__interface.png b/structxt_1_1has__iterator__interface.png new file mode 100644 index 0000000000000000000000000000000000000000..b119da5e4c759fd5b20e082a5bf35b2c895d9687 GIT binary patch literal 750 zcmVvTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0007c zNklET{X=N6AmcaPHY5A$fOYd*f$caG%qdmE9gOQSK9siR zZ*-61k)q_^Bzc;CA$G}wLFq{H8cjNqjHyXSk}b1c0cTbN~=jlMVo4YSIBfOielfh^a{j05LV`03fC&9RS4CqyvDMnsfjV zQKuk?K060r#X2S|5NrP(ANm5KrI!TJDiY|ZbFfXRQ^>4kk-QGCZXX%rq zQt!p&0NooLlGLiQzvbYoL7&k*-tL$zoowpy$9Ff~q6bJKU;Zy|FcVx z=GDG+6CuaWq~gh~t*^+;ZHs!;+Uth{YB?ac-HJkHjz1yJwZ3 zyS=sZ-d@i1n|lB1d*_Dwxuu7B>A%qB1ZwD3%a+pb(79RV%#2dzST}Y(-^$EPUu|aA z3D6u)l?T0S*^ON_tBPHnTat>W44U`N2fSNVUeWE{yN~HiQl+c!U9M!!^-o2ybk|qE zJgV+(=t{erxl=QX8_?Fw?Aw0Ll%!wQAvZsudmiIe!zF1)$JPlGJ4yOjlTMOiYSKwk gObt(GW;Uw+0I=T<{gul$I{*Lx07*qoM6N<$f)U?(J^%m! literal 0 HcmV?d00001 diff --git a/structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html b/structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html new file mode 100644 index 000000000..7738839c9 --- /dev/null +++ b/structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::has_iterator_interface< E, void_t< decltype(std::declval< E >().begin())> >
    +

    Definition at line 590 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.png b/structxt_1_1has__iterator__interface_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8begin_07_08_08_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..78b2bc56e3eb4ffcececb7e8aae24b5034fed4c5 GIT binary patch literal 1656 zcmeAS@N?(olHy`uVBq!ia0y~yVD13212~w0WX|i=%0Nmwz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6joH)1F{Fa=?cBiX#TEiA z*>QJ1|F8e3YR0B`;N-iz^UBrU_Iu@ca&(4yu6J>n(a|w!L!FY6kBf^Zho{k`kO_e< zAWEQH!?Sc_$D}I^xET$vl=K$gR}*}Fy}R>k)cUzDb2islF3h{_XD--&Gs4AFtHpK7 zlB$|{wI6?MK34Sq@1NcC`up!kcQ5_+`1Hc4Nm>_Oj-1x9ug^=|*1K_2hhpyaAIaPq zTGH=t-w!RXf2)|}aeM3e+>X_SJx5(_I5Y10U0)^6IgeGxvo%Bck?XYIy<2m8rn>HV z-|}4P*zxq+0q^afvm9?Izd9+TLry6!y>e#odI|4ti+02I?YGmu@6MOG?HS}atK&!L zw7bb`bbzLpDn9bumE4pL(b2Xgc6p>(|Hdz!75;DL9kQLE+t=T8ep33^$KOkCE1#a6 z<*DT|S@@&PY2EXxXSNwm6APSFH(k}ybCs{Kpz2HW4B^NALLZY4|M`={80F%*%I&;F z{fo{WJ~x%Tf?}nP{%{6{h1#DKLDiMKK%K9WfDA@F40$CtP~3F!Kxu}OXKV=!S&tPM zUp@N6AoW0j@l?@nONWL}79I_|EbJTDfb^!CBhMKaS0Sm@W}%R0Z02weyV6|R!JGxr9a96gK;BwaQua)BFb{wDlx{5{JHh!yh zS+VV}aP>zw=hOg$LWJ%7w70)B9<6xMS+rj*DdpLbz~2{doRL{ySZR0uX6DQO?eEXe zx@$4-R?LmTy-6yG!YcOluRxO^>pdfKxy`_gU*8XNnA zl>GR1sXFI<{i@2eXWaW + + + + + + +xtensor: xt::has_memory_address< T, Enable > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_memory_address< T, Enable > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_memory_address< T, Enable >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T, class Enable = void>
    +struct xt::has_memory_address< T, Enable >
    +

    Definition at line 795 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__memory__address.png b/structxt_1_1has__memory__address.png new file mode 100644 index 0000000000000000000000000000000000000000..dc446d378921e045fe2a94880fa80dc5adcc72b7 GIT binary patch literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^Pk}gqgBeI(6mWV3q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SR%c<=xyZhAIs2~du+B*-tA0mugfbEer>7#Nr)c)B=-R4~4s8(X&8fTzV> zU-E7J(dkXSs>wl@9P+hF_?!*4wc5Q_UoRlYsn6lb79KPyg-2D@^VkK}DMu4FYrlSc zZo8iSi}(d5@*R#pMYq1ZpINt}?0Mnd^%G-{<+{$CD`$3D<>xZLr6QYR%PuJFDleOV zzcj1i{IU|e-!(Z5{u=DRJwN%*oxd^plqT!z-;)lQrJ5U-1GUUM_s*`l=d)zC{GYC~ zR+DVpr(b*8QM6o7`>Fhj)3bWF9-rkE^XtWq%$TYE>d$qz-;KF5$~5*? zr*4@cw{hJ@k9y6-Udb=4Pfa>vmwbK46@5OVb}Own!5J@(D=+4-IQPZhQ;b&HL(>s`wFqW_EK(`U>3|7`gECh*rTn@Jn1 zr>xWad&ax;e30F73X$+RQqwR=k>-~;rnklo-K}_-hKD6ZCL2n zkhxjkeUtSA^qyCg{QSjUQ`5cbRmA(K9a_`EQ#)3@dc8|8IW*MX)pO-4DQ7StytKok bgTe~DWM4fAc}h! literal 0 HcmV?d00001 diff --git a/structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html b/structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html new file mode 100644 index 000000000..e2ad6a978 --- /dev/null +++ b/structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::has_memory_address< T, void_t< decltype(std::addressof(*std::declval< T >().begin()))> >
    +

    Definition at line 800 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.png b/structxt_1_1has__memory__address_3_01_t_00_01void__t_3_01decltype_07std_1_1addressof_07_5std_1_1e8ed49541169f10cfa05c619e2da0ead.png new file mode 100644 index 0000000000000000000000000000000000000000..de5daefb16236975cb6161db903a1a694388c911 GIT binary patch literal 1919 zcmc&#SyWS36n%g#mO%sxf?`w<&>AQZ5Yzw`un#pktnDE6p(yoOM$@-JMmH zHYx!Cpo(yD@&bT0a8UMKs{sDnd-B-evdPoU=YT{a0mbQe%TdJk+csu9!*#ARrdcc& zXt(O|qkz7zBE8(b0Z^BH*78L!0YFg+;q;wPjNDwwaO`Y_#+ozO5x&@?d2@hvIuNjH zc2Tr1G}*OWQ~u7KMnnB}C#Qmx(;4`*6f<>oBYl*?_AVFFOhX`qbaH!FZi(MN6zMY5KeyAu z@EFa+Xx+109CfcVB6s0?0$PM$u1fPMQtmdOFhlj5w%TkR%<1F|EOZ3hFB@&5PP_Db za0_`z3MF4xk>kaSd70b@f74pen+^|EH4u~*5&+8qaO zGs|_Vb0}rKTHK|bhU-!&OjCVg7AoKwnp9-Bi8?@f@7?$l+#&Q_p@t$Si5G*JSi)~9 zYr;+*%o+=Yp)(6ZG+c2^iKMAE zp6=;RC>NG%^<55zER2`=6KMAF1(Un4c4Ei*)rW#;EtM}sBNgnS^~Rb#45l48H*=-N zD{ScnS8Y)y=?tbo^19Y^o@Uli|6-wSel9Fz^uE0)3V%<7+~irH^-W9-CZ$LaIx>=w^WxgDOP1e{;0zXqweONXXPM* z4Z-Ic?q=RYyDaMB^bD;o_*tjEdIK#{wUuS#T6QRfVf_USRQqHMen0IeuoCAbA zf1~tzon0(8Mk{S_>A1Wy?$X=UhrbaasFpm8=n6bD?jX+X<#8!(){)q0?T)GIfHDA6R%8VTo}@xs;SVY)_2X?m?t*EL8+BJv!0MzHP#(n z^9;QT596Bq5~Qs+=E+?`dbg}?FrfM_+U%KspfN(=z3OQ=NxM6!)#i0nZTTaMu$vxX zxGWSs6if)N-MbxVyz(g8d!KD0HZsa=AoI54J7W|a?*H~XEBvX)*0$XSunS4DuC8F` zkU!wXr`zI>XW=Wwal{V+Vb(C}Vx0qKa=-1s;8g}=kF3kj?;Trl5Yz`_N?E?b%M4k>&Qu0w@DoS5az-T8>~{*(W1xvaOW? zgB`+5wsrh%U{bl+ + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_rank< E, N > Member List
    +
    +
    + +

    This is the complete list of members for xt::has_rank< E, N >, including all inherited members.

    + + +
    type typedef (defined in xt::has_rank< E, N >)xt::has_rank< E, N >
    +
    + + + + diff --git a/structxt_1_1has__rank.html b/structxt_1_1has__rank.html new file mode 100644 index 000000000..4a628c53f --- /dev/null +++ b/structxt_1_1has__rank.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::has_rank< E, N > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::has_rank< E, N > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::integral_constant<bool, get_rank<std::decay_t<E>>::value == N>
     
    +

    Detailed Description

    +
    template<class E, size_t N>
    +struct xt::has_rank< E, N >
    +

    Definition at line 1043 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E, size_t N>
    + + + + +
    using xt::has_rank< E, N >::type = std::integral_constant<bool, get_rank<std::decay_t<E>>::value == N>
    +
    + +

    Definition at line 1045 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__sign__conversion-members.html b/structxt_1_1has__sign__conversion-members.html new file mode 100644 index 000000000..3f45eecd9 --- /dev/null +++ b/structxt_1_1has__sign__conversion-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_sign_conversion< FROM, TO > Member List
    +
    +
    + +

    This is the complete list of members for xt::has_sign_conversion< FROM, TO >, including all inherited members.

    + + + + +
    argument_type typedef (defined in xt::has_sign_conversion< FROM, TO >)xt::has_sign_conversion< FROM, TO >
    result_type typedef (defined in xt::has_sign_conversion< FROM, TO >)xt::has_sign_conversion< FROM, TO >
    value (defined in xt::has_sign_conversion< FROM, TO >)xt::has_sign_conversion< FROM, TO >static
    +
    + + + + diff --git a/structxt_1_1has__sign__conversion.html b/structxt_1_1has__sign__conversion.html new file mode 100644 index 000000000..2e89fae95 --- /dev/null +++ b/structxt_1_1has__sign__conversion.html @@ -0,0 +1,206 @@ + + + + + + + +xtensor: xt::has_sign_conversion< FROM, TO > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::has_sign_conversion< FROM, TO > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using argument_type = std::decay_t<FROM>
     
    using result_type = std::decay_t<TO>
     
    + + + +

    +Static Public Attributes

    static const bool value = xtl::is_signed<argument_type>::value != xtl::is_signed<result_type>::value
     
    +

    Detailed Description

    +
    template<class FROM, class TO>
    +struct xt::has_sign_conversion< FROM, TO >
    +

    Definition at line 626 of file xassign.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ argument_type

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + +
    using xt::has_sign_conversion< FROM, TO >::argument_type = std::decay_t<FROM>
    +
    + +

    Definition at line 628 of file xassign.hpp.

    + +
    +
    + +

    ◆ result_type

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + +
    using xt::has_sign_conversion< FROM, TO >::result_type = std::decay_t<TO>
    +
    + +

    Definition at line 629 of file xassign.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + + +
    + + + + +
    const bool xt::has_sign_conversion< FROM, TO >::value = xtl::is_signed<argument_type>::value != xtl::is_signed<result_type>::value
    +
    +static
    +
    + +

    Definition at line 631 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__simd__apply.html b/structxt_1_1has__simd__apply.html new file mode 100644 index 000000000..12d93347d --- /dev/null +++ b/structxt_1_1has__simd__apply.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_simd_apply< F, B > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_apply< F, B > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_apply< F, B >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class F, class B>
    +struct xt::has_simd_apply< F, B >
    +

    Definition at line 294 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1has__simd__apply.png b/structxt_1_1has__simd__apply.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9c9daa6bc9111aaec2e07a787ec9a06df87c66 GIT binary patch literal 1139 zcmeAS@N?(olHy`uVBq!ia0vp^&w;pugBeI_cks*wQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=GWwJY5_^Dj46+eLHKl0#A#2 zz17bD+IH&}IUHCYw!1oMUg|b3#Sd))|D9Z(Fg8tCQq8LF`75ws(h~W*2WQ%(9p7ZL zPN%GX&HjUtYaXUQJ7n=|Ss{Y#zieY0$Lne#hXYI^7GIn|~ z_FIcKDxd5wdH?rK;krBLXMWzlV}7yUxv$%HObqsYd;PZR-T%|8yeH*r7fyQe^;hh< zjdzwz*8V^F$<|-S&u4CXIB&8_ehA3LAg5nEpsDmIp5a68UWNyZRUFS>f91K*Ucfh_ zpP`m3{Yo^$hb0eK80@+H7(Of}fw99=Nr_*eMdhxxh3BRIrpYRQPZX@%6XJjRbY9Dv zgXdb(b|mNTS{9XM?Q!XaPWsOxE8%lRla@?;suH<%<6`moM=X2AH%iQ_n|FNPpYwB` zr_4*6x#Qfi&pl5Jj@wp8)Gbqe{Uov~eRjWvW=>Sxb-Pfut-W8(-s#^KzpZIAC9ZdR zYTeEwk1}U(jwv{K+bX8CCRayGx;po>m(#SfZ&sDU*wAa#CpaC$pK`D{s$9*MBzG`27@Z#nWkA(f!4{`qj@(PPxjH zUOX>zPs)uQ^R;Kkp51ZydvWvUS-&ldpZyBEayxV4M)wn&bj?iN)bp*smi^hh^-483n1!c^)Wb-Yjzu)n7)84bO9rk7Oqy?2ue*e0A zj>=D2c-rEfqonkYmErz1ZU(sp?FIYd&NI|`Qz=~Z(qiZa{$RLkYqDxOYYOgy%DxqMFM-Kl%t7W)-f&G~vz z{^ae&OP+t;=C|+DpKFu%NaZtp?%(^mdd~Iv=}`%-#ZT+L^=H1VOZ&dR!an`n(sfVv zY(-1qr!Na$XVon5j&j@9is$!&Q&BH!h9&-OXyN&l99-czc) q|M<#Pzie5TuUaJ!Ccr`bmH&&zLbF;f$v9x~z~JfX=d#Wzp$Pz)@;4U% literal 0 HcmV?d00001 diff --git a/structxt_1_1has__simd__interface.html b/structxt_1_1has__simd__interface.html new file mode 100644 index 000000000..2bb181b3c --- /dev/null +++ b/structxt_1_1has__simd__interface.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_simd_interface< E, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface< E, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_interface< E, T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E, class T = typename std::decay_t<E>::value_type>
    +struct xt::has_simd_interface< E, T >
    +

    Definition at line 268 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1has__simd__interface.png b/structxt_1_1has__simd__interface.png new file mode 100644 index 0000000000000000000000000000000000000000..2937a0074725e76d6474a9685d21e540d754300e GIT binary patch literal 2171 zcmcImX;f2577lP+U~rHIL_lRkP(%SWEV3nHv*ZPc8bG8KXhnzt!ln{H65Lp&8wgtm z4C$8G?>q!iWDS_ma=<}@Y)`_{5f~LE5HyAegeCKEj&o+_Z}-%Xs$0vcbMN=v`&DHf zCwOksFw{VyP@4dp8xe(4ff2iHqZ-m@cby|4gVAwsKX;{4iJ0$aX(QFUlcO`((F~skc&312i#o!5>+Iu;e;6r&2?VZ!wRJ}Z+qj0 zwuF|R*q-`nw`=$kwZ$bZ)0Dr@F4Fd-&u1 z?ZVvnjUoCF>kg(lniq_7*=h~2vyLfTiWPqcpD#HWH7-*1`+^>s(oA;{wH`&X>7yCE zr}x>WG@D|oI3F%>x}5(VwbE3S?NCp+q{`Qccr6JW3zGm6ULXVWP08Fofd6#AKjX|o zKG9gZu=2>k5@MWhZ(TxsPcs!2ehs05gJ&3+`7;EGxF6O+jY2K#Oi|HAVG8|F);!)b zi>rEOdTqBd25L3N-GFruDhgG9Izdzsm_sN80u&l=an%4hki*dU-UC>7pn~&9x1~2Y z9&WnY+L+A@KOEyPYp$6io_hdArsy>S;sPL1WdnY`?qqP(!~=3l(uv$DQq|but(cP$ zrx$%82KNxYh*N$AY#aqx#RKb~yq;Q0N`ACrXd)k`?Re?#zm!at+=*sJG9ScPLyWnn zH*Ja+TZQ@>^0z=kO^bpEu zZ2G%je5UWsIn`0A;^*T45m3ajUpP$!$0XFbL{PJcE{~IbG@7LBjs|Zll^tC)t+6cwf~I>Eu$K}Ve6B??8I_I|UGIG0TvGd2 zidOTYaShc3+84=5w<)H~N}=iAc>_|}>dGLW90Qix_d4gMa<9n>C81tNQaLvTRhUsTFc&=6q{o!`x`9eCh7&OItO^iqUA!g=f-Foa4u^ z6Mbzfoh=`ds9-QF6-OZl#KksckS@Z~bL16I9`=n8Oz3U3S~@DesCUuia6Wf;cl+E@ zIvjR=)$o+vu<=b@AF^-XG>+nXv^%1c(&|_i-N$-+>u!C(a5N+CAm}vguC!X2 z<#krHIWC-|PPu3ETC?HVUBm9;sVdKW3uxc;4@n24(#P?uz&5rIe*tqTWPi2%pj9k; zeelei{Y3T{(D+fGDqe(c8;ZstaB5ymaA_K_o`v6<6RZxTapRN0^4mWAELU*{Yvi&- z7=OE4Dm#XKc%k)K-BwhPopYMLPMJf9(T`5i8!{FA6kOB@oQHL09g()c~g0{9hwJ)CPj^Q3>T4?Q{4PK+AU_6h7mZ%qZ z3DrljX0~YA2OVZmAiIIuQeMzfojUM}Am`9_DCFvETHb9>I)(?%1c#+$4pBW49>v zzfa!|i9Bm>!LD!`oDB;E_DLRn%(XYI>BbnqzYK + + + + + + +xtensor: xt::has_simd_interface< xfunction< F, CT... >, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface< xfunction< F, CT... >, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_interface< xfunction< F, CT... >, T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T, class F, class... CT>
    +struct xt::has_simd_interface< xfunction< F, CT... >, T >
    +

    Definition at line 145 of file xfunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.png b/structxt_1_1has__simd__interface_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..36dbfd710eb1fa1a81152b2b0c80480f196b3cf4 GIT binary patch literal 4352 zcmdT|e_WDT)^}foU(Tr$KW4}b4k+LErMMOnq%+HL| zit+(loe32iOJ`CcD@8>hwIvx7wj9Moz(U1eghHkW!9EY@?#{mRzW=>{?BRZR9_~H& z+;h)8=iKk%YAiBpo%3dA2M33Bh{FeuIXJun1>PV0YAx{nt&8(h;NcPb@$o}es}*>i zoLwN&y6S>=Zo9mx{PE=I=qS)1*cW#b7<)JU81fSb;J1x})-Zo^aCol>aWL|D=382Y zJbN?${kI=HEk2{OJ`CBl>D+zT1fR~87%!QnU=XTiO3S*2UKVkg{bLl&b z;VebemxVZn&@=bgmOs0)d}U8?&ovyz(+kNs!U!0&?V+q1*h2#0Mf0q1>w{*Cb!eU- zl|S!)o%U>7sEdmq!dL8u#q5vlOu)u6%zTN>ghI4^(PF?7P$Ucc`5wR~vo#iS+=DY&Y`|_U9hG9dR2ppwnjeRgV8Wh)}EyD=SuT zdqp9roXqnIVgOc4#l8-smuG7#Z+9lFW`YDFnsUG7z{{E<_BHn3A}Afyd%Pp zaG2T8MHei- zGJB>VZbew`r!GUpbf?17vA8HGLa^U{1m}M-g#Pz5_X|$3Q?x12-avcD&Mju;+hVG# zb|sP$b>p|b1w+x%F=Qo{hD`KLefF@LT@A~WJv;yFb?We$1G zyh}>?W^7nwB83HK=XCN-mni!g4Wb!8adTxxg-dAF8t0g{8ziSWw=I>BpqJ6g?x4(c-C5J(LRa~EQR%0nod-=re+xCKyb#UWMO%XC!>z647u1|n`m&z5s$ zz6{XOr6=+^MO0d&p)T)bgqM3Adl)iF!$$~(jyj`Mn#=47uFMl$EEmX1RqSBZoW8Yx zfO$sv5{BZAkO*q+2U4ku_TxlhJo0qLchMPmDA81T!tSM74!-W;#1+NIZ7xyJz1nk7 zMcHESHeTTtN!ObYHeosQsn^@1*~TSf)^?~%+!J0t17f9i_XMA;Hg$H`R4Cf2tdt9b zz7Wn$l4;f+NPL{8Ci#srVd?G`S(jXbTu zUgLCUw!f|oin@y<`Sr@zDUogAug)2%7&+2f1~Xs6jG+9yi>WoAzKZ@(y%*YYz)Ga2 z?uHBZ%(vWAFKor;BhzraG@~&JU%N2u$kEL!A@M%y=TdVYe=aagpT03TVRF5*>}3Ma zO(@go8dbDLt-(SGftIKfxnHSZ8pe`SP)_KnK`}SnWI+X3m1kUNKR(IMVnmzvV;VMS z&J94s!l~awU82kPKGL{+X0ob?T61A>u%B63m}^lkzv&qk%v$Sw)O#+F!mMRaXVwTdxbwD!F$!Kw zFz$%=g9!5zB6*!akz+WJl6L^k#(k@iyE8HU5>khUJ9k5}q1~F1=y^zVn60(Mx4DY| z2QX~V;W8Q)Chp{TehTU{-X?z}Br5obR&V<)V)FZf zuyM)su=%<+=Gmo@9nv?y*=H>?c*I+`#J5_B2))+`T$B}yJizm^^d+X8&;#1t+o0Pg zmdLcVGR0f*Pp5a&1P#@OEcpqXn`auO-qry>+O4fOLJ7!gPlSt@CDUhg#IRM@^MNMXqib7S|Dhld%3ma?AAb1!h#tzxGRlD?E+*$b^Y zOpW2N0;axH{p5qtCs!QP8|x_hE&$L(zc_grBBsoo_@g>vvrvA$5<+?0r?xWPj5P8e z5SG>mOOl5Tz@Xo=JrH``g%zA*%fVwHcn5Da@cR5KWEJh$a6SaKiab{mvp0R$>Sfnl zOx-2=-roAAzqn%U`L(O-@e@u!?La)bKk_qK`@ZUG3HHUU`ZdnZ%)x=T90v}8XbSA! zf&C8bmHoVz-3#>Ht_N{byMJ}{9W2T#HWuXyRvpE*_|oDH;@YK;?!zNN>io_I zm>nI9z!C_cKie*J07IPzp!fd=gPHiBB^XT8U~el`*hIxWpn-Y-b=WRVMWCi)wG#Um zA5e=uh9&pGl0m=$RAWgA?W3Qe8~ozAG(jadLfO5DeA8r7FsU+Wg<%*Of^^yNMe{v+6NL-xJ@@y}!NeifV&j38)%HQz z&6ytVvYjW3roSP`U&2M3Be4z*XR|1eXa_~v#tK4z_<1N95K@_kx5?@P@If7y`d}QK2dcchtwTJH&=ku(ht4YHGgaPcZ^)OQ zTbzKyx8dA@V}OTPzpit-R}-PBuzB%p^ZCax4NCp$TY}^Otwajbc=td2h9E)Pp?h5M z|KUXv7*+zSU#Wozl2bqfHwjchfPm`+$x1;A>~OGxU@K`{{#9MU-!X?-oI + + + + + + +xtensor: xt::has_simd_interface< xfunctor_adaptor< F, CT >, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface< xfunctor_adaptor< F, CT >, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_interface< xfunctor_adaptor< F, CT >, T >:
    +
    +
    + + +xt::has_simd_interface< xfunctor_applier_base< xfunctor_adaptor< F, CT > >, T > + +
    +

    Detailed Description

    +
    template<class F, class CT, class T>
    +struct xt::has_simd_interface< xfunctor_adaptor< F, CT >, T >
    +

    Definition at line 492 of file xfunctor_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png b/structxt_1_1has__simd__interface_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..48ffb3f26107207b29e855865291df01f19c1fc1 GIT binary patch literal 6142 zcmds*d011|w!p)s6}2K&^ok--C6R_IAVtEA76o#cG!Rf^Qb8LCBC`Y;tW`u1@B4bcH+}D(Ka#a~&fa@vueE<` z?G=C6-b#M$wzV)AOdf505CemK1witL)w0lMOVvU*oX$cbFz7vHeHxwA? zAkQgfw7eZ29)|k&wK|ib-`0d+>>XiHTl%2>M(TvYw#1_k9&kD@Bg_&8(Z1VsXiG>w zNgVUK&+>Y#l`X!#Pv7{lFV@Ut_{7wfdYDqI3^LCf1F*6F9hfW#--^}+J5Lg! z-_-AIgyc`t_b^O{&0gV&*9!2C_$ z+ly|JbCsTp9RKtM##6V2z!FM2nVE?Fn-?tU{4MtsGNThkLsp#$WtO{O_n>2xXkXRC zwod_?xF?6rix9ep(a$}>MctJtee^G5$iJ`;&3|ZZD=^PkxbB_4Xvcs{PTZ3!ASfhP zG++_LlhlOrr}DP(SgwBslO+;k&<$amwil1j1bX$Qf^7C&!j+hDTK zPZF)c6f#Vz|A~K6PQd`X^3rSpq-c36FWA}FD$oMU(!}HCl~>in`r8(&-JxAu7c28n zS-L*7=jLj=N^F+9bYS9TOD>PFKauiDShlCM=U-0b3F9o+7bZHvTj#`jF`gNDctUvEAnaqtmLLcB17oGz4mBqv44M zF$iLdYn|Kfvg}UdrCQZ(j2q^3UT<>3vS0g59AT9j&@{&KXwHjOX%iso;?Hh+bx{`2SR(t+Dg@Gkc_BkshnBnZBCa0XD!3ukW7 zv>y#Ihbta|4E=9v4}-ZO6xK5o%oj#Vz^%n&K$- zMxHZ5v@ZX2a+0^AOKO_&HYJKTJXI0~Zu%Y2pcjQ#`)ruoLE6OZ+_43LF7yOjPX9fC)vNyBB9xS?p)Y4oqD&<{8D*4713>xf) zn)Uk_z+GST{Nw&y5SgoN_iMr1I$+z8IFiOo5@h}w5?9_eOV(fKMHv2+Yg~UXb>K`& zpz2n1-zn|eg4cLv=f`>d61kl{ei~@wnj1hqqVhr{u9p|Z_2>NRzsxdD zq4%-DIbRPtZj^U>V5sa{`RksEpzf+3BPoQI=h{@ zk517(gwcMp&80uLk{)&cs52Obb2yByy5)k2hi4%^o&?`>A)ABmR_NmZYA(Q( zyTfonv`B4UW#v#!H%N~dY6W`VO3%}E>EXg$m7c}M|NJDXY5sALjWmhmG;pP<0?VJT zm4)DSKjFu(>tVkd9DuE>S30vcR_5yYnD8qQdpB@4!DPRE{S`#MQ<+HEs_$N_n`iET zt@4WfV!+Esd>JoTqk$uA-TteJ5VsQp^P%zIYOIcxQ5vy@#_zEI7AC9HcngB-Pnq9A zQzU*d#p=Lcpb>k&T=B^oXvF{fiT|faI_Zp7Tp)C~xd*ILl&8(d$%*;Xg2@=kY@Z`5 zH+}JE|6H2SMFcM6j{d}b6h|eeIGaXh^o!>ltV(e@%_4tSdxf)hFKfeM+z_Hx7wk?7 zvKD|-Mzyz(6kvl!+HKm?3m;DrY}&6bn9W2%A$m{v*Af4Yt>1Y(8=`=?*F&&ezIhi6>rw`!O~LK3x9n7kC+h5i9o>R6ImvlFzQ5S> zK~}TgbHevr_3q$-^7R^ZhV9Hv=(5ErSLn!F8`BFnBK!f#j$T^+fxdjzBASp^aHb>f zxPabzMU$Uu1xCv$6Tinf*44b9>eUj74$qWRiWg$+nj)Uf7m2nA8si(>23>ND{5s%W zJ{?9LV4P)p@sfw$Lc}&IIc55ejY^v~79HM#5B4Q7uyMO?p(2!gM#CcUW%*`Ql&7$w z*_#H&X-hc0tJ3NEeGK$W`|~6Ii4xU#VrTvVv9KXk1FvFd@+?d4pspLuE?brAy*u^( zfSM!gfo(^eZ_?c{Mf<2e1m15UakYJ~!tKrLyGs<=bT>W;8x+JBck4T|bnB}QrDvSg zM}y!Pq9m}k&O5RwT_Pa8 zAwUq$TMu)T49Y;6<;$mEfbn1r)7S#S@#cJoY5RZQf9E~j0sV1q!`uOB^uMYTK9+(3wDEz zxvLm~akYUH>j|Ce?$KbkuIWw9*`0m#RI=PTX9O-dC781z>XOK;>h`39l_{REusX+X zq&qxuiU=jYt4#9~pBd792s%7~W2jKcaOW7JK3WkwQQ>kMLf>X*-8}lzCp@!>dJx>E z<y$!R-71oFp%>0@`?m9A5*T<&7@)NV2-{qbAW7U7hWRGrP{yXpIQ3tjwHaKU$jd_SfmM)fhLb*ZmM$Kkup3 zG@s7Ep}eEMryuZKva`Uu#sx>>;p}UjfkKf%JBRKV59;R)UKe6J?)Y~khxH`;El}%J zeFy8iLYL@#1BGKukAcJH4kXAkQJi@hFRZ( z8hi>P3hSw`Z;~=zwd7Jw6_hKobiEk~)O;kb3hyeXZe|3YZk!4VnQS(6K{%oPs|PPc z3L*18`O&F8>-Rok&1TE4-=?040>SapBduY5o+LeOd6lllqm!@B*8IGFpfIZS`-aB- zIZ%R)zr2^4N~Q-ffntq_GDP>Dt^#~>rIvCRKKwOLiQ{lS&BPWFd<{jZd{Bc%uwjD5V@U$RdT9<{lT>vC zy}91&Y+F2(zni*t{J`r^Qz0gLmkw$1GR5bw04MF_`$NT*W&ssiv+vhMNsTqE?nrkLh!Cn8iADd)BIrUko)VcVhGgz;L zaSWGMA{o=DCx-?)WN0;&!bRJ=Y%tcHQ!)uUiM-jVn49SAyI=$*h-3Js(2SR7%YTSxixcah>w&uTdhw^g z^~5ULU^xK7z8G--QitsS>h)q0dd4IY$v_R0$y9)1>?){qHtY`7fS|Z-aB;cD_J1SP zxBgp5TUKhFbza&@0Qocx10+Z*fA@ivR_s67`rxTqStr(st$RdJb8i(_IQY@|1A*5G zWHvpmG@bv*X@hus7ZKAOzEaAJu7lQD2{cN<75r0J41ip&yyRejH6NI&B>-ea`3sSy z_I+ne{X3dkKmI(=&15^qCF^sOx@K?t=9fjOcy0Y?1W(x~qW$r(=zi_3RhLC-J0hD>q_9sHKBDmA!!Z+M3L-*aX9+Lplk3tNSAKS({{cIl@(X#I? z8y~hzBIU8GVR~hbE&y`q>WTuBELQ-@%rx%)JwM<4EotSymHpo0)VO<(V zwdHqWh1GPQt+cXj5q%eOfl<^{9QXOB60X!05%vG2)}P!ve?cN!rDU%!-?#BM81$eI M*&i(a$?KPY0AlR0Qvd(} literal 0 HcmV?d00001 diff --git a/structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html b/structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html new file mode 100644 index 000000000..b9cc8e9d3 --- /dev/null +++ b/structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_simd_interface< xfunctor_applier_base< D >, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface< xfunctor_applier_base< D >, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_interface< xfunctor_applier_base< D >, T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class D, class T>
    +struct xt::has_simd_interface< xfunctor_applier_base< D >, T >
    +

    Definition at line 361 of file xfunctor_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.png b/structxt_1_1has__simd__interface_3_01xfunctor__applier__base_3_01_d_01_4_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..db3535fdc9828680fe5e13ece96de133bf5d8d07 GIT binary patch literal 4993 zcmd@&dt8!P+B#)3S!T0NrP;)^p?0?{$MK$PS!AhWP1!}MwK78?F(Xu@b+(w@yn@Q8 zsI_W3rBXSH#cj+{A{8o4CPC2vu~1*l6p-7#fY!|S{kOA!>~HtH=LhHVoaa3E^PKay zu#i1A)+?srOO+3W73YU z7PMf_vMh6ab_N7A6N_Xd>0g7;LZu6BA088r7f;khCK3-3DUYtCr>8r) zb6vO#nIR*%^?2{5Z`7J&c)CR8YFvKWyj)6>X0+9Z>(N_TabyJ*AH_rYUh=^C`s{Fl zIdRu7Ubk*tL^vsxNa?zFn;rSEKowagIRN*07fjqoJm_HJ!FdMic{5iut=I$!)+UKx zXax0SHou5eL6m;B;Iq#@+w=p>55^ltIN>+TUGsH^1?&^5WLd3xN;}p_E|2Mig~QO+ z^Q^6{3%WOzLGw@3*t>QIu7&a9%@hKp3b!blK+-3M{s8qXx3sdd3O>&YC3gfu$TXRV9gua?91nB^yi@H?pEYN^G)BZ z7yRC?fzfiJFJ#Fc0m;^RI<`yKilStbNA-+ndC;=QWJw%oReQtq39h6atT@3UiLAFhUsy&JAR}3qk`K3!rYD=Johq)qvyaC6|$(86UWLtY96}U-7169M)^^U?sBSGg5IdNUK zf>v=7cAyvbmY=e|PVgXkos?jmHeA0^hiTB)B^`O3-7?yXaY|#v!H^pLNZoqSQT5x* zo8*C;Fv!o7;X|%3R1JIKS!0?L$Cfmx!$j1zK7Mg*e8M^)^wrSi*H68Fwd$`%(&T6K z=(IaB;2oBEsrYq^4JSm&r`ycD+8RV`VX=Qy6oR@i+%S95lMo_a)DF!IEHoTLpss2! zUu4R$?Gta0gZ%7WqCsdHgrugInNO?t5kpU!9rQ<%6ryy4Nf1|Y8^x}B;QGjrsI2~D zsC+{$|6VtM>}wbkx+=#Oc>M@RGJJHZ0?^^#&PJ9=3>d4lc?-gbsfW#c?k|NR?5W3z zK9iY4P;9pfMhr!m_jv+FlnUbM^(MF-VAIrH_WQeS_U?04VYHU?^fPfL9|yhsgKPfM z_}=xSKDd5tJlq3}k;d}Xol(V{`^p>UV#EK4mxE`~ET?z>zOAi#u14(H-uyn6KKT%o z1+|4=fM&V@R^V1-VOHekmL!C;8KN@7`3e}>e}EosztC5-&^*7se4%+skJ|~_*>v;# zlXD-LmozN?ElR1uOZy#-)beafTFh4A2$%)?(LxTV+%FcF){-L8?)-j)?aqxi@V2!H zHp5D>vD!9{GkD_BYy_i6ml`e{!mYAoqphIagOF>F#Sy7xu{bAgw(5)dM5)Fdp_kQo zW|_!I>!{x}GbS_K+t<&WwyRgYD^PyB9>(GuK9^JqKgK!UgT1}J7)1G_UWC%s($ioi zdx=VhSmEl*;@@QvrFhLZ2SqjNs{2DOg(4*{K1yOY(eJZnY(Hp@SnT}Ml zN*EW@=n}VqsRSwpxR&j-?%d>iK zmI2c=;U?ApAZP~KQswUAQrdNDq#$=hN$BU}i7u%7DN4?K^s23(>eHTF=-c8yv=^z- z`S||a_Hi>h&Z}eGaNLr=T5V6}2TDUh8Qo_E-4~Zt)MJP*K|KT~E6^#! zGO1$#jDMEW}pR5_vK0;F_X$((6Xi8pv4v0l{x{@w^JY20B0r?Y=VOx zzVRgFR<`B4ufNlBTa^n1g0WJLhu@bX4j0qeMIb$|Q6ITKB)fdVZl^JT=EyBIOBaFx zp2E%$0l$g$6k&pWp4`=e-A3apW;sC zM3ar4E7dTy$<#IYl3SQ?nRfs#!f7q`K7MKUT5gH*@X#rS;-Gke827lv!w1{nS0%F5 zh5#=9+%1o6+Xto*zVnAakfK~RurwJ`Nwt06tJ$ud+&Hj#zu4vm>depn4^)0HX1o|u zAy>l5k|Oa%7y65V2|c018@$> z5HEoxH3q0DpjG*(bJ~MN%%PS^B%ql|B7cgZ8Y+~PI@KUSkm@)I%fuJRjrnU8sGFQ> zxLmW8K!5GEf3oZ3%MzcEmxiO3v~zfmE2UQ-`$g+tw<;Za1c<1n9vST)7~J&eTB?=w zOM2*#nm!Z@e^BIZK=-T?%+CQO9-~ymXx(0+Y%1GgiCT0^l4b&~LUnQjkq3y`xHsc! zJHOH1dLW#+d(xz16Lu!^^{ayW zOT?eN0i&r}3C1Zx72w*bOnx@)!B)v3$#qySBMGJE5Df~Xer4V9?E#?49U^Wzv%?Y! za{^=Lv1^K+{YLikp}`IZj9wWIyI(N)(A~~FA0A|~(nG|WGfl|O`R4h&XC{f{LlF+Y zLTMkJv2v~^H6f!jzMiZ1maL2DHXg5w&O3vLbn6bwodM0aixz?z)n;MOVhbxP#Q&dw z_u#i%7;hkj7S`6wyXJ#XcT7;Si|W9+<=YNefH~>yvmb$1o&9zoc+Ktq3;yffeg}9* zWBl=WVdD$)-{ys;yT$US8$hy*rHb~SkTm@E{Qelcyljf?@Qmr4t?~_~bot*uBnJ|8 zxokB;jA<(I_kKvh8&3hAXp%0vJ*2Vl8O^~F;Oe=11Uq4`XS1siw&4`MTB>a zQ4;lM1rRj>KN{m9iqzb5^OIAu^#k^S%yk`;F1*{W4Niq3Mq*_APXDJ`R_$LSFpE5`Os2&*|&5ct5isFb(PR1UC08@+S2 z&@AmE=F9%AUQf9;9=RI_--6oxj%A(YsnpczSoV;10C$Q_E$4iiJ*88HWVh-D#eIuX z$K&~8sVWllX_G$_1?sOTkq4huMx03*>LgAr!}rc@WovQ=RtN|oh#BuGU3dbjQa|du zrQ8ok5@r%;OlEr;ei(Po^O6w9m3`B{d7AEujN^IAQSRm|6)lmcrZe&f$Qu~c8{~}| zxIre3*ag3?OsdAkrZK0Eou|%=;tx@1IuI-WK?;em21R|>0JLl1e$h&#lIc3iL8V+K zQIC{%t6DHTqp{0T9wy|Sj6~j15Pw$iciNu4vG(A$WwSHQ;P8q}K|Ig1Z04{ARN|j8 z*^E^Tr8WDNmE%?8~=xJkz>$shihndd3@DKwi-dYMTgpipLCExw=YgF~|~7yt6m kT-pu3Wq_|3%cmi)$v#B8-U1BxSY`p+9kQ$LPbbs=2~mPq=>Px# literal 0 HcmV?d00001 diff --git a/structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html b/structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html new file mode 100644 index 000000000..b02c90ef6 --- /dev/null +++ b/structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::has_simd_interface< xfunctor_view< F, CT >, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface< xfunctor_view< F, CT >, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_interface< xfunctor_view< F, CT >, T >:
    +
    +
    + + +xt::has_simd_interface< xfunctor_applier_base< xfunctor_view< F, CT > >, T > + +
    +

    Detailed Description

    +
    template<class F, class CT, class T>
    +struct xt::has_simd_interface< xfunctor_view< F, CT >, T >
    +

    Definition at line 415 of file xfunctor_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png b/structxt_1_1has__simd__interface_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..39a6e92cb0075af62f3c41629de6551d269a9684 GIT binary patch literal 5701 zcmds5XH-*bmky$!ND+;SA|M(eK?Rg%kfPT_IiZ;V(#r)zK&qiPQB)vE(137}2pXDz zH0j-j0fC@M=)DC9$VGYy%n5k!_kC+-&CFW!V`k0yk+buj{kHw?_u0?h;n#Jp@$nqx zfj}U9fCdT&f$W5X^73v@@b?H+@+bHbzOJQ@-rU>-#qp^H&!`XS7i1A`LUE1b0|NtK zyF$~A6!6;~51fu31pL4CDD6mSg+LB|1yGmueK@9HbmEw@`*xX92+5n9L&8Ja4RCRB zH{b$7p`*b0pLm^x*KT@8+Y_Jfa;C&Il zkshNttRTOg;Q`Jc+7-;PJ0A|KHv*N8kGO_en~&yq6k6&i4!H8PQXsMrk-K_OdgfW4 zh#l`BjlL@nG|~^IjW#E;7;DorU3L}fCU1(;BVL)1ECksa9+iH7N>0ERng;LvFz(Hr zHZag^*=x<7m#BW6ATiBMFFGL|c4Axx$PHsJLfJxnF&U+9neyE=uzDTYFTm5eszfKv z-)FDqIwT9BUz4nZlN`YAl*m8}{$qyrD3)qxv+rG7*2H^i zbhcmFO!?U_yE9Ks?8=8jcrQ_z+%>S?dMO@YRd{Q7&?frN3fK8{+5ZM)Y_J-*x^e}! zNtQnvK}oh}cp#kntg#xTt?prHao{uCBI1W0!j7=l@!)SI5)LDg8q+wzZ3W>C=9v7+ zzx9^Aq{kitlrJ@}RcM3T1wW4GfolookcFs9>UMzhg69-`h&>v3di$)j*)J;y*ROu> zg4sp_)rJ1*#mQctEQHJI9eXKYZ(jD|*@JNW8bsC#G&h9v|JERcg}7fPV!YEpoQlR_ z_+Y?!lC3`58)5N!Ru@FsK1i~KA>M6yss`z4%C@VD16N7gz6zQh;8{6MF*5W$qc|NG z&9|K3dnXkB+>6fDZrHBqZ$ekE^yApHbW=U2z3Y4J^|L^3-C0V9;%MHx@|$$xjA`kT!{Xb%Z^IG#MV_o# zNjL1&XJhKc9#T>=F5cGLDHL$7^O5xV({?s|Q zyFC*xC%+n5cMNIt9LN_yd`sN%(Uu}}#6-$TBzpiW7k{zXfIi`E0F5&^cUuw=&y^vt zA|fe9iUFIv)7-m>4}Pp^v}Dch#ZV~wg5dyDq!n+Xg! z!Ecvl!L>%)o=%Ai>Esh0^KE^!HH`N#&Y03wNU5UKUKbfJ*=#T zlRRR=;X9&RDPio}4jPWZ)o^I~qU!h{1%8zEsO+e%1&R1}Z1QPPQ-+FfKMG2Hk{r=h zNC@~D7C*&`NqMB4L=`Ala4ep?FJU(gbNIlFuOIN;IDy8;)rGAhZwU*PpT19mP z{4W0xtS!!F(#v%lh`GWlc70u0&FwbnO9E|opE$lutJX7A$o^gDmJzHD5PZ|gP8BVb5rh18d@z~}16d4Te`SxrpKUVH=`Hu127-v#jF zcWL$l$^{}o=TsZ%S?#1eNpVf?a|0$zac2SVmdF4!v|lO8pSl5n=tYtrUZDvAtNS-E zLrL?(%ORGgB(?A@ym|sV32Xxv`=UMEMlA5=LAP-YR|b><1ayv zo9kWws0fHJ+*}}bxvPLc!v%_+9|n6lIIM!pFUUe34|9N62nvmY{QSGY7*uT`#`Tn0j{;l=@LCD|0Vd_EqAz8hJbN{eGI$)i(}A55bVBCwedy$W=57qAgbL-qSb6{I7B;15Ux3|6sbn$6h}Tw zL0oq3`CXC5m-NOWDd zHkAfWVndm0XMniU>A5}$9^h!111ahV8fSi=*L4#Fy`eyVDeM_$_5<(o)zUt4*~SF1 zBz2`L3&~)OmnQg+T@bm zVf44qFc`~)i>+bV_tQtWWYzDr!nx;__L~YK?c&UmHp@(5$>(E>)zYeK54BCGra!;N zPf5Q)pA(>7herM`1;6zXrY|8YK6tmGrrPto8p#b-HI zcTwKW`^8>olBa8U=u~xU{*%48ck@pytL!nowpYMD!x}*4oRUGi}pdfu-ZYwbQ zz|BY|c4M(A{WLg%>ar4`E5j?4LKkYrWnw%!77;$(zYuY+YrxvWczw!+AMLjee{erR zD3g$wPSk`p`EEQ48JRhW||R%pTOeyH?){eu?KX{O{9=BILZ$wzHcnpt>1WB)@K>xPAm7&lg< zrC@eB-j%xqrpm3PyMPH*M-T+4{E3?$MX<=qI>n$kc+T{MxxX57IXK??qlI8?Z$Vtj z=^mxUWYt+E5CE@|xT-ZlOteu68Z$(R12ROgaV!;-u98GU|GNlT2SB$jbbX4+FQN4w z$DiK5-2V>Qirsv?FM-Tknx7Xk?87FDpn!i6!U+;Q19vNk5S0@o+@SD>)CrK+v0H*g z*=_c2|Mc;1t^XIoo0=HhdC-13H78~Jz^AdhyE_5N(g4X`{p&+$8Zv>5R|Eqbn4gT0 z3+j=KZQl13Pm^GfuWV&0+e-Y~i3*b8bcco7702ts z-hV{m-Iq_F#xRmnlFtal5;{?1o}_umkAvu=(qKo5t6R@CLne!k%~fQr?-tV@Zc}>f zKBJXWX}u?yJco_tzHL83oN$`C@J%;&bX5PLZl&QG<5- zsrr!g{k8j(sp8MtqCEmzj#)4g=6tI}y3!@Dg{0acMWZ;1-!E}6?+&UEOO9z*h%*l? z{xQGddc@jZBxm}v+=OLipSOc5%y(g60`)58Rcl$Bg#urfBFmm3ui9m}uyFl0LGeh} z#%<-CD{Zd5+%uoaT6q8d;{^JpBKYL1QwFD?=#!0Epd}4l4xx3*&aTmCo$P&S2#^I=j(la_(8|`$S_Dmlli6TK#O6S zIdl!tvvd8aY~X`5GV^?xZDT=I{W+^A4pfz^>4jbsEjC}9FWlRE+rL%o(KACOPsgMn zL$tf`!2&NNLxsVO&QJMFl5N^!AvsJ^)8=tX4#YsaAymQYDvvrEjDB;a{pO4aWmzc2 za`wV}9`gWpUb$3X60jWoonmydJp5DkXgVsN&yAePd>;VQij!Lk8xr!=_~y9daNA;O z{8ZB-@`Ywa2$GSeg>nZD&ao#QzK9akw5rPi5=M=aM1af&eQ1@>s(16XNFvLEONlU4 zYMG>PMKkjY3R=bU*Cwxh@s_ml93e*LMo@HVYMraHuGcD8jtMmXJbrMkNY(K#8tg$U zlRAKHR5<4vho|AIFGCxEJ`Jmj^tCtSFiH*OZLACzlh2wFUnzCdFm0@M(@LMv@)AUx`_xqLnXc*B+F)8;hu=YD(HaJvWqoKi`w1XiqD?rqlZ`Un={6? z!ob(X*znm*IZlT^Ss0eWbkw#0E^Iw)Z z+#S4TPFsN&0~MChGZr<(~u0| z6|Swgv8gzy=ekig(R+qK#s~Qohg@WklR^^GSLsD83v9q2cP`qT%3zpO!5*SS#Paqm zH8J9RhfGoVKeTAbP_wLNB!l~V)lUMv8h?K&k~N&TTnln=v5yIVMpEjKjQ*yBAX?2? zQbF9BD?x9ARr(gM1E*6&GLCH%>^rp15i)+8V%H&WMdNAPZ2Sa+tPRdXMm^oii?uS* zvx|$1cH8(U9DL6k%;1j+fqa=d3$cP61x35Pq2Am(!Ro@$JBTci8>|+vg=-fs9Eb2; zKL~R2EpomO6f#b*%L)HV*#G|cKNLEL2U#puZ)HtQO~TUBQu0=*As~!hd$NLz{qNKw z#@QJQ4l_2-306d2W291{dKg3+do5tu3!V!7RrjLA;C>ap2sq5SUzINmqL!_AeB^Gp z_1zizo_Rjv+PGuY=K5PZZ5g85&1H{`XE@?p6(gykzPL#YVpNh{iMd3bIgCc6Zs9(k zjZQ+)O`Ffv3`uGd4zp*uCYG)8t}co?MmkIV7T+cp2*Py+BOxlpXQe;|dGw4z!{tEU zJiclHqs_ex_sUWGEEXz5JJ>9&>Vei8zY&AJL*_?j96X8q%I&$65tT(!tniEKSI*o?L&y+CZ8o|AZn zi@OZ7`8=ady;`^0>r*${y(hQ%`72F?L3|j+@L%Q{9xUC)9Yh9-jXQ``oB8Y6#FNvZ zX$P=QEbu5_(Wc$?N-UawN-vMp*neOby*M|up^RhM2V4TrlQWA>wYen2X;a~)W=@`$69+E&;7DXM1bhIr4l3t2tNZ^3NqgH> literal 0 HcmV?d00001 diff --git a/structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..2a5caa6a7 --- /dev/null +++ b/structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_simd_interface< xtensor_view< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_interface< xtensor_view< EC, N, L, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_interface< xtensor_view< EC, N, L, Tag > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::has_simd_interface< xtensor_view< EC, N, L, Tag > >
    +

    Definition at line 399 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png b/structxt_1_1has__simd__interface_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6ac8923c9209e2983c463d930a06b74e5d20ac3d GIT binary patch literal 2720 zcmcgtX;f258hwZzKp8i7bsE&7z37 zun3~SV+krDN{}Ep-ME0VMg$2GS!4-|5-=f2KL~SXoHM7-{FpQKL;`h3C+3Lhjm0Jg+b^hR zzaAYJ7=Xr&T8u32x{@%5Oa~1Trp7;WKcO&V6R|Q?o6OXFy_I#I8R0`|5qjCNi z0SO*3DoL!cbJK)6&(WCp02gyzSfK_c{ykkiDZoV;RP9rBHIny6iEpNWTzrx9oC4PtVHG~%svY5R z7h~B(4MKv>3x*yTFBMr=QB(Aj#1cw^deYcNU*inidJ+H8Q!HORQbFroJl?~Rw8TwY zELd>WF7y_TPwe_ienaeE7ru{<`ZOs@i4RT<#RaqKL|9P*xnbUe%o%j7I31)TvJ>#l z%uNaiviv&YxOv|s$Mp0fzbB@U8I&Vdex-ADk#IIRr-~ZG0(A+9tCesRtWfZmR-;c2 z&hJWx9gC^mG~v5!=Y#;4`I-&Q*rZx7P0EM&gZ8v9j6Lkh$Ej0!^9AQed`#5b+ve92 zbcKxb&qk`6$bw_q@L~N{;ZMSn{H%JOO|C;3`FKTCBx9%=_s+)`-n+2#0Y^85!TIvy z1Sv-^CQTdC59~hI%+9IG-ZxT}bZ^mYyII#AK}J9N{^g(ETW5DaGbfq0chiY&0imar z9^Z<%7VmNJdPrn+%b+*kSoE39)My*)tmw(9CS>ZrnaS>be6l(G#h`1b zj_FJL_K}D^DqV=_!o+BC!qak7hYzOpg)xpeOptT#aQ|4r6#+$qGxKS6 zqOsMe7}t7=X?r$u2-->_ff-vO9$I8LnAeN0pi0urv?I&4x+HScXD6wCYFKLaU$5#w z*>)%=a31HT3rgVmMj1FK5vg>SDY>%tw9$-&iRs$9STp;S=$xJ=p0Rb}(XB0RCbG7s zfEx>Nf*tnh&;-Fw&hH5L)()@5P`?sE&_X#hwnyCdA*PbSI7=Pq6;BQ>B;ZTa>aKl- z95WuA+IFyOs>#xCxdMsvlmBB0`qTRKJvopa3za|r<)ZkJLWH$1*G4OR#V@{BfYlcz zX^Ln-9+2_YvstAAta?lDgbKGjpy;Lt$RGhS^Msq$Qb)^fDHsSt(Pf~hhPZVKP*g)d zCF{^-StP{VTpmEP-82CiB(PH&t%S<@m*{^ZzyH<$iJT01a-wl4Y| zfmJKWYzu73)nzoWeUHljdJ3xHKQFjl(lt7kforhX0`PBrmC{8y_#l_DbXg`_U~bs; zAZR6(1u6Oyl9Ce}xG`EV^yQ+6GB-|=gjiVSEMzK7ifSeMohF#~UD&0TJUt8+x;~d= zHe6M=!*)58>%Vq8ft}O97PpMDuJ6dIsfny=o_V+&iR6Kk^ zIrt2c8%25ii*yryo{d*J&4}wqlb&eV)Pt#$1+lLas}ZBbm^^cM&(Y~VG+%g}qcZmh z7Sh~|s7aS@Bx1qz>V=MGIavE~2f8O6s?uP<;HdM{dv!EldR$g);H(AfKKtuOW*TXa zzoayF!j%ffNGFVFcw?BsBoPirk8fDV-!_&z_Z5^l?Phs3Ojd&Y8XA`$h_f@MoI_qZ zrtCmr@>l{DW62o#{K3TC8g4U>>I%Uz^onDymm&LJ1mh9+-LZ7N-#1CExV6oOwt-y+ z2E6F`0)jMdCP5e^i5PEvkhFZ1s`L-LV%O`BfS};xiUq2rB}<9Ak~!P=WPqRxcD*!3 ka#UqY|7-HQ6EMx5wj3~M1mQx`D*$TtHcr-+R^D-c0JB}jF#rGn literal 0 HcmV?d00001 diff --git a/structxt_1_1has__simd__type.html b/structxt_1_1has__simd__type.html new file mode 100644 index 000000000..207870531 --- /dev/null +++ b/structxt_1_1has__simd__type.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_simd_type< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_simd_type< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_simd_type< T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::has_simd_type< T >
    +

    Definition at line 276 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1has__simd__type.png b/structxt_1_1has__simd__type.png new file mode 100644 index 0000000000000000000000000000000000000000..b32350d1c454dddb15915bb2fe1a7fcb418fc33f GIT binary patch literal 1247 zcmeAS@N?(olHy`uVBq!ia0y~yV7vlk2XHV0$?5A$RDhIpfKQ0)|NsAi%olIImi8Z7 zZegHVATj;Siw6%L0L4wuhAjcgah3%61v3EoU|`NP8)y(qmZytjNCo5DxwoqxEAX_q zo6oKMuYS+OPQh>6!YFmjy~I3>W-XoirMCtI+S z>d6GJ6)KWGyjQ-azSnMUf1@AUlNWT^(BzSI^m?|qNl!{|esbTGm3#c;@0uS?@xtOB zMXN5~R1eUP`gJ_O^V2dnvvY6e_3UT)dd@7a;a6?!yz*y?^)>z5jXudlsN4M4kIkD| zd(JBL_o3(lHSPGn%lAG_z1TVZ_4Yjdyp31SXej;Cj%7Xftl9k0N?E>oX)WP(I~^wN z-8T8g`6cfZBDcz}nz&Rla#np|?d=2my! z@*}~@k+-f)FgJ?WF1yYyzpUm#llqo_^X7OS-nR9{f^Wk7x^J(sNv69j+hzMZxk^4Q z;CWo1a6(bF}{zOmb_Ug>ReX7l%wSY>Z%r@hg^(${B|p38d0m9_TQlAYUb z-?$VtwQhB?MzPkrqu)qvJPIK$3_0?aNN9N4G6f@E6g!u~gpIf8Kt?sCP zPRj>6y82ho=J?jXKeiozkv+f8^V6cdT9--XU;Z7vx3ekPX;Qtj`GRe!sk@zhFRGoC zzgW7seD05zcYmB`|2j|Q{wnKn6*PJR-9@$47xNt%=X^nw!*=Twzu&4rUv z3{*oV@hoEx0jD^cg%D9b{BP7&?}&U%!NlVd0bjMull|K9jW=T!Nff8w$LZ zFbMc?iZV25E@W~5>Sy3s*22Yb5Tp#4N*P#!fr@~sl&XsU3qo8db5KQ7)f1Q_R5fP^ ztx{nPcAB~bXxAhWpZV;i-@jk^Smso@e?xloKb4n{MI=`(S+y6K)R`uIk^bTsFu!lt zi;c%m-`Z-k$|BmX;>=C^lIw}Jk!lsnlf1lFO!|^GGi2-E@RzUC>=sV_d9@;c$v)|K z*V8}#UGZi2(RjM*m&+|4=88u?$s6czx19x z@$ZQ*(T=4vKWl_<513x`y7x<~rE=(`d#jc&=I&y=;^~{4RlskWy-MY;ac;nTlT}tb zzQ`=Q|8=uof4*h8=fg=czjY?fj|x_O`Fsn=YhA2g1@rIMPcoSzFMlP`vunYBv!Ls_ z>LH$9o|oQ-!9C9zItdsXUO@)73uet+dgjcb7yS8OT=j0xsTTwmMGT& + + + + + + +xtensor: xt::has_storage_type< T, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_storage_type< T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_storage_type< T, class >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T, class = void>
    +struct xt::has_storage_type< T, class >
    +

    Definition at line 543 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__storage__type.png b/structxt_1_1has__storage__type.png new file mode 100644 index 0000000000000000000000000000000000000000..7e35520a558eab5500f369249c6b6142d538f708 GIT binary patch literal 748 zcmeAS@N?(olHy`uVBq!ia0vp^M}RnhgBeH`_G|F~Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_q{bPZ!6K3dXl{V<$B$2((nk zU8?;ryuMS3=RsO;n(?v~i+GjnKRX&%w$8kHl~ws-lW{ym03p9;>7-}C%4e+7Dewz+q?*mn9)+wT$k{H8uL_I!6)kwdvyGrp)NG}`i9 zzg3ZqyJC#TJsrz^@d{RtJ&We|-CoIW_)~eS{yVL|SLV$4?K5e2$(N+^HxJ&1gw^yf zllR=WB>24xf6`+=m5%fGJ5#1kncEd@kiMX!$)2L;lp1w_c0}< zs55jdWMpIzG*MtsXkuewaJkUH(7+)jz#!nr%*3FS;lSVk^gct!0t`jZjf{8iN|;oV z%gf=}wSZC4Q!vDFjlTcIvJL+izMhn-a`I*VYL>K#cOA@G^ejheHV1*D(4bQ&dD*6**kUDKeJo5uP()S!Q89IpDg~& zJv(Gt+Ka5^Q}@hS(y=gVZA(V;-KG_6yFO2y;vILp^#OCFcpcM5i!~dAnGMTh%J2MK z`Oda}-JFe_51l?VPuqUY?`vV%_XUj^+jnhqySjRB=A@#J?g4E9aogS3{ESH@%kCwpd;W@t2a1W~jG3`9_PiI~zm+%X R-wRBa44$rjF6*2UngC} + + + + + + +xtensor: xt::has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::has_storage_type< T, void_t< typename xcontainer_inner_types< T >::storage_type > >
    +

    Definition at line 551 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.png b/structxt_1_1has__storage__type_3_01_t_00_01void__t_3_01typename_01xcontainer__inner__types_3_01_650a1762a9f827a241fdd5fca766bcf6.png new file mode 100644 index 0000000000000000000000000000000000000000..b1254175007769dbf37401628d194295cd4d92fe GIT binary patch literal 2582 zcmcImdpy(q9-nmdRGbjWt%YK_C9B*?xwMg)SVoDmNy~IuJZ9qQK{S#Xo+--Qau-D| ziz0hrC~0%2dPdA8vCSnszpdBloPW+af1KC({_**}zt_+EbAA2dU0obywyA6bfj}~_ zlXh+((BB{ccKt;XkOoq?r@%+m)!E&CV`Bq=U#9stlU^5?8XdU0JDv4qY-|izKhlZH z1@^WQ++0qBfVp^>YBv8A<~oVMm`J3Er{aZ18IW!Q>t9%O&pNlJ2V`2{2#_$XJ1 z<~{D7REqz;Kq-AV%$RamaaSI2Hba8!23$H7V}AhVK*2WAsr$5Gr~Q!do*QY9(pPtx z99xk385l7&8DcV@o-1LK`S(R!0BIqNQE3Y^zoQA>AJ~$7PJJY7$ePm2jgeKGTX{C| zq&Y)+%f>5h{Hd@73PS?^r$5oNUb?4Y!sL@UJ88)&*T~T{Cyn$}9{m zDy#{Pxhoi`e4yn`r93;a{Guq7kkVoSdt1C6h=cn(Meg49;kO~1dyvN?Tc;)o)a71e;+=pryL%5J{A5$fY?Ur0N|nD{(YTpkGR-hKw~X5dhvACt z&<3uhLl#qlmQG|feOjQ*o66@Adt3&7xdciv)MbjL>z*O=}N+0nK6>(W={&Bf6fkM_! zdYBZkInT`7F(p&!^_ZM`VRB+dXmOyz@O+M0#TBzwIyKj->|LG1qRNnF=qDm3Vsw2S zA8P=6$@uBAjgW|~GoLv}26&|-ygjzpnq^@ma%ka_w0| zr5k`)0QrKXqa>CPV*^q~AgLzM?#EYl?T?ZWV@wr90@wsFgyB3i_Juer@SVn6H|W#cllLSs_Z z$rjwGnUd!^b@USUD8cY1=bYaHPdn*)_>39P@4>~?07I;4PeFa&@G*TQt*XGeSjMhJ z+R8H^f=&JpQ@Nb$Va}-UPxNcyMNj&IF!yw;l|8#w&r9S;+Ok-*A^EU{iMpGX#?R=#OWMOlF z$r4Hw&{seF*Il$1|A@uXXbc5gwM%eESuBZe^Xci2W7}x7iK~!3<#+Z%7d%E}!m;CK zo- w!WkF-AnZw{(X^opt3TBI{LunQjcs1vqC%~@KKVYu2?Pw7y^CGhao^j20X8eJJ^%m! literal 0 HcmV?d00001 diff --git a/structxt_1_1has__strides.html b/structxt_1_1has__strides.html new file mode 100644 index 000000000..592c12587 --- /dev/null +++ b/structxt_1_1has__strides.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_strides< E, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_strides< E, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_strides< E, class >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E, class = void>
    +struct xt::has_strides< E, class >
    +

    Definition at line 575 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__strides.png b/structxt_1_1has__strides.png new file mode 100644 index 0000000000000000000000000000000000000000..66f76748577a7c068b23051464aed148b12a0551 GIT binary patch literal 662 zcmeAS@N?(olHy`uVBq!ia0vp^3xPO*gBeJ=IX<-jQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B+)o-U3d6^w7^Uc5F(fu}{? z-1_rB|CoALMpx}+c`q~16^0#Pu@l;K=g^s)jDsFU39O2qzeHM8UIv>d8l8{ZX6m0- z)ONr(V#oj5L-R9y|N9pwf1UOF^?R|4OXurey1ugThtH(xuM|v->{Hd5-yHMWe`~e! zhT4{^Ri%8NABnf{)=%0Kl0WTsi~aQAiBErSvN~qhzDfOT?bJ&rg62Nm6c{b@#^Y0; z%<~Pd6-9jEho+x@IP2inY2A~zU&-D*ZTsPmb-I(EB&#}2dUK__rPy&v#?<{PHy6G? z@}VGf(i7iW?b9kheH=X|*?}BwA~A9*@-z@Kt^tbf;zc`-XPg-qOdg;QaRY{YMsV}}+n5DmdaqjGtjW$2FFwITQ z2>P0{)@GV`%>FlLwQnbFpLA;ZHj|Y#S@(@j-`;l0)99j|O0+=K`nyuUizDXW-Lur{ zj5+7!JMB8#Ik<0&1x(&BYyY{TSF)S;_`4K0ryJ@_-{-tz{(hdC%|Yil&Yw$sx3?Y` zc9NS|Jd}^?gu7key65Ts*weTFT;HnWng9A?kZg;$hKzL8vtQ@$o}OefqbXn#Fbq6D gWhwzZ7`dO}-@PLp3vY7908mdKI;Vst0K6YID*ylh literal 0 HcmV?d00001 diff --git a/structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html b/structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html new file mode 100644 index 000000000..524f4b7cd --- /dev/null +++ b/structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::has_strides< E, void_t< decltype(std::declval< E >().strides())> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::has_strides< E, void_t< decltype(std::declval< E >().strides())> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::has_strides< E, void_t< decltype(std::declval< E >().strides())> >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::has_strides< E, void_t< decltype(std::declval< E >().strides())> >
    +

    Definition at line 580 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.png b/structxt_1_1has__strides_3_01_e_00_01void__t_3_01decltype_07std_1_1declval_3_01_e_01_4_07_08_8strides_07_08_08_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed2210846932f213f8764ba561ecaf505c36be2 GIT binary patch literal 1555 zcmeAS@N?(olHy`uVBq!ia0y~yV3q;012~w0pV{v$B+ufw{tI+J=PLn z$&S18`G0(kZ1gqYL;nUS(g`f-d%r_gsZCO)fwJ>%^|;Xv)?(K zI$dbr)LslC7=1rlHfW zGWYnA#+pwjH~!HBh2RX`3I5ZZC#5}l4Aiv~6tIjy;iY&OJ5C7-CMqeNTRKr098KH@ zzQi!_IEcz{Ig3=1k`@Tb@<#@?!J%ye+iY7U)0o=9II&A75-Qzvp*+?ZMNLOh7w+ER?yw z;{V>wFTX#z@vlSv)Wn%PQ@{Tz@14e`zwA&EgUI7~*Wc!Ec0IPqT(5jr@2A&~%Kk^a zl>7NOJN|pY&$Ya>`u9sU);IEce9yDn@*exFUR0B9rNe%pWXckxeQx{j z)LQ+x`!ZtbTl4;J;mi^ZRyN{}+c%qv&y{?AOIG*OvOMYEZ$G>B-P^ZT`}aHkdv{8= zz5VIxe|z=ei|a3M*;ZjMyHJ7Jv(Ky#`fc< z6JDP`vuw}g$1k4Tc>m#cVNSNpT$#V;_P>5s@n!eq$I+J`PG(N9+g1GEq0jN!?5nmb zb|0HJ^X6r}XFZKOO z-*Ql|ex;^XZ8* te?$nRy+lhR + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::index_from_shape< S > Member List
    +
    +
    + +

    This is the complete list of members for xt::index_from_shape< S >, including all inherited members.

    + + +
    type typedef (defined in xt::index_from_shape< S >)xt::index_from_shape< S >
    +
    + + + + diff --git a/structxt_1_1index__from__shape.html b/structxt_1_1index__from__shape.html new file mode 100644 index 000000000..50f951c13 --- /dev/null +++ b/structxt_1_1index__from__shape.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::index_from_shape< S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::index_from_shape< S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename detail::index_from_shape_impl<S>::type
     
    +

    Detailed Description

    +
    template<class S>
    +struct xt::index_from_shape< S >
    +

    Definition at line 536 of file xshape.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class S>
    + + + + +
    using xt::index_from_shape< S >::type = typename detail::index_from_shape_impl<S>::type
    +
    + +

    Definition at line 538 of file xshape.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1index__mapper.html b/structxt_1_1index__mapper.html new file mode 100644 index 000000000..1b7ebfbf5 --- /dev/null +++ b/structxt_1_1index__mapper.html @@ -0,0 +1,139 @@ + + + + + + + +xtensor: xt::index_mapper< UndefinedView > Class Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::index_mapper< UndefinedView > Class Template Reference
    +
    +
    + +

    A helper class for mapping indices between views and their underlying containers. + More...

    + +

    #include <index_mapper.hpp>

    +

    Detailed Description

    +
    template<class UndefinedView>
    +class xt::index_mapper< UndefinedView >

    A helper class for mapping indices between views and their underlying containers.

    +

    The index_mapper class provides functionality to convert indices from a view's coordinate system to the corresponding indices in the underlying container. This is particularly useful for views that contain integral slices (fixed indices), as these slices reduce the dimensionality of the view.

    +
    Template Parameters
    + + +
    UndefinedViewThe primary template parameter, specialized for xt::xview types.
    +
    +
    +
    Note
    This class is specialized for xt::xview<UnderlyingContainer, Slices...> types only. Other view types will trigger a compilation error.
    + +

    Definition at line 21 of file index_mapper.hpp.

    +

    The documentation for this class was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1initializer__dimension-members.html b/structxt_1_1initializer__dimension-members.html new file mode 100644 index 000000000..c736f1306 --- /dev/null +++ b/structxt_1_1initializer__dimension-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::initializer_dimension< U > Member List
    +
    +
    + +

    This is the complete list of members for xt::initializer_dimension< U >, including all inherited members.

    + + +
    value (defined in xt::initializer_dimension< U >)xt::initializer_dimension< U >static
    +
    + + + + diff --git a/structxt_1_1initializer__dimension.html b/structxt_1_1initializer__dimension.html new file mode 100644 index 000000000..632717c4e --- /dev/null +++ b/structxt_1_1initializer__dimension.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::initializer_dimension< U > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::initializer_dimension< U > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::size_t value = detail::initializer_depth_impl<U>::value
     
    +

    Detailed Description

    +
    template<class U>
    +struct xt::initializer_dimension< U >
    +

    Definition at line 168 of file xshape.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class U>
    + + + + + +
    + + + + +
    std::size_t xt::initializer_dimension< U >::value = detail::initializer_depth_impl<U>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 170 of file xshape.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1inner__aligned__mode.html b/structxt_1_1inner__aligned__mode.html new file mode 100644 index 000000000..67bf19834 --- /dev/null +++ b/structxt_1_1inner__aligned__mode.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::inner_aligned_mode Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::inner_aligned_mode Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 212 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1inner__reference-members.html b/structxt_1_1inner__reference-members.html new file mode 100644 index 000000000..269e9ac73 --- /dev/null +++ b/structxt_1_1inner__reference-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::inner_reference< ST > Member List
    +
    +
    + +

    This is the complete list of members for xt::inner_reference< ST >, including all inherited members.

    + + + +
    storage_type typedef (defined in xt::inner_reference< ST >)xt::inner_reference< ST >
    type typedef (defined in xt::inner_reference< ST >)xt::inner_reference< ST >
    +
    + + + + diff --git a/structxt_1_1inner__reference.html b/structxt_1_1inner__reference.html new file mode 100644 index 000000000..0f444cb2d --- /dev/null +++ b/structxt_1_1inner__reference.html @@ -0,0 +1,177 @@ + + + + + + + +xtensor: xt::inner_reference< ST > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::inner_reference< ST > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using storage_type = std::decay_t<ST>
     
    using type
     
    +

    Detailed Description

    +
    template<class ST>
    +struct xt::inner_reference< ST >
    +

    Definition at line 997 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ storage_type

    + +
    +
    +
    +template<class ST>
    + + + + +
    using xt::inner_reference< ST >::storage_type = std::decay_t<ST>
    +
    + +

    Definition at line 999 of file xutils.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class ST>
    + + + + +
    using xt::inner_reference< ST >::type
    +
    +Initial value:
    std::conditional_t<
    +
    std::is_const<std::remove_reference_t<ST>>::value,
    +
    typename storage_type::const_reference,
    +
    typename storage_type::reference>
    +
    +

    Definition at line 1000 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1invalid__type.html b/structxt_1_1invalid__type.html new file mode 100644 index 000000000..3284250de --- /dev/null +++ b/structxt_1_1invalid__type.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::invalid_type Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::invalid_type Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 97 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__chunked__t.html b/structxt_1_1is__chunked__t.html new file mode 100644 index 000000000..f3b24a0cd --- /dev/null +++ b/structxt_1_1is__chunked__t.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_chunked_t< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_chunked_t< E > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_chunked_t< E >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::is_chunked_t< E >
    +

    Definition at line 24 of file xchunked_view.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1is__chunked__t.png b/structxt_1_1is__chunked__t.png new file mode 100644 index 0000000000000000000000000000000000000000..6d211bc2ffa6d4bc1eeb9a4e333e2ef43c3d29ab GIT binary patch literal 712 zcmeAS@N?(olHy`uVBq!ia0vp^hk-bNgBeIp4mKfup5; zw$c0lM{XZ8V_e+%^8BSQ8`L*TcQ(l@RdWkYoXovwRaKU1^Qx>plN>`$2svKK$iJ&_1(gqO(gAdABdT z>9&!#z2e7=xo3DTFFULC|C#UGiMAJ}a;F;{KAJbf%(-H@X*2)sm^MqN@>PX5<~`(< zzMgCE@^sbFg5NXGzX@e~o@98XGCuyKF5BkA|17sm+97}7YS8`2&6R6ropj@{e|(_! z#Z-^#xbmd+)4qkTdhzMYyXM#4sZUcrX6J6-u|DGZ^0^mZd*91mtpC;d%kN36UOoSE zQQ>{+jCZrWUu!s*FJ1Mj?~_bO=;Nt8t5$vVVhg=m5i9B9a!!}w#~M9`f}+0+ho2VJ zb;u{|P?{t6NL*r*KH~v%4M_%txRVSFK=lkA;YJJ&dnPe5JetbGAh14#p`k*Rnc;{w znvw(STwMJ0I6UV?ophK4)HkW;x?x*oUV7l=Jw|$MuYzA1sZ@IS8%;=YUT-wvNg=P1 z&t#uTdG)c!PN{1i+dVCCW?gxb-)660>5>{b_S04-*lx>l>pQ(^y7_d;$)b~FE*9vX zj|nxBCV1ay-Jv?qo>SX8yaPu`)D%)%TzJ|K&YC{r;lleDY4BxWAtA p$+k~29!7C+A53+0d2;6$^GD`4f7Djyv;fl_gQu&X%Q~loCIBbwPptp| literal 0 HcmV?d00001 diff --git a/structxt_1_1is__contiguous__container.html b/structxt_1_1is__contiguous__container.html new file mode 100644 index 000000000..f29bebcb0 --- /dev/null +++ b/structxt_1_1is__contiguous__container.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_contiguous_container< C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_contiguous_container< C > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_contiguous_container< C >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class C>
    +struct xt::is_contiguous_container< C >
    +

    Definition at line 29 of file xstorage.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__contiguous__container.png b/structxt_1_1is__contiguous__container.png new file mode 100644 index 0000000000000000000000000000000000000000..158524b94bb8a4569e3d28153cc3b900931459bc GIT binary patch literal 712 zcmeAS@N?(olHy`uVBq!ia0vp^M}atigBeK9^K~==QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B-co-U3d6^w7^-Y#2hz~kbs zKlA5*eY=*~xdmOE=Q>XWoz@d?p0-_e=XwL<-L?jk_E;u5PO{_Rp7h00zT5Jc)T{F| zF{`&2+$)B3L zIbS6N&U`tmnYsIxf#NG=T*<^JwGYkKY8?9y{%{5 z!)Q_0Nq@nvjF_;5pN-pi^KNDa`Dcs_+n=lJ$o0ox_`%uj_=w%4?y%A~4TcX+5eyCd zhnN^@1jHB~G;d&FkZ)mS_@SV~aDY9Lkpbvkh7XQtN*ct@oXO+&nUv=j;W3H-kkh1^ z4I3l!XWeO=uD9Ni>w?g$o${WS+QP*qm3Z`<%-MlYT0d2}LguD`G0DT~>v8q>_;CwsZB z^^VZ}`DEAZ$E#nOAJ-7uxZ#FhSWunH-s@tnrh76kiX^XlV&l8=SXbASB~7Z)ySq-= z-_Sjr*?mmncR=LkZO@Z#`?8zv&0P{zo$|U`;&Ff1DcdgFRhPuOk8Zjv^H%?~&1Jc% zey4@D9h+gk`>tL1+6B}8i%zopr01<>tr2qf` literal 0 HcmV?d00001 diff --git a/structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html b/structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html new file mode 100644 index 000000000..39254e74f --- /dev/null +++ b/structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_contiguous_container< xiterator< St, S, L > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_contiguous_container< xiterator< St, S, L > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_contiguous_container< xiterator< St, S, L > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class St, class S, layout_type L>
    +struct xt::is_contiguous_container< xiterator< St, S, L > >
    +

    Definition at line 346 of file xiterator.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.png b/structxt_1_1is__contiguous__container_3_01xiterator_3_01_st_00_01_s_00_01_l_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..72a246da2aaddde6b2ac5a4f1d25add4aa8805e6 GIT binary patch literal 1356 zcmeAS@N?(olHy`uVBq!ia0y~yU`hkB12~w0WQ(7tB9M{}@CkAK|NlRb`Qpvj(*8rs zEetdZB&MHv@!-J&pt$MTuq8k_&XOR%UvIfCp|7zdz}SS zYi6pHCZAQwl*v}}yc=QcDRq37XOQ_dpGn6yrcJuiYdU#J;knCiKJGq!{{IiT@R^q{ zo8DfwtU~;O>Y~j+`Lj<=wC^37<*C*GUR2`peAU*Mzy9TSJ-Zihr)Eoi?auAfx2wK1 zp0o1i=_}9npT1YN_rxVG3YxB7e4#kor&otG+Y zkl&njciNKvf^}*7L911Cg7yTIEEheyeO7J#yy->1x2e>&Z0=5r-mKZZG$YPnSFlO; zyLY{J*TkLr_zNUwY+5}%YU|xton4c=o>iGJXN#V-T!nIrj77-=&K*J=H&lcP~?!+X)P{JYc}~ z0t0rXG%#Qv0|WNev00v%EPw&K3mC8_=ccC#3aTkBYIfS(!67Vok@0}&PDY6a#W~Ur z=6&1=GSAsAoPPUk4})7_9>ZM=y@o=dgnoRcrGA4WLWx1cVJ3;=I~hwJ?_fBFq!4C8 z?_-jr@8oTtz4LC~c1H%D1M$a$ITIN8j?4l&ig{xi1KR_KHIfaC76RF9(qUE?|)xf|14qGEc4d)m%o2MUfeG^XWg{?xyfr{mu>rc@a#L|?V@v+ zrC)0+JO6Xlt$p*>Y)WHbH$3lSNeS)!w7R+*&sy?ZZfV_kxAX7+tuD87 z8gws${1%rL#=h5o^EyMhqr2|BxMp-KWNF>A%7*9j)-L_Lr8zaN(!>Sm^6H9PeqASC zH*I&{e9mxQdz94_Rc+(0#WHWt=9$Hsuc=x)v)s6$zSpVkhS=Gvc~N?2qrEF{nSAT{ z=zK9oy|VWBSz~?gm#dDiNb@}jwA3!^?5fB$#q&=GhfbF}AG*9!`=#vTdj|gtOx@DN z+!x+l92{t}e0u%GV!hR;oiuJ=>n+SXaV97EEW@`CYB$cD`Tj?{IVG*GA)VFO`1b~& z<9=8^`OWpevRB+y3mD{mhDOHrNAh)m&ffjw@0WP@g=fwd4FqyqkR66A1@`a%w^dDpQBK@=O@AroS%RL59S3j3^P6 + + + + + + +xtensor: xt::is_contiguous_container< xiterator_adaptor< I, CI > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_contiguous_container< xiterator_adaptor< I, CI > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_contiguous_container< xiterator_adaptor< I, CI > >:
    +
    +
    + + +xt::is_contiguous_container< I > + +
    +

    Detailed Description

    +
    template<class I, class CI>
    +struct xt::is_contiguous_container< xiterator_adaptor< I, CI > >
    +

    Definition at line 487 of file xbuffer_adaptor.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.png b/structxt_1_1is__contiguous__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e78229a4069a2fd596f880d6d8d57877fbf7b691 GIT binary patch literal 2107 zcmc&#Yg7~W5?{lC6c8+$c#tUc1}TP=o1&7Gpn#GD5-tw|q!K_VTx%dAK0puxqV>?2 z20=t(%}vn-q#Ot@i9~`>1;O$TSU?_8p_ot}A|yaKAa_Gc+fV(_`{C|~o!Q^c&ir@g zH#1lLd^}8yEQ|mEFrj*q=l}o%A)Why9&|TOxFCfD%I{wRSL#!6f0|C zD*+#V0PbZwHxv2`w|jcp_98^(fWb#M=`@GJoH?RSMN=u+$DZnF#1@dtW4z1 z0z~N^Hy1`gHoXD_v`3FnX^$a;-mBo)-g`eC2w@cE-9+j?YvIx8MhwJ9d0h=NXPJk0 zychnAn!&9ZSmR8->8xChI};Ul-mAw$=Yq5H)AlHrTtdHW;=E(QuI@uo5(rh_QKhH* zYdD~aQL{S*2F3QZLaq9fyBda`$VTj`c|Sl==d}bGW9Aq##yIxj%iplxMvALdFz-85 zEPlBJL~TS-SIM{h6JK>K7r+0znmG;kP~Y80U#BQ|u)0ew3!c>Ff8>MN&kc1aj-{&u zuw4x={IEu|7nNQmD(Oi`b5*hlNz`AA|0)R^S@Ojc-lEek>;m*=;Z87fK(E`1f%pMX z|M-sOv1zlL;OG$uvbA-e-jlXTWrj5h2Wp>QhMA}NRDyuP9sg1tjL^YEDEI##Si6<% zg?XAoZ=GxpI=Isme(tlKrseL}cUx1-s{;0;pO8p(JctXsOIaim9wI|_1!!jWLdS+D zJPPUGx=a{iEzGWa6L{C!ZZYOh2Z>S{Zv(4`LrA3IF?DyD5{;g5fG1l1GX5hPjjsf= zbDD4%3$u4Qn~$e%9a|H#ob2yzUh|$aSrlCS>bfAEtQ<(Kl~&_qHWSu$RC(Kw>*}S? zjXRYSUrq^q$9od$E%Q*56Q>EG(|m_5I|kptKc~MhN80yrK8Y<$=$(%CbiVUd&vKa^ z6OGR-teP(-?Qa3uDTB!TjQevk?Wx=8TrOhSFV4NOILYNmTuE@Y%i|&Za`BQq{}CoU z7^XOPE`k5XI0_M}l}c&3)q;%o#h~(K%vf8KpsTp~oJ zlocG@Q~PInzM4j@_M{783z6i6W~qsz$r3iO+H=0LQ1$TLm-!8LwO>F~ze2ze2Pzb* zVCM%1c4oe*jvn4N_L$NzdxmIhJlIQdl@2^h3L5NARJ8V68w7p5V7Z`8z$R734PF#x z#Fs`HUraBG_30n2Av71hCZ5@5jn4I`{Z6cV`yX~p^N4O{f+Dn|eo z;g(i}Cab-?YcIH5X-kCHHLmoy2cOIJos$H{g*+%>k(yG7{W$dKj<7np7d=e<5OToT z_ZLOa_?;QHzp<$86T}9KaC)=)JE1N>ciOpa_4(Kh4@uLO{QHJk-`qFKx^lxXD+7{^ z7(wU9ZgzjNvGB23x83;Wf0iv{?^xGb#vG7Pn-}RF-MQ2aY|WY$-QvMC<-Au zb^dB{lIr+lC6MesBGN>q3E`G}maKJRkz)Xjp{@szpXD4rY{l0hHCW!(F~6k;nu+@g zQW6c_#ZrYYA@U{1PEbFuSsGqiPM1wYpWt73){S?SVp_F#qq=9?hbtV;-j)O@^3B-f z#Tk3u@N<|h?CXdup5oX^@P9N&vUa2tF21K&+ItF&^{IF4PazAe6ld)Ky)4>|h4D72 zIDF{W7HO`h2)%bPqQ#mR=1{}EZ`tgo)+u;koIhQ6;!yHX|7VGoWHA zse^2>#tCx>`ZvKqjUw-Tpe|u8Z(oPFG!voP1|P7;IY&HaviEK|F(SETRX(8GP_@K{ z@-VTazA1V8NvNz^;-hG>#CLs#R`)Ue*LSF#$@bPQ(MU2|?D*@N6-)Zo_iSNK1PwDD e57b{-1Kx~%AAhjV`3kh=0V>&tRCYN0@_zx+c)oc6 literal 0 HcmV?d00001 diff --git a/structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html b/structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html new file mode 100644 index 000000000..72679c352 --- /dev/null +++ b/structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::is_contiguous_container< xiterator_owner_adaptor< C, IG > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_contiguous_container< xiterator_owner_adaptor< C, IG > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_contiguous_container< xiterator_owner_adaptor< C, IG > >:
    +
    +
    + + +xt::is_contiguous_container< IG::iterator > + +
    +

    Detailed Description

    +
    template<class C, class IG>
    +struct xt::is_contiguous_container< xiterator_owner_adaptor< C, IG > >
    +

    Definition at line 568 of file xbuffer_adaptor.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.png b/structxt_1_1is__contiguous__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..150b1675a564d5d846d20071efde153e2dfa4f88 GIT binary patch literal 2304 zcmc&$do-JA9{z;v6xE6~W!OcdM+L3gsA{(&C7P(ZMb^DVUB)FPT9O#oR1a~l(s7A9 zm2n-arKCu=s+Ooubr&Tjs#O)DWn4m1`+YjIr}M||IeX5WGv6QY_kO?ccb@n6zTfkE zo-fVG0k5Q>p#T7Yk}Uy81OQnWIA`vW1xNqN#yaq(>2#iCv$L}UPUjcbqI3SvHa~`< zs2A|&1p)yWKR)bQ1HO}wB09JL;PdWv0>*j)0DCfQac4+$nWfShYJ-mQA5w=;PQ>pV z?n%>A2vwP61zi>s*#?627TH7@Ijq6$eB?RQn^j;>5-FX-q0n|riGYqaN+2q`rV0$; z74CD`I&fem7bX&+2r@}=HA$RU1u&&N*^nZfelf)6O9M~Yeg0y$*1j{UDRZaxwbpWK zugPrcwfYs;giiHAVJL0G`XC5)lANx(A^t8xL>patmAlT6jZlIRbq!l`=SCNHtQbvT zrtWSgC58Ov1Cb$&=#C`2aX8xYDB#9OBs!qzc@C99oz>52;PZ2?gO$E*@gPpU^|xb$ z`BmeaxG5GQQL2>!@cOD?Z_$+)g3u$Sa>#$?4Jn?x*{A==eVX(O7{jHHFBMLyQfQXu zP!+uu+`y*Zk3q6EKoUS7)}Dlim+Qg-Ij-HuLhulJ;a~+hV7B8K5M38O#do;@1H=Rw z+JBUb<{5S6A1hT^Z7VE2J% zuaye}U=?16z$NEZQGgC`%0>YUJM4yCph|v^aK2A7_UCP^8kIP(^UO;f*dx}FG&PZ^ zyw;V=J6~87uK{u8y6Q3X&{>cyhY!MeygLwEYzZ>xHZnvP6(W~s#Cr4@Uv?^Bfzf_J z>rA`q3rjqnmdO|NKZgc8AMG8p*j!F1DzdPFpgzchSQl5aPj8>g44ZULE|A%Bt?=%m zdZ1D=VvV0{&qVMxD=X?B-10e^veNaEFLjb!hYi801MPaF{hSY^lrG^~6aVsYt>xN= zQj%!^h7>b~222W*NYLB_A z_+Col6<61LmQf!E&l*YUx=X6QY}+b)*70pUb7sO@=b~}!*9}Z?{Cz12Inq1+WlzsknyFu>q>!wccL)Mp92<6h$Arc z{CeuR&FW(%;nrF3jd;I0?l;DTliw#FF^yx%;az=y#dc^Bw*9SuVVL9yoZ9c6TCC;1 z3=4yYM%+`Re^?kN3OvW>oef+3ayZ+SoAU5}a%{d=&Z?wm?-<)=rc9k>X8*L27+1|w zY*(eTfhW`Oln2`XtwqwxNxm(DGRx>e@3R3I{wg^tD5lGJI@W(Ld_(Po39k`T%g&gH zn}Xe48zQ3HHm(GK9nt&H9&Cr?)jui}7D>Ob%nu3*!oP{or+DZ!_f7yP-=N`0O(ePv zKUENpZnLNM9Yb#iN;)qH)=z>=SVY+C6P@Pfs-X88u3Zq;LJAoz092-jDXjauVS+> zSc77C(jn7LU?TVc@ch{`*??*ffMAup|3+4jjE=k#25a_N!p&!b|1%+NRUCKV?W(v$ z0n!5>oLKg^?{vXrJ~3VYcK!&6O++CONaU;0UE#*!aFB3oqm&W3pR^r^tNEnu2*j?o zYrtz+7cO~gNIS4sle#Olde*Z3^1YQs)`g?Jf13^T!}Y-+^=*eC5XLe1r}2jUt*Ywi z1m_lmOr|>o^c6d#lcLl%eqKmFQ8wsA>+ZS7Y2wZDqwb;mB?IneC&*WW4H~pGCV6m8 z$Lu#Q%Lvqb(RA~iUZ&FG^{;Ku7F?Z=}DKQ&;<;@rGdMAv` zX{vRnGq>DPPR4R;ijb3yo_Cns_?OYsszw!wvuHW{hX7h0nf0!XFmPMTK7=*C|HszB z=~_3hR<$`CE_zCHEUWzxB;BV;6{YRVs20Qi<8CjV{2#_6rd@r*+xE5K8Czmh+&xJL z?eb!+n30rq9nMF2RO7 z!qfnBy?+KMq3(qAwLQ4sl)f6`eE)ENt$iN))?ZyT3YhNiNsO$1$MuYFI_S!=4hvqr zW)~+GTZCbddo*D4{FX2YUeX0qjZ%*?(a`H@b?Y)5sg4Gs}i5P>6+WT#A z + + + + + + +xtensor: xt::is_evaluation_strategy< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_evaluation_strategy< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_evaluation_strategy< T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::is_evaluation_strategy< T >
    +

    Definition at line 244 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1is__evaluation__strategy.png b/structxt_1_1is__evaluation__strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..353836852b4bf6d5f2cfa78c1470374bf532c023 GIT binary patch literal 1090 zcmeAS@N?(olHy`uVBq!ia0y~yVDtjA12~w0q{rDabwElwz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6`K+glV@L(#+qt*PRvYlR zxa-gT`Cs2IvuR^$j+ev9%w1cil}jHGul&6ze8x=Gw6yTXi78H#u6s;Xk#t(6a#A2j z)w6AamZwpR-_uVU_Pw^1|DJby)z{wNrZ0>CJ)Nn+#@n~`+tz6^zLSFM0z5BGJv><= zRA%Lz?>mjJ{0^1N3=6HZ-rv3dVOi>KiS7R1m#4PgagIIk?`qK3i;=R={=MPRUw`WP z)`M2>9%`t4E=(->&*iJ}JVYw8dtz+n<7oF%{A@%@_+I|`KsRNuX*9NfI!Q+L0JDxVIng6HtPR9%8$~ikq!>7bQ4?VZ|#@v4H#VS+R-u`z;A@a0C+Uznm z^`+~6WNce(^ZWBU84l~^Me1F9f9^22bE@R_mpAK7Hcfliu>a4xH`{nJeI@7Gx||B`A5s1WiRrUs704c-qF8q)1}7F|IGOOgV{?h z<{$L@R9>LFKzprzUyaYxzw_?tTq!p7_{8zqj<2Wi=98b5e|E-tPI|t>>YaXw=cM@_ zD3JjaQM?l}3lw4Ej1BkCi!-P&6if}_WDu;WUFyxip%BXCz+yi6r4Ylq$y$sG9U`0z zic7p0I23{694mzwoIIv72so``X#mDAL(2r9k`|z5Dk-UH^D^FiT&nA?w2pkT@q#Iv()GD zrB$+jr1xs@*RnsoyrlWr-uUCsu5+*1_n=|@?!1cErL#AfU(`QV)~?$$t9p1!M}^Wdr02lkry)VKRzC;Yv-rgeVIcahqyd*3yDpMAnVeJ2mU?1y_! z+56--?$a@Ue*E33<1D|J_wCf4ZJ)>gcg?2TM<(yy)b?R#d1_$frxz;C*Oz>VEnFEg zsVwteYIXU6)4$eyt!0y6_S*mSgGpcJ&s;fW$@PzBQ@^h%cp4-7CSgOb>Py}~dt)Q@ ySv{+i>pwMkU;6Ed99R>yR5e>>LjqLkKZE1>DW&c6)Y*W!ox#)9&t;ucLK6U#p9m5F literal 0 HcmV?d00001 diff --git a/structxt_1_1is__indexed__stepper-members.html b/structxt_1_1is__indexed__stepper-members.html new file mode 100644 index 000000000..431207fe2 --- /dev/null +++ b/structxt_1_1is__indexed__stepper-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_indexed_stepper< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::is_indexed_stepper< T >, including all inherited members.

    + + +
    value (defined in xt::is_indexed_stepper< T >)xt::is_indexed_stepper< T >static
    +
    + + + + diff --git a/structxt_1_1is__indexed__stepper.html b/structxt_1_1is__indexed__stepper.html new file mode 100644 index 000000000..90036a812 --- /dev/null +++ b/structxt_1_1is__indexed__stepper.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::is_indexed_stepper< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::is_indexed_stepper< T > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static const bool value = false
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::is_indexed_stepper< T >
    +

    Definition at line 215 of file xiterator.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + +
    const bool xt::is_indexed_stepper< T >::value = false
    +
    +static
    +
    + +

    Definition at line 217 of file xiterator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4-members.html b/structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4-members.html new file mode 100644 index 000000000..6df920bbf --- /dev/null +++ b/structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_indexed_stepper< xindexed_stepper< T, B > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html b/structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html new file mode 100644 index 000000000..905557fb1 --- /dev/null +++ b/structxt_1_1is__indexed__stepper_3_01xindexed__stepper_3_01_t_00_01_b_01_4_01_4.html @@ -0,0 +1,187 @@ + + + + + + + +xtensor: xt::is_indexed_stepper< xindexed_stepper< T, B > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::is_indexed_stepper< xindexed_stepper< T, B > > Struct Template Reference
    +
    +
    + + + + + + +

    +Static Public Attributes

    static const bool value = true
     
    static const bool value
     
    +

    Detailed Description

    +
    template<class T, bool B>
    +struct xt::is_indexed_stepper< xindexed_stepper< T, B > >
    +

    Definition at line 221 of file xiterator.hpp.

    +

    Member Data Documentation

    + +

    ◆ value [1/2]

    + +
    +
    + + + + + +
    + + + + +
    const bool xt::is_indexed_stepper< T >::value
    +
    +static
    +
    + +

    Definition at line 217 of file xiterator.hpp.

    + +
    +
    + +

    ◆ value [2/2]

    + +
    +
    +
    +template<class T, bool B>
    + + + + + +
    + + + + +
    const bool xt::is_indexed_stepper< xindexed_stepper< T, B > >::value = true
    +
    +static
    +
    + +

    Definition at line 223 of file xiterator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__iterator.html b/structxt_1_1is__iterator.html new file mode 100644 index 000000000..a423a8da0 --- /dev/null +++ b/structxt_1_1is__iterator.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_iterator< E, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_iterator< E, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_iterator< E, class >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E, class = void>
    +struct xt::is_iterator< E, class >
    +

    Definition at line 602 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__iterator.png b/structxt_1_1is__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..c77b476bc5c871d96bbfb442f1a11dec2550af9e GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0vp^Gl4jOgBeKLrmBAdQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B+4o-U3d6^w7^-oCV0L7=5N z@6z9Y{(q!h`M5eK|9Ka*J2+L^A;IpMKwe^++0q0R%Y{unDz#ijlfImEowjV6=(O3* zvHL8(g{NG-wBP;Pmvf)wH=BJE&91Lc=g<3Vq+A;-wfww_|GaI zdU4|QlTy~XYq~Cqr_BATVmU>9R_&(eu0gKFdn3;6(_6P&>fCG53!QG#XLnsZXK_~f zWce?H^HnL$Hn&gao!V?0RGk|(bL-Xk{bt2Ncfx0@{M;xc>1kCWd~?=|lh$8ntLVR~ zn?HA*$)r6C>Yuo&pR`}5pzJw+nVPZj>_CPO*;Nb&rp%i5=Hm>}+^9{gIYC=0PcAZJ zJg{1UnPGkt4?_)?5yJ<~6ATBI;}v*WuLv|R$iQ<}fTNnH9qUY$pCt;X=PJLy^j`kq z(SzHBCNBxQUSp^`6K$g2*Phw@sO6YTw#Iu~HES1R z)(t+lZ|O$zFY(@%f2H%;yI;X3uYId7t~vDST>7M0%S*#@7nPN4XX?8s^X%q~H`hPs zsNY_-PX6pJuHeeG+Osa+`yXkUA3WRg*ZS<>N$)PXtKFNJ`}|+uzs*+*7kf|ghxusB fgqbtXu8{ZnzpLL!LnaWIgcv+s{an^LB{Ts5FVj5E literal 0 HcmV?d00001 diff --git a/structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html b/structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html new file mode 100644 index 000000000..54090133d --- /dev/null +++ b/structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::is_iterator< E, void_t< decltype(*std::declval< const E >(), std::declval< const E >()==std::declval< const E >(), std::declval< const E >() !=std::declval< const E >(),++(*std::declval< E * >()),(*std::declval< E * >())++, std::true_type())> >
    +

    Definition at line 607 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.png b/structxt_1_1is__iterator_3_01_e_00_01void__t_3_01decltype_07_5std_1_1declval_3_01const_01_e_01_41da12c429c255d2c81e18d875fbe6e98.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4639764cb4cbb01a608e0c1389e2976d112789 GIT binary patch literal 3151 zcmc&$c~p~E7ROr03Pq-6EG-Dkv9_ovsfMt~lCj67FtQv3A_&R2g+hb?Aws}lwMRRJ zgK1U3U<`KH3Lz{aOCTggL=?UdF@!)uSd1hrvPcL40?B+|k}90jzvj%Gx%cJed%5r3 zcYnY8-u?1pp#L#*Q)^Qb6BBcvZw?2Un3z5Up94SG2=?cr)qe)RYyyu5AJOS_;N#e9 z6_N6&#OSn3Nu{ac zj*s7ej&Kd;>MZjgKl$sqs`}FoReY2s^V8M($AM%Vvo>aZn;v%V4QH%xlUqY?2EWyn zzC`OR(aut%viLD&U;2Du&}a8@1mCjX4auP=5I%d1I{lD#RJLYVlUL>wWYolxQD^JQ zcf)*Pu-{Ezqk8Ns=}vh!)RY&;fYEr05_ZrPvV&yy{$n1*TZK1Y740qQcF)_Hy^~)T z&<9gs9pb=g>^lZmisc#73 z->geE?W|W(bd>f><@pr1=~dN;U|NrPDKkefcIh}6oI@kEii_fZB#DQj6V>Vg&Fyt` zhe@&t7pCiC`Awd<8V@~wEq&Dape+<8DKru7BuKLSmpQ~D={%!UAM>2|CN*pE&B%5t z=G8=Pp8+p7%00`!9hyd$Y-#G&?~_|+*vEM?+=)Xz$$gTb(Okw)TCp0lq?uAZhjVI> zit#%j6#+@`)A-`3R*3iC0a`{LedQfARDaJq!tTv@g8`HV1a%t%RkD2Wv`q!*W^T@q zJ^J}C6r+X4oBIl zX%-EMV)>J)Pu}RL?L~g`6_HZ{ysFl>V97A^K{Q zb;at}l>-Y)Apj6jT`BK`bDmOXrt9=+7~YRj-@>cO2~Uud0*q?`m31;bcCidsS$|oF zZKY9JBeJKAs0i5nroT@x@~Hj&IS-M;N4TxX1DfP0ywl|{{z3&TunhnZni!7f$Rus) z;F8htOuuG9w~TQ4ksMCKZ{wmUo7uHl%Ij0TGpXI0Yy5l{+jD7LwfWtG0Ebm=n&+yz zLk`HavQqn^*p7zu7RU3Eq18>RZ7Tf5dKnQ$mkWJUg^g%N;Z&tQ02hrKIfg@yX9~~- z8C2>$oRD2<4{Io$c&Nm7T_V&Q)8StK6rm)szBN&mK`5Qz*wXzQ+0PY{ zNLCBeES)1({IJ+FcM&i1Of$UzauZkv@;A7?mz5jaQPEH+t;w%*WdBmzXb?E_NPC;sX)lKWP*C)x}feTqI^e zB`BeAE|MN|#F;h&jl(4m7Az79G8lZ4XM)5VQwv_4{N}Q-nlSYJDvJHU^ca|GI~V~g zzeV`<4{S!k{;4++?Bin zC*zqBRdWX00YJ*}(A-F4+pn;w0KmRJ;~@b63~?{$rf7{DX^%4WHv!`gm6sUcE^%wj zh7SQEIkll> Vb#S~5{OfPxbHx8}#n=D1`fp*2Go%0j literal 0 HcmV?d00001 diff --git a/structxt_1_1is__narrowing__conversion-members.html b/structxt_1_1is__narrowing__conversion-members.html new file mode 100644 index 000000000..135f05fe4 --- /dev/null +++ b/structxt_1_1is__narrowing__conversion-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_narrowing_conversion< FROM, TO > Member List
    +
    +
    + +

    This is the complete list of members for xt::is_narrowing_conversion< FROM, TO >, including all inherited members.

    + + + + +
    argument_type typedef (defined in xt::is_narrowing_conversion< FROM, TO >)xt::is_narrowing_conversion< FROM, TO >
    result_type typedef (defined in xt::is_narrowing_conversion< FROM, TO >)xt::is_narrowing_conversion< FROM, TO >
    value (defined in xt::is_narrowing_conversion< FROM, TO >)xt::is_narrowing_conversion< FROM, TO >static
    +
    + + + + diff --git a/structxt_1_1is__narrowing__conversion.html b/structxt_1_1is__narrowing__conversion.html new file mode 100644 index 000000000..52ef5fb86 --- /dev/null +++ b/structxt_1_1is__narrowing__conversion.html @@ -0,0 +1,210 @@ + + + + + + + +xtensor: xt::is_narrowing_conversion< FROM, TO > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::is_narrowing_conversion< FROM, TO > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using argument_type = std::decay_t<FROM>
     
    using result_type = std::decay_t<TO>
     
    + + + +

    +Static Public Attributes

    static const bool value
     
    +

    Detailed Description

    +
    template<class FROM, class TO>
    +struct xt::is_narrowing_conversion< FROM, TO >
    +

    Definition at line 614 of file xassign.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ argument_type

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + +
    using xt::is_narrowing_conversion< FROM, TO >::argument_type = std::decay_t<FROM>
    +
    + +

    Definition at line 616 of file xassign.hpp.

    + +
    +
    + +

    ◆ result_type

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + +
    using xt::is_narrowing_conversion< FROM, TO >::result_type = std::decay_t<TO>
    +
    + +

    Definition at line 617 of file xassign.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class FROM, class TO>
    + + + + + +
    + + + + +
    const bool xt::is_narrowing_conversion< FROM, TO >::value
    +
    +static
    +
    +Initial value:
    = xtl::is_arithmetic<result_type>::value
    +
    && (sizeof(result_type) < sizeof(argument_type)
    +
    || (xtl::is_integral<result_type>::value
    +
    && std::is_floating_point<argument_type>::value))
    +
    +

    Definition at line 619 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__not__xdummy__iterator.html b/structxt_1_1is__not__xdummy__iterator.html new file mode 100644 index 000000000..dac0febb3 --- /dev/null +++ b/structxt_1_1is__not__xdummy__iterator.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_not_xdummy_iterator< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_not_xdummy_iterator< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_not_xdummy_iterator< T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::is_not_xdummy_iterator< T >
    +

    Definition at line 455 of file xscalar.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__not__xdummy__iterator.png b/structxt_1_1is__not__xdummy__iterator.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf714cf2e111f69e063939f778237d006eee084 GIT binary patch literal 717 zcmV;;0y6!HP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~00075 zNkl5JOczE$x5Bsy?3A0|BP?j-0kiSm1CK`9sYLO5Xd@Xe5-_b-c6FvsR!T4v*eAV zm72vAKcVN9bmCVK)2TneuXU5;Q|dO)L;T;*^@Y{DN%ARmrf$UnmDBexEK7^-Tz;qb zFZfvsT=9o{Kbj}qJT8gTb>z%(*zI4qc}VgVMSPO%)tB%?hQ@Qwze%!3-#`8GSDGYW z)(G>EA>H8=jx&(!>L<8Smc^G}YyZXN&_r-csy zqqOh=V3Za<0F2VY2Y^vp_y90U3m*VRY2gFFC@p*d7^Q^|0Hd_<0brCCJ^+l;!Uuq+ z%*^H$Op<2R!k45`TKJMQN(Fvu+;6JZ`}fDNjjRuDFA?t+j zuvb?p@ZGlDvU${>pl7+5Cj@ivUtCqgKc|%xCgr7#-;O%7yLy_`#xKm%iSO6iU2;Bh zuY3F=Q;Sx7I~VihgZ-y&Ek)#i3;Y-peEqqBDr48TAY+C&R2+8P|^L#0t00000NkvXXu0mjfrI>8q literal 0 HcmV?d00001 diff --git a/structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html b/structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html new file mode 100644 index 000000000..f2cfb8385 --- /dev/null +++ b/structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_not_xdummy_iterator< xdummy_iterator< is_const, CT > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_not_xdummy_iterator< xdummy_iterator< is_const, CT > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<bool is_const, class CT>
    +struct xt::is_not_xdummy_iterator< xdummy_iterator< is_const, CT > >
    +

    Definition at line 460 of file xscalar.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.png b/structxt_1_1is__not__xdummy__iterator_3_01xdummy__iterator_3_01is__const_00_01_c_t_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7857b916094b3469ec30e1b7447f4971a10d2f GIT binary patch literal 1398 zcma)6X;4#F6n@VLK?RYqILek0aEE}6K#+zY1TiduA~k>_iWaaLc49!b6a*0~)S!l^ zm|&|ivIs;m5)cppD?FAF39>wh#E24%#Vu$;(nnjT_E&p<+;i@|=R0%G_uV-s1880b zOHGyn0AN7fMF|9eMGDjp(8Hj6LMiYVHKqZ+L7rNz7Ik0Dyk{1*l@skZ#jobVFC-EP zdhgJ)=L-6^Bsq|_8$i#0E~iBoQLGL~rR)ew0bgBu7*T1zVle}+_^7qZ+&@e$efGVz zyUW=_)^7cqchW5_eJK=UeSW^)N~3Re)>3zJekhs7FPK^dC#ZnQz2X?mqHgXG`2?C) zHCmsGK-OJ15QlNR>lB>Fc|2y;_;7prGvjHmyA^t|ZxYw1%vBH4sak&TVE+_-Wpg9)GgxoG4eUJw2K{Rqr%|r$PMw zsGgUh%AY%9cxr(%f0k9L%6nAYPlnSf_j0yhW+5yN|E_*9L<~}AOlyJ-$piBrLbz97 zp-GS5U{3gJEMDAcw;*U}%!z$lohnpKHXWHlYo_~zDC@ksN{z#7T$zSP#vDDuZMnrw zPS1Tf$1XDv4-=s|B78&IrM|RBIhB|iwMv^5lA-I;pd7MH_n)ty^A2Ra3qyp(Su$sn z40z6EFpSfDj}S+l<~F0PzJ8RYJ~1>ON{Qufjg{l6--$gxS_Qj5#~`8#p4F0Sgi&Kur7x;3_eZ?f3VR8zh2a^H!h~kT3sV;VFNANH!Slb~y3^44YKBxNWIQi;P?=HZL<4 zlL$9g$d~somGhvGd?q$Jm)Qr~w2LseBCe@w-_H8f4yrVaBvPVEBE-)&O4Fap_&AfH zKB-D$MM%P;$buMzKu~^!6pdJI6q4mgi+p~fD#x_tYl0Fjy*kCW@6ff*wqzB#I&gL@ zZLqe(Cft-)|4tJ(M{=ZXyA#G}>XMdSJ~$$}{ZjZKgrtlgo1Z9Y+jhJ`iq^N6H?R`A zIBGBVxZjlVWc^*%mPqm{liqiwVMj-{JJh6?Ue^p55faB-#Tg%5eJ_CeZkW82yaqu@ zuk4oH^MpZD=u}Mj{dw^@yB2bQJS3>ikb_J=`Mt zCR<#Tyn&9f6O0UH>`qx|F2TKAV6*HAPeDjM>d+(*$7jlf6|oPAl~eoW&7nH`5U{ZI zaP|g)jgPEQAw5!4u?CXI_}|y@G4S%L=uDM12*qcf>Q2>kou5J5F;7Bp-Z6I5MYlux z7}>a~9vYufw=tKs7e`MO4~;_I;(EUpQtx!b38_UNi8T4K^YjB-dL9fLEQscMi3h{D z-2`uhNM7BGN;D~5(`Z~xM~;<~2uV5gTy>W-1cl35PQM*@Xm-d$)%5fvsei2}5#Gv! zS?oP#?q^`QCHqU2+eA^3t0GW74x%b9t3w5=RX|YgLNtX^lApgBDC{O1_SFP@GPW&3 PCnP}iq)~3TAISa#8qcu| literal 0 HcmV?d00001 diff --git a/structxt_1_1is__reducer__options.html b/structxt_1_1is__reducer__options.html new file mode 100644 index 000000000..2255af90b --- /dev/null +++ b/structxt_1_1is__reducer__options.html @@ -0,0 +1,134 @@ + + + + + + + +xtensor: xt::is_reducer_options< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_reducer_options< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_reducer_options< T >:
    +
    +
    + + +xt::is_reducer_options_impl< std::decay_t< T > > + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::is_reducer_options< T >
    +

    Definition at line 174 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__reducer__options.png b/structxt_1_1is__reducer__options.png new file mode 100644 index 0000000000000000000000000000000000000000..d1f0cf7654d16c6c01c58c4b572cab2fcaa0a6fc GIT binary patch literal 1393 zcmb`HX;71A5XWC^2U-;|z+mMTWt`^pc*UTy|~BX}i8fYg~nvG0DnTM7std zS^TqF8eZ9$rRSUVJSxc1zZmy&dtQ5cQo2o%b-LD6N>0aa!sQ2$B3^TA=I_$&(_uFj z9%w8dt$PbqvD{+Kc+BhB@f96E@+3oOE*1|wTO5_FWp`k)bU07_nT2)}iXoUay71kzx&*xXp-mq;S6+h z3H~=(KJsFfA@Au2i8g0o*h$7^6M}B{2;}D8{bxvNyWECU<)n5fxhqTHt?f?ma?_nm z`RB1ByJd828CPG|ce2T&wnfUI$s!ZKzk@&}T)!x5JgutP zO{f*F#>IHp)ThQ5(nXj)!co=wNDQhb41S)RVX`nnRb4i}lc=B=vL_qNrfTWqGAYuN zSMK^|#xuBn+>~$w4@Lw8R}RiPQ@bHvsHd>m|3d_|dt$z(WvPL2s=8`N9Wrk$Y*!?` z&Kl~Om^Z5)2SpSs*05Hiev(Sp?t8{jK&O5`=0uCus?VpM&b*e<-MMc7FDMZHA&(=q zmShxoIUmhl`z5m^BMn>;p>|0)#9roGmlsQ>aoD=>C)XjOcxk90Ig_G^_#uhHW_RY4 zo!N_)EeBeln~Qp=ZI!c}MSU5GY-!AnXgi9zt2TugvNOgBJpuP+sFfAnbDz!n2TNZPbPbb%TmVkiKv!ob#_`kCd> zF|1={E-r|TVdm~cAnf~15Jh$%0^zs`*uiA!+=)UhV`*?Q?Uv#mGxw5t{TmYmIp0Rg z%zfB9VE=wM^)+Z|rtIq^bWtMLTjtaZ@wWJu&ZWvo$+r03;rqjp{5CAD0s0p8cs|t4 z=QRslhj+oGc4HStsx#f~CNYo+QCv-8Pr9#(HfBGK9p#DdTj2ek+jj)?9hmky!UAhpH)Y$?8d62SN996itqxuIG*|)nil%*s5*gisjL9APF$|1S zq>;z=(|#&r)r^g@WDl3G;;Rp~BDu@cEN8n(kJXP8k#}b~%0PK4H h--b{9*! + + + + + + +xtensor: xt::is_reducer_options_impl< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_reducer_options_impl< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_reducer_options_impl< T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::is_reducer_options_impl< T >
    +

    Definition at line 164 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__reducer__options__impl.png b/structxt_1_1is__reducer__options__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..1fab3759c3f5da7726b9e304285a03827debe16d GIT binary patch literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^hk-bNgBeIp4mKD+FU)?Z6dI9b8VHmT=&ZClFx?Hk{g zrN3Uj_?wOM#{1F|`;_grKL43^H?1!2{O$0_d7ryXtnZp!R;lzWm*_d;{&Pa?nqywp z`K8Yv-$^Nu`{{G?U2VdP8rzv^YO4P+`^ro8E zxo+-L(SLce>V@H(D~C@B#PMg(TT{DoMZ?nXUw&Vj*0g`2{=_G#s%(??tp0z}V0vCx zMWxzFYp!2>U(e4~(bv|Q?(s|&79eRbxE3vY%G(k2oN3USSh43A7nVDP1;eJeVs^75(_&m@uc2NgU&u9Dc+uDt2Ju2-9KOz&NLdO%nC zq{;fYV}G=t>29yRY~=a$<3z`0|0e#uxo4iO)_j|Z)roPl%hw#|YP(r(em`&K-^`+u z&E_|E|GcsL$In>{y8^Or_dY87c=N&Hsv{SomQQ+Ryu`)k=!IuNd)H_^+;yV7Xl2YD zt1DmE##Hq!JhwFZ{=#*~x5>>3&fZt1blYe~h#YTt|3fd^H9XnrFWe7&U0U<8_N3{T zMaO^aE1BXQ{%exT-yXT2KrhVellb)0!)Mqp00i_>zopr060`(bN~PV literal 0 HcmV?d00001 diff --git a/structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html b/structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..5bd22cea1 --- /dev/null +++ b/structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_reducer_options_impl< std::tuple< X... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_reducer_options_impl< std::tuple< X... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_reducer_options_impl< std::tuple< X... > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class... X>
    +struct xt::is_reducer_options_impl< std::tuple< X... > >
    +

    Definition at line 169 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.png b/structxt_1_1is__reducer__options__impl_3_01std_1_1tuple_3_01_x_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f54547b381feed21120ada43b869fac0a8dedb GIT binary patch literal 1324 zcmah}dsLEV82=EGrj<$Yxqck&gG3mrAI#0V-)6I@1JA4AJ^X*;{L;o&B@-kN15pzvp@0=W?E+IC_+; zi?<5|L9WzjN<0KPkO3Vx2Mz93CE|17`6zC4LZsbp2jue+>t69~Sr~CeHs+M_xn8da z@(|UwGN5zj#M8GxfPZ&F9nSm#L5>P4WqkqYvvwpMlY|}8$HdO&x}+?H}B7Vb71wWkHw$twAEF@U3+G}6ST z^Wrx>_L=<3$j%uJD}ryg>`s*AmwYl2zIiw!w|JQ3z`sOZl9^Or9r2@9b3`ZRKNi)m zgOAo`!qJ|sGRFyq;P9aW`i-Gq*RS5nlT0KfUwXKnW-FS+q8jUYYUIfx9s6(u*T(5H za}Na!D{fum#aLe-7Y>xi?l@Byu71-y#T#BmZB{Knl<~+_;XqOYcWYy}>{@@!>akU$ zTCXZ94fc9uE7nR{=qIYwwa(1mf*mRxw$blo*;7NEK`pBZkhf2Oa0(u^J6yvd43{Kt zX&?-DBzrz`GVOskd=0PkG5MGGk{4fSzKK+XrV9w=hHJtZ+PI`_%5v!NDMHHr|5lF$ zFs(>*HwKh60MxquiM6PZ=un-CTDlNCjTmfavjv-OS|r~e1P+C-t078d$JXyW2vQVe_0&x9u4LB3@#OvDMX znq{PF5KVc5ES1jEI5B^=-cx=GoRhf7np}4LbaI`oaQuQHJ)D`jrb&$iZ!)>P&;k5a zfb+?r!Ad1=yufHlpSc(F)}5+CWRt1tT)*(^?C9p$8CuC@-IPA9c`QhLC9iWe$JAIe z8aN*Ir==l7q1;tF=6OBW+;F!~ft5!TSy8V-YVY|-t8_0^nbX|7JSj3IpX`6oqXAzzE~Mq1lQmy{R%(;zz3UjbBZVh^G)v;LP4#E6kR(F;-f~ z@4gFy#hUZ+i$TWE;@~FU%C^xsSpIT48rB-rxu$`F&^L*2M?YuQNV+wA{#}sQ^WyEH zT{g8W`QYiwwU1?ijA!bhojKS_a^N7WAnM6TiY^H4l=YCY4F`$3M4XZ zW4+u-v8d15BcI%Ebi$do+-C`(!4c~|OoGaG`A&DuL|;C)gFCi!-_FihT^^$Wq4juG zMILYb-ZaB~S(z;_PD$mn* + + + + + + +xtensor: xt::is_specialization_of< TT, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_specialization_of< TT, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_specialization_of< TT, T >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<template< class... > class TT, class T>
    +struct xt::is_specialization_of< TT, T >
    +

    Definition at line 125 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__specialization__of.png b/structxt_1_1is__specialization__of.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6d195d2c570510fd00428fae71440274899d82 GIT binary patch literal 713 zcmeAS@N?(olHy`uVBq!ia0vp^`++!sgBeKHtA!*3Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_q`OPZ!6K3dXl{Z(drhAkb2s zcj@mx|C%ceI!QgJfyM{A3Oh{Wf5Efe!1#59!K61~&GS|Mn*8v*i=0K{l4mz;6A_Bv+0v;7Qg=EwroncP~6pN{o3xa z`=>`;_q?C!mCv_-pSJE{TVvkedg<@+ztr`o*qZ(I z_|!D-bA5OH@&6O=U;Tek+VEdWU;XhJWq%@bpUc*JeA>ih?|JX?|HtwFmOWhZd5+5Z z(@+1rcAu@Hf9j;Y%Fhlqd(U5)A0{uEuU2QgxsH{gex*1=$(nONl<^ET; zs^{__*%@q1e=r{KZ1pAzT6_UxL-ZTV5_~!@~%JL^WGNx)7`c^L}yED-TV3F*8^q+ zuQ>B_&eQv=HJ$lAD|a2z54IMyixA^E^3y-^mf2A++th7t@1`pM+w=a_{I5E*_xWxQ z`6Pb&=(aaP(b9PzrhhN0`FB$N_aEQ?Yxp#OUT-t;yjOA{KJtb3{}#jO|5u*JwojVd ztnXR==X3dU`D<(b6rcRR_3FNd```XQu|G#quT<~f8t33Yox;y-SN|v$u{XaxY0A># z_v;Tw*KT+sSpV~#?V + + + + + + +xtensor: xt::is_specialization_of< TT, TT< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_specialization_of< TT, TT< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_specialization_of< TT, TT< Ts... > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<template< class... > class TT, class... Ts>
    +struct xt::is_specialization_of< TT, TT< Ts... > >
    +

    Definition at line 130 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.png b/structxt_1_1is__specialization__of_3_01_t_t_00_01_t_t_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad1245af93cd5245777bd321847aebb6f4c88c0 GIT binary patch literal 1036 zcmeAS@N?(olHy`uVBq!ia0y~yVEh4O2XHV0$wTL+R{<&M0G|-o|Ns93nJ?aaE$u(F z+`>S!Kw|ot7Y`mh0E(NQ4O;?~<17jC3uXZF!N8np_7w&O=INd;jv*C{Z|4S1U#-By zrmp|@)BpO9xvN7RV)DO-yt$dupUfI)&cnHW#!S|hr{~Y;D9li4T`Z#S`OxE|X56Gh z6CMTEbWLBPvE+yF<9YY@)E$_1dTxJTv4K~OHM@OX&J!US&3!+DfGVchEBu>y+idQ% zf_ZPRSDyU8a&O;^_xJS8wyVAj<`LL$&EEgaigS8P{j`e7*B0ljX*8{UTKqNm`ICb` zANfZ0TisJS(|yQ3utt4D>P`Labsc-m4JUn3Z0oo`v)PJKkMsYPp!?$W`f*1O)tlWu zak_J5p7*78iI7+PN8?5QWj@+Hbx-8Wqpr3|#(tCR&Mfh9McMP8ADR?yLX`Yl~Ygx zVg(qU`eW(GV?`0|_txKfZWa43PB!d6d)hWR_q(rU%fFj@e6)Ua_wM~=pTB(M-md&? z-Z`mXU)}HA)eicj^RH6R==sO!r586R7T>qY`!%!eTzG$Sp3S-b;L81#Pi+p}J^gt4 zqx+|RiTpoRQT$#m^km(vS)tSIzh2$;`f5geWX)oo*Z)=b)h46|Yfg9m$>ET*s#E9t zk8^Sx4CA;fzlx?V-X3K2=(X1e`A6IN-#n`hukE@oeqZ;ix8eGu`m(RRPpxDA=sVF) z?0#*+{ww8ImjCcwnQy#j<+tjUaoYDZzow`C$-9((j5$YBBs%(4{nq2#cOUxSao$!g zL1*ia<-eyd_FFms*Syd_UyY~#%Dj0-`rs{7-DOEBKTj=NJo}dW>xG(3bKmdSy?x1# z)c*2v`$uy(zI!MCV2S^-AIu;7zs&voJ6P;h_^#dm4@7$F9<8rFwtM${hpu|>J-dJ3 pS2()7qM-vhVu9I= + + + + + + +xtensor: xt::is_xoptional_expression< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_xoptional_expression< E > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_xoptional_expression< E >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::is_xoptional_expression< E >
    +

    Definition at line 399 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1is__xoptional__expression.png b/structxt_1_1is__xoptional__expression.png new file mode 100644 index 0000000000000000000000000000000000000000..69765a33b9926f4547d3f9646d7e8ac58b6f1790 GIT binary patch literal 1167 zcmeAS@N?(olHy`uVBq!ia0y~yU~C4m12~w03f*F8(FfeDDeT9L6Mat8~F{Fa=?cCc*j}>@a z-1X=F{I7pcWt(Hn9E+Q`Ugb?S`s%B2MDUSlTAHTuW`lzsMy`__z1UPFSEo2k+6ZU7 zl32t4^lodzw;0)){C;^)xhrSC#ZFh*xxU}M`e1`fbLkXD&wY#4W%rr?F_*YA`Nc#} zbJO1oPOf{JcydSk-0F9Kr!h`%za78xcGZsm-K$IQSlzK&dUoBpHN`)5E~S~h{_y?x z#i!q{?6g;I;AB?LHr|wdmMzZqp1Y2W*z8BUO}{L@rk&~hxy|?Nie!`Sce3ARUb;TF z?8n@4=RNAI50ndeq<&XkoO7Wdw&sPYX?KRtu-t+x z1{UfKO^a8$8nan%J#pfe-1*!arwd;1>QVf`zxVacsNHw8-{0<>m~+eGEi=z5W%qAO z7*2`&oq0#C)O*MM>n3KoH{$;}Z;w`s+%$cPzVmI{Me4>+oxY;KGTohx7xh7>;4?}TB++db3R9~XU9%EaA!k0t3jf}q~))oW%in% zxbo|94FggkR|-{m*ACYV9x=8O5a*z0GrKKz{^cc7IA z6s2<~F?t@;lAMsT2F}RiIddi`EiI6#p*}jEVFFWwfhsct$JOiMP7DnmU?#64km&$q zc7zErG(>^v!j* zPRrSQ?utm{QF%Fap2U2E*BhD&B%9l%r)PX$eR|i^&xaos7Vp3FUVQVfb#_1h=>F{v zlwDn-?e{lhe^;Z==WF$GVg5$fZqT33p*?;I0i~TYp+#`88|B z<4-$JU)cU^yNdMIbz9!QaQhs+(UyPRVu6zjct2}2r!L&Jbhgn4`BTrIUGj4Xy1Z_Y zKtOlRk?O4(^ABzj`}+6qvX^EDC)X;R-1@&j{>tJa`IA*F@8_`lORRak&i!XVx6h}w zYjgI$uvyXlR1R8?QL+P%~8wD;P{4-75)$&D(1}N>&Mf-EzOC!lzEiuDCIgEO22WQ%mvv4FO#uAn8#@31 literal 0 HcmV?d00001 diff --git a/structxt_1_1is__xtensor__expression.html b/structxt_1_1is__xtensor__expression.html new file mode 100644 index 000000000..dc5d760c1 --- /dev/null +++ b/structxt_1_1is__xtensor__expression.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::is_xtensor_expression< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::is_xtensor_expression< E > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::is_xtensor_expression< E >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class E>
    +struct xt::is_xtensor_expression< E >
    +

    Definition at line 394 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1is__xtensor__expression.png b/structxt_1_1is__xtensor__expression.png new file mode 100644 index 0000000000000000000000000000000000000000..c4562f5c6bb3d0f9c5194d83b4059d4564aaf159 GIT binary patch literal 1116 zcmeAS@N?(olHy`uVBq!ia0y~yV5|bN12~w0q=KEF8<3I?@CkAK|NlRb`Qpvj(*8rs zEetdZB&MHv@!-J&pt$MTuq8k_&XOR%U@oF*0l6j~8=4 zN_ccN<2y3$GmHWRtedav`lt4~xZpT8zLXLXeQyK5hp z?%w`QJI(vj#|Kg`Z~xbMcs^_IZq?^IjrA?ckJzsM>fUPcE;+p8>F}_Zzn9&d@_D;^S?F2kweL4?H&1_>$M@@fH~LVgA%EO@>)-xIY9|-SPyJfI`=`p!o$tD;6{{xch*nMV30tUs zQUt^Z1Tkzc%$_;*%o#CmhPrk87#6TFtPXv_sNftQe^ib^C6$aH_tey|7FsYMNayjs-9Ku l@UVb0_`iTN?a^QS8w4+`y;{8B3$Pqu@O1TaS?83{1OQL#CZqrW literal 0 HcmV?d00001 diff --git a/structxt_1_1keep__dims__type.html b/structxt_1_1keep__dims__type.html new file mode 100644 index 000000000..40cdb537a --- /dev/null +++ b/structxt_1_1keep__dims__type.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: xt::keep_dims_type Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::keep_dims_type Struct Reference
    +
    +
    +
    +Inheritance diagram for xt::keep_dims_type:
    +
    +
    + +
    +

    Detailed Description

    +
    +

    Definition at line 41 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1keep__dims__type.png b/structxt_1_1keep__dims__type.png new file mode 100644 index 0000000000000000000000000000000000000000..55f1630385e3fe2efbfe558d69afc962cb55a090 GIT binary patch literal 601 zcmV-f0;c_mP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0005x zNkl}``NP3H~KRv5x4x;FzI2NtO%o|g^6 zQj1#Gvz7bwT%;8x7wMWMd}f>B9IUY$Y$}b5%67pJ(i4OHlp*FiK5{bJTr~bWC*5Nx zM%zQSCXN4-dZ=P0!b&;}bM=rI4vZKuRpz(VXZj%`TC6W%_iz!h6^V={1gKK zboKiT$6#++d&6i5FW%mI%QlV+Q#{oCz9nqR`-=BL92l??9b}qtf;uD{_R|Val_#~V z2~LxXcvU^B8H|%+)Y8<-X!|@v$WD4)F_>K0%NH**xky8GqI#V(wDVO)0VwI#r0I(` zn4@|CSV_w;Sr3Up*H(z%OkZ?!kD0W?rjbo`9TG9!$u700000NkvXXu0mjfq}mGz literal 0 HcmV?d00001 diff --git a/structxt_1_1make__invalid__type-members.html b/structxt_1_1make__invalid__type-members.html new file mode 100644 index 000000000..bbb4c91f9 --- /dev/null +++ b/structxt_1_1make__invalid__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::make_invalid_type< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::make_invalid_type< T >, including all inherited members.

    + + +
    type typedef (defined in xt::make_invalid_type< T >)xt::make_invalid_type< T >
    +
    + + + + diff --git a/structxt_1_1make__invalid__type.html b/structxt_1_1make__invalid__type.html new file mode 100644 index 000000000..bc86b23c8 --- /dev/null +++ b/structxt_1_1make__invalid__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::make_invalid_type< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::make_invalid_type< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = invalid_type
     
    +

    Detailed Description

    +
    template<class... T>
    +struct xt::make_invalid_type< T >
    +

    Definition at line 102 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... T>
    + + + + +
    using xt::make_invalid_type< T >::type = invalid_type
    +
    + +

    Definition at line 104 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1make__void-members.html b/structxt_1_1make__void-members.html new file mode 100644 index 000000000..5bde96baf --- /dev/null +++ b/structxt_1_1make__void-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::make_void< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::make_void< T >, including all inherited members.

    + + +
    type typedef (defined in xt::make_void< T >)xt::make_void< T >
    +
    + + + + diff --git a/structxt_1_1make__void.html b/structxt_1_1make__void.html new file mode 100644 index 000000000..16c370e2b --- /dev/null +++ b/structxt_1_1make__void.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::make_void< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::make_void< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = void
     
    +

    Detailed Description

    +
    template<class... T>
    +struct xt::make_void< T >
    +

    Definition at line 87 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... T>
    + + + + +
    using xt::make_void< T >::type = void
    +
    + +

    Definition at line 89 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1abs__fun-members.html b/structxt_1_1math_1_1abs__fun-members.html new file mode 100644 index 000000000..58aaa4f89 --- /dev/null +++ b/structxt_1_1math_1_1abs__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::abs_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::abs_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::abs_fun)xt::math::abs_funinline
    simd_apply(const B &arg) const (defined in xt::math::abs_fun)xt::math::abs_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1abs__fun.html b/structxt_1_1math_1_1abs__fun.html new file mode 100644 index 000000000..891878b5a --- /dev/null +++ b/structxt_1_1math_1_1abs__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::abs_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::abs_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 295 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::abs_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 295 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::abs_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 295 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1acos__fun-members.html b/structxt_1_1math_1_1acos__fun-members.html new file mode 100644 index 000000000..38460969e --- /dev/null +++ b/structxt_1_1math_1_1acos__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::acos_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::acos_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::acos_fun)xt::math::acos_funinline
    simd_apply(const B &arg) const (defined in xt::math::acos_fun)xt::math::acos_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1acos__fun.html b/structxt_1_1math_1_1acos__fun.html new file mode 100644 index 000000000..4790b8457 --- /dev/null +++ b/structxt_1_1math_1_1acos__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::acos_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::acos_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 319 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::acos_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 319 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::acos_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 319 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1acosh__fun-members.html b/structxt_1_1math_1_1acosh__fun-members.html new file mode 100644 index 000000000..ee281009d --- /dev/null +++ b/structxt_1_1math_1_1acosh__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::acosh_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::acosh_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::acosh_fun)xt::math::acosh_funinline
    simd_apply(const B &arg) const (defined in xt::math::acosh_fun)xt::math::acosh_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1acosh__fun.html b/structxt_1_1math_1_1acosh__fun.html new file mode 100644 index 000000000..403c35ea1 --- /dev/null +++ b/structxt_1_1math_1_1acosh__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::acosh_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::acosh_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 326 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::acosh_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 326 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::acosh_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 326 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1arg__fun-members.html b/structxt_1_1math_1_1arg__fun-members.html new file mode 100644 index 000000000..5aec886ca --- /dev/null +++ b/structxt_1_1math_1_1arg__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::arg_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::arg_fun, including all inherited members.

    + + + +
    operator()(const T &t) const (defined in xt::math::arg_fun)xt::math::arg_funinline
    simd_apply(const B &t) const (defined in xt::math::arg_fun)xt::math::arg_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1arg__fun.html b/structxt_1_1math_1_1arg__fun.html new file mode 100644 index 000000000..a33eabe2e --- /dev/null +++ b/structxt_1_1math_1_1arg__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::arg_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::arg_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &t) const
     
    template<class B>
    constexpr auto simd_apply (const B &t) const
     
    +

    Detailed Description

    +
    +

    Definition at line 194 of file xcomplex.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::arg_fun::operator() (const T & t) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 194 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::arg_fun::simd_apply (const B & t) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 194 of file xcomplex.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/misc/xcomplex.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1asin__fun-members.html b/structxt_1_1math_1_1asin__fun-members.html new file mode 100644 index 000000000..124f98b6c --- /dev/null +++ b/structxt_1_1math_1_1asin__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::asin_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::asin_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::asin_fun)xt::math::asin_funinline
    simd_apply(const B &arg) const (defined in xt::math::asin_fun)xt::math::asin_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1asin__fun.html b/structxt_1_1math_1_1asin__fun.html new file mode 100644 index 000000000..9eab5cba0 --- /dev/null +++ b/structxt_1_1math_1_1asin__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::asin_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::asin_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 318 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::asin_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 318 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::asin_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 318 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1asinh__fun-members.html b/structxt_1_1math_1_1asinh__fun-members.html new file mode 100644 index 000000000..ffa347c29 --- /dev/null +++ b/structxt_1_1math_1_1asinh__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::asinh_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::asinh_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::asinh_fun)xt::math::asinh_funinline
    simd_apply(const B &arg) const (defined in xt::math::asinh_fun)xt::math::asinh_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1asinh__fun.html b/structxt_1_1math_1_1asinh__fun.html new file mode 100644 index 000000000..ce75fdf8d --- /dev/null +++ b/structxt_1_1math_1_1asinh__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::asinh_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::asinh_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 325 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::asinh_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 325 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::asinh_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 325 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1atan2__fun-members.html b/structxt_1_1math_1_1atan2__fun-members.html new file mode 100644 index 000000000..44bb6dc28 --- /dev/null +++ b/structxt_1_1math_1_1atan2__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::atan2_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::atan2_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::atan2_fun)xt::math::atan2_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::atan2_fun)xt::math::atan2_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1atan2__fun.html b/structxt_1_1math_1_1atan2__fun.html new file mode 100644 index 000000000..e26c61388 --- /dev/null +++ b/structxt_1_1math_1_1atan2__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::atan2_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::atan2_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 321 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::atan2_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 321 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::atan2_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 321 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1atan__fun-members.html b/structxt_1_1math_1_1atan__fun-members.html new file mode 100644 index 000000000..795e3552f --- /dev/null +++ b/structxt_1_1math_1_1atan__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::atan_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::atan_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::atan_fun)xt::math::atan_funinline
    simd_apply(const B &arg) const (defined in xt::math::atan_fun)xt::math::atan_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1atan__fun.html b/structxt_1_1math_1_1atan__fun.html new file mode 100644 index 000000000..13e022112 --- /dev/null +++ b/structxt_1_1math_1_1atan__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::atan_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::atan_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 320 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::atan_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 320 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::atan_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 320 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1atanh__fun-members.html b/structxt_1_1math_1_1atanh__fun-members.html new file mode 100644 index 000000000..78d80570d --- /dev/null +++ b/structxt_1_1math_1_1atanh__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::atanh_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::atanh_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::atanh_fun)xt::math::atanh_funinline
    simd_apply(const B &arg) const (defined in xt::math::atanh_fun)xt::math::atanh_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1atanh__fun.html b/structxt_1_1math_1_1atanh__fun.html new file mode 100644 index 000000000..f20d0ad05 --- /dev/null +++ b/structxt_1_1math_1_1atanh__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::atanh_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::atanh_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 327 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::atanh_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 327 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::atanh_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 327 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1cbrt__fun-members.html b/structxt_1_1math_1_1cbrt__fun-members.html new file mode 100644 index 000000000..47e60db0b --- /dev/null +++ b/structxt_1_1math_1_1cbrt__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::cbrt_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::cbrt_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::cbrt_fun)xt::math::cbrt_funinline
    simd_apply(const B &arg) const (defined in xt::math::cbrt_fun)xt::math::cbrt_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1cbrt__fun.html b/structxt_1_1math_1_1cbrt__fun.html new file mode 100644 index 000000000..f4592abea --- /dev/null +++ b/structxt_1_1math_1_1cbrt__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::cbrt_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::cbrt_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 313 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::cbrt_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 313 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::cbrt_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 313 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1ceil__fun-members.html b/structxt_1_1math_1_1ceil__fun-members.html new file mode 100644 index 000000000..7345cf222 --- /dev/null +++ b/structxt_1_1math_1_1ceil__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::ceil_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::ceil_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::ceil_fun)xt::math::ceil_funinline
    simd_apply(const B &arg) const (defined in xt::math::ceil_fun)xt::math::ceil_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1ceil__fun.html b/structxt_1_1math_1_1ceil__fun.html new file mode 100644 index 000000000..6ed7d4fdd --- /dev/null +++ b/structxt_1_1math_1_1ceil__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::ceil_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::ceil_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 332 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::ceil_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 332 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::ceil_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 332 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1clamp__fun-members.html b/structxt_1_1math_1_1clamp__fun-members.html new file mode 100644 index 000000000..6ea85d1cf --- /dev/null +++ b/structxt_1_1math_1_1clamp__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::clamp_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::clamp_fun, including all inherited members.

    + + + +
    operator()(const A1 &v, const A2 &lo, const A3 &hi) const (defined in xt::math::clamp_fun)xt::math::clamp_funinline
    simd_apply(const A1 &v, const A2 &lo, const A3 &hi) const (defined in xt::math::clamp_fun)xt::math::clamp_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1clamp__fun.html b/structxt_1_1math_1_1clamp__fun.html new file mode 100644 index 000000000..352870261 --- /dev/null +++ b/structxt_1_1math_1_1clamp__fun.html @@ -0,0 +1,214 @@ + + + + + + + +xtensor: xt::math::clamp_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::clamp_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class A1, class A2, class A3>
    constexpr auto operator() (const A1 &v, const A2 &lo, const A3 &hi) const
     
    template<class A1, class A2, class A3>
    constexpr auto simd_apply (const A1 &v, const A2 &lo, const A3 &hi) const
     
    +

    Detailed Description

    +
    +

    Definition at line 604 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class A1, class A2, class A3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::math::clamp_fun::operator() (const A1 & v,
    const A2 & lo,
    const A3 & hi ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 607 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class A1, class A2, class A3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::math::clamp_fun::simd_apply (const A1 & v,
    const A2 & lo,
    const A3 & hi ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 613 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1conj__fun-members.html b/structxt_1_1math_1_1conj__fun-members.html new file mode 100644 index 000000000..72cee5c3b --- /dev/null +++ b/structxt_1_1math_1_1conj__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::conj_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::conj_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::conj_fun)xt::math::conj_funinline
    simd_apply(const B &arg) const (defined in xt::math::conj_fun)xt::math::conj_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1conj__fun.html b/structxt_1_1math_1_1conj__fun.html new file mode 100644 index 000000000..02fe6d1d3 --- /dev/null +++ b/structxt_1_1math_1_1conj__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::conj_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::conj_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 341 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::conj_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 341 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::conj_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 341 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1conj__impl__fun-members.html b/structxt_1_1math_1_1conj__impl__fun-members.html new file mode 100644 index 000000000..aed0b3dc2 --- /dev/null +++ b/structxt_1_1math_1_1conj__impl__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::conj_impl_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::conj_impl_fun, including all inherited members.

    + + + +
    operator()(const T &t) const (defined in xt::math::conj_impl_fun)xt::math::conj_impl_funinline
    simd_apply(const B &t) const (defined in xt::math::conj_impl_fun)xt::math::conj_impl_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1conj__impl__fun.html b/structxt_1_1math_1_1conj__impl__fun.html new file mode 100644 index 000000000..2a4ba43be --- /dev/null +++ b/structxt_1_1math_1_1conj__impl__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::conj_impl_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::conj_impl_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &t) const
     
    template<class B>
    constexpr auto simd_apply (const B &t) const
     
    +

    Detailed Description

    +
    +

    Definition at line 195 of file xcomplex.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::conj_impl_fun::operator() (const T & t) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 195 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::conj_impl_fun::simd_apply (const B & t) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 195 of file xcomplex.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/misc/xcomplex.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1cos__fun-members.html b/structxt_1_1math_1_1cos__fun-members.html new file mode 100644 index 000000000..ca054d7ac --- /dev/null +++ b/structxt_1_1math_1_1cos__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::cos_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::cos_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::cos_fun)xt::math::cos_funinline
    simd_apply(const B &arg) const (defined in xt::math::cos_fun)xt::math::cos_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1cos__fun.html b/structxt_1_1math_1_1cos__fun.html new file mode 100644 index 000000000..a01358a16 --- /dev/null +++ b/structxt_1_1math_1_1cos__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::cos_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::cos_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 316 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::cos_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 316 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::cos_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 316 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1cosh__fun-members.html b/structxt_1_1math_1_1cosh__fun-members.html new file mode 100644 index 000000000..65e6658f1 --- /dev/null +++ b/structxt_1_1math_1_1cosh__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::cosh_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::cosh_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::cosh_fun)xt::math::cosh_funinline
    simd_apply(const B &arg) const (defined in xt::math::cosh_fun)xt::math::cosh_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1cosh__fun.html b/structxt_1_1math_1_1cosh__fun.html new file mode 100644 index 000000000..2977261a4 --- /dev/null +++ b/structxt_1_1math_1_1cosh__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::cosh_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::cosh_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 323 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::cosh_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 323 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::cosh_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 323 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1deg2rad-members.html b/structxt_1_1math_1_1deg2rad-members.html new file mode 100644 index 000000000..86ab98488 --- /dev/null +++ b/structxt_1_1math_1_1deg2rad-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::deg2rad Member List
    +
    +
    + +

    This is the complete list of members for xt::math::deg2rad, including all inherited members.

    + + + + + +
    operator()(const A &a) const noexcept (defined in xt::math::deg2rad)xt::math::deg2radinline
    operator()(const A &a) const noexcept (defined in xt::math::deg2rad)xt::math::deg2radinline
    simd_apply(const A &a) const noexcept (defined in xt::math::deg2rad)xt::math::deg2radinline
    simd_apply(const A &a) const noexcept (defined in xt::math::deg2rad)xt::math::deg2radinline
    +
    + + + + diff --git a/structxt_1_1math_1_1deg2rad.html b/structxt_1_1math_1_1deg2rad.html new file mode 100644 index 000000000..e1c2a2632 --- /dev/null +++ b/structxt_1_1math_1_1deg2rad.html @@ -0,0 +1,260 @@ + + + + + + + +xtensor: xt::math::deg2rad Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::deg2rad Struct Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    constexpr double operator() (const A &a) const noexcept
     
    template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    constexpr auto operator() (const A &a) const noexcept
     
    template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    constexpr double simd_apply (const A &a) const noexcept
     
    template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    constexpr auto simd_apply (const A &a) const noexcept
     
    +

    Detailed Description

    +
    +

    Definition at line 619 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    double xt::math::deg2rad::operator() (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 622 of file xmath.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    auto xt::math::deg2rad::operator() (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 628 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply() [1/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    double xt::math::deg2rad::simd_apply (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 634 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply() [2/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    auto xt::math::deg2rad::simd_apply (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 640 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1erf__fun-members.html b/structxt_1_1math_1_1erf__fun-members.html new file mode 100644 index 000000000..e66b7703c --- /dev/null +++ b/structxt_1_1math_1_1erf__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::erf_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::erf_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::erf_fun)xt::math::erf_funinline
    simd_apply(const B &arg) const (defined in xt::math::erf_fun)xt::math::erf_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1erf__fun.html b/structxt_1_1math_1_1erf__fun.html new file mode 100644 index 000000000..bcea778dc --- /dev/null +++ b/structxt_1_1math_1_1erf__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::erf_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::erf_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 328 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::erf_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 328 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::erf_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 328 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1erfc__fun-members.html b/structxt_1_1math_1_1erfc__fun-members.html new file mode 100644 index 000000000..6f750db1b --- /dev/null +++ b/structxt_1_1math_1_1erfc__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::erfc_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::erfc_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::erfc_fun)xt::math::erfc_funinline
    simd_apply(const B &arg) const (defined in xt::math::erfc_fun)xt::math::erfc_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1erfc__fun.html b/structxt_1_1math_1_1erfc__fun.html new file mode 100644 index 000000000..4eaaaee3d --- /dev/null +++ b/structxt_1_1math_1_1erfc__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::erfc_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::erfc_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 329 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::erfc_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 329 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::erfc_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 329 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1exp2__fun-members.html b/structxt_1_1math_1_1exp2__fun-members.html new file mode 100644 index 000000000..c1ddf685b --- /dev/null +++ b/structxt_1_1math_1_1exp2__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::exp2_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::exp2_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::exp2_fun)xt::math::exp2_funinline
    simd_apply(const B &arg) const (defined in xt::math::exp2_fun)xt::math::exp2_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1exp2__fun.html b/structxt_1_1math_1_1exp2__fun.html new file mode 100644 index 000000000..5d021b438 --- /dev/null +++ b/structxt_1_1math_1_1exp2__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::exp2_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::exp2_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 305 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::exp2_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 305 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::exp2_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 305 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1exp__fun-members.html b/structxt_1_1math_1_1exp__fun-members.html new file mode 100644 index 000000000..0f471ec33 --- /dev/null +++ b/structxt_1_1math_1_1exp__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::exp_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::exp_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::exp_fun)xt::math::exp_funinline
    simd_apply(const B &arg) const (defined in xt::math::exp_fun)xt::math::exp_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1exp__fun.html b/structxt_1_1math_1_1exp__fun.html new file mode 100644 index 000000000..f73fbafa5 --- /dev/null +++ b/structxt_1_1math_1_1exp__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::exp_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::exp_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 304 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::exp_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 304 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::exp_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 304 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1expm1__fun-members.html b/structxt_1_1math_1_1expm1__fun-members.html new file mode 100644 index 000000000..9735627ff --- /dev/null +++ b/structxt_1_1math_1_1expm1__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::expm1_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::expm1_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::expm1_fun)xt::math::expm1_funinline
    simd_apply(const B &arg) const (defined in xt::math::expm1_fun)xt::math::expm1_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1expm1__fun.html b/structxt_1_1math_1_1expm1__fun.html new file mode 100644 index 000000000..c81ac364c --- /dev/null +++ b/structxt_1_1math_1_1expm1__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::expm1_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::expm1_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 306 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::expm1_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 306 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::expm1_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 306 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1fabs__fun-members.html b/structxt_1_1math_1_1fabs__fun-members.html new file mode 100644 index 000000000..ebcda39f8 --- /dev/null +++ b/structxt_1_1math_1_1fabs__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::fabs_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::fabs_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::fabs_fun)xt::math::fabs_funinline
    simd_apply(const B &arg) const (defined in xt::math::fabs_fun)xt::math::fabs_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1fabs__fun.html b/structxt_1_1math_1_1fabs__fun.html new file mode 100644 index 000000000..d1ec7788f --- /dev/null +++ b/structxt_1_1math_1_1fabs__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::fabs_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::fabs_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 297 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::fabs_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 297 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::fabs_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 297 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1fdim__fun-members.html b/structxt_1_1math_1_1fdim__fun-members.html new file mode 100644 index 000000000..6ebf41c9d --- /dev/null +++ b/structxt_1_1math_1_1fdim__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::fdim_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::fdim_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::fdim_fun)xt::math::fdim_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::fdim_fun)xt::math::fdim_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1fdim__fun.html b/structxt_1_1math_1_1fdim__fun.html new file mode 100644 index 000000000..4dddb36bc --- /dev/null +++ b/structxt_1_1math_1_1fdim__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::fdim_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::fdim_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 303 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fdim_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 303 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fdim_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 303 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1floor__fun-members.html b/structxt_1_1math_1_1floor__fun-members.html new file mode 100644 index 000000000..344a85c00 --- /dev/null +++ b/structxt_1_1math_1_1floor__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::floor_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::floor_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::floor_fun)xt::math::floor_funinline
    simd_apply(const B &arg) const (defined in xt::math::floor_fun)xt::math::floor_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1floor__fun.html b/structxt_1_1math_1_1floor__fun.html new file mode 100644 index 000000000..2415d0c00 --- /dev/null +++ b/structxt_1_1math_1_1floor__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::floor_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::floor_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 333 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::floor_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 333 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::floor_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 333 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1fma__fun-members.html b/structxt_1_1math_1_1fma__fun-members.html new file mode 100644 index 000000000..fa3b9c7dc --- /dev/null +++ b/structxt_1_1math_1_1fma__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::fma_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::fma_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2, const T3 &arg3) const (defined in xt::math::fma_fun)xt::math::fma_funinline
    simd_apply(const B &arg1, const B &arg2, const B &arg3) const (defined in xt::math::fma_fun)xt::math::fma_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1fma__fun.html b/structxt_1_1math_1_1fma__fun.html new file mode 100644 index 000000000..28a1ace9d --- /dev/null +++ b/structxt_1_1math_1_1fma__fun.html @@ -0,0 +1,214 @@ + + + + + + + +xtensor: xt::math::fma_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::fma_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2, class T3>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2, const T3 &arg3) const
     
    template<class B>
    auto simd_apply (const B &arg1, const B &arg2, const B &arg3) const
     
    +

    Detailed Description

    +
    +

    Definition at line 300 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2, class T3>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::math::fma_fun::operator() (const T1 & arg1,
    const T2 & arg2,
    const T3 & arg3 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 300 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    auto xt::math::fma_fun::simd_apply (const B & arg1,
    const B & arg2,
    const B & arg3 ) const
    +
    +inline
    +
    + +

    Definition at line 300 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1fmax__fun-members.html b/structxt_1_1math_1_1fmax__fun-members.html new file mode 100644 index 000000000..224b10c7e --- /dev/null +++ b/structxt_1_1math_1_1fmax__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::fmax_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::fmax_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::fmax_fun)xt::math::fmax_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::fmax_fun)xt::math::fmax_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1fmax__fun.html b/structxt_1_1math_1_1fmax__fun.html new file mode 100644 index 000000000..b78358095 --- /dev/null +++ b/structxt_1_1math_1_1fmax__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::fmax_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::fmax_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 301 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fmax_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 301 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fmax_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 301 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1fmin__fun-members.html b/structxt_1_1math_1_1fmin__fun-members.html new file mode 100644 index 000000000..9465f31ff --- /dev/null +++ b/structxt_1_1math_1_1fmin__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::fmin_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::fmin_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::fmin_fun)xt::math::fmin_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::fmin_fun)xt::math::fmin_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1fmin__fun.html b/structxt_1_1math_1_1fmin__fun.html new file mode 100644 index 000000000..b7800e6ca --- /dev/null +++ b/structxt_1_1math_1_1fmin__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::fmin_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::fmin_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 302 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fmin_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 302 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fmin_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 302 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1fmod__fun-members.html b/structxt_1_1math_1_1fmod__fun-members.html new file mode 100644 index 000000000..4d7a730f0 --- /dev/null +++ b/structxt_1_1math_1_1fmod__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::fmod_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::fmod_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::fmod_fun)xt::math::fmod_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::fmod_fun)xt::math::fmod_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1fmod__fun.html b/structxt_1_1math_1_1fmod__fun.html new file mode 100644 index 000000000..383e9e4a7 --- /dev/null +++ b/structxt_1_1math_1_1fmod__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::fmod_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::fmod_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 298 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fmod_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 298 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::fmod_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 298 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1hypot__fun-members.html b/structxt_1_1math_1_1hypot__fun-members.html new file mode 100644 index 000000000..249672991 --- /dev/null +++ b/structxt_1_1math_1_1hypot__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::hypot_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::hypot_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::hypot_fun)xt::math::hypot_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::hypot_fun)xt::math::hypot_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1hypot__fun.html b/structxt_1_1math_1_1hypot__fun.html new file mode 100644 index 000000000..0c9d6c2e7 --- /dev/null +++ b/structxt_1_1math_1_1hypot__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::hypot_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::hypot_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 314 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::hypot_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 314 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::hypot_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 314 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1isfinite__fun-members.html b/structxt_1_1math_1_1isfinite__fun-members.html new file mode 100644 index 000000000..c27fb7cd2 --- /dev/null +++ b/structxt_1_1math_1_1isfinite__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::isfinite_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::isfinite_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::isfinite_fun)xt::math::isfinite_funinline
    simd_apply(const B &arg) const (defined in xt::math::isfinite_fun)xt::math::isfinite_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1isfinite__fun.html b/structxt_1_1math_1_1isfinite__fun.html new file mode 100644 index 000000000..0f1efa6d4 --- /dev/null +++ b/structxt_1_1math_1_1isfinite__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::isfinite_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::isfinite_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 338 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::isfinite_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 338 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::isfinite_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 338 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1isinf__fun-members.html b/structxt_1_1math_1_1isinf__fun-members.html new file mode 100644 index 000000000..34f2bc48d --- /dev/null +++ b/structxt_1_1math_1_1isinf__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::isinf_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::isinf_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::isinf_fun)xt::math::isinf_funinline
    simd_apply(const B &arg) const (defined in xt::math::isinf_fun)xt::math::isinf_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1isinf__fun.html b/structxt_1_1math_1_1isinf__fun.html new file mode 100644 index 000000000..0c90a1b5a --- /dev/null +++ b/structxt_1_1math_1_1isinf__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::isinf_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::isinf_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 339 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::isinf_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 339 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::isinf_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 339 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1isnan__fun-members.html b/structxt_1_1math_1_1isnan__fun-members.html new file mode 100644 index 000000000..a90848490 --- /dev/null +++ b/structxt_1_1math_1_1isnan__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::isnan_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::isnan_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::isnan_fun)xt::math::isnan_funinline
    simd_apply(const B &arg) const (defined in xt::math::isnan_fun)xt::math::isnan_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1isnan__fun.html b/structxt_1_1math_1_1isnan__fun.html new file mode 100644 index 000000000..769da9e73 --- /dev/null +++ b/structxt_1_1math_1_1isnan__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::isnan_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::isnan_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 340 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::isnan_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 340 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::isnan_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 340 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1lgamma__fun-members.html b/structxt_1_1math_1_1lgamma__fun-members.html new file mode 100644 index 000000000..49f711899 --- /dev/null +++ b/structxt_1_1math_1_1lgamma__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::lgamma_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::lgamma_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::lgamma_fun)xt::math::lgamma_funinline
    simd_apply(const B &arg) const (defined in xt::math::lgamma_fun)xt::math::lgamma_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1lgamma__fun.html b/structxt_1_1math_1_1lgamma__fun.html new file mode 100644 index 000000000..8e4e45c91 --- /dev/null +++ b/structxt_1_1math_1_1lgamma__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::lgamma_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::lgamma_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 331 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::lgamma_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 331 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::lgamma_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 331 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1log10__fun-members.html b/structxt_1_1math_1_1log10__fun-members.html new file mode 100644 index 000000000..ebe6c697b --- /dev/null +++ b/structxt_1_1math_1_1log10__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::log10_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::log10_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::log10_fun)xt::math::log10_funinline
    simd_apply(const B &arg) const (defined in xt::math::log10_fun)xt::math::log10_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1log10__fun.html b/structxt_1_1math_1_1log10__fun.html new file mode 100644 index 000000000..72a445518 --- /dev/null +++ b/structxt_1_1math_1_1log10__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::log10_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::log10_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 308 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::log10_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 308 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::log10_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 308 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1log1p__fun-members.html b/structxt_1_1math_1_1log1p__fun-members.html new file mode 100644 index 000000000..175ead50c --- /dev/null +++ b/structxt_1_1math_1_1log1p__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::log1p_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::log1p_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::log1p_fun)xt::math::log1p_funinline
    simd_apply(const B &arg) const (defined in xt::math::log1p_fun)xt::math::log1p_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1log1p__fun.html b/structxt_1_1math_1_1log1p__fun.html new file mode 100644 index 000000000..14cd2ff71 --- /dev/null +++ b/structxt_1_1math_1_1log1p__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::log1p_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::log1p_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 310 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::log1p_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 310 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::log1p_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 310 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1log2__fun-members.html b/structxt_1_1math_1_1log2__fun-members.html new file mode 100644 index 000000000..f51a16659 --- /dev/null +++ b/structxt_1_1math_1_1log2__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::log2_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::log2_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::log2_fun)xt::math::log2_funinline
    simd_apply(const B &arg) const (defined in xt::math::log2_fun)xt::math::log2_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1log2__fun.html b/structxt_1_1math_1_1log2__fun.html new file mode 100644 index 000000000..23864a5ba --- /dev/null +++ b/structxt_1_1math_1_1log2__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::log2_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::log2_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 309 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::log2_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 309 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::log2_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 309 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1log__fun-members.html b/structxt_1_1math_1_1log__fun-members.html new file mode 100644 index 000000000..12b9b88fe --- /dev/null +++ b/structxt_1_1math_1_1log__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::log_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::log_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::log_fun)xt::math::log_funinline
    simd_apply(const B &arg) const (defined in xt::math::log_fun)xt::math::log_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1log__fun.html b/structxt_1_1math_1_1log__fun.html new file mode 100644 index 000000000..5eafe9173 --- /dev/null +++ b/structxt_1_1math_1_1log__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::log_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::log_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 307 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::log_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 307 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::log_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 307 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1maximum-members.html b/structxt_1_1math_1_1maximum-members.html new file mode 100644 index 000000000..1ca74812c --- /dev/null +++ b/structxt_1_1math_1_1maximum-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::maximum< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::math::maximum< T >, including all inherited members.

    + + + +
    operator()(const A1 &t1, const A2 &t2) const noexcept (defined in xt::math::maximum< T >)xt::math::maximum< T >inline
    simd_apply(const A1 &t1, const A2 &t2) const noexcept (defined in xt::math::maximum< T >)xt::math::maximum< T >inline
    +
    + + + + diff --git a/structxt_1_1math_1_1maximum.html b/structxt_1_1math_1_1maximum.html new file mode 100644 index 000000000..0b02a4111 --- /dev/null +++ b/structxt_1_1math_1_1maximum.html @@ -0,0 +1,209 @@ + + + + + + + +xtensor: xt::math::maximum< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::maximum< T > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class A1, class A2>
    constexpr auto operator() (const A1 &t1, const A2 &t2) const noexcept
     
    template<class A1, class A2>
    constexpr auto simd_apply (const A1 &t1, const A2 &t2) const noexcept
     
    +

    Detailed Description

    +
    template<class T = void>
    +struct xt::math::maximum< T >
    +

    Definition at line 589 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T = void>
    +
    +template<class A1, class A2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::maximum< T >::operator() (const A1 & t1,
    const A2 & t2 ) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 592 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class T = void>
    +
    +template<class A1, class A2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::maximum< T >::simd_apply (const A1 & t1,
    const A2 & t2 ) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 598 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1minimum-members.html b/structxt_1_1math_1_1minimum-members.html new file mode 100644 index 000000000..189254ff8 --- /dev/null +++ b/structxt_1_1math_1_1minimum-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::minimum< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::math::minimum< T >, including all inherited members.

    + + + +
    operator()(const A1 &t1, const A2 &t2) const noexcept (defined in xt::math::minimum< T >)xt::math::minimum< T >inline
    simd_apply(const A1 &t1, const A2 &t2) const noexcept (defined in xt::math::minimum< T >)xt::math::minimum< T >inline
    +
    + + + + diff --git a/structxt_1_1math_1_1minimum.html b/structxt_1_1math_1_1minimum.html new file mode 100644 index 000000000..ce78f3c77 --- /dev/null +++ b/structxt_1_1math_1_1minimum.html @@ -0,0 +1,209 @@ + + + + + + + +xtensor: xt::math::minimum< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::minimum< T > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class A1, class A2>
    constexpr auto operator() (const A1 &t1, const A2 &t2) const noexcept
     
    template<class A1, class A2>
    constexpr auto simd_apply (const A1 &t1, const A2 &t2) const noexcept
     
    +

    Detailed Description

    +
    template<class T = void>
    +struct xt::math::minimum< T >
    +

    Definition at line 573 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T = void>
    +
    +template<class A1, class A2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::minimum< T >::operator() (const A1 & t1,
    const A2 & t2 ) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 576 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class T = void>
    +
    +template<class A1, class A2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::minimum< T >::simd_apply (const A1 & t1,
    const A2 & t2 ) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 582 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1nearbyint__fun-members.html b/structxt_1_1math_1_1nearbyint__fun-members.html new file mode 100644 index 000000000..ab34ede52 --- /dev/null +++ b/structxt_1_1math_1_1nearbyint__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::nearbyint_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::nearbyint_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::nearbyint_fun)xt::math::nearbyint_funinline
    simd_apply(const B &arg) const (defined in xt::math::nearbyint_fun)xt::math::nearbyint_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1nearbyint__fun.html b/structxt_1_1math_1_1nearbyint__fun.html new file mode 100644 index 000000000..406774f24 --- /dev/null +++ b/structxt_1_1math_1_1nearbyint__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::nearbyint_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::nearbyint_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 336 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::nearbyint_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 336 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::nearbyint_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 336 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1norm__fun-members.html b/structxt_1_1math_1_1norm__fun-members.html new file mode 100644 index 000000000..cafa142fa --- /dev/null +++ b/structxt_1_1math_1_1norm__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::norm_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::norm_fun, including all inherited members.

    + + + +
    operator()(const T &t) const (defined in xt::math::norm_fun)xt::math::norm_funinline
    simd_apply(const B &t) const (defined in xt::math::norm_fun)xt::math::norm_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1norm__fun.html b/structxt_1_1math_1_1norm__fun.html new file mode 100644 index 000000000..3cfeb3771 --- /dev/null +++ b/structxt_1_1math_1_1norm__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::norm_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::norm_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &t) const
     
    template<class B>
    constexpr auto simd_apply (const B &t) const
     
    +

    Detailed Description

    +
    +

    Definition at line 193 of file xcomplex.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::norm_fun::operator() (const T & t) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 193 of file xcomplex.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::norm_fun::simd_apply (const B & t) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 193 of file xcomplex.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/misc/xcomplex.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1pow__fun-members.html b/structxt_1_1math_1_1pow__fun-members.html new file mode 100644 index 000000000..b8b967232 --- /dev/null +++ b/structxt_1_1math_1_1pow__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::pow_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::pow_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::pow_fun)xt::math::pow_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::pow_fun)xt::math::pow_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1pow__fun.html b/structxt_1_1math_1_1pow__fun.html new file mode 100644 index 000000000..c1ef79be4 --- /dev/null +++ b/structxt_1_1math_1_1pow__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::pow_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::pow_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 311 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::pow_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 311 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::pow_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 311 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1rad2deg-members.html b/structxt_1_1math_1_1rad2deg-members.html new file mode 100644 index 000000000..6d790a240 --- /dev/null +++ b/structxt_1_1math_1_1rad2deg-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::rad2deg Member List
    +
    +
    + +

    This is the complete list of members for xt::math::rad2deg, including all inherited members.

    + + + + + +
    operator()(const A &a) const noexcept (defined in xt::math::rad2deg)xt::math::rad2deginline
    operator()(const A &a) const noexcept (defined in xt::math::rad2deg)xt::math::rad2deginline
    simd_apply(const A &a) const noexcept (defined in xt::math::rad2deg)xt::math::rad2deginline
    simd_apply(const A &a) const noexcept (defined in xt::math::rad2deg)xt::math::rad2deginline
    +
    + + + + diff --git a/structxt_1_1math_1_1rad2deg.html b/structxt_1_1math_1_1rad2deg.html new file mode 100644 index 000000000..adf2a7eb1 --- /dev/null +++ b/structxt_1_1math_1_1rad2deg.html @@ -0,0 +1,260 @@ + + + + + + + +xtensor: xt::math::rad2deg Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::rad2deg Struct Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    constexpr double operator() (const A &a) const noexcept
     
    template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    constexpr auto operator() (const A &a) const noexcept
     
    template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    constexpr double simd_apply (const A &a) const noexcept
     
    template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    constexpr auto simd_apply (const A &a) const noexcept
     
    +

    Detailed Description

    +
    +

    Definition at line 646 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    double xt::math::rad2deg::operator() (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 649 of file xmath.hpp.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    auto xt::math::rad2deg::operator() (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 655 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply() [1/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< xtl::is_integral< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    double xt::math::rad2deg::simd_apply (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 661 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply() [2/2]

    + +
    +
    +
    +template<class A, std::enable_if_t< std::is_floating_point< A >::value, int > = 0>
    + + + + + +
    + + + + + + + +
    auto xt::math::rad2deg::simd_apply (const A & a) const
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 667 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1remainder__fun-members.html b/structxt_1_1math_1_1remainder__fun-members.html new file mode 100644 index 000000000..b7463e396 --- /dev/null +++ b/structxt_1_1math_1_1remainder__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::remainder_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::remainder_fun, including all inherited members.

    + + + +
    operator()(const T1 &arg1, const T2 &arg2) const (defined in xt::math::remainder_fun)xt::math::remainder_funinline
    simd_apply(const B &arg1, const B &arg2) const (defined in xt::math::remainder_fun)xt::math::remainder_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1remainder__fun.html b/structxt_1_1math_1_1remainder__fun.html new file mode 100644 index 000000000..480a417e8 --- /dev/null +++ b/structxt_1_1math_1_1remainder__fun.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::math::remainder_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::remainder_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T1, class T2>
    constexpr auto operator() (const T1 &arg1, const T2 &arg2) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg1, const B &arg2) const
     
    +

    Detailed Description

    +
    +

    Definition at line 299 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T1, class T2>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::remainder_fun::operator() (const T1 & arg1,
    const T2 & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 299 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::math::remainder_fun::simd_apply (const B & arg1,
    const B & arg2 ) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 299 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1rint__fun-members.html b/structxt_1_1math_1_1rint__fun-members.html new file mode 100644 index 000000000..e32021f03 --- /dev/null +++ b/structxt_1_1math_1_1rint__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::rint_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::rint_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::rint_fun)xt::math::rint_funinline
    simd_apply(const B &arg) const (defined in xt::math::rint_fun)xt::math::rint_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1rint__fun.html b/structxt_1_1math_1_1rint__fun.html new file mode 100644 index 000000000..41c13bed3 --- /dev/null +++ b/structxt_1_1math_1_1rint__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::rint_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::rint_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 337 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::rint_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 337 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::rint_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 337 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1round__fun-members.html b/structxt_1_1math_1_1round__fun-members.html new file mode 100644 index 000000000..5aa1a01ae --- /dev/null +++ b/structxt_1_1math_1_1round__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::round_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::round_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::round_fun)xt::math::round_funinline
    simd_apply(const B &arg) const (defined in xt::math::round_fun)xt::math::round_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1round__fun.html b/structxt_1_1math_1_1round__fun.html new file mode 100644 index 000000000..e83c98a22 --- /dev/null +++ b/structxt_1_1math_1_1round__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::round_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::round_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 335 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::round_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 335 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::round_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 335 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1sign__fun-members.html b/structxt_1_1math_1_1sign__fun-members.html new file mode 100644 index 000000000..ee66f7ced --- /dev/null +++ b/structxt_1_1math_1_1sign__fun-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::sign_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::sign_fun, including all inherited members.

    + + +
    operator()(const T &x) const (defined in xt::math::sign_fun)xt::math::sign_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1sign__fun.html b/structxt_1_1math_1_1sign__fun.html new file mode 100644 index 000000000..2f3f104bb --- /dev/null +++ b/structxt_1_1math_1_1sign__fun.html @@ -0,0 +1,164 @@ + + + + + + + +xtensor: xt::math::sign_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::sign_fun Struct Reference
    +
    +
    + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &x) const
     
    +

    Detailed Description

    +
    +

    Definition at line 856 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::sign_fun::operator() (const T & x) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 859 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1sign__impl-members.html b/structxt_1_1math_1_1sign__impl-members.html new file mode 100644 index 000000000..3b0c5ffa6 --- /dev/null +++ b/structxt_1_1math_1_1sign__impl-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::sign_impl< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::math::sign_impl< T >, including all inherited members.

    + + + + +
    run(T x) (defined in xt::math::sign_impl< T >)xt::math::sign_impl< T >inlinestatic
    run(T x) (defined in xt::math::sign_impl< T >)xt::math::sign_impl< T >inlinestatic
    run(T x) (defined in xt::math::sign_impl< T >)xt::math::sign_impl< T >inlinestatic
    +
    + + + + diff --git a/structxt_1_1math_1_1sign__impl.html b/structxt_1_1math_1_1sign__impl.html new file mode 100644 index 000000000..f6e6008f3 --- /dev/null +++ b/structxt_1_1math_1_1sign__impl.html @@ -0,0 +1,235 @@ + + + + + + + +xtensor: xt::math::sign_impl< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::sign_impl< T > Struct Template Reference
    +
    +
    + + + + + + + + + + + +

    +Static Public Member Functions

    template<class XT = T>
    static constexpr std::enable_if_t< xtl::is_signed< XT >::value, T > run (T x)
     
    template<class XT = T>
    static constexpr std::enable_if_t< xtl::is_complex< XT >::value, T > run (T x)
     
    template<class XT = T>
    static constexpr std::enable_if_t< std::is_unsigned< XT >::value, T > run (T x)
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::math::sign_impl< T >
    +

    Definition at line 828 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ run() [1/3]

    + +
    +
    +
    +template<class T>
    +
    +template<class XT = T>
    + + + + + +
    + + + + + + + +
    static constexpr std::enable_if_t< xtl::is_signed< XT >::value, T > xt::math::sign_impl< T >::run (T x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 831 of file xmath.hpp.

    + +
    +
    + +

    ◆ run() [2/3]

    + +
    +
    +
    +template<class T>
    +
    +template<class XT = T>
    + + + + + +
    + + + + + + + +
    static constexpr std::enable_if_t< xtl::is_complex< XT >::value, T > xt::math::sign_impl< T >::run (T x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 839 of file xmath.hpp.

    + +
    +
    + +

    ◆ run() [3/3]

    + +
    +
    +
    +template<class T>
    +
    +template<class XT = T>
    + + + + + +
    + + + + + + + +
    static constexpr std::enable_if_t< std::is_unsigned< XT >::value, T > xt::math::sign_impl< T >::run (T x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 850 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4-members.html b/structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4-members.html new file mode 100644 index 000000000..b69d596f0 --- /dev/null +++ b/structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::sign_impl< xtl::xoptional< T, B > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html b/structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html new file mode 100644 index 000000000..7435a9e87 --- /dev/null +++ b/structxt_1_1math_1_1sign__impl_3_01xtl_1_1xoptional_3_01_t_00_01_b_01_4_01_4.html @@ -0,0 +1,251 @@ + + + + + + + +xtensor: xt::math::sign_impl< xtl::xoptional< T, B > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::sign_impl< xtl::xoptional< T, B > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Static Public Member Functions

    static constexpr auto run (const xtl::xoptional< T, B > &x)
     
    static constexpr std::enable_if_t< xtl::is_signed< XT >::value, T > run (T x)
     
    static constexpr std::enable_if_t< xtl::is_complex< XT >::value, T > run (T x)
     
    static constexpr std::enable_if_t< std::is_unsigned< XT >::value, T > run (T x)
     
    +

    Detailed Description

    +
    template<class T, class B>
    +struct xt::math::sign_impl< xtl::xoptional< T, B > >
    +

    Definition at line 1245 of file xoptional.hpp.

    +

    Member Function Documentation

    + +

    ◆ run() [1/4]

    + +
    +
    +
    +template<class T, class B>
    + + + + + +
    + + + + + + + +
    static constexpr auto xt::math::sign_impl< xtl::xoptional< T, B > >::run (const xtl::xoptional< T, B > & x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 1247 of file xoptional.hpp.

    + +
    +
    + +

    ◆ run() [2/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    static constexpr std::enable_if_t< xtl::is_signed< XT >::value, T > xt::math::sign_impl< T >::run (T x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 831 of file xmath.hpp.

    + +
    +
    + +

    ◆ run() [3/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    static constexpr std::enable_if_t< xtl::is_complex< XT >::value, T > xt::math::sign_impl< T >::run (T x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 839 of file xmath.hpp.

    + +
    +
    + +

    ◆ run() [4/4]

    + +
    +
    + + + + + +
    + + + + + + + +
    static constexpr std::enable_if_t< std::is_unsigned< XT >::value, T > xt::math::sign_impl< T >::run (T x)
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 850 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1sin__fun-members.html b/structxt_1_1math_1_1sin__fun-members.html new file mode 100644 index 000000000..5ab6822d7 --- /dev/null +++ b/structxt_1_1math_1_1sin__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::sin_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::sin_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::sin_fun)xt::math::sin_funinline
    simd_apply(const B &arg) const (defined in xt::math::sin_fun)xt::math::sin_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1sin__fun.html b/structxt_1_1math_1_1sin__fun.html new file mode 100644 index 000000000..0102965e4 --- /dev/null +++ b/structxt_1_1math_1_1sin__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::sin_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::sin_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 315 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::sin_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 315 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::sin_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 315 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1sinh__fun-members.html b/structxt_1_1math_1_1sinh__fun-members.html new file mode 100644 index 000000000..f0282b8fc --- /dev/null +++ b/structxt_1_1math_1_1sinh__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::sinh_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::sinh_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::sinh_fun)xt::math::sinh_funinline
    simd_apply(const B &arg) const (defined in xt::math::sinh_fun)xt::math::sinh_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1sinh__fun.html b/structxt_1_1math_1_1sinh__fun.html new file mode 100644 index 000000000..250feb094 --- /dev/null +++ b/structxt_1_1math_1_1sinh__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::sinh_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::sinh_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 322 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::sinh_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 322 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::sinh_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 322 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1sqrt__fun-members.html b/structxt_1_1math_1_1sqrt__fun-members.html new file mode 100644 index 000000000..223e90be2 --- /dev/null +++ b/structxt_1_1math_1_1sqrt__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::sqrt_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::sqrt_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::sqrt_fun)xt::math::sqrt_funinline
    simd_apply(const B &arg) const (defined in xt::math::sqrt_fun)xt::math::sqrt_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1sqrt__fun.html b/structxt_1_1math_1_1sqrt__fun.html new file mode 100644 index 000000000..a56782ccd --- /dev/null +++ b/structxt_1_1math_1_1sqrt__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::sqrt_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::sqrt_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 312 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::sqrt_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 312 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::sqrt_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 312 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1tan__fun-members.html b/structxt_1_1math_1_1tan__fun-members.html new file mode 100644 index 000000000..456c0ceb4 --- /dev/null +++ b/structxt_1_1math_1_1tan__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::tan_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::tan_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::tan_fun)xt::math::tan_funinline
    simd_apply(const B &arg) const (defined in xt::math::tan_fun)xt::math::tan_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1tan__fun.html b/structxt_1_1math_1_1tan__fun.html new file mode 100644 index 000000000..0662c8f76 --- /dev/null +++ b/structxt_1_1math_1_1tan__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::tan_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::tan_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 317 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::tan_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 317 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::tan_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 317 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1tanh__fun-members.html b/structxt_1_1math_1_1tanh__fun-members.html new file mode 100644 index 000000000..d91318043 --- /dev/null +++ b/structxt_1_1math_1_1tanh__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::tanh_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::tanh_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::tanh_fun)xt::math::tanh_funinline
    simd_apply(const B &arg) const (defined in xt::math::tanh_fun)xt::math::tanh_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1tanh__fun.html b/structxt_1_1math_1_1tanh__fun.html new file mode 100644 index 000000000..43da783b4 --- /dev/null +++ b/structxt_1_1math_1_1tanh__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::tanh_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::tanh_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 324 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::tanh_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 324 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::tanh_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 324 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1tgamma__fun-members.html b/structxt_1_1math_1_1tgamma__fun-members.html new file mode 100644 index 000000000..04619cec2 --- /dev/null +++ b/structxt_1_1math_1_1tgamma__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::tgamma_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::tgamma_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::tgamma_fun)xt::math::tgamma_funinline
    simd_apply(const B &arg) const (defined in xt::math::tgamma_fun)xt::math::tgamma_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1tgamma__fun.html b/structxt_1_1math_1_1tgamma__fun.html new file mode 100644 index 000000000..0786dcd4d --- /dev/null +++ b/structxt_1_1math_1_1tgamma__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::tgamma_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::tgamma_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 330 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::tgamma_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 330 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::tgamma_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 330 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1math_1_1trunc__fun-members.html b/structxt_1_1math_1_1trunc__fun-members.html new file mode 100644 index 000000000..d78f9e96f --- /dev/null +++ b/structxt_1_1math_1_1trunc__fun-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::math::trunc_fun Member List
    +
    +
    + +

    This is the complete list of members for xt::math::trunc_fun, including all inherited members.

    + + + +
    operator()(const T &arg) const (defined in xt::math::trunc_fun)xt::math::trunc_funinline
    simd_apply(const B &arg) const (defined in xt::math::trunc_fun)xt::math::trunc_funinline
    +
    + + + + diff --git a/structxt_1_1math_1_1trunc__fun.html b/structxt_1_1math_1_1trunc__fun.html new file mode 100644 index 000000000..c1d475a00 --- /dev/null +++ b/structxt_1_1math_1_1trunc__fun.html @@ -0,0 +1,196 @@ + + + + + + + +xtensor: xt::math::trunc_fun Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::math::trunc_fun Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
    constexpr auto operator() (const T &arg) const
     
    template<class B>
    constexpr auto simd_apply (const B &arg) const
     
    +

    Detailed Description

    +
    +

    Definition at line 334 of file xmath.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    auto xt::math::trunc_fun::operator() (const T & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 334 of file xmath.hpp.

    + +
    +
    + +

    ◆ simd_apply()

    + +
    +
    +
    +template<class B>
    + + + + + +
    + + + + + + + +
    auto xt::math::trunc_fun::simd_apply (const B & arg) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 334 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1memory__range-members.html b/structxt_1_1memory__range-members.html new file mode 100644 index 000000000..1486af66d --- /dev/null +++ b/structxt_1_1memory__range-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::memory_range Member List
    +
    +
    + +

    This is the complete list of members for xt::memory_range, including all inherited members.

    + + + + + + +
    m_first (defined in xt::memory_range)xt::memory_range
    m_last (defined in xt::memory_range)xt::memory_range
    memory_range()=default (defined in xt::memory_range)xt::memory_rangeexplicit
    memory_range(T *first, T *last) (defined in xt::memory_range)xt::memory_rangeinlineexplicit
    overlaps(T *first, T *last) const (defined in xt::memory_range)xt::memory_rangeinline
    +
    + + + + diff --git a/structxt_1_1memory__range.html b/structxt_1_1memory__range.html new file mode 100644 index 000000000..745c59293 --- /dev/null +++ b/structxt_1_1memory__range.html @@ -0,0 +1,246 @@ + + + + + + + +xtensor: xt::memory_range Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::memory_range Struct Reference
    +
    +
    + + + + + + + + +

    +Public Member Functions

    template<class T>
     memory_range (T *first, T *last)
     
    template<class T>
    bool overlaps (T *first, T *last) const
     
    + + + + + +

    +Public Attributes

    const uintptr_t m_first = 0
     
    const uintptr_t m_last = 0
     
    +

    Detailed Description

    +
    +

    Definition at line 809 of file xutils.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ memory_range()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    xt::memory_range::memory_range (T * first,
    T * last )
    +
    +inlineexplicit
    +
    + +

    Definition at line 819 of file xutils.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ overlaps()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    bool xt::memory_range::overlaps (T * first,
    T * last ) const
    +
    +inline
    +
    + +

    Definition at line 826 of file xutils.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_first

    + +
    +
    + + + + +
    const uintptr_t xt::memory_range::m_first = 0
    +
    + +

    Definition at line 813 of file xutils.hpp.

    + +
    +
    + +

    ◆ m_last

    + +
    +
    + + + + +
    const uintptr_t xt::memory_range::m_last = 0
    +
    + +

    Definition at line 814 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1meta__identity-members.html b/structxt_1_1meta__identity-members.html new file mode 100644 index 000000000..415cb0cac --- /dev/null +++ b/structxt_1_1meta__identity-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::meta_identity< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::meta_identity< T >, including all inherited members.

    + + +
    type typedef (defined in xt::meta_identity< T >)xt::meta_identity< T >
    +
    + + + + diff --git a/structxt_1_1meta__identity.html b/structxt_1_1meta__identity.html new file mode 100644 index 000000000..5838effe0 --- /dev/null +++ b/structxt_1_1meta__identity.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::meta_identity< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::meta_identity< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::meta_identity< T >
    +

    Definition at line 115 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::meta_identity< T >::type = T
    +
    + +

    Definition at line 117 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1missing__type.html b/structxt_1_1missing__type.html new file mode 100644 index 000000000..3b0dd2661 --- /dev/null +++ b/structxt_1_1missing__type.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::missing_type Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::missing_type Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 33 of file xexception.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xexception.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1nested__initializer__list-members.html b/structxt_1_1nested__initializer__list-members.html new file mode 100644 index 000000000..2ed05f387 --- /dev/null +++ b/structxt_1_1nested__initializer__list-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::nested_initializer_list< T, I > Member List
    +
    +
    + +

    This is the complete list of members for xt::nested_initializer_list< T, I >, including all inherited members.

    + + +
    type typedef (defined in xt::nested_initializer_list< T, I >)xt::nested_initializer_list< T, I >
    +
    + + + + diff --git a/structxt_1_1nested__initializer__list.html b/structxt_1_1nested__initializer__list.html new file mode 100644 index 000000000..3bc3b3303 --- /dev/null +++ b/structxt_1_1nested__initializer__list.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::nested_initializer_list< T, I > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::nested_initializer_list< T, I > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::initializer_list<typename nested_initializer_list<T, I - 1>::type>
     
    +

    Detailed Description

    +
    template<class T, std::size_t I>
    +struct xt::nested_initializer_list< T, I >
    +

    Definition at line 299 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T, std::size_t I>
    + + + + +
    using xt::nested_initializer_list< T, I >::type = std::initializer_list<typename nested_initializer_list<T, I - 1>::type>
    +
    + +

    Definition at line 301 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1nested__initializer__list_3_01_t_00_010_01_4-members.html b/structxt_1_1nested__initializer__list_3_01_t_00_010_01_4-members.html new file mode 100644 index 000000000..da582afa9 --- /dev/null +++ b/structxt_1_1nested__initializer__list_3_01_t_00_010_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::nested_initializer_list< T, 0 > Member List
    +
    +
    + +

    This is the complete list of members for xt::nested_initializer_list< T, 0 >, including all inherited members.

    + + + +
    type typedef (defined in xt::nested_initializer_list< T, 0 >)xt::nested_initializer_list< T, 0 >
    type typedef (defined in xt::nested_initializer_list< T, 0 >)xt::nested_initializer_list< T, 0 >
    +
    + + + + diff --git a/structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html b/structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html new file mode 100644 index 000000000..1450de683 --- /dev/null +++ b/structxt_1_1nested__initializer__list_3_01_t_00_010_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::nested_initializer_list< T, 0 > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::nested_initializer_list< T, 0 > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = T
     
    using type
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::nested_initializer_list< T, 0 >
    +

    Definition at line 305 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::nested_initializer_list< T, I >::type
    +
    + +

    Definition at line 301 of file xutils.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::nested_initializer_list< T, 0 >::type = T
    +
    + +

    Definition at line 307 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1no__ownership.html b/structxt_1_1no__ownership.html new file mode 100644 index 000000000..6adf051dc --- /dev/null +++ b/structxt_1_1no__ownership.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::no_ownership Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::no_ownership Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 27 of file xbuffer_adaptor.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1norm__type-members.html b/structxt_1_1norm__type-members.html new file mode 100644 index 000000000..c62617934 --- /dev/null +++ b/structxt_1_1norm__type-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::norm_type< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::norm_type< T >, including all inherited members.

    + + + +
    base_type typedef (defined in xt::norm_type< T >)xt::norm_type< T >
    type typedef (defined in xt::norm_type< T >)xt::norm_type< T >
    +
    + + + + diff --git a/structxt_1_1norm__type.html b/structxt_1_1norm__type.html new file mode 100644 index 000000000..d29ba0acb --- /dev/null +++ b/structxt_1_1norm__type.html @@ -0,0 +1,230 @@ + + + + + + + +xtensor: xt::norm_type< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::norm_type< T > Struct Template Reference
    +
    +
    + +

    Traits class for the result type of the norm_l2() function. + More...

    + +

    #include <xnorm.hpp>

    +
    +Inheritance diagram for xt::norm_type< T >:
    +
    +
    + + +xt::traits_detail::norm_type_base< T > + +
    + + + + + + + + + + + + + +

    +Public Types

    using base_type = traits_detail::norm_type_base<T>
     
    using type
     
    - Public Types inherited from xt::traits_detail::norm_type_base< T >
    using T
     
    using norm_of_scalar
     
    using norm_of_vector
     
    + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::traits_detail::norm_type_base< T >
    static const bool value
     
    static const bool value
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::norm_type< T >

    Traits class for the result type of the norm_l2() function.

    +

    Member 'type' defines the result of norm_l2(t), where t is of type

    Template Parameters
    + + + + + + +
    T.It implements the following rules designed to minimize the potential for overflow:
      +
    • +
    +
    Tis an arithmetic type: 'type' is the result type of abs(t).
      +
    • +
    +
    Tis a container of 'long double' elements: 'type' is long double.
      +
    • +
    +
    Tis a container of another arithmetic type: 'type' is double.
      +
    • +
    +
    Tis a container of some other type: 'type' is the element's norm type,
    +
    +
    +

    Containers are recognized by having an embedded typedef 'value_type'. To change the behavior for a case not covered here, specialize the traits_detail::norm_type_base template.

    + +

    Definition at line 153 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::norm_type< T >::base_type = traits_detail::norm_type_base<T>
    +
    + +

    Definition at line 155 of file xnorm.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::norm_type< T >::type
    +
    +Initial value:
    typename std::conditional<
    +
    base_type::norm_of_vector::value,
    +
    typename base_type::norm_of_vector::norm_type,
    +
    typename base_type::norm_of_scalar::norm_type>::type
    +
    +

    Definition at line 157 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1norm__type.png b/structxt_1_1norm__type.png new file mode 100644 index 0000000000000000000000000000000000000000..5efa5cf42bb4e1c82e708ef538e0e73dfa1c07b0 GIT binary patch literal 756 zcmeAS@N?(olHy`uVBq!ia0vp^cY!#7gBeJ!GHK8QQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B;5o-U3d6^w7^zTdQ3f#=Bd z(q)_9|37k_>C^u0QMvsFUv{Low4CT~sX4Yu=k$g{PLrCmE=^3CKdVIL=5j8p;Jq!0 zhQSr7`MTkga$fen-xqM~uZPiPzg^<@GcUfqcd4~xy^Oh4cF&)0M{n5NSo!tpxh00z z8ci*oAI+LKG5XFvh$zP6{y&PV?q`?+I5$%4dxDPrbZey`=) zS;psnqwB4$(5V{F(3!Unx|KPm?|)mn`iA(_m%XK_Vu9SjU+?}&uwPVMzLDcb--OCH=VNz# z{lD0{;Jw|#-}m<3ez9%Zw%j}BTXUa4hOfg9MUp#YH zbD#Y}@3q@DaknIuJbD)sG}HaXomii_+AYyf^uF}-)k V?M{)kr~#%=22WQ%mvv4FO#u16dOQFC literal 0 HcmV?d00001 diff --git a/structxt_1_1numeric__constants-members.html b/structxt_1_1numeric__constants-members.html new file mode 100644 index 000000000..2aae87035 --- /dev/null +++ b/structxt_1_1numeric__constants-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::numeric_constants< T > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1numeric__constants.html b/structxt_1_1numeric__constants.html new file mode 100644 index 000000000..6402568c8 --- /dev/null +++ b/structxt_1_1numeric__constants.html @@ -0,0 +1,469 @@ + + + + + + + +xtensor: xt::numeric_constants< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::numeric_constants< T > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Static Public Attributes

    static constexpr T PI = 3.141592653589793238463
     
    static constexpr T PI_2 = 1.57079632679489661923
     
    static constexpr T PI_4 = 0.785398163397448309616
     
    static constexpr T D_1_PI = 0.318309886183790671538
     
    static constexpr T D_2_PI = 0.636619772367581343076
     
    static constexpr T D_2_SQRTPI = 1.12837916709551257390
     
    static constexpr T SQRT2 = 1.41421356237309504880
     
    static constexpr T SQRT1_2 = 0.707106781186547524401
     
    static constexpr T E = 2.71828182845904523536
     
    static constexpr T LOG2E = 1.44269504088896340736
     
    static constexpr T LOG10E = 0.434294481903251827651
     
    static constexpr T LN2 = 0.693147180559945309417
     
    +

    Detailed Description

    +
    template<class T = double>
    +struct xt::numeric_constants< T >
    +

    Definition at line 39 of file xmath.hpp.

    +

    Member Data Documentation

    + +

    ◆ D_1_PI

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::D_1_PI = 0.318309886183790671538
    +
    +staticconstexpr
    +
    + +

    Definition at line 44 of file xmath.hpp.

    + +
    +
    + +

    ◆ D_2_PI

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::D_2_PI = 0.636619772367581343076
    +
    +staticconstexpr
    +
    + +

    Definition at line 45 of file xmath.hpp.

    + +
    +
    + +

    ◆ D_2_SQRTPI

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::D_2_SQRTPI = 1.12837916709551257390
    +
    +staticconstexpr
    +
    + +

    Definition at line 46 of file xmath.hpp.

    + +
    +
    + +

    ◆ E

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::E = 2.71828182845904523536
    +
    +staticconstexpr
    +
    + +

    Definition at line 49 of file xmath.hpp.

    + +
    +
    + +

    ◆ LN2

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::LN2 = 0.693147180559945309417
    +
    +staticconstexpr
    +
    + +

    Definition at line 52 of file xmath.hpp.

    + +
    +
    + +

    ◆ LOG10E

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::LOG10E = 0.434294481903251827651
    +
    +staticconstexpr
    +
    + +

    Definition at line 51 of file xmath.hpp.

    + +
    +
    + +

    ◆ LOG2E

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::LOG2E = 1.44269504088896340736
    +
    +staticconstexpr
    +
    + +

    Definition at line 50 of file xmath.hpp.

    + +
    +
    + +

    ◆ PI

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::PI = 3.141592653589793238463
    +
    +staticconstexpr
    +
    + +

    Definition at line 41 of file xmath.hpp.

    + +
    +
    + +

    ◆ PI_2

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::PI_2 = 1.57079632679489661923
    +
    +staticconstexpr
    +
    + +

    Definition at line 42 of file xmath.hpp.

    + +
    +
    + +

    ◆ PI_4

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::PI_4 = 0.785398163397448309616
    +
    +staticconstexpr
    +
    + +

    Definition at line 43 of file xmath.hpp.

    + +
    +
    + +

    ◆ SQRT1_2

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::SQRT1_2 = 0.707106781186547524401
    +
    +staticconstexpr
    +
    + +

    Definition at line 48 of file xmath.hpp.

    + +
    +
    + +

    ◆ SQRT2

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + +
    T xt::numeric_constants< T >::SQRT2 = 1.41421356237309504880
    +
    +staticconstexpr
    +
    + +

    Definition at line 47 of file xmath.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker-members.html b/structxt_1_1overlapping__memory__checker-members.html new file mode 100644 index 000000000..efe225308 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker< Dst, Enable > Member List
    +
    +
    + +

    This is the complete list of members for xt::overlapping_memory_checker< Dst, Enable >, including all inherited members.

    + + + + + + +
    check_overlap(const E &expr) const (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_baseinline
    m_dst_range (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_base
    overlapping_memory_checker(const Dst &) (defined in xt::overlapping_memory_checker< Dst, Enable >)xt::overlapping_memory_checker< Dst, Enable >inlineexplicit
    overlapping_memory_checker_base()=default (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_baseexplicit
    overlapping_memory_checker_base(memory_range dst_memory_range) (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_baseinlineexplicit
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker.html b/structxt_1_1overlapping__memory__checker.html new file mode 100644 index 000000000..7e035a2c1 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker.html @@ -0,0 +1,185 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker< Dst, Enable > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker< Dst, Enable > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::overlapping_memory_checker< Dst, Enable >:
    +
    +
    + + +xt::overlapping_memory_checker_base + +
    + + + + + + + + + + +

    +Public Member Functions

     overlapping_memory_checker (const Dst &)
     
    - Public Member Functions inherited from xt::overlapping_memory_checker_base
     overlapping_memory_checker_base (memory_range dst_memory_range)
     
    template<class E>
    bool check_overlap (const E &expr) const
     
    + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from xt::overlapping_memory_checker_base
    memory_range m_dst_range
     
    +

    Detailed Description

    +
    template<class Dst, class Enable = void>
    +struct xt::overlapping_memory_checker< Dst, Enable >
    +

    Definition at line 892 of file xutils.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ overlapping_memory_checker()

    + +
    +
    +
    +template<class Dst, class Enable = void>
    + + + + + +
    + + + + + + + +
    xt::overlapping_memory_checker< Dst, Enable >::overlapping_memory_checker (const Dst & )
    +
    +inlineexplicit
    +
    + +

    Definition at line 894 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker.png b/structxt_1_1overlapping__memory__checker.png new file mode 100644 index 0000000000000000000000000000000000000000..2122cb7356ee1c57be3f0d60a1332194d1c19bbc GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0y~yU{nCI12~w0WFJSwaUdlf;1lBd|Nnm=^TnI5rTvGN zTNr2-NK8NT;=zLlKylNvVM~B=oFzei!3;n?7??B7zQVx3{M6IMF{Fa=?cA3|U$l5! zW-rsa`u_isa=Y^q0w=m`z4Nq|9!cM`u_KwWJ}`T&=i05m7EDTUnk1*$p~4&_;K{Z` zVG@srql#pKV}Rnx8H<(FS511tdPj_ZcjdzW^95Zdy?+|cd25#b_Wj=ycIVuQpYnG9 z{w>S@zPg{!U%va^?DBWji=9o953h}Rf9%TJzc(%&=JjNob83N;-|?zjRkHK!-c_j< zUuF9(a4mc0@4eFstxVJXz8&rbD)ip0^0FweYip08pvk- z`hTV2N281y3-%|+wt1+ZR6eJFY4w7C#TQ+__6%MvK#5w7ucTKS7UeV z$B((o{)L^pdGyw$mmEg7C*16u7JKWy)A9CY?>2RB_5X4#wns%jsd)aAf;m3##I+_o znf)Wvu{vsQj8Z$#zL2Hqx4(L+v_C#>{Gw{l|MY(~egdBVIFZA1LX(Hl1GN>`q9#XW zmohfQ9~Ea%VR$gPiQ&PF_3KSo7}}R8Fjzc$rq0WFKv0u|!6}HJfdweU;o-<2FrkS- zL4lRg!GVjZp+SU&ff1;HDM)}C3jSC*E}b%IN>CSnmx}77Cli}gG!-*|SD#bQ(GTVRIIZpZ#H%~C7Tf%YDmV&4Yd!IUf z{JW{JK5*Orf0yQcTV20DdBW}48>j7j-#cslUFp21Rp!gyS>3B{3_D@9VePjExi3wd zyG&$Xzr2@S|7*wVsb@l^-#ACCPkr}2>TCV4Ttlh4+ zf;~m8ZEjK>n`}>F+~My}VwTO&);P6VTk=WDm3 + + + + + + +xtensor: xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >:
    +
    +
    + + +xt::overlapping_memory_checker_base +xt::overlapping_memory_checker_base + +
    + + + + + + + + + + + + +

    +Public Member Functions

     overlapping_memory_checker (const Dst &aDst)
     
     overlapping_memory_checker (const Dst &)
     
    - Public Member Functions inherited from xt::overlapping_memory_checker_base
     overlapping_memory_checker_base (memory_range dst_memory_range)
     
    template<class E>
    bool check_overlap (const E &expr) const
     
    + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from xt::overlapping_memory_checker_base
    memory_range m_dst_range
     
    +

    Detailed Description

    +
    template<class Dst>
    +struct xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >
    +

    Definition at line 901 of file xutils.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ overlapping_memory_checker() [1/2]

    + +
    +
    +
    +template<class Dst>
    + + + + + +
    + + + + + + + +
    xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >::overlapping_memory_checker (const Dst & aDst)
    +
    +inlineexplicit
    +
    + +

    Definition at line 904 of file xutils.hpp.

    + +
    +
    + +

    ◆ overlapping_memory_checker() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > >::overlapping_memory_checker (const Dst & )
    +
    +inlineexplicit
    +
    + +

    Definition at line 894 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.png b/structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__add979fb9a8b7b1983c9fb733f357d6c2fa.png new file mode 100644 index 0000000000000000000000000000000000000000..37786270604616052656d36dd08683b4d31af562 GIT binary patch literal 2107 zcmcIkeKebC7Joa8sgKTXu%$kCBDAzV8$_$kE}0M{RMbl1BO)|LiHeVkueMX2=pt>( zv}mg%q*MhhO|h{Sm5B-)6iG&-J4ID#wZvf5zTuobd*+-uyXWlL=a2Wf_xHQ+eeeCf z_jw9}a6Wr&xf&}xv=P7TK40np!G?w?eQ0>Ec|7}Os_&hA>crAV2#`z^`{Tbl53 z>(4{Qj`~(Hx(`Zky{a~E@bwDUqA?@uT0`*(4ZJa826^onv3|!r8e}c@`4{pt-wFeDgyRXic!f_N@t*zVoB=OR?(tJ@ zCb~YH&H{sdMKDQ<^73MF0DYuPb&}J0;jjq^QNZlye-7qmQtRgfIa+6{uNK%O=vUBT z7$jSnr0yu^Ley7qOVR<10m5Fkt-9eBgL@Tbh52lWRHz;l^NU65t%$sh;wNY@vG4G1 zP(T+BJpb3JCzjlQ4We?y7~9ZVPE2rZ9b2~mG_JG(#(;*?<$Mh?fNqKe^tuf9etvG3 z@l;AP8FVzaoxd@6IRW@E1fWGehuk3$za;ePKkWhnqF(^U=OFiuz?AvFO!;qFH0S^K z;K$((MvS&_hnbYN@IJ6Utu7#2r_ve#8`0}}F+l_L&VlGRG29)_thfk_0DDbFxS9OF zgQn=VHHLUUTV6?UIsleNzNrt1hC%~Sy`=OFk19<^bUSMVT1)uwDMQilY zE*sYB!M~5i3(j;%AP~nUDL4z5v5N$#e10u`WRb|sBbnCRUCCA!i{*AgBr$O~`L)C3 zgIx|59JWl}GS^~6%cxzL9epz6>*!7A9;0dx+X+_O7(bBCi@a9cGagC;(X!r8)&CcP zAtZDzno5YVL5+}_wklM66$&Qr87_#%zD%r8nNhtbjIsOwGJ7TKFf$%r@g2h`@1f?T zbrQzFjBq~VJC!^Clp~}ETxBfqQACu4&$L&v899j7|?*Fcv7Ma;Us6(B7sv2`{ z=S$S1+XXLjF|Bid&t`E5`s8-&=}ttfb(Jse?LY!>NaZbL>xF1>UJn-y1X z^=vfZ5=}%XxmEm37)iPz=Urkywk*qCDXDqsEH(_GQ|4Wk3uo5e@FQM+y)L#6qeLVv zM8da}ja}Cik2=aX@?JYYhhx>#bnOl1Ahc>o7%TXCE)r>pM)jI@-v5!s^7inq-cfo9 z&3GytA8oJr0w2Y|LZK>;DuLPf*%BmG8wxG%-aZN*&uPbT{-|EfQ@%40NYwWp-*#=| zOZ(U?CkSL?TN{{LIcv88q?xTg(E${0!GA~9lu-O^pOggme-3Ef>B+05`(+ytJzoIe N!hDHC@x90w{t3Z`s9gX6 literal 0 HcmV?d00001 diff --git a/structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__adde5366ae3ec1ca90ac06c86ce5f91b997.html b/structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__adde5366ae3ec1ca90ac06c86ce5f91b997.html new file mode 100644 index 000000000..9c70937ff --- /dev/null +++ b/structxt_1_1overlapping__memory__checker_3_01_dst_00_01std_1_1enable__if__t_3_01has__memory__adde5366ae3ec1ca90ac06c86ce5f91b997.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__base-members.html b/structxt_1_1overlapping__memory__checker__base-members.html new file mode 100644 index 000000000..3c93e2e87 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__base-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker_base Member List
    +
    +
    + +

    This is the complete list of members for xt::overlapping_memory_checker_base, including all inherited members.

    + + + + + +
    check_overlap(const E &expr) const (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_baseinline
    m_dst_range (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_base
    overlapping_memory_checker_base()=default (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_baseexplicit
    overlapping_memory_checker_base(memory_range dst_memory_range) (defined in xt::overlapping_memory_checker_base)xt::overlapping_memory_checker_baseinlineexplicit
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__base.html b/structxt_1_1overlapping__memory__checker__base.html new file mode 100644 index 000000000..c692c6ef4 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__base.html @@ -0,0 +1,228 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker_base Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker_base Struct Reference
    +
    +
    +
    +Inheritance diagram for xt::overlapping_memory_checker_base:
    +
    +
    + + +xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > > +xt::overlapping_memory_checker< Dst, Enable > +xt::overlapping_memory_checker< Dst, std::enable_if_t< has_memory_address< Dst >::value > > + +
    + + + + + + + +

    +Public Member Functions

     overlapping_memory_checker_base (memory_range dst_memory_range)
     
    template<class E>
    bool check_overlap (const E &expr) const
     
    + + + +

    +Public Attributes

    memory_range m_dst_range
     
    +

    Detailed Description

    +
    +

    Definition at line 866 of file xutils.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ overlapping_memory_checker_base()

    + +
    +
    + + + + + +
    + + + + + + + +
    xt::overlapping_memory_checker_base::overlapping_memory_checker_base (memory_range dst_memory_range)
    +
    +inlineexplicit
    +
    + +

    Definition at line 872 of file xutils.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ check_overlap()

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + +
    bool xt::overlapping_memory_checker_base::check_overlap (const E & expr) const
    +
    +inline
    +
    + +

    Definition at line 878 of file xutils.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_dst_range

    + +
    +
    + + + + +
    memory_range xt::overlapping_memory_checker_base::m_dst_range
    +
    + +

    Definition at line 868 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__base.png b/structxt_1_1overlapping__memory__checker__base.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebaaec5cad79af3209d776b924cff670e3d4e59 GIT binary patch literal 2563 zcmdTGdsI?++GcDU-7R>NxhAF+e4G~FS~P*BE9EL5hfNuA0Ef(j_xYdV(7 z8G4Xn`KUxg;h2@8JhqyZH8N7fNBBTdDG(` z_x;W-M#V&Kblm1>XJ@w&ekdZ&&h9rg0FC&9fgQLV6)i(^4*L9Pkqh| z+Osoj3;oqQg+c-F{ks$H12Tu)xR}Fsz+G4D1J=tce;A59jFduUP^8oi1;7WebW3XA$|65> zSPy`t@6xu^5@0P>tUQ1~)hlXleUq9@y#6X^lU{m@SOQ@~YpScO z73E8{%gQ;jOBa^GZ!Yy|w=#lBS$e&p3?vziL5L{y>zY<$EM-YJZ2G8QoC*|RecNw$ z&plTW=*JTZ{gjOuKS2qk)9KBMiqq!cMJ2RTrun38)B2U&6(sL%3cDknzL7{zVd-@I zgc<^#E0gaHrUNgIB@s#>DaV{00l53#^DLF6wOqW^4jqbWX7#uB1lBbZOVdkkiWLl8 z(COZ@Ri#}2Wv{D?zJ*zpCR>$osz*7%cfij+DMz7?w*+Nx)zVPc9Firb-0y>RkWSOO zwTy+ICh_ifCcv7gMe_vDngBr+Lr~gs2Zi3i@q8TI%IMpkT7n)}3jl(d#3Q_GQ%fLC zeBmA1^j=(y=;`K+ZK(@pa7~!g^CM%2nc8oQ;-XfZQIr=Y!Q8G-v^7`3rsr+)R@@#} zxf`R3*n~?h54_fx_!#rMW>-~Z01FZN1mm7$*q5y6ovHjumj~(G!dWZf{Pj;FNax^G zE{{{kHi2CpvKwXGM zjR&fEWv#aD`ZCBtKv5ym3xNE(9jk3MycTE%tn|MTr&rWf)TKWJP{?u(sujYVzpgaR zg-q#c_gu)t2SICBg(0hzs#ajE&ZyF5`(9qAgDZ{z#JO(IRZhw;oc{}9%DM7l9Q7~v z2QUhi6{%V8NJt<5%QIgeSFiktU;Sxtk3^rO50&h`QgByQp(;p8AAh9}rPN;jTB0Yj zmUm0B%j-~y-UmmE2QG33w+9UOfO~W?j|IWw;E$r6cfohT-Fr%R00_toAnfu*)`J_s z1rdQ202+F5`8xO}xC2^4yHA_^!$=x{PSRas0A(}1m!fDnge zYDMT9e>h=~H=%lgpe%*`K;E09+697|af+M;mJ~~|k?JfaM{w6mcCpZOP=8Hh%+F{6 zR~;q8=RCr8Rn7*DWYZ@1W9caP+><3FzmY-C<~LILY5ZZ#dGOJ6m`9g0`KN`aUOA1o9ES=(XrE^^M*6RlMV?i-kCf+)tI0tta%EW zm8A+AjA9iUS&!frSq0{ihb`T4h0hw>eJXcyiFm+lOS6)f303`GSfNu3e39<10p%_n z#8LjAJ$AD|O0BE!H-ecK@7D$#-+CDvt0TO`OM=U#v#GbARjGLldktC<32igPU4-kbC9G*M+@?!fekm!{XE}LVysp9?UWf;SwFmsRm4soc=DD4YxptCLx zIKO?Rmv6}0C#L?`&b_BuVtE{M;Gl2VdF + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker_traits< E, Enable > Member List
    +
    +
    + +

    This is the complete list of members for xt::overlapping_memory_checker_traits< E, Enable >, including all inherited members.

    + + +
    check_overlap(const E &, const memory_range &) (defined in xt::overlapping_memory_checker_traits< E, Enable >)xt::overlapping_memory_checker_traits< E, Enable >inlinestatic
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits.html b/structxt_1_1overlapping__memory__checker__traits.html new file mode 100644 index 000000000..67dfc4db2 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker_traits< E, Enable > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker_traits< E, Enable > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Member Functions

    static bool check_overlap (const E &, const memory_range &)
     
    +

    Detailed Description

    +
    template<class E, class Enable = void>
    +struct xt::overlapping_memory_checker_traits< E, Enable >
    +

    Definition at line 842 of file xutils.hpp.

    +

    Member Function Documentation

    + +

    ◆ check_overlap()

    + +
    +
    +
    +template<class E, class Enable = void>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, Enable >::check_overlap (const E & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 844 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor0ee187b84159790ec139479eaf101d7d.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor0ee187b84159790ec139479eaf101d7d.html new file mode 100644 index 000000000..466c8ec9b --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor0ee187b84159790ec139479eaf101d7d.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html new file mode 100644 index 000000000..7edcf71b6 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_01has__memor4c750fb1ec54f24555f6fb27c3a9d4ec.html @@ -0,0 +1,201 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > > Struct Template Reference
    +
    +
    + + + + + + +

    +Static Public Member Functions

    static bool check_overlap (const E &expr, const memory_range &dst_range)
     
    static bool check_overlap (const E &, const memory_range &)
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >
    +

    Definition at line 851 of file xutils.hpp.

    +

    Member Function Documentation

    + +

    ◆ check_overlap() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >::check_overlap (const E & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 844 of file xutils.hpp.

    + +
    +
    + +

    ◆ check_overlap() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t< has_memory_address< E >::value > >::check_overlap (const E & expr,
    const memory_range & dst_range )
    +
    +inlinestatic
    +
    + +

    Definition at line 853 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory61f92cb9f43b9bde0b3e9ee531d2d26a.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory61f92cb9f43b9bde0b3e9ee531d2d26a.html new file mode 100644 index 000000000..8712de8c7 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory61f92cb9f43b9bde0b3e9ee531d2d26a.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > > Member List
    +
    +
    + +

    This is the complete list of members for xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >, including all inherited members.

    + + + + + +
    check_overlap(const E &expr, const memory_range &dst_range) (defined in xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >)xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >inlinestatic
    check_overlap(const E &, const memory_range &) (defined in xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >)xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >inlinestatic
    check_tuple(const std::tuple< T... > &, const memory_range &) (defined in xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >)xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >inlinestatic
    check_tuple(const std::tuple< T... > &t, const memory_range &dst_range) (defined in xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >)xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >inlinestatic
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html new file mode 100644 index 000000000..f96510d32 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory7631490e58e2e554d47f900b4789ad50.html @@ -0,0 +1,277 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + +

    +Static Public Member Functions

    template<std::size_t I = 0, class... T, std::enable_if_t<(I==sizeof...(T)), int > = 0>
    static bool check_tuple (const std::tuple< T... > &, const memory_range &)
     
    template<std::size_t I = 0, class... T, std::enable_if_t<(I< sizeof...(T)), int > = 0>
    static bool check_tuple (const std::tuple< T... > &t, const memory_range &dst_range)
     
    static bool check_overlap (const E &expr, const memory_range &dst_range)
     
    static bool check_overlap (const E &, const memory_range &)
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >
    +

    Definition at line 157 of file xfunction.hpp.

    +

    Member Function Documentation

    + +

    ◆ check_overlap() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >::check_overlap (const E & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 844 of file xutils.hpp.

    + +
    +
    + +

    ◆ check_overlap() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >::check_overlap (const E & expr,
    const memory_range & dst_range )
    +
    +inlinestatic
    +
    + +

    Definition at line 175 of file xfunction.hpp.

    + +
    +
    + +

    ◆ check_tuple() [1/2]

    + +
    +
    +
    +template<class E>
    +
    +template<std::size_t I = 0, class... T, std::enable_if_t<(I==sizeof...(T)), int > = 0>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >::check_tuple (const std::tuple< T... > & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 162 of file xfunction.hpp.

    + +
    +
    + +

    ◆ check_tuple() [2/2]

    + +
    +
    +
    +template<class E>
    +
    +template<std::size_t I = 0, class... T, std::enable_if_t<(I< sizeof...(T)), int > = 0>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_specialization_of< xfunction, E >::value > >::check_tuple (const std::tuple< T... > & t,
    const memory_range & dst_range )
    +
    +inlinestatic
    +
    + +

    Definition at line 168 of file xfunction.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html new file mode 100644 index 000000000..ee7a842ec --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memory9f28c8bceb6a84ea6f46c1fa50db17c9.html @@ -0,0 +1,201 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > > Struct Template Reference
    +
    +
    + + + + + + +

    +Static Public Member Functions

    static bool check_overlap (const E &expr, const memory_range &dst_range)
     
    static bool check_overlap (const E &, const memory_range &)
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >
    +

    Definition at line 225 of file xsemantic.hpp.

    +

    Member Function Documentation

    + +

    ◆ check_overlap() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >::check_overlap (const E & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 844 of file xutils.hpp.

    + +
    +
    + +

    ◆ check_overlap() [2/2]

    + +
    +
    +
    +template<class E>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > >::check_overlap (const E & expr,
    const memory_range & dst_range )
    +
    +inlinestatic
    +
    + +

    Definition at line 229 of file xsemantic.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xsemantic.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memoryb7020c6a878800e42153f327d9b044ed.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memoryb7020c6a878800e42153f327d9b044ed.html new file mode 100644 index 000000000..75a14a6ec --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_00_01std_1_1enable__if__t_3_9has__memoryb7020c6a878800e42153f327d9b044ed.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker_traits< E, std::enable_if_t<!has_memory_address< E >::value &&is_crtp_base_of< xview_semantic, E >::value > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4-members.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4-members.html new file mode 100644 index 000000000..e8a2d6328 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::overlapping_memory_checker_traits< E > Member List
    +
    +
    + +

    This is the complete list of members for xt::overlapping_memory_checker_traits< E >, including all inherited members.

    + + + + +
    check_overlap(const E &, const memory_range &) (defined in xt::overlapping_memory_checker_traits< E >)xt::overlapping_memory_checker_traits< E >inlinestatic
    check_overlap(const E &expr, const memory_range &dst_range) (defined in xt::overlapping_memory_checker_traits< E >)xt::overlapping_memory_checker_traits< E >inlinestatic
    check_overlap(const E &, const memory_range &) (defined in xt::overlapping_memory_checker_traits< E >)xt::overlapping_memory_checker_traits< E >inlinestatic
    +
    + + + + diff --git a/structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html b/structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html new file mode 100644 index 000000000..ee225d364 --- /dev/null +++ b/structxt_1_1overlapping__memory__checker__traits_3_01_e_01_4.html @@ -0,0 +1,238 @@ + + + + + + + +xtensor: xt::overlapping_memory_checker_traits< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::overlapping_memory_checker_traits< E > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Static Public Member Functions

    static bool check_overlap (const E &, const memory_range &)
     
    static bool check_overlap (const E &expr, const memory_range &dst_range)
     
    static bool check_overlap (const E &, const memory_range &)
     
    +

    Detailed Description

    +
    template<xgenerator_concept E>
    +requires (without_memory_address_concept<E>)
    +struct xt::overlapping_memory_checker_traits< E >
    +

    Definition at line 86 of file xgenerator.hpp.

    +

    Member Function Documentation

    + +

    ◆ check_overlap() [1/3]

    + +
    +
    +
    +template<xgenerator_concept E>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E >::check_overlap (const E & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 88 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ check_overlap() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E, void >::check_overlap (const E & ,
    const memory_range &  )
    +
    +inlinestatic
    +
    + +

    Definition at line 844 of file xutils.hpp.

    + +
    +
    + +

    ◆ check_overlap() [3/3]

    + +
    +
    +
    +template<xgenerator_concept E>
    + + + + + +
    + + + + + + + + + + + +
    static bool xt::overlapping_memory_checker_traits< E >::check_overlap (const E & expr,
    const memory_range & dst_range )
    +
    +inlinestatic
    +
    + +

    Definition at line 130 of file xbroadcast.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following files:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1placeholders_1_1rangemaker-members.html b/structxt_1_1placeholders_1_1rangemaker-members.html new file mode 100644 index 000000000..b39beb1b0 --- /dev/null +++ b/structxt_1_1placeholders_1_1rangemaker-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::placeholders::rangemaker< Args > Member List
    +
    +
    + +

    This is the complete list of members for xt::placeholders::rangemaker< Args >, including all inherited members.

    + + +
    rng (defined in xt::placeholders::rangemaker< Args >)xt::placeholders::rangemaker< Args >
    +
    + + + + diff --git a/structxt_1_1placeholders_1_1rangemaker.html b/structxt_1_1placeholders_1_1rangemaker.html new file mode 100644 index 000000000..c4ffc723e --- /dev/null +++ b/structxt_1_1placeholders_1_1rangemaker.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::placeholders::rangemaker< Args > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::placeholders::rangemaker< Args > Struct Template Reference
    +
    +
    + + + + +

    +Public Attributes

    std::ptrdiff_t rng [3]
     
    +

    Detailed Description

    +
    template<class... Args>
    +struct xt::placeholders::rangemaker< Args >
    +

    Definition at line 640 of file xslice.hpp.

    +

    Member Data Documentation

    + +

    ◆ rng

    + +
    +
    +
    +template<class... Args>
    + + + + +
    std::ptrdiff_t xt::placeholders::rangemaker< Args >::rng[3]
    +
    + +

    Definition at line 642 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4-members.html b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4-members.html new file mode 100644 index 000000000..58f493ad1 --- /dev/null +++ b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::placeholders::rangemaker< A, B, C > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html new file mode 100644 index 000000000..00c670acc --- /dev/null +++ b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_00_01_c_01_4.html @@ -0,0 +1,207 @@ + + + + + + + +xtensor: xt::placeholders::rangemaker< A, B, C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::placeholders::rangemaker< A, B, C > Struct Template Reference
    +
    +
    + + + + +

    +Public Member Functions

     operator xrange_adaptor< A, B, C > ()
     
    + + + + + +

    +Public Attributes

    std::ptrdiff_t rng [3]
     
    std::ptrdiff_t rng [3]
     
    +

    Detailed Description

    +
    template<class A, class B, class C>
    +struct xt::placeholders::rangemaker< A, B, C >
    +

    Definition at line 656 of file xslice.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator xrange_adaptor< A, B, C >()

    + +
    +
    +
    +template<class A, class B, class C>
    + + + + + +
    + + + + + + + +
    xt::placeholders::rangemaker< A, B, C >::operator xrange_adaptor< A, B, C > ()
    +
    +inline
    +
    + +

    Definition at line 658 of file xslice.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ rng [1/2]

    + +
    +
    + + + + +
    std::ptrdiff_t xt::placeholders::rangemaker< Args >::rng[3]
    +
    + +

    Definition at line 642 of file xslice.hpp.

    + +
    +
    + +

    ◆ rng [2/2]

    + +
    +
    +
    +template<class A, class B, class C>
    + + + + +
    std::ptrdiff_t xt::placeholders::rangemaker< A, B, C >::rng[3]
    +
    + +

    Definition at line 667 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4-members.html b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4-members.html new file mode 100644 index 000000000..0359c68cc --- /dev/null +++ b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::placeholders::rangemaker< A, B > Member List
    +
    +
    + +

    This is the complete list of members for xt::placeholders::rangemaker< A, B >, including all inherited members.

    + + + + +
    operator xrange_adaptor< A, B, xt::placeholders::xtuph >() (defined in xt::placeholders::rangemaker< A, B >)xt::placeholders::rangemaker< A, B >inline
    rng (defined in xt::placeholders::rangemaker< A, B >)xt::placeholders::rangemaker< A, B >
    rng (defined in xt::placeholders::rangemaker< A, B >)xt::placeholders::rangemaker< A, B >
    +
    + + + + diff --git a/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html new file mode 100644 index 000000000..be9a45fba --- /dev/null +++ b/structxt_1_1placeholders_1_1rangemaker_3_01_a_00_01_b_01_4.html @@ -0,0 +1,207 @@ + + + + + + + +xtensor: xt::placeholders::rangemaker< A, B > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::placeholders::rangemaker< A, B > Struct Template Reference
    +
    +
    + + + + +

    +Public Member Functions

     operator xrange_adaptor< A, B, xt::placeholders::xtuph > ()
     
    + + + + + +

    +Public Attributes

    std::ptrdiff_t rng [3]
     
    std::ptrdiff_t rng [3]
     
    +

    Detailed Description

    +
    template<class A, class B>
    +struct xt::placeholders::rangemaker< A, B >
    +

    Definition at line 671 of file xslice.hpp.

    +

    Member Function Documentation

    + +

    ◆ operator xrange_adaptor< A, B, xt::placeholders::xtuph >()

    + +
    +
    +
    +template<class A, class B>
    + + + + + +
    + + + + + + + +
    xt::placeholders::rangemaker< A, B >::operator xrange_adaptor< A, B, xt::placeholders::xtuph > ()
    +
    +inline
    +
    + +

    Definition at line 673 of file xslice.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ rng [1/2]

    + +
    +
    + + + + +
    std::ptrdiff_t xt::placeholders::rangemaker< Args >::rng[3]
    +
    + +

    Definition at line 642 of file xslice.hpp.

    + +
    +
    + +

    ◆ rng [2/2]

    + +
    +
    +
    +template<class A, class B>
    + + + + +
    std::ptrdiff_t xt::placeholders::rangemaker< A, B >::rng[3]
    +
    + +

    Definition at line 682 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1placeholders_1_1xtuph.html b/structxt_1_1placeholders_1_1xtuph.html new file mode 100644 index 000000000..0e9a6d149 --- /dev/null +++ b/structxt_1_1placeholders_1_1xtuph.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::placeholders::xtuph Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::placeholders::xtuph Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 635 of file xslice.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1print__options_1_1print__options__impl-members.html b/structxt_1_1print__options_1_1print__options__impl-members.html new file mode 100644 index 000000000..47659e28a --- /dev/null +++ b/structxt_1_1print__options_1_1print__options__impl-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::print_options::print_options_impl Member List
    +
    + +
    + + + + diff --git a/structxt_1_1print__options_1_1print__options__impl.html b/structxt_1_1print__options_1_1print__options__impl.html new file mode 100644 index 000000000..4fcf870e0 --- /dev/null +++ b/structxt_1_1print__options_1_1print__options__impl.html @@ -0,0 +1,204 @@ + + + + + + + +xtensor: xt::print_options::print_options_impl Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::print_options::print_options_impl Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    int edge_items = 3
     
    int line_width = 75
     
    int threshold = 1000
     
    int precision = -1
     
    +

    Detailed Description

    +
    +

    Definition at line 36 of file xio.hpp.

    +

    Member Data Documentation

    + +

    ◆ edge_items

    + +
    +
    + + + + +
    int xt::print_options::print_options_impl::edge_items = 3
    +
    + +

    Definition at line 38 of file xio.hpp.

    + +
    +
    + +

    ◆ line_width

    + +
    +
    + + + + +
    int xt::print_options::print_options_impl::line_width = 75
    +
    + +

    Definition at line 39 of file xio.hpp.

    + +
    +
    + +

    ◆ precision

    + +
    +
    + + + + +
    int xt::print_options::print_options_impl::precision = -1
    +
    + +

    Definition at line 41 of file xio.hpp.

    + +
    +
    + +

    ◆ threshold

    + +
    +
    + + + + +
    int xt::print_options::print_options_impl::threshold = 1000
    +
    + +

    Definition at line 40 of file xio.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xio.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1promote__shape-members.html b/structxt_1_1promote__shape-members.html new file mode 100644 index 000000000..45c41f100 --- /dev/null +++ b/structxt_1_1promote__shape-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::promote_shape< S > Member List
    +
    +
    + +

    This is the complete list of members for xt::promote_shape< S >, including all inherited members.

    + + +
    type typedef (defined in xt::promote_shape< S >)xt::promote_shape< S >
    +
    + + + + diff --git a/structxt_1_1promote__shape.html b/structxt_1_1promote__shape.html new file mode 100644 index 000000000..42524af98 --- /dev/null +++ b/structxt_1_1promote__shape.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::promote_shape< S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::promote_shape< S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename detail::promote_index<S...>::type
     
    +

    Detailed Description

    +
    template<class... S>
    +struct xt::promote_shape< S >
    +

    Definition at line 512 of file xshape.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... S>
    + + + + +
    using xt::promote_shape< S >::type = typename detail::promote_index<S...>::type
    +
    + +

    Definition at line 514 of file xshape.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1promote__strides-members.html b/structxt_1_1promote__strides-members.html new file mode 100644 index 000000000..f54df4f35 --- /dev/null +++ b/structxt_1_1promote__strides-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::promote_strides< S > Member List
    +
    +
    + +

    This is the complete list of members for xt::promote_strides< S >, including all inherited members.

    + + +
    type typedef (defined in xt::promote_strides< S >)xt::promote_strides< S >
    +
    + + + + diff --git a/structxt_1_1promote__strides.html b/structxt_1_1promote__strides.html new file mode 100644 index 000000000..b54a9690a --- /dev/null +++ b/structxt_1_1promote__strides.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::promote_strides< S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::promote_strides< S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename detail::promote_index<S...>::type
     
    +

    Detailed Description

    +
    template<class... S>
    +struct xt::promote_strides< S >
    +

    Definition at line 524 of file xshape.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... S>
    + + + + +
    using xt::promote_strides< S >::type = typename detail::promote_index<S...>::type
    +
    + +

    Definition at line 526 of file xshape.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1rebind__container.html b/structxt_1_1rebind__container.html new file mode 100644 index 000000000..c76b66c63 --- /dev/null +++ b/structxt_1_1rebind__container.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::rebind_container< X, C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::rebind_container< X, C > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class X, class C>
    +struct xt::rebind_container< X, C >
    +

    Definition at line 77 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4-members.html b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4-members.html new file mode 100644 index 000000000..ba6412667 --- /dev/null +++ b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::rebind_container< X, C< T, A > > Member List
    +
    +
    + +

    This is the complete list of members for xt::rebind_container< X, C< T, A > >, including all inherited members.

    + + + + +
    allocator typedef (defined in xt::rebind_container< X, C< T, A > >)xt::rebind_container< X, C< T, A > >
    traits typedef (defined in xt::rebind_container< X, C< T, A > >)xt::rebind_container< X, C< T, A > >
    type typedef (defined in xt::rebind_container< X, C< T, A > >)xt::rebind_container< X, C< T, A > >
    +
    + + + + diff --git a/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..7cc7a5c09 --- /dev/null +++ b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_a_01_4_01_4.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::rebind_container< X, C< T, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::rebind_container< X, C< T, A > > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using traits = std::allocator_traits<A>
     
    using allocator = typename traits::template rebind_alloc<X>
     
    using type = C<X, allocator>
     
    +

    Detailed Description

    +
    template<class X, template< class, class > class C, class T, class A>
    +struct xt::rebind_container< X, C< T, A > >
    +

    Definition at line 933 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator

    + +
    +
    +
    +template<class X, template< class, class > class C, class T, class A>
    + + + + +
    using xt::rebind_container< X, C< T, A > >::allocator = typename traits::template rebind_alloc<X>
    +
    + +

    Definition at line 936 of file xutils.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<class X, template< class, class > class C, class T, class A>
    + + + + +
    using xt::rebind_container< X, C< T, A > >::traits = std::allocator_traits<A>
    +
    + +

    Definition at line 935 of file xutils.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class X, template< class, class > class C, class T, class A>
    + + + + +
    using xt::rebind_container< X, C< T, A > >::type = C<X, allocator>
    +
    + +

    Definition at line 937 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4-members.html b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4-members.html new file mode 100644 index 000000000..c096ad916 --- /dev/null +++ b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::rebind_container< X, C< T, N > > Member List
    +
    +
    + +

    This is the complete list of members for xt::rebind_container< X, C< T, N > >, including all inherited members.

    + + +
    type typedef (defined in xt::rebind_container< X, C< T, N > >)xt::rebind_container< X, C< T, N > >
    +
    + + + + diff --git a/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html new file mode 100644 index 000000000..2b32b295f --- /dev/null +++ b/structxt_1_1rebind__container_3_01_x_00_01_c_3_01_t_00_01_n_01_4_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::rebind_container< X, C< T, N > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::rebind_container< X, C< T, N > > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = C<X, N>
     
    +

    Detailed Description

    +
    template<class X, template< class, std::size_t > class C, class T, std::size_t N>
    +struct xt::rebind_container< X, C< T, N > >
    +

    Definition at line 949 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class X, template< class, std::size_t > class C, class T, std::size_t N>
    + + + + +
    using xt::rebind_container< X, C< T, N > >::type = C<X, N>
    +
    + +

    Definition at line 951 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4-members.html b/structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4-members.html new file mode 100644 index 000000000..ff0040bc0 --- /dev/null +++ b/structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::rebind_container< X, svector< T, N, A, B > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html b/structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html new file mode 100644 index 000000000..12db40e26 --- /dev/null +++ b/structxt_1_1rebind__container_3_01_x_00_01svector_3_01_t_00_01_n_00_01_a_00_01_b_01_4_01_4.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::rebind_container< X, svector< T, N, A, B > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::rebind_container< X, svector< T, N, A, B > > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using traits = std::allocator_traits<A>
     
    using allocator = typename traits::template rebind_alloc<X>
     
    using type = svector<X, N, allocator, B>
     
    +

    Detailed Description

    +
    template<class X, class T, std::size_t N, class A, bool B>
    +struct xt::rebind_container< X, svector< T, N, A, B > >
    +

    Definition at line 1411 of file xstorage.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ allocator

    + +
    +
    +
    +template<class X, class T, std::size_t N, class A, bool B>
    + + + + +
    using xt::rebind_container< X, svector< T, N, A, B > >::allocator = typename traits::template rebind_alloc<X>
    +
    + +

    Definition at line 1414 of file xstorage.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<class X, class T, std::size_t N, class A, bool B>
    + + + + +
    using xt::rebind_container< X, svector< T, N, A, B > >::traits = std::allocator_traits<A>
    +
    + +

    Definition at line 1413 of file xstorage.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class X, class T, std::size_t N, class A, bool B>
    + + + + +
    using xt::rebind_container< X, svector< T, N, A, B > >::type = svector<X, N, allocator, B>
    +
    + +

    Definition at line 1415 of file xstorage.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1reducer__options-members.html b/structxt_1_1reducer__options-members.html new file mode 100644 index 000000000..826795ff6 --- /dev/null +++ b/structxt_1_1reducer__options-members.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::reducer_options< R, T > Member List
    +
    +
    + +

    This is the complete list of members for xt::reducer_options< R, T >, including all inherited members.

    + + + + + + + + + + + +
    d_t typedef (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >
    evaluation_strategy typedef (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >
    has_initial_value (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >static
    initial_val_idx (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >static
    initial_value (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >
    keep_dims typedef (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >
    rebind(NR initial, const reducer_options< R, T > &) const (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >inline
    rebind_t typedef (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >
    reducer_options()=default (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >
    reducer_options(const T &tpl) (defined in xt::reducer_options< R, T >)xt::reducer_options< R, T >inline
    +
    + + + + diff --git a/structxt_1_1reducer__options.html b/structxt_1_1reducer__options.html new file mode 100644 index 000000000..e6547dc37 --- /dev/null +++ b/structxt_1_1reducer__options.html @@ -0,0 +1,394 @@ + + + + + + + +xtensor: xt::reducer_options< R, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::reducer_options< R, T > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  initial_tester
     
    struct  initial_tester< const xinitial< X > >
     
    struct  initial_tester< xinitial< X > >
     
    + + + + + + + + + + +

    +Public Types

    using d_t = std::decay_t<T>
     
    using evaluation_strategy
     
    using keep_dims
     
    template<class NR>
    using rebind_t = reducer_options<NR, T>
     
    + + + + + + +

    +Public Member Functions

     reducer_options (const T &tpl)
     
    template<class NR>
    auto rebind (NR initial, const reducer_options< R, T > &) const
     
    + + + +

    +Public Attributes

    initial_value
     
    + + + + + +

    +Static Public Attributes

    static constexpr std::size_t initial_val_idx = xtl::mpl::find_if<initial_tester, d_t>::value
     
    static constexpr bool has_initial_value = initial_val_idx != std::tuple_size<d_t>::value
     
    +

    Detailed Description

    +
    template<class R, class T>
    +struct xt::reducer_options< R, T >
    +

    Definition at line 107 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ d_t

    + +
    +
    +
    +template<class R, class T>
    + + + + +
    using xt::reducer_options< R, T >::d_t = std::decay_t<T>
    +
    + +

    Definition at line 125 of file xreducer.hpp.

    + +
    +
    + +

    ◆ evaluation_strategy

    + +
    +
    +
    +template<class R, class T>
    + + + + +
    using xt::reducer_options< R, T >::evaluation_strategy
    +
    +Initial value:
    std::conditional_t<
    +
    tuple_idx_of<xt::evaluation_strategy::immediate_type, d_t>::value != -1,
    + + + + +
    +

    Definition at line 139 of file xreducer.hpp.

    + +
    +
    + +

    ◆ keep_dims

    + +
    +
    +
    +template<class R, class T>
    + + + + +
    using xt::reducer_options< R, T >::keep_dims
    +
    +Initial value:
    std::
    +
    conditional_t<tuple_idx_of<xt::keep_dims_type, d_t>::value != -1, std::true_type, std::false_type>
    +
    +

    Definition at line 144 of file xreducer.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class R, class T>
    +
    +template<class NR>
    + + + + +
    using xt::reducer_options< R, T >::rebind_t = reducer_options<NR, T>
    +
    + +

    Definition at line 152 of file xreducer.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ reducer_options()

    + +
    +
    +
    +template<class R, class T>
    + + + + + +
    + + + + + + + +
    xt::reducer_options< R, T >::reducer_options (const T & tpl)
    +
    +inline
    +
    + +

    Definition at line 130 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ rebind()

    + +
    +
    +
    +template<class R, class T>
    +
    +template<class NR>
    + + + + + +
    + + + + + + + + + + + +
    auto xt::reducer_options< R, T >::rebind (NR initial,
    const reducer_options< R, T > &  ) const
    +
    +inline
    +
    + +

    Definition at line 155 of file xreducer.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ has_initial_value

    + +
    +
    +
    +template<class R, class T>
    + + + + + +
    + + + + +
    bool xt::reducer_options< R, T >::has_initial_value = initial_val_idx != std::tuple_size<d_t>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 147 of file xreducer.hpp.

    + +
    +
    + +

    ◆ initial_val_idx

    + +
    +
    +
    +template<class R, class T>
    + + + + + +
    + + + + +
    std::size_t xt::reducer_options< R, T >::initial_val_idx = xtl::mpl::find_if<initial_tester, d_t>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 127 of file xreducer.hpp.

    + +
    +
    + +

    ◆ initial_value

    + +
    +
    +
    +template<class R, class T>
    + + + + +
    R xt::reducer_options< R, T >::initial_value
    +
    + +

    Definition at line 149 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1reducer__options.js b/structxt_1_1reducer__options.js new file mode 100644 index 000000000..5dc29a95a --- /dev/null +++ b/structxt_1_1reducer__options.js @@ -0,0 +1,6 @@ +var structxt_1_1reducer__options = +[ + [ "initial_tester", "structxt_1_1reducer__options_1_1initial__tester.html", null ], + [ "initial_tester< const xinitial< X > >", "structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html", null ], + [ "initial_tester< xinitial< X > >", "structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html", null ] +]; \ No newline at end of file diff --git a/structxt_1_1reducer__options_1_1initial__tester.html b/structxt_1_1reducer__options_1_1initial__tester.html new file mode 100644 index 000000000..6b2d624bf --- /dev/null +++ b/structxt_1_1reducer__options_1_1initial__tester.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: xt::reducer_options< R, T >::initial_tester< X > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::reducer_options< R, T >::initial_tester< X > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::reducer_options< R, T >::initial_tester< X >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class R, class T>
    +template<class X>
    +struct xt::reducer_options< R, T >::initial_tester< X >
    +

    Definition at line 110 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1reducer__options_1_1initial__tester.png b/structxt_1_1reducer__options_1_1initial__tester.png new file mode 100644 index 0000000000000000000000000000000000000000..b94db122114b4f84314934acc6d00804bb1e9ca5 GIT binary patch literal 913 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3;z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!?#8;gal6i|{1n^W z;GwuWX`$YZmEC{$TxV@8<`s;dKfiO=4Pm9`e<1l+S9&^qjwh^+=MS_oi`BWAKB=ZX zc5)0$tm|eA#=LcXkYfX!{0u?lbTd> zGfYXPa^l?yC+0X@&*<2%QrURd+AZup(CKw&P~D%Y6y&9u`IWID`i3~e5>-J4iQCu1 zl^6x4xG=c*ItXz#tWsfO$UDj0pxMb_0F+*)!gK&AH)9e9L$DBIf|nA5k0%QSk}vIC zyfjsHZ8RoL*=FzQGD)-3!$?)obD4_L$twbuM?TwZUwNE)?z1=drmbD}Jwfv3DfYN| z78`1$Oe(YmJ%2TyUAyO{vMm3cx~3C*Ke~c&=VK8n@i# zTG-b7iBhG{)qmK0x_swt+Na>hJ6?M%w*P-mD6>ZD%hnB9kB?nGbu(*s$<=cronI7R zwaz`PIq~S-=1^0`-y9Q7r=3sU-Z?|S_wR|_^;^$AyDm3(_k7-8-(+$Fugslw@9JTR z%s=%FCq68h`()y02}>)}#iFH#m-5o3m20PMQO#4Y*znqRqLOQAcBNUrjqehVz-_x9 zzS=OSrr^5C_OAP;U(dgvb;9zF_TAD8F7D1xesF~bhTdJ6`@zhyZTGQLlNKG?q{@2L zM#=Mj(t6$>Z}U7ZX@8S-dG_S#Lk&;=oA)a(Rw#Jt-_A{PnUt59ub|}le*-kYr?{xh moYbLm*=5O;pi8elbH8s4nC{gOvj>=Y7(8A5T-G@yGywp=mY+-j literal 0 HcmV?d00001 diff --git a/structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html b/structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html new file mode 100644 index 000000000..4090aefb2 --- /dev/null +++ b/structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: xt::reducer_options< R, T >::initial_tester< const xinitial< X > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::reducer_options< R, T >::initial_tester< const xinitial< X > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::reducer_options< R, T >::initial_tester< const xinitial< X > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class R, class T>
    +template<class X>
    +struct xt::reducer_options< R, T >::initial_tester< const xinitial< X > >
    +

    Definition at line 121 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.png b/structxt_1_1reducer__options_1_1initial__tester_3_01const_01xinitial_3_01_x_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..751dfcbd4b616f803515b11da70083e6c738d18e GIT binary patch literal 1481 zcmeAS@N?(olHy`uVBq!ia0y~yV0r;$2XHV0$(p8u$v{dvz$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#e)YAfa0cS!3f*F8(FfeDDeT9L6HN?}!F{Fa=?cCc{tM>@8 zWar)a{Lg<+u5-_kgMOR-c{JVqr=k96NnvnLUT24aprG%AuMk>6<)lXtv)4sc5T&zA zW$WQZ-a+hm7;d7q>#{WU;{MBt)bQn>Q}|`|dwc7=r=_;tFI=aJ#ZLMs(5>fLe|~ZK z@h@MyK3e|!RrmFK=AJo*@_YYpw$$-dHrVl^{ic1J_mAb>wJsN(qqY@oVA*vmJT5%m zG;Y6S^p^?K)}Gth@x5guzt%6m1?#_kvihR-aWA`)C$qtx7wk8$_dYAx*st+x3&Xpv zx_FUpw$C!_g!Sb;N+Tw*CFES}-)w*8tIS4z&0kh~N^gYTUb#Ck=ltX)jS?|m{BO=T z{U+$jpLvtd<$k49>Z9s*)l7zCVzx_CZ=e0QWF!C0i_4!Ddu^TcYonIfLchmnSN%Ry zTMaVyL*Ksne<%Hy`S&tOKB&a=mu~T+NhWH|K!5H}_;F*s!mquJHg?_*K%Spfe6((3 zpWS~EpyXQ%$2a1_v6I-IcP;Y1^dX|eGppTo`Vu}oj61IVpxDvXaDmVa7Ru%f%ooJi z`7iK2=e@uPq@%YQ~!x#bg(7i`g1)7A3%#`l9{X z|39TW;y?CwKl&KizuNXT*D~wy$IV*x--WJ+*QVb~`jP0>&3B>IUc}b;GxPb)eP>Rc zx$}I%i~Rz&#?#;CM)ZGNE~#tfAl~H`^6gSZ+4{_y|MQ}6PF_EE^ODx|^ReG;KQBFf z^YXsubB#9N*r)$%bJO*+uVzpGtZ#b#u`jb;y<6n{aE{Zd^Pg>f!LZoae%1+{?Jpl=-u@OgFCVvt&KM zu;tm;h}Ugjgi_x7*VgF%^4dB#d$nuA-KVD$|4QY)`xEx%D)-L4ck|AE<@#87Z`Y5i z4a;}AvcEWFeNmm8KjrS4`}1ArS0$%@D%%55!;`xjMDfBj>=Xr5b;wPohcocr%zl)C`OA0j%R6`<#9dpJ zdAgJTm3I8obd~()v0Zo8v01OzZeYyt)vfxOFyH&jp9Rm}nXbS6bmOZ3e&K%gr#8o5 z@e^N^U-dTXW7LkP&#vD7X|u)TebJnmSHu4HtlGEpMC`@y&vjqjJ2QFa(KMigKRi5{ zlJ>9X{@oAu`pU+|Hafsa`*(Lkb$xZsKhK->tCK<<)1EDeC~45+xpdLk_&@)K7Ywl* rrq7(Y7R-1-n9%_)9~mrk|1+zcSmpBZxuX`a&}Hy+^>bP0l+XkK$Hvh) literal 0 HcmV?d00001 diff --git a/structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html b/structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html new file mode 100644 index 000000000..11a6a7820 --- /dev/null +++ b/structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: xt::reducer_options< R, T >::initial_tester< xinitial< X > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::reducer_options< R, T >::initial_tester< xinitial< X > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::reducer_options< R, T >::initial_tester< xinitial< X > >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class R, class T>
    +template<class X>
    +struct xt::reducer_options< R, T >::initial_tester< xinitial< X > >
    +

    Definition at line 115 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.png b/structxt_1_1reducer__options_1_1initial__tester_3_01xinitial_3_01_x_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c77ce5645688210b0882eb695cbe468025c88c15 GIT binary patch literal 1418 zcmbVMdsNbA82)+9Oe`x(O=F{MrluXmso6z3{Ekw}MG)=6tjrr*&;`jT(UqHpIi060 zG?J_!Z>ZTa&BU}U4MjBXk}kJWNsA-q#E5;gfA;V8{qeoe_dd_}p7TEMcfJcGLNLPG z(Hepv1U>{84nd|x0F$iDz&`8vRtLfwQYaNR7z_Z8zne|UZj$(K-gwmhihO)@bQI)$ z+iAA|x0oGHpg`dKW%-#Fyo4YNBp!#QCYwwN2RLI}Y|NK!JqS3!J>%T!a;c!kFIqTQqgA{9IL z?uLh>$oP^L{;qI48a21X0jDfJUz_*9P)iv(Z+lTP?%kIWi_q;wlq66tfvc!Pu*-z& z6`n&)^jwZqT`@9uox4wQGBi?=TIRXCYr$ccQnlafML_@Kb9lP-LpD${Ui9i=c2-FXV~v9b7r{C z1J8=D#2VK3WuIq@u&FP~x;5VM`Olf^9;b)mx&|ZNh?U8cIylyx4+^A4&u5P-)A%|aV2dMi~75X)o1P&A}#K`MY-h*=F`=5eR;*!2NZ1$s575@^+~M$ zhd@x4*o_+ejO-I1-&dGQbbiy;*NU%b$x#>22qu*C(?hjtf?&X@!kt?_+OS7TdL_}bWSg4Kn9fxQEqj~m%r`d z)+a{qk@e@k1WnI`C<}H3=9gQ(J^@QK3&}iBE@R}Q_wnsg*aN9AQNNPCPx8DtwCUs^ zTQhl&&JGR-y(x}&R;UK1ik95?j>PT}uC>+0)7h*}R!ULqYE}PXx<=Prn`v4v7`P@S zYtQi*H1+km+X;v7KWjS&vxXzt1FYx>jQ7yZ)2czgce+z3=9b9Ll-@9Gxoe|L6nRhI zEA?UNR*A*lh^CKw`(~I#UfAILG^aEE&6(l3C`|9uZKXf^v0gojtZCh@(8LJ^?N!C& zAH`wh(k}1n0ON3phZOQpYj+G))?bv%{bFE~$$;sW+Nu3K+g45)AGQz(WIuu##^-o~ z8BRoz)3~3dWP#we5tSvx#Vw|-6s>j77wkC;RL}Tvad`(ojjAGnz{My*qeF2|jzQbg Z4N%jrgvj1ZX*KvYAv{dLNp~JN`#02qp56ce literal 0 HcmV?d00001 diff --git a/structxt_1_1remove__class.html b/structxt_1_1remove__class.html new file mode 100644 index 000000000..7e86c2cd9 --- /dev/null +++ b/structxt_1_1remove__class.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::remove_class< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::remove_class< T > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class T>
    +struct xt::remove_class< T >
    +

    Definition at line 139 of file xutils.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4-members.html b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4-members.html new file mode 100644 index 000000000..c4a0c406f --- /dev/null +++ b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::remove_class< R(C::*)(Args...) const > Member List
    +
    +
    + +

    This is the complete list of members for xt::remove_class< R(C::*)(Args...) const >, including all inherited members.

    + + +
    type typedef (defined in xt::remove_class< R(C::*)(Args...) const >)xt::remove_class< R(C::*)(Args...) const >
    +
    + + + + diff --git a/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html new file mode 100644 index 000000000..fc1322d75 --- /dev/null +++ b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_01const_01_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::remove_class< R(C::*)(Args...) const > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::remove_class< R(C::*)(Args...) const > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    typedef R type(Args...)
     
    +

    Detailed Description

    +
    template<class C, class R, class... Args>
    +struct xt::remove_class< R(C::*)(Args...) const >
    +

    Definition at line 150 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class C, class R, class... Args>
    + + + + +
    typedef R xt::remove_class< R(C::*)(Args...) const >::type(Args...)
    +
    + +

    Definition at line 152 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4-members.html b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4-members.html new file mode 100644 index 000000000..d1599240e --- /dev/null +++ b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::remove_class< R(C::*)(Args...)> Member List
    +
    +
    + +

    This is the complete list of members for xt::remove_class< R(C::*)(Args...)>, including all inherited members.

    + + +
    type typedef (defined in xt::remove_class< R(C::*)(Args...)>)xt::remove_class< R(C::*)(Args...)>
    +
    + + + + diff --git a/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html new file mode 100644 index 000000000..a52ea716e --- /dev/null +++ b/structxt_1_1remove__class_3_01_r_07_c_1_1_5_08_07_args_8_8_8_08_4.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::remove_class< R(C::*)(Args...)> Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::remove_class< R(C::*)(Args...)> Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    typedef R type(Args...)
     
    +

    Detailed Description

    +
    template<class C, class R, class... Args>
    +struct xt::remove_class< R(C::*)(Args...)>
    +

    Definition at line 144 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class C, class R, class... Args>
    + + + + +
    typedef R xt::remove_class< R(C::*)(Args...)>::type(Args...)
    +
    + +

    Definition at line 146 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1select__dim__mapping__type-members.html b/structxt_1_1select__dim__mapping__type-members.html new file mode 100644 index 000000000..da1dd49dc --- /dev/null +++ b/structxt_1_1select__dim__mapping__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::select_dim_mapping_type< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::select_dim_mapping_type< T >, including all inherited members.

    + + +
    type typedef (defined in xt::select_dim_mapping_type< T >)xt::select_dim_mapping_type< T >
    +
    + + + + diff --git a/structxt_1_1select__dim__mapping__type.html b/structxt_1_1select__dim__mapping__type.html new file mode 100644 index 000000000..787afa9d2 --- /dev/null +++ b/structxt_1_1select__dim__mapping__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::select_dim_mapping_type< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::select_dim_mapping_type< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::select_dim_mapping_type< T >
    +

    Definition at line 775 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::select_dim_mapping_type< T >::type = T
    +
    + +

    Definition at line 777 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html b/structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..094f4fde6 --- /dev/null +++ b/structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::select_dim_mapping_type< fixed_shape< I... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html b/structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..8c7cdd1fe --- /dev/null +++ b/structxt_1_1select__dim__mapping__type_3_01fixed__shape_3_01_i_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::select_dim_mapping_type< fixed_shape< I... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::select_dim_mapping_type< fixed_shape< I... > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::array<std::size_t, sizeof...(I)>
     
    using type
     
    +

    Detailed Description

    +
    template<std::size_t... I>
    +struct xt::select_dim_mapping_type< fixed_shape< I... > >
    +

    Definition at line 781 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::select_dim_mapping_type< fixed_shape< I... > >::type
    +
    + +

    Definition at line 777 of file xreducer.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<std::size_t... I>
    + + + + +
    using xt::select_dim_mapping_type< fixed_shape< I... > >::type = std::array<std::size_t, sizeof...(I)>
    +
    + +

    Definition at line 783 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1select__iterable__base-members.html b/structxt_1_1select__iterable__base-members.html new file mode 100644 index 000000000..103d3ba9c --- /dev/null +++ b/structxt_1_1select__iterable__base-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::select_iterable_base< L1, L2, T > Member List
    +
    +
    + +

    This is the complete list of members for xt::select_iterable_base< L1, L2, T >, including all inherited members.

    + + +
    type typedef (defined in xt::select_iterable_base< L1, L2, T >)xt::select_iterable_base< L1, L2, T >
    +
    + + + + diff --git a/structxt_1_1select__iterable__base.html b/structxt_1_1select__iterable__base.html new file mode 100644 index 000000000..1acd4b52b --- /dev/null +++ b/structxt_1_1select__iterable__base.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::select_iterable_base< L1, L2, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::select_iterable_base< L1, L2, T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = std::conditional_t<L1 == L2 && L1 != layout_type::dynamic, xcontiguous_iterable<T>, xiterable<T>>
     
    +

    Detailed Description

    +
    template<layout_type L1, layout_type L2, class T>
    +struct xt::select_iterable_base< L1, L2, T >
    +

    Definition at line 56 of file xstrided_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<layout_type L1, layout_type L2, class T>
    + + + + +
    using xt::select_iterable_base< L1, L2, T >::type = std::conditional_t<L1 == L2 && L1 != layout_type::dynamic, xcontiguous_iterable<T>, xiterable<T>>
    +
    + +

    Definition at line 58 of file xstrided_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1select__layout-members.html b/structxt_1_1select__layout-members.html new file mode 100644 index 000000000..79c690d66 --- /dev/null +++ b/structxt_1_1select__layout-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::select_layout< L, S > Member List
    +
    +
    + +

    This is the complete list of members for xt::select_layout< L, S >, including all inherited members.

    + + + + +
    is_any (defined in xt::select_layout< L, S >)xt::select_layout< L, S >static
    static_dimension (defined in xt::select_layout< L, S >)xt::select_layout< L, S >static
    value (defined in xt::select_layout< L, S >)xt::select_layout< L, S >static
    +
    + + + + diff --git a/structxt_1_1select__layout.html b/structxt_1_1select__layout.html new file mode 100644 index 000000000..bf03f80af --- /dev/null +++ b/structxt_1_1select__layout.html @@ -0,0 +1,227 @@ + + + + + + + +xtensor: xt::select_layout< L, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::select_layout< L, S > Struct Template Reference
    +
    +
    + +

    Compute a layout based on a layout and a shape type. + More...

    + +

    #include <xshape.hpp>

    + + + + + + + + +

    +Static Public Attributes

    static constexpr std::ptrdiff_t static_dimension = xt::static_dimension<S>::value
     
    static constexpr bool is_any
     
    static constexpr layout_type value = is_any ? layout_type::any : L
     
    +

    Detailed Description

    +
    template<layout_type L, class S>
    +struct xt::select_layout< L, S >

    Compute a layout based on a layout and a shape type.

    +

    The main functionality of this function is that it reduces vectors to xt::layout_type::any so that assigning a row major 1D container to another row_major container becomes free.

    + +

    Definition at line 260 of file xshape.hpp.

    +

    Member Data Documentation

    + +

    ◆ is_any

    + +
    +
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + +
    bool xt::select_layout< L, S >::is_any
    +
    +staticconstexpr
    +
    +Initial value:
    = static_dimension != -1 && static_dimension <= 1
    + + +
    +

    Definition at line 263 of file xshape.hpp.

    + +
    +
    + +

    ◆ static_dimension

    + +
    +
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + +
    std::ptrdiff_t xt::select_layout< L, S >::static_dimension = xt::static_dimension<S>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 262 of file xshape.hpp.

    + +
    +
    + +

    ◆ value

    + +
    +
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + +
    layout_type xt::select_layout< L, S >::value = is_any ? layout_type::any : L
    +
    +staticconstexpr
    +
    + +

    Definition at line 265 of file xshape.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1squared__norm__type-members.html b/structxt_1_1squared__norm__type-members.html new file mode 100644 index 000000000..2d374451e --- /dev/null +++ b/structxt_1_1squared__norm__type-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::squared_norm_type< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::squared_norm_type< T >, including all inherited members.

    + + + +
    base_type typedef (defined in xt::squared_norm_type< T >)xt::squared_norm_type< T >
    type typedef (defined in xt::squared_norm_type< T >)xt::squared_norm_type< T >
    +
    + + + + diff --git a/structxt_1_1squared__norm__type.html b/structxt_1_1squared__norm__type.html new file mode 100644 index 000000000..218180426 --- /dev/null +++ b/structxt_1_1squared__norm__type.html @@ -0,0 +1,234 @@ + + + + + + + +xtensor: xt::squared_norm_type< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::squared_norm_type< T > Struct Template Reference
    +
    +
    + +

    Traits class for the result type of the norm_sq() function. + More...

    + +

    #include <xnorm.hpp>

    +
    +Inheritance diagram for xt::squared_norm_type< T >:
    +
    +
    + + +xt::traits_detail::norm_type_base< T > + +
    + + + + + + + + + + + + + +

    +Public Types

    using base_type = traits_detail::norm_type_base<T>
     
    using type
     
    - Public Types inherited from xt::traits_detail::norm_type_base< T >
    using T
     
    using norm_of_scalar
     
    using norm_of_vector
     
    + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from xt::traits_detail::norm_type_base< T >
    static const bool value
     
    static const bool value
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::squared_norm_type< T >

    Traits class for the result type of the norm_sq() function.

    +

    Member 'type' defines the result of norm_sq(t), where t is of type

    Template Parameters
    + + + + + + + +
    T.It implements the following rules designed to minimize the potential for overflow:
      +
    • +
    +
    Tis an arithmetic type: 'type' is the result type of t*t.
      +
    • +
    +
    Tis a container of 'long double' elements: 'type' is long double.
      +
    • +
    +
    Tis a container of another floating-point type: 'type' is double.
      +
    • +
    +
    Tis a container of integer elements: 'type' is uint64_t.
      +
    • +
    +
    Tis a container of some other type: 'type' is the element's squared norm type,
    +
    +
    +

    Containers are recognized by having an embedded typedef 'value_type'. To change the behavior for a case not covered here, specialize the traits_detail::norm_type_base template.

    + +

    Definition at line 186 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::squared_norm_type< T >::base_type = traits_detail::norm_type_base<T>
    +
    + +

    Definition at line 188 of file xnorm.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::squared_norm_type< T >::type
    +
    +Initial value:
    typename std::conditional<
    +
    base_type::norm_of_vector::value,
    +
    typename base_type::norm_of_vector::squared_norm_type,
    +
    typename base_type::norm_of_scalar::squared_norm_type>::type
    +
    +

    Definition at line 190 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1squared__norm__type.png b/structxt_1_1squared__norm__type.png new file mode 100644 index 0000000000000000000000000000000000000000..7026f02cb776356fd489335227c5472e10904df5 GIT binary patch literal 819 zcmeAS@N?(olHy`uVBq!ia0vp^cY!#7gBeJ!GHK8QQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=B;BJY5_^Dj46+eckt3fv2Ut zbIYvn^^YdE7O3aGSZ2$*adsz%ncjTff4#Z4w`I2Ws;FOGqkE$}AJLL!QZ46` zmVG$orW-yf=Vj;ntpUgWPE1+WU827K@}k{)mP)@oCu2L;)UD3iU>jdqmi(=mCdd9I z`ktGxW0_@1z0(&^9kXz8;?Elah5HNb^fY8MX4ua>T6^nn82ipL zKFyq?b~Zw%YCKDgY9B4${6AxXYyX~@*7$e9DT@}Jp1ZoXB{g%?tgYN_%S+yEQM;;B zE+veca_^)m8Kih5{J?1j0{FSwzn&&>}?mm^{SHJ;v85nM7wHSUZsAEWo z^7Z}x+1U8rl@jYaM=FXhubs!qusG`?tUxs!Z074oX!#8|fRqd`;wT?wY?PAC0YNzWh+S>q-{0D96$3m!q#18ojpJUOso) zrglBwaFe~;%QnVOx&9$TX;R?QNB2rE)_%HIx$DA{OY>e>dvBTd<;%QH)JgZCxgD*d@{dHT->yqdI6_2v0r%WkRidQQr_5dT8uZtvscI gt>+pZJF}|(?cH5Avkj!gfXSP|)78&qol`;+0G!E<9RL6T literal 0 HcmV?d00001 diff --git a/structxt_1_1static__dimension-members.html b/structxt_1_1static__dimension-members.html new file mode 100644 index 000000000..6077f0d16 --- /dev/null +++ b/structxt_1_1static__dimension-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::static_dimension< S > Member List
    +
    +
    + +

    This is the complete list of members for xt::static_dimension< S >, including all inherited members.

    + + +
    value (defined in xt::static_dimension< S >)xt::static_dimension< S >static
    +
    + + + + diff --git a/structxt_1_1static__dimension.html b/structxt_1_1static__dimension.html new file mode 100644 index 000000000..8f5db0b14 --- /dev/null +++ b/structxt_1_1static__dimension.html @@ -0,0 +1,163 @@ + + + + + + + +xtensor: xt::static_dimension< S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::static_dimension< S > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::ptrdiff_t value = detail::static_dimension_impl<S>::value
     
    +

    Detailed Description

    +
    template<class S>
    +struct xt::static_dimension< S >
    Examples
    /home/runner/work/xtensor/xtensor/include/xtensor/views/index_mapper.hpp.
    +
    + +

    Definition at line 245 of file xshape.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class S>
    + + + + + +
    + + + + +
    std::ptrdiff_t xt::static_dimension< S >::value = detail::static_dimension_impl<S>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 247 of file xshape.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1static__string-members.html b/structxt_1_1static__string-members.html new file mode 100644 index 000000000..a332ef15e --- /dev/null +++ b/structxt_1_1static__string-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::static_string Member List
    +
    +
    + +

    This is the complete list of members for xt::static_string, including all inherited members.

    + + + + + +
    data (defined in xt::static_string)xt::static_string
    size (defined in xt::static_string)xt::static_string
    static_string(const char(&a)[N]) (defined in xt::static_string)xt::static_stringinlineexplicit
    static_string(const char *a, const std::size_t sz) (defined in xt::static_string)xt::static_stringinline
    +
    + + + + diff --git a/structxt_1_1static__string.html b/structxt_1_1static__string.html new file mode 100644 index 000000000..797408898 --- /dev/null +++ b/structxt_1_1static__string.html @@ -0,0 +1,238 @@ + + + + + + + +xtensor: xt::static_string Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::static_string Struct Reference
    +
    +
    + + + + + + + +

    +Public Member Functions

    template<std::size_t N>
     static_string (const char(&a)[N])
     
     static_string (const char *a, const std::size_t sz)
     
    + + + + + +

    +Public Attributes

    const char *const data
     
    const std::size_t size
     
    +

    Detailed Description

    +
    +

    Definition at line 50 of file xinfo.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ static_string() [1/2]

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + +
    xt::static_string::static_string (const char(&) a[N])
    +
    +inlineexplicit
    +
    + +

    Definition at line 53 of file xinfo.hpp.

    + +
    +
    + +

    ◆ static_string() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + +
    xt::static_string::static_string (const char * a,
    const std::size_t sz )
    +
    +inline
    +
    + +

    Definition at line 58 of file xinfo.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ data

    + +
    +
    + + + + +
    const char* const xt::static_string::data
    +
    + +

    Definition at line 63 of file xinfo.hpp.

    + +
    +
    + +

    ◆ size

    + +
    +
    + + + + +
    const std::size_t xt::static_string::size
    +
    + +

    Definition at line 64 of file xinfo.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xinfo.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1stepper__tools-members.html b/structxt_1_1stepper__tools-members.html new file mode 100644 index 000000000..0d2cd81f3 --- /dev/null +++ b/structxt_1_1stepper__tools-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::stepper_tools< L > Member List
    +
    +
    + +

    This is the complete list of members for xt::stepper_tools< L >, including all inherited members.

    + + + + + + + + + + + + + +
    decrement_stepper(S &stepper, IT &index, const ST &shape) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >static
    decrement_stepper(S &stepper, IT &index, const ST &shape, typename S::size_type n) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >static
    decrement_stepper(S &stepper, IT &index, const ST &shape) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    decrement_stepper(S &stepper, IT &index, const ST &shape, typename S::size_type n) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    decrement_stepper(S &stepper, IT &index, const ST &shape) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    decrement_stepper(S &stepper, IT &index, const ST &shape, typename S::size_type n) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    increment_stepper(S &stepper, IT &index, const ST &shape) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >static
    increment_stepper(S &stepper, IT &index, const ST &shape, typename S::size_type n) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >static
    increment_stepper(S &stepper, IT &index, const ST &shape) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    increment_stepper(S &stepper, IT &index, const ST &shape, typename S::size_type n) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    increment_stepper(S &stepper, IT &index, const ST &shape) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    increment_stepper(S &stepper, IT &index, const ST &shape, typename S::size_type n) (defined in xt::stepper_tools< L >)xt::stepper_tools< L >
    +
    + + + + diff --git a/structxt_1_1stepper__tools.html b/structxt_1_1stepper__tools.html new file mode 100644 index 000000000..888f855f5 --- /dev/null +++ b/structxt_1_1stepper__tools.html @@ -0,0 +1,413 @@ + + + + + + + +xtensor: xt::stepper_tools< L > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::stepper_tools< L > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    void increment_stepper (S &stepper, IT &index, const ST &shape)
     
    void increment_stepper (S &stepper, IT &index, const ST &shape, typename S::size_type n)
     
    void decrement_stepper (S &stepper, IT &index, const ST &shape)
     
    void decrement_stepper (S &stepper, IT &index, const ST &shape, typename S::size_type n)
     
    void increment_stepper (S &stepper, IT &index, const ST &shape)
     
    void increment_stepper (S &stepper, IT &index, const ST &shape, typename S::size_type n)
     
    void decrement_stepper (S &stepper, IT &index, const ST &shape)
     
    void decrement_stepper (S &stepper, IT &index, const ST &shape, typename S::size_type n)
     
    + + + + + + + + + + + + + +

    +Static Public Member Functions

    +template<class S, class IT, class ST>
    static void increment_stepper (S &stepper, IT &index, const ST &shape)
     
    +template<class S, class IT, class ST>
    static void decrement_stepper (S &stepper, IT &index, const ST &shape)
     
    +template<class S, class IT, class ST>
    static void increment_stepper (S &stepper, IT &index, const ST &shape, typename S::size_type n)
     
    +template<class S, class IT, class ST>
    static void decrement_stepper (S &stepper, IT &index, const ST &shape, typename S::size_type n)
     
    +

    Detailed Description

    +
    template<layout_type L>
    +struct xt::stepper_tools< L >
    +

    Definition at line 152 of file xiterator.hpp.

    +

    Member Function Documentation

    + +

    ◆ decrement_stepper() [1/4]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::row_major >::decrement_stepper (S & stepper,
    IT & index,
    const ST & shape )
    +
    + +

    Definition at line 696 of file xiterator.hpp.

    + +
    +
    + +

    ◆ decrement_stepper() [2/4]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::column_major >::decrement_stepper (S & stepper,
    IT & index,
    const ST & shape )
    +
    + +

    Definition at line 879 of file xiterator.hpp.

    + +
    +
    + +

    ◆ decrement_stepper() [3/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::row_major >::decrement_stepper (S & stepper,
    IT & index,
    const ST & shape,
    typename S::size_type n )
    +
    + +

    Definition at line 726 of file xiterator.hpp.

    + +
    +
    + +

    ◆ decrement_stepper() [4/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::column_major >::decrement_stepper (S & stepper,
    IT & index,
    const ST & shape,
    typename S::size_type n )
    +
    + +

    Definition at line 910 of file xiterator.hpp.

    + +
    +
    + +

    ◆ increment_stepper() [1/4]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::row_major >::increment_stepper (S & stepper,
    IT & index,
    const ST & shape )
    +
    + +

    Definition at line 591 of file xiterator.hpp.

    + +
    +
    + +

    ◆ increment_stepper() [2/4]

    + +
    +
    + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::column_major >::increment_stepper (S & stepper,
    IT & index,
    const ST & shape )
    +
    + +

    Definition at line 773 of file xiterator.hpp.

    + +
    +
    + +

    ◆ increment_stepper() [3/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::row_major >::increment_stepper (S & stepper,
    IT & index,
    const ST & shape,
    typename S::size_type n )
    +
    + +

    Definition at line 635 of file xiterator.hpp.

    + +
    +
    + +

    ◆ increment_stepper() [4/4]

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    void xt::stepper_tools< layout_type::column_major >::increment_stepper (S & stepper,
    IT & index,
    const ST & shape,
    typename S::size_type n )
    +
    + +

    Definition at line 817 of file xiterator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1check__strides__functor-members.html b/structxt_1_1strided__assign__detail_1_1check__strides__functor-members.html new file mode 100644 index 000000000..c1bf258a4 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1check__strides__functor-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::strided_assign_detail::check_strides_functor< L, S > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1check__strides__functor.html b/structxt_1_1strided__assign__detail_1_1check__strides__functor.html new file mode 100644 index 000000000..a16618ecf --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1check__strides__functor.html @@ -0,0 +1,326 @@ + + + + + + + +xtensor: xt::strided_assign_detail::check_strides_functor< L, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::strided_assign_detail::check_strides_functor< L, S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using strides_type = S
     
    + + + + + + + + + + + + + + + +

    +Public Member Functions

     check_strides_functor (const S &strides)
     
    template<class T, layout_type LE = L>
    std::enable_if_t< LE==layout_type::row_major, std::size_t > operator() (const T &el)
     
    template<class T, layout_type LE = L>
    std::enable_if_t< LE==layout_type::column_major, std::size_t > operator() (const T &el)
     
    template<class T>
    std::size_t operator() (const xt::xscalar< T > &)
     
    template<class F, class... CT>
    std::size_t operator() (const xt::xfunction< F, CT... > &xf)
     
    +

    Detailed Description

    +
    template<layout_type L, class S>
    +struct xt::strided_assign_detail::check_strides_functor< L, S >
    +

    Definition at line 952 of file xassign.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ strides_type

    + +
    +
    +
    +template<layout_type L, class S>
    + + + + +
    using xt::strided_assign_detail::check_strides_functor< L, S >::strides_type = S
    +
    + +

    Definition at line 954 of file xassign.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ check_strides_functor()

    + +
    +
    +
    +template<layout_type L, class S>
    + + + + + +
    + + + + + + + +
    xt::strided_assign_detail::check_strides_functor< L, S >::check_strides_functor (const S & strides)
    +
    +inline
    +
    + +

    Definition at line 956 of file xassign.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/4]

    + +
    +
    +
    +template<layout_type L, class S>
    +
    +template<class T, layout_type LE = L>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< LE==layout_type::row_major, std::size_t > xt::strided_assign_detail::check_strides_functor< L, S >::operator() (const T & el)
    +
    +inline
    +
    + +

    Definition at line 963 of file xassign.hpp.

    + +
    +
    + +

    ◆ operator()() [2/4]

    + +
    +
    +
    +template<layout_type L, class S>
    +
    +template<class T, layout_type LE = L>
    + + + + + +
    + + + + + + + +
    std::enable_if_t< LE==layout_type::column_major, std::size_t > xt::strided_assign_detail::check_strides_functor< L, S >::operator() (const T & el)
    +
    +inline
    +
    + +

    Definition at line 975 of file xassign.hpp.

    + +
    +
    + +

    ◆ operator()() [3/4]

    + +
    +
    +
    +template<layout_type L, class S>
    +
    +template<class F, class... CT>
    + + + + + +
    + + + + + + + +
    std::size_t xt::strided_assign_detail::check_strides_functor< L, S >::operator() (const xt::xfunction< F, CT... > & xf)
    +
    +inline
    +
    + +

    Definition at line 993 of file xassign.hpp.

    + +
    +
    + +

    ◆ operator()() [4/4]

    + +
    +
    +
    +template<layout_type L, class S>
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    std::size_t xt::strided_assign_detail::check_strides_functor< L, S >::operator() (const xt::xscalar< T > & )
    +
    +inline
    +
    + +

    Definition at line 987 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1idx__tools.html b/structxt_1_1strided__assign__detail_1_1idx__tools.html new file mode 100644 index 000000000..df2343e02 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1idx__tools.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::strided_assign_detail::idx_tools< layout > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::strided_assign_detail::idx_tools< layout > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<layout_type layout>
    +struct xt::strided_assign_detail::idx_tools< layout >
    +

    Definition at line 858 of file xassign.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4-members.html b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4-members.html new file mode 100644 index 000000000..06f9767d9 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::strided_assign_detail::idx_tools< layout_type::column_major > Member List
    +
    +
    + +

    This is the complete list of members for xt::strided_assign_detail::idx_tools< layout_type::column_major >, including all inherited members.

    + + + +
    next_idx(T &outer_index, T &outer_shape) (defined in xt::strided_assign_detail::idx_tools< layout_type::column_major >)xt::strided_assign_detail::idx_tools< layout_type::column_major >inlinestatic
    nth_idx(size_t n, T &outer_index, const T &outer_shape) (defined in xt::strided_assign_detail::idx_tools< layout_type::column_major >)xt::strided_assign_detail::idx_tools< layout_type::column_major >inlinestatic
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html new file mode 100644 index 000000000..e934988c9 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1column__major_01_4.html @@ -0,0 +1,209 @@ + + + + + + + +xtensor: xt::strided_assign_detail::idx_tools< layout_type::column_major > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::strided_assign_detail::idx_tools< layout_type::column_major > Struct Reference
    +
    +
    + + + + + + + + +

    +Static Public Member Functions

    template<class T>
    static void next_idx (T &outer_index, T &outer_shape)
     
    template<class T>
    static void nth_idx (size_t n, T &outer_index, const T &outer_shape)
     
    +

    Detailed Description

    +
    +

    Definition at line 904 of file xassign.hpp.

    +

    Member Function Documentation

    + +

    ◆ next_idx()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    static void xt::strided_assign_detail::idx_tools< layout_type::column_major >::next_idx (T & outer_index,
    T & outer_shape )
    +
    +inlinestatic
    +
    + +

    Definition at line 907 of file xassign.hpp.

    + +
    +
    + +

    ◆ nth_idx()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    static void xt::strided_assign_detail::idx_tools< layout_type::column_major >::nth_idx (size_t n,
    T & outer_index,
    const T & outer_shape )
    +
    +inlinestatic
    +
    + +

    Definition at line 927 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4-members.html b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4-members.html new file mode 100644 index 000000000..79a520109 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::strided_assign_detail::idx_tools< layout_type::row_major > Member List
    +
    +
    + +

    This is the complete list of members for xt::strided_assign_detail::idx_tools< layout_type::row_major >, including all inherited members.

    + + + +
    next_idx(T &outer_index, T &outer_shape) (defined in xt::strided_assign_detail::idx_tools< layout_type::row_major >)xt::strided_assign_detail::idx_tools< layout_type::row_major >inlinestatic
    nth_idx(size_t n, T &outer_index, const T &outer_shape) (defined in xt::strided_assign_detail::idx_tools< layout_type::row_major >)xt::strided_assign_detail::idx_tools< layout_type::row_major >inlinestatic
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html new file mode 100644 index 000000000..9a3f8cda1 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1idx__tools_3_01layout__type_1_1row__major_01_4.html @@ -0,0 +1,209 @@ + + + + + + + +xtensor: xt::strided_assign_detail::idx_tools< layout_type::row_major > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::strided_assign_detail::idx_tools< layout_type::row_major > Struct Reference
    +
    +
    + + + + + + + + +

    +Static Public Member Functions

    template<class T>
    static void next_idx (T &outer_index, T &outer_shape)
     
    template<class T>
    static void nth_idx (size_t n, T &outer_index, const T &outer_shape)
     
    +

    Detailed Description

    +
    +

    Definition at line 861 of file xassign.hpp.

    +

    Member Function Documentation

    + +

    ◆ next_idx()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + +
    static void xt::strided_assign_detail::idx_tools< layout_type::row_major >::next_idx (T & outer_index,
    T & outer_shape )
    +
    +inlinestatic
    +
    + +

    Definition at line 864 of file xassign.hpp.

    + +
    +
    + +

    ◆ nth_idx()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    static void xt::strided_assign_detail::idx_tools< layout_type::row_major >::nth_idx (size_t n,
    T & outer_index,
    const T & outer_shape )
    +
    +inlinestatic
    +
    + +

    Definition at line 882 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1loop__sizes__t-members.html b/structxt_1_1strided__assign__detail_1_1loop__sizes__t-members.html new file mode 100644 index 000000000..c0b9b1018 --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1loop__sizes__t-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::strided_assign_detail::loop_sizes_t Member List
    +
    + +
    + + + + diff --git a/structxt_1_1strided__assign__detail_1_1loop__sizes__t.html b/structxt_1_1strided__assign__detail_1_1loop__sizes__t.html new file mode 100644 index 000000000..c02bd18cf --- /dev/null +++ b/structxt_1_1strided__assign__detail_1_1loop__sizes__t.html @@ -0,0 +1,240 @@ + + + + + + + +xtensor: xt::strided_assign_detail::loop_sizes_t Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::strided_assign_detail::loop_sizes_t Struct Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Attributes

    bool can_do_strided_assign
     
    bool is_row_major
     
    std::size_t inner_loop_size
     
    std::size_t outer_loop_size
     
    std::size_t cut
     
    std::size_t dimension
     
    +

    Detailed Description

    +
    +

    Definition at line 177 of file xassign.hpp.

    +

    Member Data Documentation

    + +

    ◆ can_do_strided_assign

    + +
    +
    + + + + +
    bool xt::strided_assign_detail::loop_sizes_t::can_do_strided_assign
    +
    + +

    Definition at line 179 of file xassign.hpp.

    + +
    +
    + +

    ◆ cut

    + +
    +
    + + + + +
    std::size_t xt::strided_assign_detail::loop_sizes_t::cut
    +
    + +

    Definition at line 183 of file xassign.hpp.

    + +
    +
    + +

    ◆ dimension

    + +
    +
    + + + + +
    std::size_t xt::strided_assign_detail::loop_sizes_t::dimension
    +
    + +

    Definition at line 184 of file xassign.hpp.

    + +
    +
    + +

    ◆ inner_loop_size

    + +
    +
    + + + + +
    std::size_t xt::strided_assign_detail::loop_sizes_t::inner_loop_size
    +
    + +

    Definition at line 181 of file xassign.hpp.

    + +
    +
    + +

    ◆ is_row_major

    + +
    +
    + + + + +
    bool xt::strided_assign_detail::loop_sizes_t::is_row_major
    +
    + +

    Definition at line 180 of file xassign.hpp.

    + +
    +
    + +

    ◆ outer_loop_size

    + +
    +
    + + + + +
    std::size_t xt::strided_assign_detail::loop_sizes_t::outer_loop_size
    +
    + +

    Definition at line 182 of file xassign.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1temporary__container-members.html b/structxt_1_1temporary__container-members.html new file mode 100644 index 000000000..827ebb48f --- /dev/null +++ b/structxt_1_1temporary__container-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_container< C > Member List
    +
    +
    + +

    This is the complete list of members for xt::temporary_container< C >, including all inherited members.

    + + +
    type typedef (defined in xt::temporary_container< C >)xt::temporary_container< C >
    +
    + + + + diff --git a/structxt_1_1temporary__container.html b/structxt_1_1temporary__container.html new file mode 100644 index 000000000..cefc7f2e5 --- /dev/null +++ b/structxt_1_1temporary__container.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::temporary_container< C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_container< C > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = C
     
    +

    Detailed Description

    +
    template<class C>
    +struct xt::temporary_container< C >
    +

    Definition at line 585 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt::temporary_container< C >::type = C
    +
    + +

    Definition at line 587 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html b/structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html new file mode 100644 index 000000000..995c48b6b --- /dev/null +++ b/structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_container< xbuffer_adaptor< CP, O, A > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html b/structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..e567949a0 --- /dev/null +++ b/structxt_1_1temporary__container_3_01xbuffer__adaptor_3_01_c_p_00_01_o_00_01_a_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::temporary_container< xbuffer_adaptor< CP, O, A > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_container< xbuffer_adaptor< CP, O, A > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename xbuffer_adaptor<CP, O, A>::temporary_type
     
    using type
     
    +

    Detailed Description

    +
    template<class CP, class O, class A>
    +struct xt::temporary_container< xbuffer_adaptor< CP, O, A > >
    +

    Definition at line 591 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::temporary_container< xbuffer_adaptor< CP, O, A > >::type
    +
    + +

    Definition at line 587 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class CP, class O, class A>
    + + + + +
    using xt::temporary_container< xbuffer_adaptor< CP, O, A > >::type = typename xbuffer_adaptor<CP, O, A>::temporary_type
    +
    + +

    Definition at line 593 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html b/structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html new file mode 100644 index 000000000..12ba28a35 --- /dev/null +++ b/structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_container< xiterator_adaptor< I, CI > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html b/structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html new file mode 100644 index 000000000..7ec036a34 --- /dev/null +++ b/structxt_1_1temporary__container_3_01xiterator__adaptor_3_01_i_00_01_c_i_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::temporary_container< xiterator_adaptor< I, CI > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_container< xiterator_adaptor< I, CI > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename xiterator_adaptor<I, CI>::temporary_type
     
    using type
     
    +

    Detailed Description

    +
    template<class I, class CI>
    +struct xt::temporary_container< xiterator_adaptor< I, CI > >
    +

    Definition at line 597 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::temporary_container< xiterator_adaptor< I, CI > >::type
    +
    + +

    Definition at line 587 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class I, class CI>
    + + + + +
    using xt::temporary_container< xiterator_adaptor< I, CI > >::type = typename xiterator_adaptor<I, CI>::temporary_type
    +
    + +

    Definition at line 599 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html b/structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html new file mode 100644 index 000000000..3e79e2281 --- /dev/null +++ b/structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_container< xiterator_owner_adaptor< C, IG > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html b/structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html new file mode 100644 index 000000000..187ecc9d3 --- /dev/null +++ b/structxt_1_1temporary__container_3_01xiterator__owner__adaptor_3_01_c_00_01_i_g_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::temporary_container< xiterator_owner_adaptor< C, IG > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_container< xiterator_owner_adaptor< C, IG > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename xiterator_owner_adaptor<C, IG>::temporary_type
     
    using type
     
    +

    Detailed Description

    +
    template<class C, class IG>
    +struct xt::temporary_container< xiterator_owner_adaptor< C, IG > >
    +

    Definition at line 603 of file xbuffer_adaptor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::temporary_container< C >::type
    +
    + +

    Definition at line 587 of file xbuffer_adaptor.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class C, class IG>
    + + + + +
    using xt::temporary_container< xiterator_owner_adaptor< C, IG > >::type = typename xiterator_owner_adaptor<C, IG>::temporary_type
    +
    + +

    Definition at line 605 of file xbuffer_adaptor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__type-members.html b/structxt_1_1temporary__type-members.html new file mode 100644 index 000000000..b58d028b3 --- /dev/null +++ b/structxt_1_1temporary__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_type< T, class > Member List
    +
    +
    + +

    This is the complete list of members for xt::temporary_type< T, class >, including all inherited members.

    + + +
    type typedef (defined in xt::temporary_type< T, class >)xt::temporary_type< T, class >
    +
    + + + + diff --git a/structxt_1_1temporary__type.html b/structxt_1_1temporary__type.html new file mode 100644 index 000000000..5e01d04aa --- /dev/null +++ b/structxt_1_1temporary__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::temporary_type< T, class > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_type< T, class > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename temporary_type_from_tag<xexpression_tag_t<T>, T>::type
     
    +

    Detailed Description

    +
    template<class T, class = void>
    +struct xt::temporary_type< T, class >
    +

    Definition at line 145 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T, class = void>
    + + + + +
    using xt::temporary_type< T, class >::type = typename temporary_type_from_tag<xexpression_tag_t<T>, T>::type
    +
    + +

    Definition at line 147 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4-members.html b/structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4-members.html new file mode 100644 index 000000000..71c6fd9fc --- /dev/null +++ b/structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html b/structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html new file mode 100644 index 000000000..71923d056 --- /dev/null +++ b/structxt_1_1temporary__type_3_01_t_00_01void__t_3_01typename_01std_1_1decay__t_3_01_t_01_4_1_1temporary__type_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename std::decay_t<T>::temporary_type
     
    using type
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >
    +

    Definition at line 151 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::temporary_type< T, class >::type
    +
    + +

    Definition at line 147 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::temporary_type< T, void_t< typename std::decay_t< T >::temporary_type > >::type = typename std::decay_t<T>::temporary_type
    +
    + +

    Definition at line 153 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__type__from__tag.html b/structxt_1_1temporary__type__from__tag.html new file mode 100644 index 000000000..d23404970 --- /dev/null +++ b/structxt_1_1temporary__type__from__tag.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::temporary_type_from_tag< Tag, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::temporary_type_from_tag< Tag, T > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class Tag, class T>
    +struct xt::temporary_type_from_tag< Tag, T >
    +

    Definition at line 132 of file xexpression_traits.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4-members.html b/structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4-members.html new file mode 100644 index 000000000..4a0165083 --- /dev/null +++ b/structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html b/structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html new file mode 100644 index 000000000..ce9538d5a --- /dev/null +++ b/structxt_1_1temporary__type__from__tag_3_01xtensor__expression__tag_00_01_t_01_4.html @@ -0,0 +1,246 @@ + + + + + + + +xtensor: xt::temporary_type_from_tag< xtensor_expression_tag, T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::temporary_type_from_tag< xtensor_expression_tag, T > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using I = std::decay_t<T>
     
    using shape_type = typename I::shape_type
     
    using value_type = typename I::value_type
     
    using type = typename detail::xtype_for_shape<shape_type>::template type<value_type, static_layout>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type static_layout = ::xt::layout_type::row_major
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::temporary_type_from_tag< xtensor_expression_tag, T >
    +

    Definition at line 135 of file xexpression_traits.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ I

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::temporary_type_from_tag< xtensor_expression_tag, T >::I = std::decay_t<T>
    +
    + +

    Definition at line 137 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::temporary_type_from_tag< xtensor_expression_tag, T >::shape_type = typename I::shape_type
    +
    + +

    Definition at line 138 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::temporary_type_from_tag< xtensor_expression_tag, T >::type = typename detail::xtype_for_shape<shape_type>::template type<value_type, static_layout>
    +
    + +

    Definition at line 141 of file xexpression_traits.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::temporary_type_from_tag< xtensor_expression_tag, T >::value_type = typename I::value_type
    +
    + +

    Definition at line 139 of file xexpression_traits.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ static_layout

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + +
    layout_type xt::temporary_type_from_tag< xtensor_expression_tag, T >::static_layout = ::xt::layout_type::row_major
    +
    +staticconstexpr
    +
    + +

    Definition at line 140 of file xexpression_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1tracking__allocator-members.html b/structxt_1_1tracking__allocator-members.html new file mode 100644 index 000000000..106dc5201 --- /dev/null +++ b/structxt_1_1tracking__allocator-members.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tracking_allocator< T, A, P > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1tracking__allocator.html b/structxt_1_1tracking__allocator.html new file mode 100644 index 000000000..3e475a411 --- /dev/null +++ b/structxt_1_1tracking__allocator.html @@ -0,0 +1,341 @@ + + + + + + + +xtensor: xt::tracking_allocator< T, A, P > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::tracking_allocator< T, A, P > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::tracking_allocator< T, A, P >:
    +
    +
    + +
    + + + + +

    +Classes

    struct  rebind
     
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using base_type = A
     
    using value_type = typename A::value_type
     
    using reference = value_type&
     
    using const_reference = const value_type&
     
    using pointer = typename std::allocator_traits<A>::pointer
     
    using const_pointer = typename std::allocator_traits<A>::const_pointer
     
    using size_type = typename std::allocator_traits<A>::size_type
     
    using difference_type = typename std::allocator_traits<A>::difference_type
     
    + + + +

    +Public Member Functions

    T * allocate (std::size_t n)
     
    +

    Detailed Description

    +
    template<class T, class A, alloc_tracking::policy P>
    +struct xt::tracking_allocator< T, A, P >
    +

    Definition at line 712 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::base_type = A
    +
    + +

    Definition at line 714 of file xutils.hpp.

    + +
    +
    + +

    ◆ const_pointer

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::const_pointer = typename std::allocator_traits<A>::const_pointer
    +
    + +

    Definition at line 719 of file xutils.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::const_reference = const value_type&
    +
    + +

    Definition at line 717 of file xutils.hpp.

    + +
    +
    + +

    ◆ difference_type

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::difference_type = typename std::allocator_traits<A>::difference_type
    +
    + +

    Definition at line 721 of file xutils.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::pointer = typename std::allocator_traits<A>::pointer
    +
    + +

    Definition at line 718 of file xutils.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::reference = value_type&
    +
    + +

    Definition at line 716 of file xutils.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::size_type = typename std::allocator_traits<A>::size_type
    +
    + +

    Definition at line 720 of file xutils.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + +
    using xt::tracking_allocator< T, A, P >::value_type = typename A::value_type
    +
    + +

    Definition at line 715 of file xutils.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ allocate()

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    + + + + + +
    + + + + + + + +
    T * xt::tracking_allocator< T, A, P >::allocate (std::size_t n)
    +
    +inline
    +
    + +

    Definition at line 725 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1tracking__allocator.js b/structxt_1_1tracking__allocator.js new file mode 100644 index 000000000..635ed5963 --- /dev/null +++ b/structxt_1_1tracking__allocator.js @@ -0,0 +1,4 @@ +var structxt_1_1tracking__allocator = +[ + [ "rebind", "structxt_1_1tracking__allocator_1_1rebind.html", null ] +]; \ No newline at end of file diff --git a/structxt_1_1tracking__allocator.png b/structxt_1_1tracking__allocator.png new file mode 100644 index 0000000000000000000000000000000000000000..2911d1a0a6cecab1d12aeb60332edc9e148194a5 GIT binary patch literal 618 zcmeAS@N?(olHy`uVBq!ia0vp^hk!VMgBeKHOpNjdQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCWJa_;UH$5A+1SrQ@666=m0OW&#In(Sb3=E84JzX3_Dj46+z1`Prz~gc} zXz9%V{~x^-;&>8ttF?DcNL=Bz3A1Z92*)L+nVB0*nlm#%!86~fQDv{>dV@cryx|)j z@-1|jwEWLHyI-oUOrG-+_t&df_8sKP{CF^5Q^ey_i++H@$%`#ao>jtJDldICCM+?( zzc3-q%#^`k8au<8vwyhykALC&tZl=aR{n#Dm0`xb6O0TM!jTLN`AXaj4}4P?8TNGQ zFf^D?WM%lEwuyn^o{Jd6f!QaR&=pC}XEoluv(fX?nU*G%N@1=^Pkfh7kpGpm@@wyx z&A+d9TsOXc*!5Cf=;GUq*F{xcws>>R^;;b^ZTUH_*-o#{&pLf})3IAq>VisEX6M@J zRmp_-#fYEze~aP0_KA>q?k=)iC-Q$%zCu}pn zp|>IY*f*xtCuV7BxnGI>y=Bq1`&v_~74Pp4_4sTTd?GozHTk;X)cPBHeR*>`bGTN9 zXei(0Ub+0kstK>w^>4Z$SJ#_VZarUXM#-Lc?^?GlQ+<0~y7gS#4UtQlTk@YiWjOiV zW6_-{S39?qo2v&|9sAU&vU10%1>cu%a-HP$u72+SpRfOU`A+(ECpcpBrJtL;E{Xoj zD=_E&FS=7D_Gz7>=Opcg3ZC~s;qp1ez + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tracking_allocator< T, A, P >::rebind< U > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1tracking__allocator_1_1rebind.html b/structxt_1_1tracking__allocator_1_1rebind.html new file mode 100644 index 000000000..6c5e5f15d --- /dev/null +++ b/structxt_1_1tracking__allocator_1_1rebind.html @@ -0,0 +1,178 @@ + + + + + + + +xtensor: xt::tracking_allocator< T, A, P >::rebind< U > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::tracking_allocator< T, A, P >::rebind< U > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using traits = std::allocator_traits<A>
     
    using other = tracking_allocator<U, typename traits::template rebind_alloc<U>, P>
     
    +

    Detailed Description

    +
    template<class T, class A, alloc_tracking::policy P>
    +template<class U>
    +struct xt::tracking_allocator< T, A, P >::rebind< U >
    +

    Definition at line 753 of file xutils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ other

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    +
    +template<class U>
    + + + + +
    using xt::tracking_allocator< T, A, P >::rebind< U >::other = tracking_allocator<U, typename traits::template rebind_alloc<U>, P>
    +
    + +

    Definition at line 756 of file xutils.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<class T, class A, alloc_tracking::policy P>
    +
    +template<class U>
    + + + + +
    using xt::tracking_allocator< T, A, P >::rebind< U >::traits = std::allocator_traits<A>
    +
    + +

    Definition at line 755 of file xutils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html new file mode 100644 index 000000000..7c910123d --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_array_elements_impl< T, integral, floating > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_array_elements_impl< T, integral, floating > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class T, bool integral = xtl::is_integral<T>::value, bool floating = std::is_floating_point<T>::value>
    +struct xt::traits_detail::norm_of_array_elements_impl< T, integral, floating >
    +

    Definition at line 60 of file xnorm.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4-members.html new file mode 100644 index 000000000..91f018ffd --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_array_elements_impl< T, false, false > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html new file mode 100644 index 000000000..f454802b8 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01false_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_array_elements_impl< T, false, false > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_array_elements_impl< T, false, false > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = typename norm_type<T>::type
     
    using squared_norm_type = typename squared_norm_type<T>::type
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::traits_detail::norm_of_array_elements_impl< T, false, false >
    +

    Definition at line 70 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< T, false, false >::norm_type = typename norm_type<T>::type
    +
    + +

    Definition at line 72 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< T, false, false >::squared_norm_type = typename squared_norm_type<T>::type
    +
    + +

    Definition at line 73 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4-members.html new file mode 100644 index 000000000..bf36fa99b --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_array_elements_impl< T, false, true > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html new file mode 100644 index 000000000..8f6c0266d --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01false_00_01true_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_array_elements_impl< T, false, true > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_array_elements_impl< T, false, true > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = double
     
    using squared_norm_type = double
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::traits_detail::norm_of_array_elements_impl< T, false, true >
    +

    Definition at line 89 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< T, false, true >::norm_type = double
    +
    + +

    Definition at line 91 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< T, false, true >::squared_norm_type = double
    +
    + +

    Definition at line 92 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4-members.html new file mode 100644 index 000000000..1a92b3a76 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_array_elements_impl< T, true, false > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html new file mode 100644 index 000000000..1ab5d8ca1 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01_t_00_01true_00_01false_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_array_elements_impl< T, true, false > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_array_elements_impl< T, true, false > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = double
     
    using squared_norm_type = uint64_t
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::traits_detail::norm_of_array_elements_impl< T, true, false >
    +

    Definition at line 77 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< T, true, false >::norm_type = double
    +
    + +

    Definition at line 84 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< T, true, false >::squared_norm_type = uint64_t
    +
    + +

    Definition at line 85 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4-members.html new file mode 100644 index 000000000..cc1438cae --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_array_elements_impl< long double, false, true > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html new file mode 100644 index 000000000..74d3db26f --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01long_01double_00_01false_00_01true_01_4.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_array_elements_impl< long double, false, true > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_array_elements_impl< long double, false, true > Struct Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = long double
     
    using squared_norm_type = long double
     
    +

    Detailed Description

    +
    +

    Definition at line 96 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< long double, false, true >::norm_type = long double
    +
    + +

    Definition at line 98 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< long double, false, true >::squared_norm_type = long double
    +
    + +

    Definition at line 99 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4-members.html new file mode 100644 index 000000000..7b4066ab0 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_array_elements_impl< void *, false, false > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html new file mode 100644 index 000000000..4b17005ee --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__array__elements__impl_3_01void_01_5_00_01false_00_01false_01_4.html @@ -0,0 +1,168 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_array_elements_impl< void *, false, false > Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_array_elements_impl< void *, false, false > Struct Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = void*
     
    using squared_norm_type = void*
     
    +

    Detailed Description

    +
    +

    Definition at line 63 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< void *, false, false >::norm_type = void*
    +
    + +

    Definition at line 65 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    + + + + +
    using xt::traits_detail::norm_of_array_elements_impl< void *, false, false >::squared_norm_type = void*
    +
    + +

    Definition at line 66 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__scalar__impl.html b/structxt_1_1traits__detail_1_1norm__of__scalar__impl.html new file mode 100644 index 000000000..97e5d0230 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__scalar__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_scalar_impl< T, scalar > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_scalar_impl< T, scalar > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class T, bool scalar = xtl::is_arithmetic<T>::value>
    +struct xt::traits_detail::norm_of_scalar_impl< T, scalar >
    +

    Definition at line 41 of file xnorm.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4-members.html new file mode 100644 index 000000000..a70367167 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_scalar_impl< T, false > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html new file mode 100644 index 000000000..99acf5e49 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01false_01_4.html @@ -0,0 +1,206 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_scalar_impl< T, false > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_scalar_impl< T, false > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = void*
     
    using squared_norm_type = void*
     
    + + + +

    +Static Public Attributes

    static const bool value = false
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::traits_detail::norm_of_scalar_impl< T, false >
    +

    Definition at line 44 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_scalar_impl< T, false >::norm_type = void*
    +
    + +

    Definition at line 47 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_scalar_impl< T, false >::squared_norm_type = void*
    +
    + +

    Definition at line 48 of file xnorm.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + +
    const bool xt::traits_detail::norm_of_scalar_impl< T, false >::value = false
    +
    +static
    +
    + +

    Definition at line 46 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4-members.html b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4-members.html new file mode 100644 index 000000000..de70eecc6 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_scalar_impl< T, true > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html new file mode 100644 index 000000000..1a4d93779 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__scalar__impl_3_01_t_00_01true_01_4.html @@ -0,0 +1,206 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_scalar_impl< T, true > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_scalar_impl< T, true > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using norm_type = xtl::promote_type_t<T>
     
    using squared_norm_type = xtl::promote_type_t<T>
     
    + + + +

    +Static Public Attributes

    static const bool value = true
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt::traits_detail::norm_of_scalar_impl< T, true >
    +

    Definition at line 52 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_scalar_impl< T, true >::norm_type = xtl::promote_type_t<T>
    +
    + +

    Definition at line 55 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt::traits_detail::norm_of_scalar_impl< T, true >::squared_norm_type = xtl::promote_type_t<T>
    +
    + +

    Definition at line 56 of file xnorm.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + +
    const bool xt::traits_detail::norm_of_scalar_impl< T, true >::value = true
    +
    +static
    +
    + +

    Definition at line 54 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__vector__impl-members.html b/structxt_1_1traits__detail_1_1norm__of__vector__impl-members.html new file mode 100644 index 000000000..f995f89e6 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__vector__impl-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_of_vector_impl< ARRAY > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__of__vector__impl.html b/structxt_1_1traits__detail_1_1norm__of__vector__impl.html new file mode 100644 index 000000000..01f64a7b2 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__of__vector__impl.html @@ -0,0 +1,237 @@ + + + + + + + +xtensor: xt::traits_detail::norm_of_vector_impl< ARRAY > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_of_vector_impl< ARRAY > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using T = decltype(test(std::declval<ARRAY*>()))
     
    using norm_type = typename norm_of_array_elements_impl<T>::norm_type
     
    using squared_norm_type = typename norm_of_array_elements_impl<T>::squared_norm_type
     
    + + + + + + +

    +Static Public Member Functions

    +static void * test (...)
     
    +template<class U>
    static U::value_type test (U *, typename U::value_type *=0)
     
    + + + +

    +Static Public Attributes

    static const bool value = !std::is_same<T, void*>::value
     
    +

    Detailed Description

    +
    template<class ARRAY>
    +struct xt::traits_detail::norm_of_vector_impl< ARRAY >
    +

    Definition at line 103 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_type

    + +
    +
    +
    +template<class ARRAY>
    + + + + +
    using xt::traits_detail::norm_of_vector_impl< ARRAY >::norm_type = typename norm_of_array_elements_impl<T>::norm_type
    +
    + +

    Definition at line 114 of file xnorm.hpp.

    + +
    +
    + +

    ◆ squared_norm_type

    + +
    +
    +
    +template<class ARRAY>
    + + + + +
    using xt::traits_detail::norm_of_vector_impl< ARRAY >::squared_norm_type = typename norm_of_array_elements_impl<T>::squared_norm_type
    +
    + +

    Definition at line 115 of file xnorm.hpp.

    + +
    +
    + +

    ◆ T

    + +
    +
    +
    +template<class ARRAY>
    + + + + +
    using xt::traits_detail::norm_of_vector_impl< ARRAY >::T = decltype(test(std::declval<ARRAY*>()))
    +
    + +

    Definition at line 110 of file xnorm.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class ARRAY>
    + + + + + +
    + + + + +
    const bool xt::traits_detail::norm_of_vector_impl< ARRAY >::value = !std::is_same<T, void*>::value
    +
    +static
    +
    + +

    Definition at line 112 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__type__base-members.html b/structxt_1_1traits__detail_1_1norm__type__base-members.html new file mode 100644 index 000000000..0ffd456c3 --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__type__base-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::traits_detail::norm_type_base< U > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1traits__detail_1_1norm__type__base.html b/structxt_1_1traits__detail_1_1norm__type__base.html new file mode 100644 index 000000000..fff4a4c1d --- /dev/null +++ b/structxt_1_1traits__detail_1_1norm__type__base.html @@ -0,0 +1,226 @@ + + + + + + + +xtensor: xt::traits_detail::norm_type_base< U > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::traits_detail::norm_type_base< U > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using T = std::decay_t<U>
     
    using norm_of_scalar = norm_of_scalar_impl<T>
     
    using norm_of_vector = norm_of_vector_impl<T>
     
    + + + +

    +Static Public Attributes

    static const bool value = norm_of_scalar::value || norm_of_vector::value
     
    +

    Detailed Description

    +
    template<class U>
    +struct xt::traits_detail::norm_type_base< U >
    +

    Definition at line 119 of file xnorm.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ norm_of_scalar

    + +
    +
    +
    +template<class U>
    + + + + +
    using xt::traits_detail::norm_type_base< U >::norm_of_scalar = norm_of_scalar_impl<T>
    +
    + +

    Definition at line 128 of file xnorm.hpp.

    + +
    +
    + +

    ◆ norm_of_vector

    + +
    +
    +
    +template<class U>
    + + + + +
    using xt::traits_detail::norm_type_base< U >::norm_of_vector = norm_of_vector_impl<T>
    +
    + +

    Definition at line 129 of file xnorm.hpp.

    + +
    +
    + +

    ◆ T

    + +
    +
    +
    +template<class U>
    + + + + +
    using xt::traits_detail::norm_type_base< U >::T = std::decay_t<U>
    +
    + +

    Definition at line 121 of file xnorm.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class U>
    + + + + + +
    + + + + +
    const bool xt::traits_detail::norm_type_base< U >::value = norm_of_scalar::value || norm_of_vector::value
    +
    +static
    +
    + +

    Definition at line 131 of file xnorm.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of-members.html b/structxt_1_1tuple__idx__of-members.html new file mode 100644 index 000000000..f3d56835f --- /dev/null +++ b/structxt_1_1tuple__idx__of-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tuple_idx_of< T, Tuple > Member List
    +
    +
    + +

    This is the complete list of members for xt::tuple_idx_of< T, Tuple >, including all inherited members.

    + + +
    value (defined in xt::tuple_idx_of< T, Tuple >)xt::tuple_idx_of< T, Tuple >static
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of.html b/structxt_1_1tuple__idx__of.html new file mode 100644 index 000000000..3f60cc40f --- /dev/null +++ b/structxt_1_1tuple__idx__of.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::tuple_idx_of< T, Tuple > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::tuple_idx_of< T, Tuple > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::ptrdiff_t value = tuple_idx_of_impl<0, std::decay_t<T>, typename decay_all<Tuple>::type>::value
     
    +

    Detailed Description

    +
    template<class T, class Tuple>
    +struct xt::tuple_idx_of< T, Tuple >
    +

    Definition at line 100 of file xreducer.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class T, class Tuple>
    + + + + + +
    + + + + +
    std::ptrdiff_t xt::tuple_idx_of< T, Tuple >::value = tuple_idx_of_impl<0, std::decay_t<T>, typename decay_all<Tuple>::type>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 103 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl.html b/structxt_1_1tuple__idx__of__impl.html new file mode 100644 index 000000000..f08960b7e --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::tuple_idx_of_impl< I, T, Tuple > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tuple_idx_of_impl< I, T, Tuple > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<std::ptrdiff_t I, class T, class Tuple>
    +struct xt::tuple_idx_of_impl< I, T, Tuple >
    +

    Definition at line 70 of file xreducer.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4-members.html b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..f97806042 --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..7689eef39 --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_t_00_01_types_8_8_8_01_4_01_4.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::ptrdiff_t value = I
     
    +

    Detailed Description

    +
    template<std::ptrdiff_t I, class T, class... Types>
    +struct xt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > >
    +

    Definition at line 79 of file xreducer.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<std::ptrdiff_t I, class T, class... Types>
    + + + + + +
    + + + + +
    std::ptrdiff_t xt::tuple_idx_of_impl< I, T, std::tuple< T, Types... > >::value = I
    +
    +staticconstexpr
    +
    + +

    Definition at line 81 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4-members.html b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..dd6147fc9 --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..296a5cabf --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_01_u_00_01_types_8_8_8_01_4_01_4.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::ptrdiff_t value = tuple_idx_of_impl<I + 1, T, std::tuple<Types...>>::value
     
    +

    Detailed Description

    +
    template<std::ptrdiff_t I, class T, class U, class... Types>
    +struct xt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > >
    +

    Definition at line 85 of file xreducer.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<std::ptrdiff_t I, class T, class U, class... Types>
    + + + + + +
    + + + + +
    std::ptrdiff_t xt::tuple_idx_of_impl< I, T, std::tuple< U, Types... > >::value = tuple_idx_of_impl<I + 1, T, std::tuple<Types...>>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 87 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4-members.html b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4-members.html new file mode 100644 index 000000000..aca3d6813 --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::tuple_idx_of_impl< I, T, std::tuple<> > Member List
    +
    +
    + +

    This is the complete list of members for xt::tuple_idx_of_impl< I, T, std::tuple<> >, including all inherited members.

    + + +
    value (defined in xt::tuple_idx_of_impl< I, T, std::tuple<> >)xt::tuple_idx_of_impl< I, T, std::tuple<> >static
    +
    + + + + diff --git a/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html new file mode 100644 index 000000000..dbc5c8f49 --- /dev/null +++ b/structxt_1_1tuple__idx__of__impl_3_01_i_00_01_t_00_01std_1_1tuple_3_4_01_4.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xt::tuple_idx_of_impl< I, T, std::tuple<> > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::tuple_idx_of_impl< I, T, std::tuple<> > Struct Template Reference
    +
    +
    + + + + +

    +Static Public Attributes

    static constexpr std::ptrdiff_t value = -1
     
    +

    Detailed Description

    +
    template<std::ptrdiff_t I, class T>
    +struct xt::tuple_idx_of_impl< I, T, std::tuple<> >
    +

    Definition at line 73 of file xreducer.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<std::ptrdiff_t I, class T>
    + + + + + +
    + + + + +
    std::ptrdiff_t xt::tuple_idx_of_impl< I, T, std::tuple<> >::value = -1
    +
    +staticconstexpr
    +
    + +

    Definition at line 75 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1unaligned__mode.html b/structxt_1_1unaligned__mode.html new file mode 100644 index 000000000..d9c4ee073 --- /dev/null +++ b/structxt_1_1unaligned__mode.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::unaligned_mode Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::unaligned_mode Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 97 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1view__temporary__type-members.html b/structxt_1_1view__temporary__type-members.html new file mode 100644 index 000000000..77f238e56 --- /dev/null +++ b/structxt_1_1view__temporary__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::view_temporary_type< E, SL > Member List
    +
    +
    + +

    This is the complete list of members for xt::view_temporary_type< E, SL >, including all inherited members.

    + + +
    type typedef (defined in xt::view_temporary_type< E, SL >)xt::view_temporary_type< E, SL >
    +
    + + + + diff --git a/structxt_1_1view__temporary__type.html b/structxt_1_1view__temporary__type.html new file mode 100644 index 000000000..3aec10f73 --- /dev/null +++ b/structxt_1_1view__temporary__type.html @@ -0,0 +1,158 @@ + + + + + + + +xtensor: xt::view_temporary_type< E, SL > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::view_temporary_type< E, SL > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type
     
    +

    Detailed Description

    +
    template<class E, class... SL>
    +struct xt::view_temporary_type< E, SL >
    +

    Definition at line 83 of file xview_utils.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E, class... SL>
    + + + + +
    using xt::view_temporary_type< E, SL >::type
    +
    +Initial value:
    typename detail::view_temporary_type_impl<
    +
    std::decay_t<typename E::value_type>,
    +
    typename E::shape_type,
    +
    E::static_layout,
    +
    SL...>::type
    +
    +

    Definition at line 85 of file xview_utils.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview_utils.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xaccumulator__functor-members.html b/structxt_1_1xaccumulator__functor-members.html new file mode 100644 index 000000000..cc97200bf --- /dev/null +++ b/structxt_1_1xaccumulator__functor-members.html @@ -0,0 +1,128 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xaccumulator__functor.html b/structxt_1_1xaccumulator__functor.html new file mode 100644 index 000000000..0c66f791c --- /dev/null +++ b/structxt_1_1xaccumulator__functor.html @@ -0,0 +1,345 @@ + + + + + + + +xtensor: xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >:
    +
    +
    + +
    + + + + + + + + + + + + +

    +Public Types

    using self_type = xaccumulator_functor<ACCUMULATE_FUNC, INIT_FUNC>
     
    using base_type = std::tuple<ACCUMULATE_FUNC, INIT_FUNC>
     
    using accumulate_functor_type = ACCUMULATE_FUNC
     
    using init_functor_type = INIT_FUNC
     
    using init_value_type = typename init_functor_type::value_type
     
    + + + + + + + +

    +Public Member Functions

    template<class RF>
     xaccumulator_functor (RF &&accumulate_func)
     
    template<class RF, class IF>
     xaccumulator_functor (RF &&accumulate_func, IF &&init_func)
     
    +

    Detailed Description

    +
    template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    +struct xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >
    +

    Definition at line 42 of file xaccumulator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ accumulate_functor_type

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    + + + + +
    using xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::accumulate_functor_type = ACCUMULATE_FUNC
    +
    + +

    Definition at line 46 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ base_type

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    + + + + +
    using xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::base_type = std::tuple<ACCUMULATE_FUNC, INIT_FUNC>
    +
    + +

    Definition at line 45 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ init_functor_type

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    + + + + +
    using xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::init_functor_type = INIT_FUNC
    +
    + +

    Definition at line 47 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ init_value_type

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    + + + + +
    using xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::init_value_type = typename init_functor_type::value_type
    +
    + +

    Definition at line 48 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    + + + + +
    using xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::self_type = xaccumulator_functor<ACCUMULATE_FUNC, INIT_FUNC>
    +
    + +

    Definition at line 44 of file xaccumulator.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xaccumulator_functor() [1/3]

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    + + + + + +
    + + + + + + + +
    xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::xaccumulator_functor ()
    +
    +inline
    +
    + +

    Definition at line 50 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ xaccumulator_functor() [2/3]

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    +
    +template<class RF>
    + + + + + +
    + + + + + + + +
    xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::xaccumulator_functor (RF && accumulate_func)
    +
    +inline
    +
    + +

    Definition at line 56 of file xaccumulator.hpp.

    + +
    +
    + +

    ◆ xaccumulator_functor() [3/3]

    + +
    +
    +
    +template<class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    +
    +template<class RF, class IF>
    + + + + + +
    + + + + + + + + + + + +
    xt::xaccumulator_functor< ACCUMULATE_FUNC, INIT_FUNC >::xaccumulator_functor (RF && accumulate_func,
    IF && init_func )
    +
    +inline
    +
    + +

    Definition at line 62 of file xaccumulator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xaccumulator__functor.png b/structxt_1_1xaccumulator__functor.png new file mode 100644 index 0000000000000000000000000000000000000000..78dcbf9699bbdca3660da309a01d427ed93da015 GIT binary patch literal 1364 zcmb_cdsLDK6#q~w#hhhXX%o?XZY9IY_oFNyoxaZsJfKmb<|{qsEKPz8L^IP|bwt#t znNo(9c0{J)152k)i>z$uG)dBQN{PY}O!1MU{kQGk-9PUA-Fxo6=iYOF=jH_B4wxV< zkpKXgz>q%y01!MK4m8x)>4=Gsk91~h;Gv-XD=RBH_fFB&i`B7^osfbz+f2m_X#?Wm@a<9R@krgC+}!pTxp$;j?^EWIRC8& z{b6}QX;jfw01Jji#N2Rnx{BEXmqU(~W@hkelCQ0JBme>}LX2|2OY!LxW}hf$WK&$6 z;7L#G?!BlqVJhF=<%x<>U$3sU4nDw|dKO++ln=JvE3CqtnN`bfosGT7!*DY+e^w>G zHIyrky~3gk+Y&TCGGm|OeQFA?N3Cpz25<{q1r0WPWV9u%V4HH@^IfNhT8m|td|;vo zY65$_V^wj zf>S>ajV}$V6~?9UQ)_UbJONL2#YrI)21c+!$&&JE(){p2?v}9PIe2civ1sdX^}8 z9dOZ^`<^R<HmK7ZIY%aIdykDfH{iP(g_A)Q_&}57odr5(ORG<4j)`9oU9p#}# z1?LmSHV5>Z^uslqNL*!mgvNvPYbx*tY!X}C_bTV=4ZJNA3e#Mh6%UM~NH}r7*3bUWk!Q19+ z#kDv3p7mX@g6Uq>HG|WX2E!}OtW8?QW2n;Mvk@<^r!`B%1g{S;7DHq(Hmpma9{uH689!VBy6$Re=1aRa>i!=9@5lM`eZw>U0&rN1 A*#H0l literal 0 HcmV?d00001 diff --git a/structxt_1_1xall__tag-members.html b/structxt_1_1xall__tag-members.html new file mode 100644 index 000000000..4ad77e096 --- /dev/null +++ b/structxt_1_1xall__tag-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xall_tag Member List
    +
    +
    + +

    This is the complete list of members for xt::xall_tag, including all inherited members.

    + + +
    convert() const noexcept (defined in xt::xall_tag)xt::xall_taginline
    +
    + + + + diff --git a/structxt_1_1xall__tag.html b/structxt_1_1xall__tag.html new file mode 100644 index 000000000..5e6ffa9e4 --- /dev/null +++ b/structxt_1_1xall__tag.html @@ -0,0 +1,164 @@ + + + + + + + +xtensor: xt::xall_tag Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xall_tag Struct Reference
    +
    +
    + + + + + +

    +Public Member Functions

    template<class T>
    xall_tag convert () const noexcept
     
    +

    Detailed Description

    +
    +

    Definition at line 80 of file xslice.hpp.

    +

    Member Function Documentation

    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xall_tag xt::xall_tag::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 82 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xclosure-members.html b/structxt_1_1xclosure-members.html new file mode 100644 index 000000000..feb06323e --- /dev/null +++ b/structxt_1_1xclosure-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xclosure< E, EN > Member List
    +
    +
    + +

    This is the complete list of members for xt::xclosure< E, EN >, including all inherited members.

    + + +
    type typedef (defined in xt::xclosure< E, EN >)xt::xclosure< E, EN >
    +
    + + + + diff --git a/structxt_1_1xclosure.html b/structxt_1_1xclosure.html new file mode 100644 index 000000000..2dfbc3cbd --- /dev/null +++ b/structxt_1_1xclosure.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::xclosure< E, EN > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xclosure< E, EN > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = xtl::closure_type_t<E>
     
    +

    Detailed Description

    +
    template<class E, class EN = void>
    +struct xt::xclosure< E, EN >
    +

    Definition at line 256 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class E, class EN = void>
    + + + + +
    using xt::xclosure< E, EN >::type = xtl::closure_type_t<E>
    +
    + +

    Definition at line 258 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html b/structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html new file mode 100644 index 000000000..b39ecb5d9 --- /dev/null +++ b/structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xclosure< E, disable_xexpression< std::decay_t< E > > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html b/structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html new file mode 100644 index 000000000..b164ca877 --- /dev/null +++ b/structxt_1_1xclosure_3_01_e_00_01disable__xexpression_3_01std_1_1decay__t_3_01_e_01_4_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xclosure< E, disable_xexpression< std::decay_t< E > > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xclosure< E, disable_xexpression< std::decay_t< E > > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = xscalar<xtl::closure_type_t<E>>
     
    using type
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::xclosure< E, disable_xexpression< std::decay_t< E > > >
    +

    Definition at line 268 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xclosure< E, disable_xexpression< std::decay_t< E > > >::type
    +
    + +

    Definition at line 258 of file xexpression.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xclosure< E, disable_xexpression< std::decay_t< E > > >::type = xscalar<xtl::closure_type_t<E>>
    +
    + +

    Definition at line 270 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html b/structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html new file mode 100644 index 000000000..b345f6b61 --- /dev/null +++ b/structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xclosure< xshared_expression< E >, std::enable_if_t< true > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html b/structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html new file mode 100644 index 000000000..0ffb217e3 --- /dev/null +++ b/structxt_1_1xclosure_3_01xshared__expression_3_01_e_01_4_00_01std_1_1enable__if__t_3_01true_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xclosure< xshared_expression< E >, std::enable_if_t< true > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xclosure< xshared_expression< E >, std::enable_if_t< true > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = xshared_expression<E>
     
    using type
     
    +

    Detailed Description

    +
    template<class E>
    +struct xt::xclosure< xshared_expression< E >, std::enable_if_t< true > >
    +

    Definition at line 262 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xclosure< E, std::enable_if_t< true > >::type
    +
    + +

    Definition at line 258 of file xexpression.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class E>
    + + + + +
    using xt::xclosure< xshared_expression< E >, std::enable_if_t< true > >::type = xshared_expression<E>
    +
    + +

    Definition at line 264 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types.html b/structxt_1_1xcontainer__inner__types.html new file mode 100644 index 000000000..8fbdfdc4c --- /dev/null +++ b/structxt_1_1xcontainer__inner__types.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< D > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< D > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class D>
    +struct xt::xcontainer_inner_types< D >
    +

    Definition at line 244 of file xiterable.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterable.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..543a8f6cd --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    layout (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..125cbcb29 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = std::remove_reference_t<EC>
     
    using reference = inner_reference_t<storage_type>
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using shape_type = SC
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = get_strides_t<shape_type>
     
    using inner_shape_type = shape_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using temporary_type = xarray_container<temporary_container_t<storage_type>, L, SC, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC, class Tag>
    +struct xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    +

    Definition at line 174 of file xarray.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::backstrides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 182 of file xarray.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 178 of file xarray.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 185 of file xarray.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::inner_shape_type = shape_type
    +
    + +

    Definition at line 183 of file xarray.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 184 of file xarray.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::reference = inner_reference_t<storage_type>
    +
    + +

    Definition at line 177 of file xarray.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::shape_type = SC
    +
    + +

    Definition at line 180 of file xarray.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 179 of file xarray.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::storage_type = std::remove_reference_t<EC>
    +
    + +

    Definition at line 176 of file xarray.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 181 of file xarray.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::temporary_type = xarray_container<temporary_container_t<storage_type>, L, SC, Tag>
    +
    + +

    Definition at line 186 of file xarray.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xarray_adaptor< EC, L, SC, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 187 of file xarray.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..d3c817f5c --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    layout (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >)xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..8c0a3bb7b --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = EC
     
    using reference = inner_reference_t<storage_type>
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using shape_type = SC
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = get_strides_t<shape_type>
     
    using inner_shape_type = shape_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using temporary_type = xarray_container<EC, L, SC, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC, class Tag>
    +struct xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >
    +

    Definition at line 45 of file xarray.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::backstrides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 53 of file xarray.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 49 of file xarray.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 56 of file xarray.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::inner_shape_type = shape_type
    +
    + +

    Definition at line 54 of file xarray.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 55 of file xarray.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::reference = inner_reference_t<storage_type>
    +
    + +

    Definition at line 48 of file xarray.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::shape_type = SC
    +
    + +

    Definition at line 51 of file xarray.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 50 of file xarray.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::storage_type = EC
    +
    + +

    Definition at line 47 of file xarray.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 52 of file xarray.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::temporary_type = xarray_container<EC, L, SC, Tag>
    +
    + +

    Definition at line 57 of file xarray.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class EC, layout_type L, class SC, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xarray_container< EC, L, SC, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 58 of file xarray.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4-members.html new file mode 100644 index 000000000..f1907ef46 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xbroadcast< CT, X > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html new file mode 100644 index 000000000..93fa53134 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xbroadcast< CT, X > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xbroadcast< CT, X > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using reference = typename xexpression_type::const_reference
     
    using const_reference = typename xexpression_type::const_reference
     
    using size_type = typename xexpression_type::size_type
     
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::xcontainer_inner_types< xbroadcast< CT, X > >
    +

    Definition at line 86 of file xbroadcast.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xcontainer_inner_types< xbroadcast< CT, X > >::const_reference = typename xexpression_type::const_reference
    +
    + +

    Definition at line 90 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xcontainer_inner_types< xbroadcast< CT, X > >::reference = typename xexpression_type::const_reference
    +
    + +

    Definition at line 89 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xcontainer_inner_types< xbroadcast< CT, X > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 91 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xcontainer_inner_types< xbroadcast< CT, X > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 88 of file xbroadcast.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html new file mode 100644 index 000000000..688bb70bd --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html new file mode 100644 index 000000000..18e783aa9 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html @@ -0,0 +1,253 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xchunked_array< chunk_storage > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xchunked_array< chunk_storage > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Types

    using chunk_type = typename chunk_storage::value_type
     
    using const_reference = typename chunk_type::const_reference
     
    using reference = typename chunk_type::reference
     
    using size_type = std::size_t
     
    using storage_type = chunk_type
     
    using temporary_type = xchunked_array<chunk_storage>
     
    +

    Detailed Description

    +
    template<class chunk_storage>
    +struct xt::xcontainer_inner_types< xchunked_array< chunk_storage > >
    +

    Definition at line 36 of file xchunked_array.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ chunk_type

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xcontainer_inner_types< xchunked_array< chunk_storage > >::chunk_type = typename chunk_storage::value_type
    +
    + +

    Definition at line 38 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xcontainer_inner_types< xchunked_array< chunk_storage > >::const_reference = typename chunk_type::const_reference
    +
    + +

    Definition at line 39 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xcontainer_inner_types< xchunked_array< chunk_storage > >::reference = typename chunk_type::reference
    +
    + +

    Definition at line 40 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xcontainer_inner_types< xchunked_array< chunk_storage > >::size_type = std::size_t
    +
    + +

    Definition at line 41 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xcontainer_inner_types< xchunked_array< chunk_storage > >::storage_type = chunk_type
    +
    + +

    Definition at line 42 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xcontainer_inner_types< xchunked_array< chunk_storage > >::temporary_type = xchunked_array<chunk_storage>
    +
    + +

    Definition at line 43 of file xchunked_array.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html new file mode 100644 index 000000000..ab8ef808b --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >, including all inherited members.

    + + + + + + + + + + + + +
    const_reference typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    inner_storage_type typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    layout (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >static
    reference typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    size_type typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    storage_getter typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    undecay_expression typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    undecay_shape typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    xexpression_type typedef (defined in xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html new file mode 100644 index 000000000..835d72837 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html @@ -0,0 +1,366 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using undecay_expression = CT
     
    using reference = inner_reference_t<undecay_expression>
     
    using const_reference = typename xexpression_type::const_reference
     
    using size_type = typename xexpression_type::size_type
     
    using shape_type = std::decay_t<S>
     
    using undecay_shape = S
     
    using storage_getter = FST
     
    using inner_storage_type = typename storage_getter::type
     
    using temporary_type = xarray<std::decay_t<typename xexpression_type::value_type>, xexpression_type::static_layout>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >
    +

    Definition at line 29 of file xdynamic_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::const_reference = typename xexpression_type::const_reference
    +
    + +

    Definition at line 34 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ inner_storage_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::inner_storage_type = typename storage_getter::type
    +
    + +

    Definition at line 39 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::reference = inner_reference_t<undecay_expression>
    +
    + +

    Definition at line 33 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::shape_type = std::decay_t<S>
    +
    + +

    Definition at line 36 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 35 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ storage_getter

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::storage_getter = FST
    +
    + +

    Definition at line 38 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::temporary_type = xarray<std::decay_t<typename xexpression_type::value_type>, xexpression_type::static_layout>
    +
    + +

    Definition at line 40 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ undecay_expression

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::undecay_expression = CT
    +
    + +

    Definition at line 32 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ undecay_shape

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::undecay_shape = S
    +
    + +

    Definition at line 37 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 31 of file xdynamic_view.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xdynamic_view< CT, S, L, FST > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 41 of file xdynamic_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..d58845494 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    layout (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..b806bd0fb --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = std::remove_reference_t<EC>
     
    using reference = typename storage_type::reference
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using shape_type = S
     
    using inner_shape_type = typename S::cast_type
     
    using strides_type = get_strides_t<inner_shape_type>
     
    using backstrides_type = strides_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using temporary_type = xfixed_container<typename storage_type::value_type, S, L, SH, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class EC, class S, layout_type L, bool SH, class Tag>
    +struct xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    +

    Definition at line 391 of file xfixed.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::backstrides_type = strides_type
    +
    + +

    Definition at line 400 of file xfixed.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 395 of file xfixed.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 402 of file xfixed.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::inner_shape_type = typename S::cast_type
    +
    + +

    Definition at line 398 of file xfixed.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 401 of file xfixed.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::reference = typename storage_type::reference
    +
    + +

    Definition at line 394 of file xfixed.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::shape_type = S
    +
    + +

    Definition at line 397 of file xfixed.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 396 of file xfixed.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::storage_type = std::remove_reference_t<EC>
    +
    + +

    Definition at line 393 of file xfixed.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::strides_type = get_strides_t<inner_shape_type>
    +
    + +

    Definition at line 399 of file xfixed.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::temporary_type = xfixed_container<typename storage_type::value_type, S, L, SH, Tag>
    +
    + +

    Definition at line 403 of file xfixed.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class EC, class S, layout_type L, bool SH, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 404 of file xfixed.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..8733371c7 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    layout (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >)xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..81f4ae6dd --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using shape_type = S
     
    using inner_shape_type = typename S::cast_type
     
    using strides_type = get_strides_t<inner_shape_type>
     
    using inner_strides_type = strides_type
     
    using backstrides_type = inner_strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using storage_type = aligned_array<ET, detail::fixed_compute_size<S>::value>
     
    using reference = typename storage_type::reference
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using temporary_type = xfixed_container<ET, S, L, SH, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class ET, class S, layout_type L, bool SH, class Tag>
    +struct xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    +

    Definition at line 249 of file xfixed.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::backstrides_type = inner_strides_type
    +
    + +

    Definition at line 255 of file xfixed.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 267 of file xfixed.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 256 of file xfixed.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::inner_shape_type = typename S::cast_type
    +
    + +

    Definition at line 252 of file xfixed.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 254 of file xfixed.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::reference = typename storage_type::reference
    +
    + +

    Definition at line 266 of file xfixed.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::shape_type = S
    +
    + +

    Definition at line 251 of file xfixed.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 268 of file xfixed.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::storage_type = aligned_array<ET, detail::fixed_compute_size<S>::value>
    +
    + +

    Definition at line 263 of file xfixed.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::strides_type = get_strides_t<inner_shape_type>
    +
    + +

    Definition at line 253 of file xfixed.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::temporary_type = xfixed_container<ET, S, L, SH, Tag>
    +
    + +

    Definition at line 269 of file xfixed.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class ET, class S, layout_type L, bool SH, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xfixed_container< ET, S, L, SH, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 270 of file xfixed.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..84f9c6196 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xfunction< F, CT... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..d13494eea --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html @@ -0,0 +1,236 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xfunction< F, CT... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xfunction< F, CT... > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    using func_return_type
     
    using value_type = std::decay_t<func_return_type>
     
    using reference = func_return_type
     
    using const_reference = reference
     
    using size_type = common_size_type_t<std::decay_t<CT>...>
     
    +

    Detailed Description

    +
    template<class F, class... CT>
    +struct xt::xcontainer_inner_types< xfunction< F, CT... > >
    +

    Definition at line 133 of file xfunction.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunction< F, CT... > >::const_reference = reference
    +
    + +

    Definition at line 140 of file xfunction.hpp.

    + +
    +
    + +

    ◆ func_return_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunction< F, CT... > >::func_return_type
    +
    +Initial value:
    typename meta_identity<
    +
    decltype(std::declval<F>()(std::declval<xvalue_type_t<std::decay_t<CT>>>()...))>::type
    + +
    +

    Definition at line 136 of file xfunction.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunction< F, CT... > >::reference = func_return_type
    +
    + +

    Definition at line 139 of file xfunction.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunction< F, CT... > >::size_type = common_size_type_t<std::decay_t<CT>...>
    +
    + +

    Definition at line 141 of file xfunction.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunction< F, CT... > >::value_type = std::decay_t<func_return_type>
    +
    + +

    Definition at line 138 of file xfunction.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4-members.html new file mode 100644 index 000000000..8f61d88e3 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html new file mode 100644 index 000000000..aa5b74162 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfunctor__adaptor_3_01_f_00_01_c_t_01_4_01_4.html @@ -0,0 +1,273 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using undecay_expression = CT
     
    using functor_type = std::decay_t<F>
     
    using reference = typename functor_type::reference
     
    using const_reference = typename functor_type::const_reference
     
    using size_type = typename xexpression_type::size_type
     
    using temporary_type = typename xfunctor_view_temporary_type<F, xexpression_type>::type
     
    +

    Detailed Description

    +
    template<class F, class CT>
    +struct xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >
    +

    Definition at line 480 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::const_reference = typename functor_type::const_reference
    +
    + +

    Definition at line 486 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::functor_type = std::decay_t<F>
    +
    + +

    Definition at line 484 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::reference = typename functor_type::reference
    +
    + +

    Definition at line 485 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 487 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::temporary_type = typename xfunctor_view_temporary_type<F, xexpression_type>::type
    +
    + +

    Definition at line 488 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ undecay_expression

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::undecay_expression = CT
    +
    + +

    Definition at line 483 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_adaptor< F, CT > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 482 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4-members.html new file mode 100644 index 000000000..22c685e5a --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4-members.html @@ -0,0 +1,127 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html new file mode 100644 index 000000000..1da2f89bb --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xfunctor__view_3_01_f_00_01_c_t_01_4_01_4.html @@ -0,0 +1,273 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xfunctor_view< F, CT > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xfunctor_view< F, CT > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using undecay_expression = CT
     
    using functor_type = std::decay_t<F>
     
    using reference = decltype(std::declval<F>()(std::declval<xexpression_type>()()))
     
    using const_reference = decltype(std::declval<F>()(std::declval<const xexpression_type>()()))
     
    using size_type = typename xexpression_type::size_type
     
    using temporary_type = typename xfunctor_view_temporary_type<F, xexpression_type>::type
     
    +

    Detailed Description

    +
    template<class F, class CT>
    +struct xt::xcontainer_inner_types< xfunctor_view< F, CT > >
    +

    Definition at line 403 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::const_reference = decltype(std::declval<F>()(std::declval<const xexpression_type>()()))
    +
    + +

    Definition at line 409 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ functor_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::functor_type = std::decay_t<F>
    +
    + +

    Definition at line 407 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::reference = decltype(std::declval<F>()(std::declval<xexpression_type>()()))
    +
    + +

    Definition at line 408 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 410 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::temporary_type = typename xfunctor_view_temporary_type<F, xexpression_type>::type
    +
    + +

    Definition at line 411 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ undecay_expression

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::undecay_expression = CT
    +
    + +

    Definition at line 406 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT>
    + + + + +
    using xt::xcontainer_inner_types< xfunctor_view< F, CT > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 405 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html new file mode 100644 index 000000000..b948e8c9a --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xgenerator< C, R, S > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html new file mode 100644 index 000000000..6ad2a2c61 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xgenerator< C, R, S > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xgenerator< C, R, S > > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using reference = R
     
    using const_reference = R
     
    using size_type = std::size_t
     
    +

    Detailed Description

    +
    template<class C, class R, class S>
    +struct xt::xcontainer_inner_types< xgenerator< C, R, S > >
    +

    Definition at line 73 of file xgenerator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class C, class R, class S>
    + + + + +
    using xt::xcontainer_inner_types< xgenerator< C, R, S > >::const_reference = R
    +
    + +

    Definition at line 76 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class C, class R, class S>
    + + + + +
    using xt::xcontainer_inner_types< xgenerator< C, R, S > >::reference = R
    +
    + +

    Definition at line 75 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class C, class R, class S>
    + + + + +
    using xt::xcontainer_inner_types< xgenerator< C, R, S > >::size_type = std::size_t
    +
    + +

    Definition at line 77 of file xgenerator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html new file mode 100644 index 000000000..be20455d7 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xindex_view< CT, I > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html new file mode 100644 index 000000000..0552cbbe5 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xindex_view< CT, I > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xindex_view< CT, I > > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using temporary_type = xarray<typename xexpression_type::value_type, xexpression_type::static_layout>
     
    +

    Detailed Description

    +
    template<class CT, class I>
    +struct xt::xcontainer_inner_types< xindex_view< CT, I > >
    +

    Definition at line 61 of file xindex_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xcontainer_inner_types< xindex_view< CT, I > >::temporary_type = xarray<typename xexpression_type::value_type, xexpression_type::static_layout>
    +
    + +

    Definition at line 64 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xcontainer_inner_types< xindex_view< CT, I > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 63 of file xindex_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html new file mode 100644 index 000000000..04a52ea0d --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xmasked_view< CTD, CTM > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >, including all inherited members.

    + + + + + + + + + + + + +
    base_value_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    data_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    flag_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    mask_reference typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    mask_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    reference typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    size_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    val_reference typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    value_type typedef (defined in xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >)xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html new file mode 100644 index 000000000..87953e50a --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html @@ -0,0 +1,353 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xmasked_view< CTD, CTM > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xmasked_view< CTD, CTM > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using data_type = std::decay_t<CTD>
     
    using mask_type = std::decay_t<CTM>
     
    using base_value_type = typename data_type::value_type
     
    using flag_type = typename mask_type::value_type
     
    using val_reference = inner_reference_t<CTD>
     
    using mask_reference = inner_reference_t<CTM>
     
    using value_type = xtl::xmasked_value<base_value_type, flag_type>
     
    using reference = xtl::xmasked_value<val_reference, mask_reference>
     
    using const_reference = xtl::xmasked_value<typename data_type::const_reference, typename mask_type::const_reference>
     
    using size_type = typename data_type::size_type
     
    using temporary_type = xarray<xtl::xmasked_value<base_value_type, flag_type>>
     
    +

    Detailed Description

    +
    template<class CTD, class CTM>
    +struct xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >
    +

    Definition at line 38 of file xmasked_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_value_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::base_value_type = typename data_type::value_type
    +
    + +

    Definition at line 42 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::const_reference = xtl::xmasked_value<typename data_type::const_reference, typename mask_type::const_reference>
    +
    + +

    Definition at line 48 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ data_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::data_type = std::decay_t<CTD>
    +
    + +

    Definition at line 40 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ flag_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::flag_type = typename mask_type::value_type
    +
    + +

    Definition at line 43 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::mask_reference = inner_reference_t<CTM>
    +
    + +

    Definition at line 45 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ mask_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::mask_type = std::decay_t<CTM>
    +
    + +

    Definition at line 41 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::reference = xtl::xmasked_value<val_reference, mask_reference>
    +
    + +

    Definition at line 47 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::size_type = typename data_type::size_type
    +
    + +

    Definition at line 49 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::temporary_type = xarray<xtl::xmasked_value<base_value_type, flag_type>>
    +
    + +

    Definition at line 50 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ val_reference

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::val_reference = inner_reference_t<CTD>
    +
    + +

    Definition at line 44 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xcontainer_inner_types< xmasked_view< CTD, CTM > >::value_type = xtl::xmasked_value<base_value_type, flag_type>
    +
    + +

    Definition at line 46 of file xmasked_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html new file mode 100644 index 000000000..8304dff59 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html new file mode 100644 index 000000000..392b9f685 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html @@ -0,0 +1,253 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xoptional_assembly< VE, FE > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xoptional_assembly< VE, FE > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Types

    using raw_value_expression = VE
     
    using value_storage_type = typename raw_value_expression::storage_type&
     
    using raw_flag_expression = FE
     
    using flag_storage_type = typename raw_flag_expression::storage_type&
     
    using storage_type = xoptional_assembly_storage<value_storage_type, flag_storage_type>
     
    using temporary_type = xoptional_assembly<VE, FE>
     
    +

    Detailed Description

    +
    template<class VE, class FE>
    +struct xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >
    +

    Definition at line 28 of file xoptional_assembly.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ flag_storage_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >::flag_storage_type = typename raw_flag_expression::storage_type&
    +
    + +

    Definition at line 33 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ raw_flag_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >::raw_flag_expression = FE
    +
    + +

    Definition at line 32 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ raw_value_expression

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >::raw_value_expression = VE
    +
    + +

    Definition at line 30 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >::storage_type = xoptional_assembly_storage<value_storage_type, flag_storage_type>
    +
    + +

    Definition at line 34 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >::temporary_type = xoptional_assembly<VE, FE>
    +
    + +

    Definition at line 35 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ value_storage_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly< VE, FE > >::value_storage_type = typename raw_value_expression::storage_type&
    +
    + +

    Definition at line 31 of file xoptional_assembly.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html new file mode 100644 index 000000000..b673a925d --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html new file mode 100644 index 000000000..971462363 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html @@ -0,0 +1,261 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Types

    using raw_value_expression = std::remove_reference_t<VEC>
     
    using value_storage_type
     
    using raw_flag_expression = std::remove_reference_t<FEC>
     
    using flag_storage_type
     
    using storage_type = xoptional_assembly_storage<value_storage_type, flag_storage_type>
     
    using temporary_type = xoptional_assembly<raw_value_expression, raw_flag_expression>
     
    +

    Detailed Description

    +
    template<class VEC, class FEC>
    +struct xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >
    +

    Definition at line 152 of file xoptional_assembly.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ flag_storage_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::flag_storage_type
    +
    +Initial value:
    std::conditional_t<
    +
    std::is_const<raw_flag_expression>::value,
    +
    const typename raw_flag_expression::storage_type&,
    +
    typename raw_flag_expression::storage_type&>
    +
    +

    Definition at line 160 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ raw_flag_expression

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::raw_flag_expression = std::remove_reference_t<FEC>
    +
    + +

    Definition at line 159 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ raw_value_expression

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::raw_value_expression = std::remove_reference_t<VEC>
    +
    + +

    Definition at line 154 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::storage_type = xoptional_assembly_storage<value_storage_type, flag_storage_type>
    +
    + +

    Definition at line 164 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::temporary_type = xoptional_assembly<raw_value_expression, raw_flag_expression>
    +
    + +

    Definition at line 165 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ value_storage_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xcontainer_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::value_storage_type
    +
    +Initial value:
    std::conditional_t<
    +
    std::is_const<raw_value_expression>::value,
    +
    const typename raw_value_expression::storage_type&,
    +
    typename raw_value_expression::storage_type&>
    +
    +

    Definition at line 155 of file xoptional_assembly.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html new file mode 100644 index 000000000..9ffbef3c0 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html @@ -0,0 +1,130 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xreducer< F, CT, X, O > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xreducer< F, CT, X, O > >, including all inherited members.

    + + + + + + + + + + + +
    const_reference typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    init_functor_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    merge_functor_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    raw_value_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    reduce_functor_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    reference typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    size_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    substepper_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    value_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    xexpression_type typedef (defined in xt::xcontainer_inner_types< xreducer< F, CT, X, O > >)xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html new file mode 100644 index 000000000..9af9e2682 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html @@ -0,0 +1,337 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xreducer< F, CT, X, O > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xreducer< F, CT, X, O > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using reduce_functor_type = typename std::decay_t<F>::reduce_functor_type
     
    using init_functor_type = typename std::decay_t<F>::init_functor_type
     
    using merge_functor_type = typename std::decay_t<F>::merge_functor_type
     
    using substepper_type = typename xexpression_type::const_stepper
     
    using raw_value_type
     
    using value_type = typename detail::evaluated_value_type_t<raw_value_type, is_xexpression<raw_value_type>::value>
     
    using reference = value_type
     
    using const_reference = value_type
     
    using size_type = typename xexpression_type::size_type
     
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +struct xt::xcontainer_inner_types< xreducer< F, CT, X, O > >
    +

    Definition at line 756 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::const_reference = value_type
    +
    + +

    Definition at line 770 of file xreducer.hpp.

    + +
    +
    + +

    ◆ init_functor_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::init_functor_type = typename std::decay_t<F>::init_functor_type
    +
    + +

    Definition at line 760 of file xreducer.hpp.

    + +
    +
    + +

    ◆ merge_functor_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::merge_functor_type = typename std::decay_t<F>::merge_functor_type
    +
    + +

    Definition at line 761 of file xreducer.hpp.

    + +
    +
    + +

    ◆ raw_value_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::raw_value_type
    +
    +Initial value:
    std::decay_t<decltype(std::declval<reduce_functor_type>()(
    +
    std::declval<init_functor_type>()(),
    +
    *std::declval<substepper_type>()
    +
    ))>
    +
    +

    Definition at line 763 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reduce_functor_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::reduce_functor_type = typename std::decay_t<F>::reduce_functor_type
    +
    + +

    Definition at line 759 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::reference = value_type
    +
    + +

    Definition at line 769 of file xreducer.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 771 of file xreducer.hpp.

    + +
    +
    + +

    ◆ substepper_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::substepper_type = typename xexpression_type::const_stepper
    +
    + +

    Definition at line 762 of file xreducer.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::value_type = typename detail::evaluated_value_type_t<raw_value_type, is_xexpression<raw_value_type>::value>
    +
    + +

    Definition at line 767 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xcontainer_inner_types< xreducer< F, CT, X, O > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 758 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html new file mode 100644 index 000000000..10e0f4e5a --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xscalar< CT > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html new file mode 100644 index 000000000..b1a9b1b86 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xscalar< CT > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xscalar< CT > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using value_type = std::decay_t<CT>
     
    using reference = value_type&
     
    using const_reference = const value_type&
     
    using size_type = std::size_t
     
    +

    Detailed Description

    +
    template<class CT>
    +struct xt::xcontainer_inner_types< xscalar< CT > >
    +

    Definition at line 76 of file xscalar.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xcontainer_inner_types< xscalar< CT > >::const_reference = const value_type&
    +
    + +

    Definition at line 80 of file xscalar.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xcontainer_inner_types< xscalar< CT > >::reference = value_type&
    +
    + +

    Definition at line 79 of file xscalar.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xcontainer_inner_types< xscalar< CT > >::size_type = std::size_t
    +
    + +

    Definition at line 81 of file xscalar.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xcontainer_inner_types< xscalar< CT > >::value_type = std::decay_t<CT>
    +
    + +

    Definition at line 78 of file xscalar.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html new file mode 100644 index 000000000..e76c181aa --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >, including all inherited members.

    + + + + + + + + + + + + + +
    const_reference typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    inner_storage_type typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    layout (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >static
    reference typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    size_type typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    storage_getter typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    undecay_expression typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    undecay_shape typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    xexpression_type typedef (defined in xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >)xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html new file mode 100644 index 000000000..cff8bc624 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html @@ -0,0 +1,388 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using undecay_expression = CT
     
    using reference = inner_reference_t<undecay_expression>
     
    using const_reference = typename xexpression_type::const_reference
     
    using size_type = typename xexpression_type::size_type
     
    using shape_type = std::decay_t<S>
     
    using undecay_shape = S
     
    using storage_getter = FST
     
    using inner_storage_type = typename storage_getter::type
     
    using temporary_type
     
    using storage_type = std::remove_reference_t<inner_storage_type>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >
    +

    Definition at line 69 of file xstrided_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::const_reference = typename xexpression_type::const_reference
    +
    + +

    Definition at line 74 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_storage_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::inner_storage_type = typename storage_getter::type
    +
    + +

    Definition at line 79 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::reference = inner_reference_t<undecay_expression>
    +
    + +

    Definition at line 73 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::shape_type = std::decay_t<S>
    +
    + +

    Definition at line 76 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 75 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ storage_getter

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::storage_getter = FST
    +
    + +

    Definition at line 78 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::storage_type = std::remove_reference_t<inner_storage_type>
    +
    + +

    Definition at line 82 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::temporary_type
    +
    +Initial value:
    typename detail::xtype_for_shape<
    +
    S>::template type<typename xexpression_type::value_type, xexpression_type::static_layout>
    +
    +

    Definition at line 80 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ undecay_expression

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::undecay_expression = CT
    +
    + +

    Definition at line 72 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ undecay_shape

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::undecay_shape = S
    +
    + +

    Definition at line 77 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 71 of file xstrided_view.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xstrided_view< CT, S, L, FST > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 83 of file xstrided_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..0816ec0e2 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    layout (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..ad033915d --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = std::remove_reference_t<EC>
     
    using reference = inner_reference_t<storage_type>
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using shape_type = std::array<typename storage_type::size_type, N>
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = get_strides_t<shape_type>
     
    using inner_shape_type = shape_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using temporary_type = xtensor_container<temporary_container_t<storage_type>, N, L, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    +

    Definition at line 170 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::backstrides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 178 of file xtensor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 174 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 181 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::inner_shape_type = shape_type
    +
    + +

    Definition at line 179 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 180 of file xtensor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::reference = inner_reference_t<storage_type>
    +
    + +

    Definition at line 173 of file xtensor.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::shape_type = std::array<typename storage_type::size_type, N>
    +
    + +

    Definition at line 176 of file xtensor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 175 of file xtensor.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::storage_type = std::remove_reference_t<EC>
    +
    + +

    Definition at line 172 of file xtensor.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 177 of file xtensor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::temporary_type = xtensor_container<temporary_container_t<storage_type>, N, L, Tag>
    +
    + +

    Definition at line 182 of file xtensor.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xtensor_adaptor< EC, N, L, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 183 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..a78112f4c --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    layout (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..3d0d81327 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = EC
     
    using reference = inner_reference_t<storage_type>
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using shape_type = std::array<typename storage_type::size_type, N>
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = get_strides_t<shape_type>
     
    using inner_shape_type = shape_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using temporary_type = xtensor_container<EC, N, L, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >
    +

    Definition at line 46 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::backstrides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 54 of file xtensor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 50 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 57 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::inner_shape_type = shape_type
    +
    + +

    Definition at line 55 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 56 of file xtensor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::reference = inner_reference_t<storage_type>
    +
    + +

    Definition at line 49 of file xtensor.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::shape_type = std::array<typename storage_type::size_type, N>
    +
    + +

    Definition at line 52 of file xtensor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 51 of file xtensor.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::storage_type = EC
    +
    + +

    Definition at line 48 of file xtensor.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 53 of file xtensor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::temporary_type = xtensor_container<EC, N, L, Tag>
    +
    + +

    Definition at line 58 of file xtensor.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xtensor_container< EC, N, L, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 59 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..a952882bb --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,132 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >, including all inherited members.

    + + + + + + + + + + + + + +
    backstrides_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    const_reference typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    inner_backstrides_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    inner_shape_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    inner_strides_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    layout (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >static
    reference typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    shape_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    size_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    storage_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    strides_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    temporary_type typedef (defined in xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >)xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..816957692 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,386 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using storage_type = std::remove_reference_t<EC>
     
    using reference = inner_reference_t<storage_type>
     
    using const_reference = typename storage_type::const_reference
     
    using size_type = typename storage_type::size_type
     
    using shape_type = std::array<typename storage_type::size_type, N>
     
    using strides_type = get_strides_t<shape_type>
     
    using backstrides_type = get_strides_t<shape_type>
     
    using inner_shape_type = shape_type
     
    using inner_strides_type = strides_type
     
    using inner_backstrides_type = backstrides_type
     
    using temporary_type = xtensor_container<temporary_container_t<storage_type>, N, L, Tag>
     
    + + + +

    +Static Public Attributes

    static constexpr layout_type layout = L
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >
    +

    Definition at line 287 of file xtensor.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::backstrides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 295 of file xtensor.hpp.

    + +
    +
    + +

    ◆ const_reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::const_reference = typename storage_type::const_reference
    +
    + +

    Definition at line 291 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::inner_backstrides_type = backstrides_type
    +
    + +

    Definition at line 298 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::inner_shape_type = shape_type
    +
    + +

    Definition at line 296 of file xtensor.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::inner_strides_type = strides_type
    +
    + +

    Definition at line 297 of file xtensor.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::reference = inner_reference_t<storage_type>
    +
    + +

    Definition at line 290 of file xtensor.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::shape_type = std::array<typename storage_type::size_type, N>
    +
    + +

    Definition at line 293 of file xtensor.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::size_type = typename storage_type::size_type
    +
    + +

    Definition at line 292 of file xtensor.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::storage_type = std::remove_reference_t<EC>
    +
    + +

    Definition at line 289 of file xtensor.hpp.

    + +
    +
    + +

    ◆ strides_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::strides_type = get_strides_t<shape_type>
    +
    + +

    Definition at line 294 of file xtensor.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + +
    using xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::temporary_type = xtensor_container<temporary_container_t<storage_type>, N, L, Tag>
    +
    + +

    Definition at line 299 of file xtensor.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ layout

    + +
    +
    +
    +template<class EC, std::size_t N, layout_type L, class Tag>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xtensor_view< EC, N, L, Tag > >::layout = L
    +
    +staticconstexpr
    +
    + +

    Definition at line 300 of file xtensor.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4-members.html b/structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..5581c9d07 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4-members.html @@ -0,0 +1,129 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html b/structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..a1b7fa555 --- /dev/null +++ b/structxt_1_1xcontainer__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html @@ -0,0 +1,344 @@ + + + + + + + +xtensor: xt::xcontainer_inner_types< xview< CT, S... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_inner_types< xview< CT, S... > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using reference = inner_reference_t<CT>
     
    using const_reference = typename xexpression_type::const_reference
     
    using size_type = typename xexpression_type::size_type
     
    using temporary_type = view_temporary_type_t<xexpression_type, S...>
     
    using extract_storage_type
     
    using storage_type = std::conditional_t<is_const, const extract_storage_type, extract_storage_type>
     
    + + + + + +

    +Static Public Attributes

    static constexpr layout_type layout
     
    static constexpr bool is_const = std::is_const<std::remove_reference_t<CT>>::value
     
    +

    Detailed Description

    +
    template<class CT, class... S>
    +struct xt::xcontainer_inner_types< xview< CT, S... > >
    +

    Definition at line 298 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_reference

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::const_reference = typename xexpression_type::const_reference
    +
    + +

    Definition at line 302 of file xview.hpp.

    + +
    +
    + +

    ◆ extract_storage_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::extract_storage_type
    +
    +Initial value:
    xtl::mpl::eval_if_t<
    + +
    detail::expr_storage_type<xexpression_type>,
    + + + +
    +

    Definition at line 312 of file xview.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::reference = inner_reference_t<CT>
    +
    + +

    Definition at line 301 of file xview.hpp.

    + +
    +
    + +

    ◆ size_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::size_type = typename xexpression_type::size_type
    +
    + +

    Definition at line 303 of file xview.hpp.

    + +
    +
    + +

    ◆ storage_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::storage_type = std::conditional_t<is_const, const extract_storage_type, extract_storage_type>
    +
    + +

    Definition at line 316 of file xview.hpp.

    + +
    +
    + +

    ◆ temporary_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::temporary_type = view_temporary_type_t<xexpression_type, S...>
    +
    + +

    Definition at line 304 of file xview.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xcontainer_inner_types< xview< CT, S... > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 300 of file xview.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ is_const

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xcontainer_inner_types< xview< CT, S... > >::is_const = std::is_const<std::remove_reference_t<CT>>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 310 of file xview.hpp.

    + +
    +
    + +

    ◆ layout

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    layout_type xt::xcontainer_inner_types< xview< CT, S... > >::layout
    +
    +staticconstexpr
    +
    +Initial value:
    = detail::is_contiguous_view<xexpression_type, S...>::value
    +
    ? xexpression_type::static_layout
    + + +
    +

    Definition at line 306 of file xview.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcontainer__iterable__types-members.html b/structxt_1_1xcontainer__iterable__types-members.html new file mode 100644 index 000000000..089678acb --- /dev/null +++ b/structxt_1_1xcontainer__iterable__types-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcontainer_iterable_types< D > Member List
    +
    +
    + +

    This is the complete list of members for xt::xcontainer_iterable_types< D >, including all inherited members.

    + + + + +
    const_stepper typedef (defined in xt::xcontainer_iterable_types< D >)xt::xcontainer_iterable_types< D >
    inner_shape_type typedef (defined in xt::xcontainer_iterable_types< D >)xt::xcontainer_iterable_types< D >
    stepper typedef (defined in xt::xcontainer_iterable_types< D >)xt::xcontainer_iterable_types< D >
    +
    + + + + diff --git a/structxt_1_1xcontainer__iterable__types.html b/structxt_1_1xcontainer__iterable__types.html new file mode 100644 index 000000000..03a711423 --- /dev/null +++ b/structxt_1_1xcontainer__iterable__types.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::xcontainer_iterable_types< D > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcontainer_iterable_types< D > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using inner_shape_type = typename xcontainer_inner_types<D>::inner_shape_type
     
    using stepper = xstepper<D>
     
    using const_stepper = xstepper<const D>
     
    +

    Detailed Description

    +
    template<class D>
    +struct xt::xcontainer_iterable_types< D >
    +

    Definition at line 32 of file xcontainer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xcontainer_iterable_types< D >::const_stepper = xstepper<const D>
    +
    + +

    Definition at line 36 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xcontainer_iterable_types< D >::inner_shape_type = typename xcontainer_inner_types<D>::inner_shape_type
    +
    + +

    Definition at line 34 of file xcontainer.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class D>
    + + + + +
    using xt::xcontainer_iterable_types< D >::stepper = xstepper<D>
    +
    + +

    Definition at line 35 of file xcontainer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xcontainer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xcsv__config-members.html b/structxt_1_1xcsv__config-members.html new file mode 100644 index 000000000..ee53189c4 --- /dev/null +++ b/structxt_1_1xcsv__config-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xcsv_config Member List
    +
    +
    + +

    This is the complete list of members for xt::xcsv_config, including all inherited members.

    + + + + + + +
    comments (defined in xt::xcsv_config)xt::xcsv_config
    delimiter (defined in xt::xcsv_config)xt::xcsv_config
    max_rows (defined in xt::xcsv_config)xt::xcsv_config
    skip_rows (defined in xt::xcsv_config)xt::xcsv_config
    xcsv_config() (defined in xt::xcsv_config)xt::xcsv_configinline
    +
    + + + + diff --git a/structxt_1_1xcsv__config.html b/structxt_1_1xcsv__config.html new file mode 100644 index 000000000..2c61673f8 --- /dev/null +++ b/structxt_1_1xcsv__config.html @@ -0,0 +1,232 @@ + + + + + + + +xtensor: xt::xcsv_config Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xcsv_config Struct Reference
    +
    +
    + + + + + + + + + + +

    +Public Attributes

    char delimiter
     
    std::size_t skip_rows
     
    std::ptrdiff_t max_rows
     
    std::string comments
     
    +

    Detailed Description

    +
    +

    Definition at line 249 of file xcsv.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ xcsv_config()

    + +
    +
    + + + + + +
    + + + + + + + +
    xt::xcsv_config::xcsv_config ()
    +
    +inline
    +
    + +

    Definition at line 256 of file xcsv.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ comments

    + +
    +
    + + + + +
    std::string xt::xcsv_config::comments
    +
    + +

    Definition at line 254 of file xcsv.hpp.

    + +
    +
    + +

    ◆ delimiter

    + +
    +
    + + + + +
    char xt::xcsv_config::delimiter
    +
    + +

    Definition at line 251 of file xcsv.hpp.

    + +
    +
    + +

    ◆ max_rows

    + +
    +
    + + + + +
    std::ptrdiff_t xt::xcsv_config::max_rows
    +
    + +

    Definition at line 253 of file xcsv.hpp.

    + +
    +
    + +

    ◆ skip_rows

    + +
    +
    + + + + +
    std::size_t xt::xcsv_config::skip_rows
    +
    + +

    Definition at line 252 of file xcsv.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/io/xcsv.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xellipsis__tag-members.html b/structxt_1_1xellipsis__tag-members.html new file mode 100644 index 000000000..633a80023 --- /dev/null +++ b/structxt_1_1xellipsis__tag-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xellipsis_tag Member List
    +
    +
    + +

    This is the complete list of members for xt::xellipsis_tag, including all inherited members.

    + + +
    convert() const noexcept (defined in xt::xellipsis_tag)xt::xellipsis_taginline
    +
    + + + + diff --git a/structxt_1_1xellipsis__tag.html b/structxt_1_1xellipsis__tag.html new file mode 100644 index 000000000..bcd3b4351 --- /dev/null +++ b/structxt_1_1xellipsis__tag.html @@ -0,0 +1,164 @@ + + + + + + + +xtensor: xt::xellipsis_tag Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xellipsis_tag Struct Reference
    +
    +
    + + + + + +

    +Public Member Functions

    template<class T>
    xellipsis_tag convert () const noexcept
     
    +

    Detailed Description

    +
    +

    Definition at line 90 of file xslice.hpp.

    +

    Member Function Documentation

    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xellipsis_tag xt::xellipsis_tag::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 92 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xexpression__tag-members.html b/structxt_1_1xexpression__tag-members.html new file mode 100644 index 000000000..d7163d92e --- /dev/null +++ b/structxt_1_1xexpression__tag-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xexpression_tag< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::xexpression_tag< T >, including all inherited members.

    + + +
    type typedef (defined in xt::xexpression_tag< T >)xt::xexpression_tag< T >
    +
    + + + + diff --git a/structxt_1_1xexpression__tag.html b/structxt_1_1xexpression__tag.html new file mode 100644 index 000000000..aa7623ce1 --- /dev/null +++ b/structxt_1_1xexpression__tag.html @@ -0,0 +1,155 @@ + + + + + + + +xtensor: xt::xexpression_tag< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xexpression_tag< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type
     
    +

    Detailed Description

    +
    template<class... T>
    +struct xt::xexpression_tag< T >
    +

    Definition at line 384 of file xexpression.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class... T>
    + + + + +
    using xt::xexpression_tag< T >::type
    +
    +Initial value:
    extension::expression_tag_and_t<
    +
    extension::get_expression_tag_t<std::decay_t<const_xclosure_t<T>>>...>
    +
    +

    Definition at line 386 of file xexpression.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xfunction__cache.html b/structxt_1_1xfunction__cache.html new file mode 100644 index 000000000..73f5621bb --- /dev/null +++ b/structxt_1_1xfunction__cache.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::xfunction_cache< promote > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunction_cache< promote > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xfunction_cache< promote >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class promote>
    +struct xt::xfunction_cache< promote >
    +

    Definition at line 111 of file xfunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xfunction__cache.png b/structxt_1_1xfunction__cache.png new file mode 100644 index 0000000000000000000000000000000000000000..cf685b6f3fc0c37854513fc37436f99846c2a99e GIT binary patch literal 1055 zcmeAS@N?(olHy`uVBq!ia0y~yU<6`@01jp#S+j*V2}nr?_=LFr|NkGzeDUUMY5$?+ z76zIH64TGTc<|r>P~7xv*b<-|XGxG>FawYe2Ifq&uP`t$ukv(p45?szJJ-AHu@w(1 z_vDy2^+(UIjreoAPewy_zgyp_jj94mx>PKVp3yNh?q-_2#AQ;F$I?k6URqO^1O%;A zX`SSysyW5+<-z`Uw=LMq3^cm~JgrhB_w1;w>h+synw>(6eD zyLNBCU0<`;{{D9BuZv@=d?$Z;vbnZXU-H!ANqgD)6wfMrTT{*dTi{puZu8rRzWJ0^ z-2LGFe6?V``tz)*vrOXFuKqXM^KGcyI_KLdrDnSh>?~beQhm^Ffu?!tjM!z>-R_6& z-+WFvxAE82-uvqtelFeZ<2+gYqIO{MQQNLLCOr8HC#%GCk4=yEdsSX!R{X~$bMwaU z`Hf!L-&US>_xdfRbh0XJ{e97`mDOLXZ>aFvoQ_<2PP#tIXz@CBW$TqCUGLL%s;2V! zwl$t-TwZi;^_H;5+uCGB7jHZ%q8q&Tnpc0>{pQ~PJEqOM_2c(}`ByIKKaaU`>8}6U z19vN9{XVD_TXV-gUDta{c>nqZUl-(_yRz+T(NsITkGIcdZOv-Cf6n*wv9lF%CpA~@ z&eEN_AWa7ipn@qOTmoJ|Y1OHeN`JERI(tUQc(aB<`S&AtZQDX# zy_56ODlO+%ow{px`y{Wscb#|oyqs~3@7K<|cBW1Fyx-lYo%h$Yee*Qu`~O9kbm!mw zw`_j>zP$f-^K0+zuFd(rz54g!O`EbGNCa7BSnadFX?3&tHODRf^6#s6But(4`;(T} zZtK7O>v*noSf-r69x}x!JNCo#DW!9#>aCktee~FV{RuChugR#nxbWesM|=}|MT@^T zW}aH6r#ImjpI7$HjOo9^jCL74e0ObgP*nCM*P!)xesHI+*O>e0_80xNm$X~s%5AQe zud|<>R2kx}zI64E^sQe`OaG6}dim}{oz9lF-HVg#r~C#-b3s1e$8BGK9m)SZ)p+%s znEZ-IyLbQRtvlWQ$8G6t&Z0Wqr9tK2fjMdS@Bfpqg^H%BvG;M1& literal 0 HcmV?d00001 diff --git a/structxt_1_1xfunctor__view__temporary__type-members.html b/structxt_1_1xfunctor__view__temporary__type-members.html new file mode 100644 index 000000000..447022026 --- /dev/null +++ b/structxt_1_1xfunctor__view__temporary__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xfunctor_view_temporary_type< F, E > Member List
    +
    +
    + +

    This is the complete list of members for xt::xfunctor_view_temporary_type< F, E >, including all inherited members.

    + + +
    type typedef (defined in xt::xfunctor_view_temporary_type< F, E >)xt::xfunctor_view_temporary_type< F, E >
    +
    + + + + diff --git a/structxt_1_1xfunctor__view__temporary__type.html b/structxt_1_1xfunctor__view__temporary__type.html new file mode 100644 index 000000000..24ec346b7 --- /dev/null +++ b/structxt_1_1xfunctor__view__temporary__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::xfunctor_view_temporary_type< F, E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xfunctor_view_temporary_type< F, E > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = typename detail::functorview_temporary_type_impl<F, typename E::shape_type, E::static_layout>::type
     
    +

    Detailed Description

    +
    template<class F, class E>
    +struct xt::xfunctor_view_temporary_type< F, E >
    +

    Definition at line 390 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class F, class E>
    + + + + +
    using xt::xfunctor_view_temporary_type< F, E >::type = typename detail::functorview_temporary_type_impl<F, typename E::shape_type, E::static_layout>::type
    +
    + +

    Definition at line 392 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xinitial-members.html b/structxt_1_1xinitial-members.html new file mode 100644 index 000000000..096d025f4 --- /dev/null +++ b/structxt_1_1xinitial-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xinitial< T > Member List
    +
    +
    + +

    This is the complete list of members for xt::xinitial< T >, including all inherited members.

    + + + + +
    m_val (defined in xt::xinitial< T >)xt::xinitial< T >
    value() const (defined in xt::xinitial< T >)xt::xinitial< T >inline
    xinitial(T val) (defined in xt::xinitial< T >)xt::xinitial< T >inline
    +
    + + + + diff --git a/structxt_1_1xinitial.html b/structxt_1_1xinitial.html new file mode 100644 index 000000000..663ae3484 --- /dev/null +++ b/structxt_1_1xinitial.html @@ -0,0 +1,227 @@ + + + + + + + +xtensor: xt::xinitial< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xinitial< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xinitial< T >:
    +
    +
    + +
    + + + + + + +

    +Public Member Functions

    constexpr xinitial (T val)
     
    constexpr T value () const
     
    + + + +

    +Public Attributes

    m_val
     
    +

    Detailed Description

    +
    template<class T = double>
    +struct xt::xinitial< T >
    +

    Definition at line 48 of file xreducer.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ xinitial()

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + + + + +
    xt::xinitial< T >::xinitial (T val)
    +
    +inlineconstexpr
    +
    + +

    Definition at line 50 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ value()

    + +
    +
    +
    +template<class T = double>
    + + + + + +
    + + + + + + + +
    T xt::xinitial< T >::value () const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 55 of file xreducer.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_val

    + +
    +
    +
    +template<class T = double>
    + + + + +
    T xt::xinitial< T >::m_val
    +
    + +

    Definition at line 60 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xinitial.png b/structxt_1_1xinitial.png new file mode 100644 index 0000000000000000000000000000000000000000..c4add15de72dfadaef55854aefcb9587eb753bc6 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^%|IN$!3+|4X?7JzNeB3Zxc>kDAIN<1=4)yHq2(3^ zngtTm&%Ai>-~mwF^laD?pd4pOkY6wZkPimtOtY^rFfgw5ba4!+V0=6G?xbb~p4Q^L zS)c#;?}=q`7Kn*{{iwufa0F0Ts{Ma|+!hO;8E1dOE;+)jvf6ybV}`5OK2@%EUbr^&b(P(2|NQPv zhl&E%Wj-vPZ+Y&Z)c;2RrMDM-{CjZ25_R^UI?m@x|3yyTc=l-8|8t)24QE{bK4HD* z_WypiCL4oXQ)SzdzXnJMx$#AWKFfai+xC@Q#;-%i4@N0Em;ZJO{c1b+{sXVJkn*qc zt*c&z#S5{AUJd4IOURI5NLc6Ma_*&~l2N32LWRvU=Q|A#I}KzX@$p;~Kd7KImDSmR zrMaUc+?Kssq|mXiNK5=fdl|cYfcS zY!&J`8T{P3&JmRr6!^&k9oD8c@gxXMp?p!+%4 iCVkn($;@!(D!+>Fyu%fj4!sA)CWEJ|pUXO@geCyobNy}r literal 0 HcmV?d00001 diff --git a/structxt_1_1xiterable__inner__types.html b/structxt_1_1xiterable__inner__types.html new file mode 100644 index 000000000..d4fcdbed0 --- /dev/null +++ b/structxt_1_1xiterable__inner__types.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< D > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< D > Struct Template Reference
    +
    +
    +

    Detailed Description

    +
    template<class D>
    +struct xt::xiterable_inner_types< D >
    +

    Definition at line 23 of file xiterable.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterable.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..79a7a4e48 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..44d70c84b --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xarray_adaptor< EC, L, SC, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xarray_adaptor< EC, L, SC, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC, class Tag>
    +struct xt::xiterable_inner_types< xarray_adaptor< EC, L, SC, Tag > >
    +

    Definition at line 191 of file xarray.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xarray__adaptor_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..caaf3f0954916252e947b1fe3177883ebfa602ae GIT binary patch literal 1433 zcmcIk`#Y2g6#m>VjkcQ7Od|1Nr;-eYTyt$c4Yk9#mP>{y4Wn_tWOpf6VP?LtS=2sD zJF&Tz%VTJg-C-~ka+#V?Db^*7aVzY!zwIBe=RD7O-}9bd&hwn}yjkbmPphdOPz3-$ z4Z=GS0YD~O%FijwNvjRD?v4~R&JjGFx3{;YbZS--%Xr4NIDv^m{oFG(K0Yqh%>-U$ z(wRyO(cJ@(_Wy>tY|$V9D1eZYy=Q{V+=Ul$v)>|+T_AavcjhDlBX?Q+0$FkPE3O*|HlRfZ8TLiV)FVLpUgWe)9?3G~rqVN88-~>LRk+cj_0`n}bHM&I(R=}6v|WGHX654Qb+;*0 zX!w#P(^z92pPY%CzG@!w79kjviP${D7H|Y{{pjKOY+dY!zY_=1^XewmN|^I`cyheA$B4C9QNCkZsIX!Ly>U1?B{~sFT?jdzQJ}}ysn7Go?*QY zE%v@-TByU{HvD?_wEupB7Wr6r9as?RYr7Lz+p(Ykr~qr$Far4L$Leab9N?hM2Yx^$ zM6syADR~eL>{5gj0C{^@2C!$6fm6G_O7f86|1Px!I=Eo&gRYoK@hMi>b@18&C<9cm zhYv&2J@7>79`IgyC2~_%$IR=PO-sU)_N8j?XZa7h#O&PMR!=#~I{m8oAFKQkH!=eO zSvnrWHrvPZ;MoC$V)vo@rn>F>I+`cmt$sdJSwdl3cZ?y;aQ=Jyyz10NLO;Bj0nKD( zvb!ge7Bb}?99`!u5e9Vz)3ZO4nrOaU$!>hV#+^79*3P?TZMcBUFuJ%d_0aH&(0s(y zjoN_Rk5lAE*W0N+!U#gKLLx-3x$r3R70m=w?^qcAa)>K*;tdqDj6VJO8)3v4;Mzet}M#h7X$@Qwt!bn*DD=?z!dl1M7`yTS#|90&EqCfw@j zjmwQ3JrA56BnmN#J3FGH*?~19RaRLWbkThz$LmQw$&|1zk5~I+Guvk7xuV{tILbkm zv3H+U$ppfhF-Ro|q5_-knm=-x$945sfaLIx=>^U{20BvF!n>Up0^^(&s&5c5tIq{-2YX?oP#p{xlnMnF)JR`MBL4}DoENlt9# z2yY$y-9Q)ej%wcORUF7=mdV72f#vN+%*7)$A&o=4t^6|oOA4(VagJJQ&tK2$;Kz)< z_>9)Q;I#T1pG}r^-%TQ%sMDDT>cI%;W;*Byr)l$ + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..b7526792c --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xarray_container< EC, L, SC, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xarray_container< EC, L, SC, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class EC, layout_type L, class SC, class Tag>
    +struct xt::xiterable_inner_types< xarray_container< EC, L, SC, Tag > >
    +

    Definition at line 62 of file xarray.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xarray__container_3_01_e_c_00_01_l_00_01_s_c_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f090b235af6abe07aa58e93f2e61c0f5599a3db8 GIT binary patch literal 1434 zcmb`H`#;kQ7{|X9#fb8H(aEb9r@nOLOUNaPM6#LTOvl`6F108dCzp|2iWIAZl_|06 z*eo*4Ld&fqoOZC~ZYI_lK;`90Mt>) zlUM*ypuw@%_ATEll42h0biLe9yU68oIGmi7#b&p#j+hxm?auFuGbM;ILvd+DvK@K{m#CyDH-|Fz)PVv2nX`Jwh+tix}3-F{Np3WoFf; zjs_jQP|0Kd5 zB`b8?)qKfil4$#(#tA9+yhf}_IOP(1mi?uGct-76TD7drx4@9w5ZgJB5c?(Akob3< zV6L-sqwBY;nohB`_ev7RNn#$_lVpO?64S`Kl25h*ZR$o6@2E4CygaoI+U5ipfTAh> z8;xK;?o7L2NM|;MdX+&Pt{c(kqu1`c;ogFN#y&MeuhT%ishgK>fXDmRV=@O?krsLI zz3ICUs0{CrANf&k5cq?~A!zBCurz`G(NQrq#RU)KD5fIaAV3p?$Mcnd>qZ>F(X#O= zr~}+$wkiS&d0v2i;VuM_?j53#3QqtuJu;PmmhUncD_}bd7QtBkucA!@sMiux8eUL> zYynY5sI21FeJFSdXjHh10^aZr$z??C2?|#}Th}zT@?5u}W&O~HR!-l#3u}UlSKn)@ zd}qS0t@lessO_DPY80@sw=yV~!O5D-BAB7gC!yo2g4aC^eywC?VVzHRLCc`Qu`TtH z*7mf|)!O~_iEeY|HP%V&3PN1MjB^dbwJg8?&XVBb0o^r+!$OnQ3$BhfX1sn2RN8{_ zXD=kd!f2m6@kj z9!b>y)^x?U;n6|1XT*w=OmWgbgTiDqUs_<{#rcO?>ovdTR&LS*t`d)1~uqJ zUeX|2AvCnN;|1OX|J6%49a?((Qug%H+UTcgMN3Ti>(APqFEV-dY&SpFf|~IY72?b{ z**U_~8-Xk`6XDxnoLJysA8^Wd!*reDKO8M8 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xbroadcast< CT, X > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html new file mode 100644 index 000000000..27c248550 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xbroadcast_3_01_c_t_00_01_x_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xbroadcast< CT, X > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xbroadcast< CT, X > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using inner_shape_type = promote_shape_t<typename xexpression_type::shape_type, X>
     
    using const_stepper = typename xexpression_type::const_stepper
     
    using stepper = const_stepper
     
    +

    Detailed Description

    +
    template<class CT, class X>
    +struct xt::xiterable_inner_types< xbroadcast< CT, X > >
    +

    Definition at line 77 of file xbroadcast.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xiterable_inner_types< xbroadcast< CT, X > >::const_stepper = typename xexpression_type::const_stepper
    +
    + +

    Definition at line 81 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xiterable_inner_types< xbroadcast< CT, X > >::inner_shape_type = promote_shape_t<typename xexpression_type::shape_type, X>
    +
    + +

    Definition at line 80 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xiterable_inner_types< xbroadcast< CT, X > >::stepper = const_stepper
    +
    + +

    Definition at line 82 of file xbroadcast.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class X>
    + + + + +
    using xt::xiterable_inner_types< xbroadcast< CT, X > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 79 of file xbroadcast.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html new file mode 100644 index 000000000..1a17f2d24 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xchunked_array< chunk_storage > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html new file mode 100644 index 000000000..de4d2e53a --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xchunked__array_3_01chunk__storage_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xchunked_array< chunk_storage > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xchunked_array< chunk_storage > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using chunk_type = typename chunk_storage::value_type
     
    using inner_shape_type = typename chunk_type::shape_type
     
    using const_stepper = xindexed_stepper<xchunked_array<chunk_storage>, true>
     
    using stepper = xindexed_stepper<xchunked_array<chunk_storage>, false>
     
    +

    Detailed Description

    +
    template<class chunk_storage>
    +struct xt::xiterable_inner_types< xchunked_array< chunk_storage > >
    +

    Definition at line 47 of file xchunked_array.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ chunk_type

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xiterable_inner_types< xchunked_array< chunk_storage > >::chunk_type = typename chunk_storage::value_type
    +
    + +

    Definition at line 49 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xiterable_inner_types< xchunked_array< chunk_storage > >::const_stepper = xindexed_stepper<xchunked_array<chunk_storage>, true>
    +
    + +

    Definition at line 51 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xiterable_inner_types< xchunked_array< chunk_storage > >::inner_shape_type = typename chunk_type::shape_type
    +
    + +

    Definition at line 50 of file xchunked_array.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class chunk_storage>
    + + + + +
    using xt::xiterable_inner_types< xchunked_array< chunk_storage > >::stepper = xindexed_stepper<xchunked_array<chunk_storage>, false>
    +
    + +

    Definition at line 52 of file xchunked_array.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html new file mode 100644 index 000000000..7a3ce3617 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html new file mode 100644 index 000000000..2dcd0bfb7 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xdynamic__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html @@ -0,0 +1,233 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    using inner_shape_type = S
     
    using inner_strides_type = inner_shape_type
     
    using inner_backstrides_type = inner_shape_type
     
    using const_stepper = xindexed_stepper<const xdynamic_view<CT, S, L, FST>, true>
     
    using stepper = xindexed_stepper<xdynamic_view<CT, S, L, FST>, false>
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >
    +

    Definition at line 45 of file xdynamic_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >::const_stepper = xindexed_stepper<const xdynamic_view<CT, S, L, FST>, true>
    +
    + +

    Definition at line 59 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ inner_backstrides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >::inner_backstrides_type = inner_shape_type
    +
    + +

    Definition at line 49 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >::inner_shape_type = S
    +
    + +

    Definition at line 47 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >::inner_strides_type = inner_shape_type
    +
    + +

    Definition at line 48 of file xdynamic_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xdynamic_view< CT, S, L, FST > >::stepper = xindexed_stepper<xdynamic_view<CT, S, L, FST>, false>
    +
    + +

    Definition at line 60 of file xdynamic_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..d37fd6e81 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..1e24b0e45 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xfixed_adaptor< EC, S, L, SH, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class EC, class S, layout_type L, bool SH, class Tag>
    +struct xt::xiterable_inner_types< xfixed_adaptor< EC, S, L, SH, Tag > >
    +

    Definition at line 408 of file xfixed.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xfixed__adaptor_3_01_e_c_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..022472a6af76261982f5c73ccc46606eed1acf4e GIT binary patch literal 1469 zcmcJP>pRp56vuxqh1Mlx8MCtMnW0I#{g8^0H7-+b4{}|%ahV-Ttx0Z8Y!^m}`pM-t z6UsFdA(u(95msiXb;~klHjQFX8pD{GWv5>3^Xwn6=fyeS^F1%ldGUEpriYu8+BW@d z005}ropGK3AP38|hq8h!OZg&mSwVWZcsp!vZp!3`1z~(nSC!R%%vrqx<_9j9EAuT_ zKIO8R$~jLrFF@9RjYIPE5dhfYjK|q|C(11b@nZ!?RLc;dT#4=STwLDi2~xYzMReB; zryZCd=~cQx@Xtp#>>1Ef^>aRG2i?2LycvN*fhdG#zbf7lchDZve7)bx`SaES)`M?|D-`XW8*{@}Iv>FGfAOL7!l~H+7O~f~dpYL>Mu#c?X{F z(HARZ+x0Q|?~fLeJl{?I#Vis^Bt(iW7>;aLU2MqWS%$G6q+4F^;3&D#LD+BY?^ETj zm9*#2F{fUQ>a6-E4V-y4Lgx44A+tdmrd;yIkSNuk)ZpBQi}V=Pyn1qS#ofaRM}wRq zmP)q`b1sI2v2&m)SFOI#-?Ox}F)+2O4*662QR0qS`+sWD0B zk)t(l8o+m?la$X` zZBhvOJd^%!8=`wHwIHb?cK!~kq>HlT=mkP9Uy#uG7l~V6D6uZ|&yU3K8EAYV4@g0g ze3~MlXn#-vkXsh!jR422Q6R8=y9NQ$2b41+wgLpBB)K%Ia}@Bs5rhD!RGDRD1poh* zsI?GNaT|xJP*k{vLZdJ{AO!vzHNp{+ZNF76I|zj_GG>}<=eTpu87>-^+>`Pi@9GJf z5htNb8#fHjKy_6HAK0;5C);55g%0}q5C~dNP!aei-L=;pS8a)v$qnfnY2mL92$m|c zV3H@1v%b7(6BjY2KTvE+eCds7+!|w6)9mDPnx9PXAmkLT@{IFqvghrP1l>;ZRrm6; zfh=Eeyim6a#o~^++%g`z_*Otkwa6_fpgau;JP|=8f93l$c6UzHS-rO%T~7?r3_2?N z`Avk$;O@&xp6_bl*RB$h`&h`szN|GbwCK0lUE{03Xpd#AO?~(F$u8@FOZ%=1u;eQ< zk9AC;!J@&oBp5NdRM$O{TNYR!5E-J9=NhDf1xGjHZ7sz|2$gZR)o?pDT;r%WXmUBW z4X%YvV|~o6{~F4W@@h<;ckD zGdmp-9#}iEli$G8A!w(f%`&t~I-9L&jnNJa@seqq8XhW6;}B7Eo0n5gLMt(eeMzmo z4|VYKp9Zr~Cq)1lC}yz(knUSha~3WMlfImdp8(l`>n_xEr54$!`1y5dg&jjtG>qo literal 0 HcmV?d00001 diff --git a/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..b3d054d00 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..1cbd7fadd --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xfixed_container< ET, S, L, SH, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xfixed_container< ET, S, L, SH, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class ET, class S, layout_type L, bool SH, class Tag>
    +struct xt::xiterable_inner_types< xfixed_container< ET, S, L, SH, Tag > >
    +

    Definition at line 274 of file xfixed.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xfixed__container_3_01_e_t_00_01_s_00_01_l_00_01_s_h_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9fcbc9895eb5dd8f21fc11b8af841a5522bdafd6 GIT binary patch literal 1448 zcmb`H`#02i7{|X>TgW9=yM$`^B8ieaD{_f1!`Q(vS!vsG%cW&%avO5sBB;tM6ew%8pp`9Z7t34eZm9(lJO z#x)@|#q(Id006oF9k!p1Fx5iA-vm(NtK& z;Aq8Ird(gHkQGuD0htXkw(b5BMwb!13{h}l8|V&~RZ_f;GT>d%37lJN=|Yit-7n&$ z>&{FGDI2qHl(OlaxHQxDc4U*BdyBQ%V12HZ{hduVja#_xQ?`KS>bt|1n|N0P=>Wwm ziLO4}5u|Pqb1C<@Ctpn5OX)PkbT6rf4y^8HZqc|)JEu0x`(kC{R}=E2nu!r+v-r+N zflbs=rbvp%)O{tTOC^*@JHhlQ%x{jO7e(pYM2(5cITYPX!rDdY<0PYVox_VwTh`W+Sq*^&TA@qYv7?pVvD!G) za`=AufLJ>W6uxd&)l0CC7$DS4hL?=iQHphmy_isK;qK>`i8xC;msB>*pwBpvM)r(; znb9$NBu6ADH9Ybpsh(xtcx=diSd=#xyzJ9^TE-S8^fy^pxye^uYq6y)ifm(&LUJQ1 zY(a7Z?^?fqzyV**kb_A5T>A`J&!O|`GwS0mHYZUpb!97FZv%40ERQ6Ph})LBSZ5N| zeqYQ9?z_?7c}mBpoHvPob~Yi={t$f@s%`Kbe2(*B3Ynp~bWIML&q$wG*H0r-SCKyo zyO0OUdOtGIu==?DV!tXxN{w1jQ=guj-B}%HoQ%H=hI59@OBdufzrNmlw3Ki&#DcI> z1=`A(b#98r7lQ#1;y>)|3TopKWnijUMj((iPX0s6BTeArK{DW?1Y{jllyf;vP6zdY zyqn-Q;IdfpfV!MZh#?BdqbL0DuMl-~w|P?=U+-SXQraI@%Lw zrecz7Y^zr^*3R$+Z$DNx)y!xe99y{8ZpV^fER$&riG;X3J~j0%X7uUgGid?wR)y3D z4g@u)Pdwi%T*R||Q`fimJhCb(>HpA+8!xD#R$Z*-b>G%iUt`Aon1=fgXr_)^yuEXs zZ$h$v?p{Jy_DGMab_40D-))YAl`)~Gi{|DG@gH2^-_NYiN8L5t@pg^b9Xw=Njy}^` z`=XgcuH^Ka4ymBN4>gOKyi*c=k@T_%Av$mj&4)?<5*-Xjt}T~>n@%4h@UVU>@kx;$ zBzVWp1A{i?DV?5n;gi$J_~Y;?PI;K&t007FqfwtRwCq?;9JQ>8d+XU=Eai|fWCE>K yP(Tv~Tnc*NG~gzLM_3czK=C#)4DvRy5bvAdgkIjmJ(Pg#Q~>hubEmtW&iV_j-oj`A literal 0 HcmV?d00001 diff --git a/structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..45cd1dc0a --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xfunction< F, CT... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..41d532b4c --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xfunction_3_01_f_00_01_c_t_8_8_8_01_4_01_4.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xfunction< F, CT... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xfunction< F, CT... > > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using inner_shape_type = promote_shape_t<typename std::decay_t<CT>::shape_type...>
     
    using const_stepper = xfunction_stepper<F, CT...>
     
    using stepper = const_stepper
     
    +

    Detailed Description

    +
    template<class F, class... CT>
    +struct xt::xiterable_inner_types< xfunction< F, CT... > >
    +

    Definition at line 125 of file xfunction.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xiterable_inner_types< xfunction< F, CT... > >::const_stepper = xfunction_stepper<F, CT...>
    +
    + +

    Definition at line 128 of file xfunction.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xiterable_inner_types< xfunction< F, CT... > >::inner_shape_type = promote_shape_t<typename std::decay_t<CT>::shape_type...>
    +
    + +

    Definition at line 127 of file xfunction.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class F, class... CT>
    + + + + +
    using xt::xiterable_inner_types< xfunction< F, CT... > >::stepper = const_stepper
    +
    + +

    Definition at line 129 of file xfunction.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html new file mode 100644 index 000000000..5ce75dfe3 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xgenerator< C, R, S > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html new file mode 100644 index 000000000..3d21cc55f --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xgenerator_3_01_c_00_01_r_00_01_s_01_4_01_4.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xgenerator< C, R, S > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xgenerator< C, R, S > > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using inner_shape_type = S
     
    using const_stepper = xindexed_stepper<xgenerator<C, R, S>, true>
     
    using stepper = const_stepper
     
    +

    Detailed Description

    +
    template<class C, class R, class S>
    +struct xt::xiterable_inner_types< xgenerator< C, R, S > >
    +

    Definition at line 65 of file xgenerator.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class C, class R, class S>
    + + + + +
    using xt::xiterable_inner_types< xgenerator< C, R, S > >::const_stepper = xindexed_stepper<xgenerator<C, R, S>, true>
    +
    + +

    Definition at line 68 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class C, class R, class S>
    + + + + +
    using xt::xiterable_inner_types< xgenerator< C, R, S > >::inner_shape_type = S
    +
    + +

    Definition at line 67 of file xgenerator.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class C, class R, class S>
    + + + + +
    using xt::xiterable_inner_types< xgenerator< C, R, S > >::stepper = const_stepper
    +
    + +

    Definition at line 69 of file xgenerator.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html new file mode 100644 index 000000000..623793bff --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4-members.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xindex_view< CT, I > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html new file mode 100644 index 000000000..ff9b167fc --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xindex__view_3_01_c_t_00_01_i_01_4_01_4.html @@ -0,0 +1,193 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xindex_view< CT, I > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xindex_view< CT, I > > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using inner_shape_type = std::array<std::size_t, 1>
     
    using const_stepper = xindexed_stepper<xindex_view<CT, I>, true>
     
    using stepper = xindexed_stepper<xindex_view<CT, I>, false>
     
    +

    Detailed Description

    +
    template<class CT, class I>
    +struct xt::xiterable_inner_types< xindex_view< CT, I > >
    +

    Definition at line 68 of file xindex_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xiterable_inner_types< xindex_view< CT, I > >::const_stepper = xindexed_stepper<xindex_view<CT, I>, true>
    +
    + +

    Definition at line 71 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xiterable_inner_types< xindex_view< CT, I > >::inner_shape_type = std::array<std::size_t, 1>
    +
    + +

    Definition at line 70 of file xindex_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class I>
    + + + + +
    using xt::xiterable_inner_types< xindex_view< CT, I > >::stepper = xindexed_stepper<xindex_view<CT, I>, false>
    +
    + +

    Definition at line 72 of file xindex_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html new file mode 100644 index 000000000..efa466da5 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xmasked_view< CTD, CTM > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html new file mode 100644 index 000000000..9b777de3b --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xmasked__view_3_01_c_t_d_00_01_c_t_m_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xmasked_view< CTD, CTM > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xmasked_view< CTD, CTM > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using masked_view_type = xmasked_view<CTD, CTM>
     
    using inner_shape_type = typename std::decay_t<CTD>::inner_shape_type
     
    using stepper = xmasked_view_stepper<masked_view_type, false>
     
    using const_stepper = xmasked_view_stepper<masked_view_type, true>
     
    +

    Detailed Description

    +
    template<class CTD, class CTM>
    +struct xt::xiterable_inner_types< xmasked_view< CTD, CTM > >
    +

    Definition at line 54 of file xmasked_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xiterable_inner_types< xmasked_view< CTD, CTM > >::const_stepper = xmasked_view_stepper<masked_view_type, true>
    +
    + +

    Definition at line 59 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xiterable_inner_types< xmasked_view< CTD, CTM > >::inner_shape_type = typename std::decay_t<CTD>::inner_shape_type
    +
    + +

    Definition at line 57 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ masked_view_type

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xiterable_inner_types< xmasked_view< CTD, CTM > >::masked_view_type = xmasked_view<CTD, CTM>
    +
    + +

    Definition at line 56 of file xmasked_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CTD, class CTM>
    + + + + +
    using xt::xiterable_inner_types< xmasked_view< CTD, CTM > >::stepper = xmasked_view_stepper<masked_view_type, false>
    +
    + +

    Definition at line 58 of file xmasked_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html new file mode 100644 index 000000000..7d04c7989 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xoptional_assembly< VE, FE > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html new file mode 100644 index 000000000..3b03a48a3 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly_3_01_v_e_00_01_f_e_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xoptional_assembly< VE, FE > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xoptional_assembly< VE, FE > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using assembly_type = xoptional_assembly<VE, FE>
     
    using inner_shape_type = typename VE::inner_shape_type
     
    using stepper = xoptional_assembly_stepper<assembly_type, false>
     
    using const_stepper = xoptional_assembly_stepper<assembly_type, true>
     
    +

    Detailed Description

    +
    template<class VE, class FE>
    +struct xt::xiterable_inner_types< xoptional_assembly< VE, FE > >
    +

    Definition at line 39 of file xoptional_assembly.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ assembly_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly< VE, FE > >::assembly_type = xoptional_assembly<VE, FE>
    +
    + +

    Definition at line 41 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly< VE, FE > >::const_stepper = xoptional_assembly_stepper<assembly_type, true>
    +
    + +

    Definition at line 44 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly< VE, FE > >::inner_shape_type = typename VE::inner_shape_type
    +
    + +

    Definition at line 42 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class VE, class FE>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly< VE, FE > >::stepper = xoptional_assembly_stepper<assembly_type, false>
    +
    + +

    Definition at line 43 of file xoptional_assembly.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html new file mode 100644 index 000000000..23cb6fdd0 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html new file mode 100644 index 000000000..695b3eab0 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xoptional__assembly__adaptor_3_01_v_e_c_00_01_f_e_c_01_4_01_4.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using assembly_type = xoptional_assembly_adaptor<VEC, FEC>
     
    using inner_shape_type = typename std::decay_t<VEC>::inner_shape_type
     
    using stepper = xoptional_assembly_stepper<assembly_type, false>
     
    using const_stepper = xoptional_assembly_stepper<assembly_type, true>
     
    +

    Detailed Description

    +
    template<class VEC, class FEC>
    +struct xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >
    +

    Definition at line 169 of file xoptional_assembly.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ assembly_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::assembly_type = xoptional_assembly_adaptor<VEC, FEC>
    +
    + +

    Definition at line 171 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::const_stepper = xoptional_assembly_stepper<assembly_type, true>
    +
    + +

    Definition at line 174 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::inner_shape_type = typename std::decay_t<VEC>::inner_shape_type
    +
    + +

    Definition at line 172 of file xoptional_assembly.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class VEC, class FEC>
    + + + + +
    using xt::xiterable_inner_types< xoptional_assembly_adaptor< VEC, FEC > >::stepper = xoptional_assembly_stepper<assembly_type, false>
    +
    + +

    Definition at line 173 of file xoptional_assembly.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html new file mode 100644 index 000000000..779fa1e98 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4-members.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xreducer< F, CT, X, O > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html new file mode 100644 index 000000000..8fb2a99b3 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xreducer_3_01_f_00_01_c_t_00_01_x_00_01_o_01_4_01_4.html @@ -0,0 +1,218 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xreducer< F, CT, X, O > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xreducer< F, CT, X, O > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using inner_shape_type
     
    using const_stepper = xreducer_stepper<F, CT, X, O>
     
    using stepper = const_stepper
     
    +

    Detailed Description

    +
    template<class F, class CT, class X, class O>
    +struct xt::xiterable_inner_types< xreducer< F, CT, X, O > >
    +

    Definition at line 744 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xiterable_inner_types< xreducer< F, CT, X, O > >::const_stepper = xreducer_stepper<F, CT, X, O>
    +
    + +

    Definition at line 751 of file xreducer.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xiterable_inner_types< xreducer< F, CT, X, O > >::inner_shape_type
    +
    +Initial value:
    +
    typename xexpression_type::shape_type,
    +
    std::decay_t<X>,
    +
    typename O::keep_dims>::type
    + +
    +

    Definition at line 747 of file xreducer.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xiterable_inner_types< xreducer< F, CT, X, O > >::stepper = const_stepper
    +
    + +

    Definition at line 752 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class F, class CT, class X, class O>
    + + + + +
    using xt::xiterable_inner_types< xreducer< F, CT, X, O > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 746 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4-members.html new file mode 100644 index 000000000..556147c52 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xrepeat< CT, R > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html new file mode 100644 index 000000000..72c4f12af --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xrepeat_3_01_c_t_00_01_r_01_4_01_4.html @@ -0,0 +1,233 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xrepeat< CT, R > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xrepeat< CT, R > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using repeats_type = std::decay_t<R>
     
    using inner_shape_type = typename xexpression_type::inner_shape_type
     
    using const_stepper = xrepeat_stepper<typename xexpression_type::const_stepper, repeats_type>
     
    using stepper = const_stepper
     
    +

    Detailed Description

    +
    template<class CT, class R>
    +struct xt::xiterable_inner_types< xrepeat< CT, R > >
    +

    Definition at line 75 of file xrepeat.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xiterable_inner_types< xrepeat< CT, R > >::const_stepper = xrepeat_stepper<typename xexpression_type::const_stepper, repeats_type>
    +
    + +

    Definition at line 80 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xiterable_inner_types< xrepeat< CT, R > >::inner_shape_type = typename xexpression_type::inner_shape_type
    +
    + +

    Definition at line 79 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ repeats_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xiterable_inner_types< xrepeat< CT, R > >::repeats_type = std::decay_t<R>
    +
    + +

    Definition at line 78 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xiterable_inner_types< xrepeat< CT, R > >::stepper = const_stepper
    +
    + +

    Definition at line 81 of file xrepeat.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class R>
    + + + + +
    using xt::xiterable_inner_types< xrepeat< CT, R > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 77 of file xrepeat.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html new file mode 100644 index 000000000..d5717f7c4 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xscalar< CT > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html new file mode 100644 index 000000000..8ce9293e7 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xscalar_3_01_c_t_01_4_01_4.html @@ -0,0 +1,233 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xscalar< CT > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xscalar< CT > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    using value_type = std::decay_t<CT>
     
    using inner_shape_type = std::array<std::size_t, 0>
     
    using shape_type = inner_shape_type
     
    using const_stepper = xscalar_stepper<true, CT>
     
    using stepper = xscalar_stepper<false, CT>
     
    +

    Detailed Description

    +
    template<class CT>
    +struct xt::xiterable_inner_types< xscalar< CT > >
    +

    Definition at line 66 of file xscalar.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xiterable_inner_types< xscalar< CT > >::const_stepper = xscalar_stepper<true, CT>
    +
    + +

    Definition at line 71 of file xscalar.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xiterable_inner_types< xscalar< CT > >::inner_shape_type = std::array<std::size_t, 0>
    +
    + +

    Definition at line 69 of file xscalar.hpp.

    + +
    +
    + +

    ◆ shape_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xiterable_inner_types< xscalar< CT > >::shape_type = inner_shape_type
    +
    + +

    Definition at line 70 of file xscalar.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xiterable_inner_types< xscalar< CT > >::stepper = xscalar_stepper<false, CT>
    +
    + +

    Definition at line 72 of file xscalar.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class CT>
    + + + + +
    using xt::xiterable_inner_types< xscalar< CT > >::value_type = std::decay_t<CT>
    +
    + +

    Definition at line 68 of file xscalar.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html new file mode 100644 index 000000000..6652e456f --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html new file mode 100644 index 000000000..feabfd28f --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xstrided__view_3_01_c_t_00_01_s_00_01_l_00_01_f_s_t_01_4_01_4.html @@ -0,0 +1,244 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > > Struct Template Reference
    +
    +
    + + + + + + + + + + + + +

    +Public Types

    using inner_shape_type = std::decay_t<S>
     
    using inner_strides_type = get_strides_t<inner_shape_type>
     
    using inner_backstrides_type_type = inner_strides_type
     
    using const_stepper
     
    using stepper
     
    +

    Detailed Description

    +
    template<class CT, class S, layout_type L, class FST>
    +struct xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >
    +

    Definition at line 87 of file xstrided_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >::const_stepper
    +
    +
    + +

    ◆ inner_backstrides_type_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >::inner_backstrides_type_type = inner_strides_type
    +
    + +

    Definition at line 91 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >::inner_shape_type = std::decay_t<S>
    +
    + +

    Definition at line 89 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ inner_strides_type

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >::inner_strides_type = get_strides_t<inner_shape_type>
    +
    + +

    Definition at line 90 of file xstrided_view.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class S, layout_type L, class FST>
    + + + + +
    using xt::xiterable_inner_types< xstrided_view< CT, S, L, FST > >::stepper
    +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html b/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html new file mode 100644 index 000000000..1fc4bd3cb --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4-members.html @@ -0,0 +1,119 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..a013e26f4 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xtensor_adaptor< EC, N, L, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xtensor_adaptor< EC, N, L, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::xiterable_inner_types< xtensor_adaptor< EC, N, L, Tag > >
    +

    Definition at line 187 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xtensor__adaptor_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f26252843abbd2b47b7530bc041724f2ccdb0d83 GIT binary patch literal 1385 zcmeAS@N?(olHy`uVBq!ia0y~yVC(?012~w0q)EHbBOoOm;1lBd|Nnm=^TnI5rTvGN zTNr2-NK8NT;=zLlKylNvVM~B=oFzei!3;n?7??B7zQVx3^2O7|F{Fa=ZER%GV=JDV zZL5N6{|nn67gH5j^1^j8$7i-q>xG^I+|sA@r=>;;o!+E#or&91&Eu1oilB-lgC~n8 zn}d+!B*qCY6H*u~l(;YaV*)%Z=(erF%QvX+~t z)TEOB<926;*xAkBtyOM5@cphO*!LqV<9x^O@9*osm)?!|Ugr3E@5CCJ2-9-M*(Ud2 zGcUEfTNW?f+rCc1b@x@hSCI+k z(_H=6Q}S%{g75td^!P2g|zwF{KB>{OCI7kIB<8)=#T_MlvNb;W@@ zW!Ke0yj>Pw+_Gog^6g3Ic(Xqpz4k=<<`UCV7oL?bqAx$lc0ZEw^lzrX)WyYK z{k!8{-(O>q{)y`-PBvZCv}p|0Xt=nPgOkeEh_&l>HgQ>E-v zeej>^$>JHiJ~dA4ul#U$mWpgrXp1b9%FoF^M3uLhPkLgwXsgj7kx{mq%Y^$3RHr-FR~XXSX{W1WnXf2di>kZ zhuzD5Pri1={+O}WJ+-9V$Zeq|?e6_K?|;46)8o71TIaD~$t-YCY)`jdl&v@nL9^CPDZ|(Fu zQU{hO&Dy<>eO;8<%zbymXYSqq*7b6B+}!BJ1?zTM#5ms$F%x=gax10wUFkH{m#jVM zEh>NI+Vqt?>t*Ik%h1o4TZUM%4cUCyv|vNYwQdj)@m6X?QwRg + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..27e30b4ce --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xtensor_container< EC, N, L, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xtensor_container< EC, N, L, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::xiterable_inner_types< xtensor_container< EC, N, L, Tag > >
    +

    Definition at line 63 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xtensor__container_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a7909a606394717c0986940aa3a07ecb4259651e GIT binary patch literal 1378 zcmcIk`!|~h82;jNv|6#HI+vi;<|FCatW;gHV$xLeDVj!6#X6U|9!d>$iBbzQ%kYVG zm0nz;)@0-$ZbhwQsW!w)G`(grom)aEm9Bzi{cV51-XGrgd7t;3=a=U>Z!yL1xRIfS zApihI5Sc^;00gYXlr6g2uD4CMUpvqgpVP-SH#fC#M)@|a^w$QLgScd~t3xvr6BAng z@NghUd)xXo)z2T$?jOoohb_@6%tIv4)0YtQVe{z<>~>4x^vgr4%>lM;dpQtkCzHi@ z#~(U?u)#3gHzI;rVDo+vO8*Sm!4tMGW0pl>F(Ag=5ZVeA5~)PE=64E}{6;Szdf&Q> zt)^07zFYuZs~ z?<$k0*4(Zo&Bj|*m(1x&@4nbZXPB?co5ID8O()Q*1-?D;ys=BMkF1zr6WE&nIp`&>o+SyWc+o*iY~a7kK5H1zN_a%@nsQDt$5zK zDw*$d!W$9qt&NJ|)#{R!GFYD7sB3T~(%(I~KWLH1C6C^}Jrp-N7iL}l#s=)BXHU($ zRog$YKHaC0BZ}6-*k^B|8Xh|ilrVi>CL4>noW#@$;rJ;BO#Ow>0{)H9>H-obyYx!v3>23(}FEZtFuEkF&e)8B(b4?7LZjH*m=zfBmvbP_J{d<6s z#FEUsXI!`jve~=_Hmj{!GSy07!OdiOB{Y^hG8CD-c(l>Crv4(|nXLM;bkjORU2NyRMJ5pHHv zA2QJXs>Mi43uB6HjY{}w057v#JBb;&Qf3npC5 z*=J>2)ZDl#Q`|GYIaJDMzJtu))K3b0_&?czFG= zj;#fs;2cd$^Z?bj58gp#bj+9WSYfyAMT3%splx@gp*!22wOY6}KN^M`*9B>lw((L} zEo^iD{D*s(G_w&D^gi3niv(W@cNj1R#V0Wj + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > > Member List
    +
    +
    + +

    This is the complete list of members for xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > >, including all inherited members.

    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html new file mode 100644 index 000000000..56a6f4832 --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.html @@ -0,0 +1,147 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > >:
    +
    +
    + + +xt::xcontainer_iterable_types< xtensor_view< EC, N, L, Tag > > + +
    + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from xt::xcontainer_iterable_types< xtensor_view< EC, N, L, Tag > >
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    +

    Detailed Description

    +
    template<class EC, std::size_t N, layout_type L, class Tag>
    +struct xt::xiterable_inner_types< xtensor_view< EC, N, L, Tag > >
    +

    Definition at line 304 of file xtensor.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png b/structxt_1_1xiterable__inner__types_3_01xtensor__view_3_01_e_c_00_01_n_00_01_l_00_01_tag_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..822d904740903a9c833d3b1ec90c6ecc1b5efde0 GIT binary patch literal 1355 zcmciC=~t3z6aeryEzK=wPG{VjmSZm#naju+mIh6(uNt{KC&#op<`5cgNUpD~W}&F5 zl!}~2vzRFzkGVxSmYT;EGnGJ4N6Za`V}%$545ttN33ET(=XdY(@!oR_f^fcO#x}+P z0GL63ULgRmg{*VXc70u*=;~e9J-dPe!@RXxt&U3)If?rEv70k8$%;0#G&?)1>$?s| z)am|=(n4^dfUf=)XuYa&0N6SSdHoW0Wy>o4T#9&~=?$7ZFkS}F(d^!AznVN2IFVj+ zhDf;HHRt(Mdw#0bp(Sz3;!pzkz_$Mcf?P_8OgYehWfMoGH$kWI^A&H~Ml!V1$I>vL zq~y6qgEG}=_AW!d9eU!zlD!eTmkvfM;{;I3!wa2;svY8O3T`t~AjEJjTlCtou!c3m zy~TdEjW0PhU)zmKHGl5(IS9Z`g6!P3FFA%alwW zd~bcS)oJhxW!0^!9$kNKto!ex{(KK(d?R!yI=)XhqI6W$1TfOzne2swuh-uG%SfV! z71uhyj!t59a-3$tq?&d@AqejL7s`=)g~#6T zmCGGul#SMAAk`{XA}Pp}B@k9o`U>QixAAsVeFcxsdCVA{tBx4$(XS2;On<_WeO|Jb zu4WL$F(2*7WF_MXS%Gw+Hj6wybPNqAOW`{Qw;NT8}h$^%UC$;k7S1U8~tzxd;}tc`lCzd$^{7I*-e;88$|1F z=EA7_k@zE@Cr-f~evX?9%Bd|Zud|eUDBgKjC)4WebKJ?$nWg)(SDoFNuhi^>ivpoW zW+cePMqSDfh_$&|UQ<3v1!MOe`D0fUVd1CC6zkJb!^|u(Zzz$^{^S=N!Yc9tneR&8 zBNP>DCMxG=3R{PU9EU`_XM9y0ac|%Hf@{x@_31rIS{jkg5s=aat50PqXs1gb<~fBR zsZuo*+@%)PB^ZQ-)(f$$yyp9v<6re~dW$Glp^F^5p(T!gA*T1JHRZIzQ+M_N M$Q$R?a5DDVe-i4k8vp + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xiterable_inner_types< xview< CT, S... > > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html b/structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..55cc1bf1c --- /dev/null +++ b/structxt_1_1xiterable__inner__types_3_01xview_3_01_c_t_00_01_s_8_8_8_01_4_01_4.html @@ -0,0 +1,290 @@ + + + + + + + +xtensor: xt::xiterable_inner_types< xview< CT, S... > > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xiterable_inner_types< xview< CT, S... > > Struct Template Reference
    +
    +
    + + + + + + + + + + +

    +Public Types

    using xexpression_type = std::decay_t<CT>
     
    using inner_shape_type
     
    using stepper
     
    using const_stepper
     
    + + + + + +

    +Static Public Attributes

    static constexpr bool is_strided_view = detail::is_strided_view<xexpression_type, S...>::value
     
    static constexpr bool is_contiguous_view = detail::is_contiguous_view<xexpression_type, S...>::value
     
    +

    Detailed Description

    +
    template<class CT, class... S>
    +struct xt::xiterable_inner_types< xview< CT, S... > >
    +

    Definition at line 320 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ const_stepper

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xiterable_inner_types< xview< CT, S... > >::const_stepper
    +
    +Initial value:
    std::conditional_t<
    +
    is_strided_view,
    +
    xstepper<const xview<CT, S...>>,
    + + + +
    Multidimensional view with tensor semantic.
    Definition xview.hpp:365
    +
    +

    Definition at line 337 of file xview.hpp.

    + +
    +
    + +

    ◆ inner_shape_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xiterable_inner_types< xview< CT, S... > >::inner_shape_type
    +
    +Initial value:
    std::conditional_t<
    +
    is_contiguous_view,
    +
    typename detail::get_contigous_shape_type<xexpression_type, S...>::type,
    +
    typename xview_shape_type<typename xexpression_type::shape_type, S...>::type>
    + +
    +

    Definition at line 327 of file xview.hpp.

    + +
    +
    + +

    ◆ stepper

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xiterable_inner_types< xview< CT, S... > >::stepper
    +
    +Initial value:
    std::conditional_t<
    +
    is_strided_view,
    +
    xstepper<xview<CT, S...>>,
    + +
    +

    Definition at line 332 of file xview.hpp.

    + +
    +
    + +

    ◆ xexpression_type

    + +
    +
    +
    +template<class CT, class... S>
    + + + + +
    using xt::xiterable_inner_types< xview< CT, S... > >::xexpression_type = std::decay_t<CT>
    +
    + +

    Definition at line 322 of file xview.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ is_contiguous_view

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xiterable_inner_types< xview< CT, S... > >::is_contiguous_view = detail::is_contiguous_view<xexpression_type, S...>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 325 of file xview.hpp.

    + +
    +
    + +

    ◆ is_strided_view

    + +
    +
    +
    +template<class CT, class... S>
    + + + + + +
    + + + + +
    bool xt::xiterable_inner_types< xview< CT, S... > >::is_strided_view = detail::is_strided_view<xexpression_type, S...>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 324 of file xview.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xnewaxis__tag-members.html b/structxt_1_1xnewaxis__tag-members.html new file mode 100644 index 000000000..f403b25f9 --- /dev/null +++ b/structxt_1_1xnewaxis__tag-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xnewaxis_tag Member List
    +
    +
    + +

    This is the complete list of members for xt::xnewaxis_tag, including all inherited members.

    + + +
    convert() const noexcept (defined in xt::xnewaxis_tag)xt::xnewaxis_taginline
    +
    + + + + diff --git a/structxt_1_1xnewaxis__tag.html b/structxt_1_1xnewaxis__tag.html new file mode 100644 index 000000000..8a1e16134 --- /dev/null +++ b/structxt_1_1xnewaxis__tag.html @@ -0,0 +1,164 @@ + + + + + + + +xtensor: xt::xnewaxis_tag Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xnewaxis_tag Struct Reference
    +
    +
    + + + + + +

    +Public Member Functions

    template<class T>
    xnewaxis_tag convert () const noexcept
     
    +

    Detailed Description

    +
    +

    Definition at line 85 of file xslice.hpp.

    +

    Member Function Documentation

    + +

    ◆ convert()

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + + + + +
    xnewaxis_tag xt::xnewaxis_tag::convert () const
    +
    +inlinenoexcept
    +
    + +

    Definition at line 87 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xoptional__assembly__linear__iterator__traits-members.html b/structxt_1_1xoptional__assembly__linear__iterator__traits-members.html new file mode 100644 index 000000000..1de458fac --- /dev/null +++ b/structxt_1_1xoptional__assembly__linear__iterator__traits-members.html @@ -0,0 +1,126 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xoptional__assembly__linear__iterator__traits.html b/structxt_1_1xoptional__assembly__linear__iterator__traits.html new file mode 100644 index 000000000..2877c5ac4 --- /dev/null +++ b/structxt_1_1xoptional__assembly__linear__iterator__traits.html @@ -0,0 +1,261 @@ + + + + + + + +xtensor: xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Public Types

    using iterator_type = xoptional_assembly_linear_iterator<VE, FE, is_const>
     
    using xoptional_assembly_storage_type = xoptional_assembly_storage<VE, FE>
     
    using value_type = typename xoptional_assembly_storage_type::value_type
     
    using reference
     
    using difference_type = typename xoptional_assembly_storage_type::difference_type
     
    using pointer
     
    +

    Detailed Description

    +
    template<class VE, class FE, bool is_const>
    +struct xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >
    +

    Definition at line 152 of file xoptional_assembly_storage.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ difference_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >::difference_type = typename xoptional_assembly_storage_type::difference_type
    +
    + +

    Definition at line 161 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ iterator_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >::iterator_type = xoptional_assembly_linear_iterator<VE, FE, is_const>
    +
    + +

    Definition at line 154 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ pointer

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >::pointer
    +
    +Initial value:
    std::conditional_t<
    +
    is_const,
    +
    typename xoptional_assembly_storage_type::const_pointer,
    +
    typename xoptional_assembly_storage_type::pointer>
    +
    +

    Definition at line 162 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >::reference
    +
    +Initial value:
    std::conditional_t<
    +
    is_const,
    +
    typename xoptional_assembly_storage_type::const_reference,
    +
    typename xoptional_assembly_storage_type::reference>
    +
    +

    Definition at line 157 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >::value_type = typename xoptional_assembly_storage_type::value_type
    +
    + +

    Definition at line 156 of file xoptional_assembly_storage.hpp.

    + +
    +
    + +

    ◆ xoptional_assembly_storage_type

    + +
    +
    +
    +template<class VE, class FE, bool is_const>
    + + + + +
    using xt::xoptional_assembly_linear_iterator_traits< VE, FE, is_const >::xoptional_assembly_storage_type = xoptional_assembly_storage<VE, FE>
    +
    + +

    Definition at line 155 of file xoptional_assembly_storage.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xoptional__comparable.html b/structxt_1_1xoptional__comparable.html new file mode 100644 index 000000000..0b16b8d10 --- /dev/null +++ b/structxt_1_1xoptional__comparable.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt::xoptional_comparable< E > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_comparable< E > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xoptional_comparable< E >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class... E>
    +struct xt::xoptional_comparable< E >
    +

    Definition at line 408 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xoptional__comparable.png b/structxt_1_1xoptional__comparable.png new file mode 100644 index 0000000000000000000000000000000000000000..430ad36ec83df09bef129135ac7dd7410cf2ed52 GIT binary patch literal 1384 zcmc(f{Zo=z6vrPmx6)or+pS#(%?aB|Q)hD{%?HcXlC7XMQH$_(q*l{bB{c!nH3znI=q>1ay)b(G{|f=!*T+eIbHIAwbN_MFY7Cx zOpJ|-mP4Wp(ckw? zg7ZH#>|h$w`H||QJu#P8O;Oq? zonwiUFAAT#i?!PYjwC{RQ%O=322&sBUus-;haP_l;WRQmLU!)pH6DBINBjR+-p+*3lh zW30-KBA%SfC8KPWZYdJ6E2huObP)+kj^ElZb6Ci<$5~U)Jk4n(b@N^?Yy+KtrhF(sc@DDhc!>9R~m>^#@9;a96 z_xM}^<$;>X1*%W$0sl_i3lXdSc2Z|TTOr@r60_};=x*CNO%J!5Zx(G9P#94>VlVe3 zA?)t$m(<~rcC~I;a`2!1H|arzGhoE>U7_luI+y9Zer84I6URXrv#UID`{)h&7^+oM z)S$YuN{xfs!vri{dr$vbu|~>{iRmHHR{!1S;x_z#suNU+TTkIeBDv2fVR;QhC`w6^ zc{1hsiqT7{LdFhjLG^ekhPU}cX{*&z7hTom_6V}areVESN4$iaH?f9D z2&rnCI2@PUIhsx*7q`8O+e+##(_FbG;TvYp9WfQp*A1x*j3tQ1j__aR*2E^vr;PJn45-yqn=;mLD_6I~B{3imKAZ%b$K=k?l E09Po&I{*Lx literal 0 HcmV?d00001 diff --git a/structxt_1_1xoptional__expression__tag.html b/structxt_1_1xoptional__expression__tag.html new file mode 100644 index 000000000..74d47904b --- /dev/null +++ b/structxt_1_1xoptional__expression__tag.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::xoptional_expression_tag Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xoptional_expression_tag Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 305 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xproxy__inner__types-members.html b/structxt_1_1xproxy__inner__types-members.html new file mode 100644 index 000000000..e67aeeead --- /dev/null +++ b/structxt_1_1xproxy__inner__types-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xproxy_inner_types< R > Member List
    +
    +
    + +

    This is the complete list of members for xt::xproxy_inner_types< R >, including all inherited members.

    + + + +
    pointer typedef (defined in xt::xproxy_inner_types< R >)xt::xproxy_inner_types< R >
    reference typedef (defined in xt::xproxy_inner_types< R >)xt::xproxy_inner_types< R >
    +
    + + + + diff --git a/structxt_1_1xproxy__inner__types.html b/structxt_1_1xproxy__inner__types.html new file mode 100644 index 000000000..3fb4afc5e --- /dev/null +++ b/structxt_1_1xproxy__inner__types.html @@ -0,0 +1,173 @@ + + + + + + + +xtensor: xt::xproxy_inner_types< R > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xproxy_inner_types< R > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using reference = R
     
    using pointer = std::add_pointer_t<std::remove_reference_t<R>>
     
    +

    Detailed Description

    +
    template<class R>
    +struct xt::xproxy_inner_types< R >
    +

    Definition at line 555 of file xfunctor_view.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ pointer

    + +
    +
    +
    +template<class R>
    + + + + +
    using xt::xproxy_inner_types< R >::pointer = std::add_pointer_t<std::remove_reference_t<R>>
    +
    + +

    Definition at line 558 of file xfunctor_view.hpp.

    + +
    +
    + +

    ◆ reference

    + +
    +
    +
    +template<class R>
    + + + + +
    using xt::xproxy_inner_types< R >::reference = R
    +
    + +

    Definition at line 557 of file xfunctor_view.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xrange__adaptor-members.html b/structxt_1_1xrange__adaptor-members.html new file mode 100644 index 000000000..5a4b03923 --- /dev/null +++ b/structxt_1_1xrange__adaptor-members.html @@ -0,0 +1,125 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xrange_adaptor< A, B, C > Member List
    +
    +
    + +

    This is the complete list of members for xt::xrange_adaptor< A, B, C >, including all inherited members.

    + + + + + + +
    get(std::size_t size) const (defined in xt::xrange_adaptor< A, B, C >)xt::xrange_adaptor< A, B, C >inline
    start() const (defined in xt::xrange_adaptor< A, B, C >)xt::xrange_adaptor< A, B, C >inline
    step() const (defined in xt::xrange_adaptor< A, B, C >)xt::xrange_adaptor< A, B, C >inline
    stop() const (defined in xt::xrange_adaptor< A, B, C >)xt::xrange_adaptor< A, B, C >inline
    xrange_adaptor(A start_val, B stop_val, C step) (defined in xt::xrange_adaptor< A, B, C >)xt::xrange_adaptor< A, B, C >inline
    +
    + + + + diff --git a/structxt_1_1xrange__adaptor.html b/structxt_1_1xrange__adaptor.html new file mode 100644 index 000000000..3da3c6770 --- /dev/null +++ b/structxt_1_1xrange__adaptor.html @@ -0,0 +1,301 @@ + + + + + + + +xtensor: xt::xrange_adaptor< A, B, C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xrange_adaptor< A, B, C > Struct Template Reference
    +
    +
    + + + + + + + + + + + + + +

    +Public Member Functions

     xrange_adaptor (A start_val, B stop_val, C step)
     
    template<class MI = A, class MA = B, class STEP = C>
    auto get (std::size_t size) const
     
    start () const
     
    stop () const
     
    step () const
     
    +

    Detailed Description

    +
    template<class A, class B = A, class C = A>
    +struct xt::xrange_adaptor< A, B, C >
    +

    Definition at line 524 of file xslice.hpp.

    +

    Constructor & Destructor Documentation

    + +

    ◆ xrange_adaptor()

    + +
    +
    +
    +template<class A, class B = A, class C = A>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xrange_adaptor< A, B, C >::xrange_adaptor (A start_val,
    B stop_val,
    C step )
    +
    +inline
    +
    + +

    Definition at line 526 of file xslice.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<class A, class B = A, class C = A>
    +
    +template<class MI = A, class MA = B, class STEP = C>
    + + + + + +
    + + + + + + + +
    auto xt::xrange_adaptor< A, B, C >::get (std::size_t size) const
    +
    +inline
    +
    + +

    Definition at line 534 of file xslice.hpp.

    + +
    +
    + +

    ◆ start()

    + +
    +
    +
    +template<class A, class B = A, class C = A>
    + + + + + +
    + + + + + + + +
    A xt::xrange_adaptor< A, B, C >::start () const
    +
    +inline
    +
    + +

    Definition at line 578 of file xslice.hpp.

    + +
    +
    + +

    ◆ step()

    + +
    +
    +
    +template<class A, class B = A, class C = A>
    + + + + + +
    + + + + + + + +
    C xt::xrange_adaptor< A, B, C >::step () const
    +
    +inline
    +
    + +

    Definition at line 588 of file xslice.hpp.

    + +
    +
    + +

    ◆ stop()

    + +
    +
    +
    +template<class A, class B = A, class C = A>
    + + + + + +
    + + + + + + + +
    B xt::xrange_adaptor< A, B, C >::stop () const
    +
    +inline
    +
    + +

    Definition at line 583 of file xslice.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__functors-members.html b/structxt_1_1xreducer__functors-members.html new file mode 100644 index 000000000..3288121fa --- /dev/null +++ b/structxt_1_1xreducer__functors-members.html @@ -0,0 +1,135 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC > Member List
    +
    +
    + +

    This is the complete list of members for xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >, including all inherited members.

    + + + + + + + + + + + + + + + + +
    base_type typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    get_init() const (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    get_merge() const (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    get_reduce() const (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    init_functor_type typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    init_value_type typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    merge_functor_type typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    rebind() (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    rebind_t typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    reduce_functor_type typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    self_type typedef (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    xreducer_functors() (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    xreducer_functors(RF &&reduce_func) (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    xreducer_functors(RF &&reduce_func, IF &&init_func) (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    xreducer_functors(RF &&reduce_func, IF &&init_func, MF &&merge_func) (defined in xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >)xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >inline
    +
    + + + + diff --git a/structxt_1_1xreducer__functors.html b/structxt_1_1xreducer__functors.html new file mode 100644 index 000000000..a043334b0 --- /dev/null +++ b/structxt_1_1xreducer__functors.html @@ -0,0 +1,559 @@ + + + + + + + +xtensor: xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >:
    +
    +
    + +
    + + + + + + + + + + + + + + + + + +

    +Public Types

    using self_type = xreducer_functors<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>
     
    using base_type = std::tuple<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>
     
    using reduce_functor_type = REDUCE_FUNC
     
    using init_functor_type = INIT_FUNC
     
    using merge_functor_type = MERGE_FUNC
     
    using init_value_type = typename init_functor_type::value_type
     
    template<class NT>
    using rebind_t = xreducer_functors<REDUCE_FUNC, const_value<NT>, MERGE_FUNC>
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<class RF>
     xreducer_functors (RF &&reduce_func)
     
    template<class RF, class IF>
     xreducer_functors (RF &&reduce_func, IF &&init_func)
     
    template<class RF, class IF, class MF>
     xreducer_functors (RF &&reduce_func, IF &&init_func, MF &&merge_func)
     
    reduce_functor_type get_reduce () const
     
    init_functor_type get_init () const
     
    merge_functor_type get_merge () const
     
    template<class NT>
    rebind_t< NT > rebind ()
     
    +

    Detailed Description

    +
    template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +struct xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >
    +

    Definition at line 616 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::base_type = std::tuple<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>
    +
    + +

    Definition at line 619 of file xreducer.hpp.

    + +
    +
    + +

    ◆ init_functor_type

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::init_functor_type = INIT_FUNC
    +
    + +

    Definition at line 621 of file xreducer.hpp.

    + +
    +
    + +

    ◆ init_value_type

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::init_value_type = typename init_functor_type::value_type
    +
    + +

    Definition at line 623 of file xreducer.hpp.

    + +
    +
    + +

    ◆ merge_functor_type

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::merge_functor_type = MERGE_FUNC
    +
    + +

    Definition at line 622 of file xreducer.hpp.

    + +
    +
    + +

    ◆ rebind_t

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +
    +template<class NT>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::rebind_t = xreducer_functors<REDUCE_FUNC, const_value<NT>, MERGE_FUNC>
    +
    + +

    Definition at line 664 of file xreducer.hpp.

    + +
    +
    + +

    ◆ reduce_functor_type

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::reduce_functor_type = REDUCE_FUNC
    +
    + +

    Definition at line 620 of file xreducer.hpp.

    + +
    +
    + +

    ◆ self_type

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + +
    using xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::self_type = xreducer_functors<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>
    +
    + +

    Definition at line 618 of file xreducer.hpp.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ xreducer_functors() [1/4]

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + + +
    + + + + + + + +
    xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::xreducer_functors ()
    +
    +inline
    +
    + +

    Definition at line 625 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xreducer_functors() [2/4]

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +
    +template<class RF>
    + + + + + +
    + + + + + + + +
    xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::xreducer_functors (RF && reduce_func)
    +
    +inline
    +
    + +

    Definition at line 631 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xreducer_functors() [3/4]

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +
    +template<class RF, class IF>
    + + + + + +
    + + + + + + + + + + + +
    xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::xreducer_functors (RF && reduce_func,
    IF && init_func )
    +
    +inline
    +
    + +

    Definition at line 637 of file xreducer.hpp.

    + +
    +
    + +

    ◆ xreducer_functors() [4/4]

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +
    +template<class RF, class IF, class MF>
    + + + + + +
    + + + + + + + + + + + + + + + + +
    xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::xreducer_functors (RF && reduce_func,
    IF && init_func,
    MF && merge_func )
    +
    +inline
    +
    + +

    Definition at line 643 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_init()

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + + +
    + + + + + + + +
    init_functor_type xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::get_init () const
    +
    +inline
    +
    + +

    Definition at line 653 of file xreducer.hpp.

    + +
    +
    + +

    ◆ get_merge()

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + + +
    + + + + + + + +
    merge_functor_type xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::get_merge () const
    +
    +inline
    +
    + +

    Definition at line 658 of file xreducer.hpp.

    + +
    +
    + +

    ◆ get_reduce()

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    + + + + + +
    + + + + + + + +
    reduce_functor_type xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::get_reduce () const
    +
    +inline
    +
    + +

    Definition at line 648 of file xreducer.hpp.

    + +
    +
    + +

    ◆ rebind()

    + +
    +
    +
    +template<class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +
    +template<class NT>
    + + + + + +
    + + + + + + + +
    rebind_t< NT > xt::xreducer_functors< REDUCE_FUNC, INIT_FUNC, MERGE_FUNC >::rebind ()
    +
    +inline
    +
    + +

    Definition at line 667 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__functors.png b/structxt_1_1xreducer__functors.png new file mode 100644 index 0000000000000000000000000000000000000000..81e7f174faf4fc89e904927a3c3e05e5be0ca7cc GIT binary patch literal 1312 zcmb_cdsLDK6#q0mrDeWOSvsu+&QWuvj!0y>3_n55G#)L?u!*^eq*K9gYA&79LQPCt zIL9e`;-KXe>@@A6pj6sHlVs|_GM7Q7LSW>BecRvrbN7$?{GEI6Ilp`Eg}B&ACr3|5 z005luIP6gXun|Ij+=g|KE=KF*knxI(Ax2oOR>+-wZDLm5Z$7XOk-6>4quHscDJYK| zBsV}chn%Ca1OSTv6_jn=69BMl!($H;&)Uq@kF$)sHyTS36HUFjl zUc<>p52+caLJD(RSdDVlP9=^4}P*=xvIz_^dM#}fA z#e0XOQR9bTEd7MQf2R^U5eF<-HM-Ot~1UUQlKctZZcPYoB zK=}3qB?q3YzlZymV-m0+dutCMfDLUlJK&nhRC5W~+0JtXO4RG(!)=T1MuC7!B7Ot# z)t>D(U!?oO0FD>}Lbm|ygl+-oBL~_RL2Ut-1m*t<(mMybx#BNyO15B0$VQPTQHdiV zrMxOp8ngsy6dEZK-9!eWlUR0f%YYUj0C=P;klH>O(j{^|Ymn@1%bW1IJLI!S5$ zqf^0QZC*RxEXNn}RZW8d!cWf@pFW!@$u9$?s!n=Zcb8(MaI0s?vmT$BpR0N`r3kME z1!29Uu7QPUqT5A}F@@3$y;esi%^_209=}(zQqBGVX-;yDc|}zrV1ORjTUC+Q(I@Gf zOwmhfcYXMAO1bdfA1TXf_@N-t;io}a39>e3V+opYd#YEQAqX%?)%g~kqjc{?Hdq~{ zy}_Hbn`YA}%eLkcfnuOOl3v3`KBySRgABQXDVq-MZ-G~96>5za`-QYCl}1@Ieyu%n zr?23h-;mIIzO?sO^`J+NU*$y1ksv-ywyvXY(iI*~Nm8d6ClStSzw?A%5c zLfB3}Q{QX(aET!?2t{aJ_YamGGgTs8SSzhT + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_shape_type< ST, X, O > Member List
    +
    +
    + +

    This is the complete list of members for xt::xreducer_shape_type< ST, X, O >, including all inherited members.

    + + +
    type typedef (defined in xt::xreducer_shape_type< ST, X, O >)xt::xreducer_shape_type< ST, X, O >
    +
    + + + + diff --git a/structxt_1_1xreducer__shape__type.html b/structxt_1_1xreducer__shape__type.html new file mode 100644 index 000000000..bdf1465b5 --- /dev/null +++ b/structxt_1_1xreducer__shape__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::xreducer_shape_type< ST, X, O > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_shape_type< ST, X, O > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = promote_shape_t<ST, std::decay_t<X>>
     
    +

    Detailed Description

    +
    template<class ST, class X, class O>
    +struct xt::xreducer_shape_type< ST, X, O >
    +

    Definition at line 1237 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class ST, class X, class O>
    + + + + +
    using xt::xreducer_shape_type< ST, X, O >::type = promote_shape_t<ST, std::decay_t<X>>
    +
    + +

    Definition at line 1239 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4-members.html b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4-members.html new file mode 100644 index 000000000..c0d1c7aa3 --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html new file mode 100644 index 000000000..65e0dc7db --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01fixed__shape_3_01_j_8_8_8_01_4_00_01_o_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename fixed_xreducer_shape_type<fixed_shape<I...>, fixed_shape<J...>>::type
     
    using type
     
    +

    Detailed Description

    +
    template<std::size_t... I, std::size_t... J, class O>
    +struct xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >
    +

    Definition at line 1316 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >::type
    +
    + +

    Definition at line 1239 of file xreducer.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<std::size_t... I, std::size_t... J, class O>
    + + + + +
    using xt::xreducer_shape_type< fixed_shape< I... >, fixed_shape< J... >, O >::type = typename fixed_xreducer_shape_type<fixed_shape<I...>, fixed_shape<J...>>::type
    +
    + +

    Definition at line 1318 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html new file mode 100644 index 000000000..342868639 --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_0113732d5b63b22c20cb89d3a7b591d8f.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::conditional_t<sizeof...(I) == N2, fixed_shape<>, std::array<I2, sizeof...(I) - N2>>
     
    using type
     
    +

    Detailed Description

    +
    template<std::size_t... I, class I2, std::size_t N2>
    +struct xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >
    +

    Definition at line 1255 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >::type
    +
    + +

    Definition at line 1239 of file xreducer.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<std::size_t... I, class I2, std::size_t N2>
    + + + + +
    using xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type >::type = std::conditional_t<sizeof...(I) == N2, fixed_shape<>, std::array<I2, sizeof...(I) - N2>>
    +
    + +

    Definition at line 1257 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_027fcc88fe66eb75490a0dba142ef545f.html b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_027fcc88fe66eb75490a0dba142ef545f.html new file mode 100644 index 000000000..ea960d745 --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_027fcc88fe66eb75490a0dba142ef545f.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::false_type > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_02aafc87a49290e02ea3938a932d6c334.html b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_02aafc87a49290e02ea3938a932d6c334.html new file mode 100644 index 000000000..0314c022f --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_02aafc87a49290e02ea3938a932d6c334.html @@ -0,0 +1,123 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + + + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html new file mode 100644 index 000000000..0f2101fb5 --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01std_1_1array_3_01_i2_06680ea94625f20ef8cb3bcfb83eeaa0c.html @@ -0,0 +1,214 @@ + + + + + + + +xtensor: xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type
     
    using type
     
    + + + + +

    +Static Public Member Functions

    template<std::size_t... X>
    static constexpr auto get_type (std::index_sequence< X... >)
     
    +

    Detailed Description

    +
    template<std::size_t... I, class I2, std::size_t N2>
    +struct xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >
    +

    Definition at line 1299 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >::type
    +
    + +

    Definition at line 1239 of file xreducer.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<std::size_t... I, class I2, std::size_t N2>
    + + + + +
    using xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >::type
    +
    +Initial value:
    std::conditional_t<
    +
    sizeof...(I) == N2,
    +
    decltype(get_type(typename detail::repeat_integer_sequence<std::size_t, std::size_t(1), N2>::type{})),
    +
    std::array<I2, sizeof...(I)>>
    +
    +

    Definition at line 1308 of file xreducer.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_type()

    + +
    +
    +
    +template<std::size_t... I, class I2, std::size_t N2>
    +
    +template<std::size_t... X>
    + + + + + +
    + + + + + + + +
    static constexpr auto xt::xreducer_shape_type< fixed_shape< I... >, std::array< I2, N2 >, std::true_type >::get_type (std::index_sequence< X... > )
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 1302 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_9c73ff706755e2a1205ad25fb933e4d8.html b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_9c73ff706755e2a1205ad25fb933e4d8.html new file mode 100644 index 000000000..d45b23180 --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_9c73ff706755e2a1205ad25fb933e4d8.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html new file mode 100644 index 000000000..d6297619a --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_c677fa36e83a1c564b51c5abf4a0c7d9.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::array<I2, N1>
     
    using type
     
    +

    Detailed Description

    +
    template<class I1, std::size_t N1, class I2, std::size_t N2>
    +struct xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >
    +

    Definition at line 1243 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >::type
    +
    + +

    Definition at line 1239 of file xreducer.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class I1, std::size_t N1, class I2, std::size_t N2>
    + + + + +
    using xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type >::type = std::array<I2, N1>
    +
    + +

    Definition at line 1245 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_dd68458bef343598f52e1cee8de7e66e.html b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_dd68458bef343598f52e1cee8de7e66e.html new file mode 100644 index 000000000..3cf690dea --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_dd68458bef343598f52e1cee8de7e66e.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::true_type > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html new file mode 100644 index 000000000..5d754cb14 --- /dev/null +++ b/structxt_1_1xreducer__shape__type_3_01std_1_1array_3_01_i1_00_01_n1_01_4_00_01std_1_1array_3_01_f0fe2e231e25d4e5852b877ba4b36e02.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::array<I2, N1 - N2>
     
    using type
     
    +

    Detailed Description

    +
    template<class I1, std::size_t N1, class I2, std::size_t N2>
    +struct xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >
    +

    Definition at line 1249 of file xreducer.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >::type
    +
    + +

    Definition at line 1239 of file xreducer.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class I1, std::size_t N1, class I2, std::size_t N2>
    + + + + +
    using xt::xreducer_shape_type< std::array< I1, N1 >, std::array< I2, N2 >, std::false_type >::type = std::array<I2, N1 - N2>
    +
    + +

    Definition at line 1251 of file xreducer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xtensor__expression__tag.html b/structxt_1_1xtensor__expression__tag.html new file mode 100644 index 000000000..4b685b038 --- /dev/null +++ b/structxt_1_1xtensor__expression__tag.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt::xtensor_expression_tag Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xtensor_expression_tag Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 301 of file xexpression.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt_1_1xview__shape__type-members.html b/structxt_1_1xview__shape__type-members.html new file mode 100644 index 000000000..543b1eafa --- /dev/null +++ b/structxt_1_1xview__shape__type-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xview_shape_type< ST, S > Member List
    +
    +
    + +

    This is the complete list of members for xt::xview_shape_type< ST, S >, including all inherited members.

    + + +
    type typedef (defined in xt::xview_shape_type< ST, S >)xt::xview_shape_type< ST, S >
    +
    + + + + diff --git a/structxt_1_1xview__shape__type.html b/structxt_1_1xview__shape__type.html new file mode 100644 index 000000000..9978884e1 --- /dev/null +++ b/structxt_1_1xview__shape__type.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt::xview_shape_type< ST, S > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xview_shape_type< ST, S > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = ST
     
    +

    Detailed Description

    +
    template<class ST, class... S>
    +struct xt::xview_shape_type< ST, S >
    +

    Definition at line 844 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class ST, class... S>
    + + + + +
    using xt::xview_shape_type< ST, S >::type = ST
    +
    + +

    Definition at line 846 of file xview.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4-members.html b/structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4-members.html new file mode 100644 index 000000000..a42a9c272 --- /dev/null +++ b/structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xview_shape_type< fixed_shape< I... >, S... > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html b/structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html new file mode 100644 index 000000000..ec44a3c56 --- /dev/null +++ b/structxt_1_1xview__shape__type_3_01fixed__shape_3_01_i_8_8_8_01_4_00_01_s_8_8_8_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xview_shape_type< fixed_shape< I... >, S... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xview_shape_type< fixed_shape< I... >, S... > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = typename xview_shape_type<std::array<std::size_t, sizeof...(I)>, S...>::type
     
    using type
     
    +

    Detailed Description

    +
    template<std::size_t... I, class... S>
    +struct xt::xview_shape_type< fixed_shape< I... >, S... >
    +

    Definition at line 856 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xview_shape_type< fixed_shape< I... >, S >::type
    +
    + +

    Definition at line 846 of file xview.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<std::size_t... I, class... S>
    + + + + +
    using xt::xview_shape_type< fixed_shape< I... >, S... >::type = typename xview_shape_type<std::array<std::size_t, sizeof...(I)>, S...>::type
    +
    + +

    Definition at line 858 of file xview.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4-members.html b/structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4-members.html new file mode 100644 index 000000000..91c99b24c --- /dev/null +++ b/structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt::xview_shape_type< std::array< I, L >, S... > Member List
    +
    + +
    + + + + diff --git a/structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html b/structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html new file mode 100644 index 000000000..280dbacf7 --- /dev/null +++ b/structxt_1_1xview__shape__type_3_01std_1_1array_3_01_i_00_01_l_01_4_00_01_s_8_8_8_01_4.html @@ -0,0 +1,171 @@ + + + + + + + +xtensor: xt::xview_shape_type< std::array< I, L >, S... > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt::xview_shape_type< std::array< I, L >, S... > Struct Template Reference
    +
    +
    + + + + + + +

    +Public Types

    using type = std::array<I, L - integral_count<S...>() + newaxis_count<S...>()>
     
    using type
     
    +

    Detailed Description

    +
    template<class I, std::size_t L, class... S>
    +struct xt::xview_shape_type< std::array< I, L >, S... >
    +

    Definition at line 850 of file xview.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type [1/2]

    + +
    +
    + + + + +
    using xt::xview_shape_type< std::array< I, L >, S >::type
    +
    + +

    Definition at line 846 of file xview.hpp.

    + +
    +
    + +

    ◆ type [2/2]

    + +
    +
    +
    +template<class I, std::size_t L, class... S>
    + + + + +
    using xt::xview_shape_type< std::array< I, L >, S... >::type = std::array<I, L - integral_count<S...>() + newaxis_count<S...>()>
    +
    + +

    Definition at line 852 of file xview.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp
    • +
    +
    +
    + + + + diff --git a/structxt__simd_1_1aligned__mode.html b/structxt__simd_1_1aligned__mode.html new file mode 100644 index 000000000..96b446f12 --- /dev/null +++ b/structxt__simd_1_1aligned__mode.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt_simd::aligned_mode Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::aligned_mode Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 93 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1allocator__alignment-members.html b/structxt__simd_1_1allocator__alignment-members.html new file mode 100644 index 000000000..15c1298f7 --- /dev/null +++ b/structxt__simd_1_1allocator__alignment-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::allocator_alignment< A > Member List
    +
    +
    + +

    This is the complete list of members for xt_simd::allocator_alignment< A >, including all inherited members.

    + + +
    type typedef (defined in xt_simd::allocator_alignment< A >)xt_simd::allocator_alignment< A >
    +
    + + + + diff --git a/structxt__simd_1_1allocator__alignment.html b/structxt__simd_1_1allocator__alignment.html new file mode 100644 index 000000000..d27e5c37d --- /dev/null +++ b/structxt__simd_1_1allocator__alignment.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt_simd::allocator_alignment< A > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt_simd::allocator_alignment< A > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = unaligned_mode
     
    +

    Detailed Description

    +
    template<class A>
    +struct xt_simd::allocator_alignment< A >
    +

    Definition at line 102 of file xtensor_simd.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class A>
    + + + + +
    using xt_simd::allocator_alignment< A >::type = unaligned_mode
    +
    + +

    Definition at line 104 of file xtensor_simd.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1container__alignment-members.html b/structxt__simd_1_1container__alignment-members.html new file mode 100644 index 000000000..1f77784a9 --- /dev/null +++ b/structxt__simd_1_1container__alignment-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::container_alignment< C > Member List
    +
    +
    + +

    This is the complete list of members for xt_simd::container_alignment< C >, including all inherited members.

    + + +
    type typedef (defined in xt_simd::container_alignment< C >)xt_simd::container_alignment< C >
    +
    + + + + diff --git a/structxt__simd_1_1container__alignment.html b/structxt__simd_1_1container__alignment.html new file mode 100644 index 000000000..36c11bd68 --- /dev/null +++ b/structxt__simd_1_1container__alignment.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: xt_simd::container_alignment< C > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt_simd::container_alignment< C > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = unaligned_mode
     
    +

    Detailed Description

    +
    template<class C>
    +struct xt_simd::container_alignment< C >
    +

    Definition at line 111 of file xtensor_simd.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class C>
    + + + + +
    using xt_simd::container_alignment< C >::type = unaligned_mode
    +
    + +

    Definition at line 113 of file xtensor_simd.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1is__batch__bool.html b/structxt__simd_1_1is__batch__bool.html new file mode 100644 index 000000000..2058c7e1f --- /dev/null +++ b/structxt__simd_1_1is__batch__bool.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt_simd::is_batch_bool< V > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::is_batch_bool< V > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt_simd::is_batch_bool< V >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class V>
    +struct xt_simd::is_batch_bool< V >
    +

    Definition at line 190 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1is__batch__bool.png b/structxt__simd_1_1is__batch__bool.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd5f7bd324b54645bbdb93afa99fd312e48f4ef GIT binary patch literal 677 zcmV;W0$TlvP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0006o zNkl1$xCgoo`iEqh!1KJ;}@aM`J3LjrLrwu+S_-}acbuo>*!QzhDq|HuA&;5 zOWDXIhrV)Mz3O7BZ=hB`Tpw?yc!SzmPm&*X%K&}U`M<9)!17<%o<>gYRR`R-R-FT^ z4Nz9<8O=PB{8sT-M5 z{FPslyr>7W+WZ@na@OuVGlnL7hlP zVI2rHUH|~_SD*rbw*nOaycMVb;H^Lf0B;2<0C+1<0l-^<3IN^;Q~>Z+paOum0u=zf z6{rBRg%0FsFLKZ1L~3cwEcc!Zk_d?ccx}%<_APIwWD`lbtiz`U zXgM3yw-EQUdO&Tmnrz + + + + + + +xtensor: xt_simd::is_batch_complex< V > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::is_batch_complex< V > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt_simd::is_batch_complex< V >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class V>
    +struct xt_simd::is_batch_complex< V >
    +

    Definition at line 195 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1is__batch__complex.png b/structxt__simd_1_1is__batch__complex.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7676129e0c849f6cdd326f092c6ce1867fd1b0 GIT binary patch literal 723 zcmV;^0xbQBP)vTJr#LVva2S`&=-}Ys|Ns9r%~qrU000SeQchC<|NsC0|NsC0Hv*f~0007B zNklHhyOzK$0*Lo%^*M?;mWXcq)o;h@E@Ff*H3Fp`{C0YH+T z3ILMy)NO$M_3Xvcbl~~BH}-Xa!rh+-c;5BWh}X&CWnCZ76pwA4E%x1Ia@r=zPjmyo z$UMqLK40@&`Ck3j^|0InsE$)7NIu&OfX@3Q`HAkPP#@s=i7!%U{p6n`mjiJlhwc?| zCk5&hDkrtY$&Ms1=!-Sb0~pl60pME$M|vDxsL1-Q)AYMg$~^ZjM3R@a1CZoB{UX3x ztNUG-Pm;VYp9r*{Z<4$yuM{H5uP6XW(o+FIlAc-s%*-Yh0Q^@y0AOa#4)AzPPB1&b za{jpqrU!^F1OUDY008h*004le0ssI!6#xL>sQ>@~PXzz~cq#w@z*7ML0GQ`QN!1wc zy92DxXIsrX&*>uD9@{Tf1PbG))#0Liq~DX%Y?VFlMw`#{Z<2~}7)Yu{ioo_>b#?n# z-KV)s)hKY&amrciwBFl2R}M?pnZ5!j?>VJVx`ZZXt@DzvdqEXj&uM+k9(D@nFal|7 z2vDTZ0HEuC%fjmbdlqjwC@GI3e@ld63Z4Js1n?p`?nI#QRFzM4xKjl7y6M$GT@UT{ zyBc_l*{OkC#BGqrHE;m*x=?W;?Yi5Aw)xR%nt!gkP#W*M(5TD)i7)Y;Bb)%%GHU8a zk_P&j`5UXR0!Y$tYkB}lx~c$>Bu@o^BzbB9Ff*H2{{VTM>ezCYIGF$d002ovPDHLk FV1m#kNxJ|5 literal 0 HcmV?d00001 diff --git a/structxt__simd_1_1revert__simd__traits-members.html b/structxt__simd_1_1revert__simd__traits-members.html new file mode 100644 index 000000000..6b99e24e6 --- /dev/null +++ b/structxt__simd_1_1revert__simd__traits-members.html @@ -0,0 +1,122 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::revert_simd_traits< T > Member List
    +
    +
    + +

    This is the complete list of members for xt_simd::revert_simd_traits< T >, including all inherited members.

    + + + +
    size (defined in xt_simd::revert_simd_traits< T >)xt_simd::revert_simd_traits< T >static
    type typedef (defined in xt_simd::revert_simd_traits< T >)xt_simd::revert_simd_traits< T >
    +
    + + + + diff --git a/structxt__simd_1_1revert__simd__traits.html b/structxt__simd_1_1revert__simd__traits.html new file mode 100644 index 000000000..023bfd94e --- /dev/null +++ b/structxt__simd_1_1revert__simd__traits.html @@ -0,0 +1,186 @@ + + + + + + + +xtensor: xt_simd::revert_simd_traits< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt_simd::revert_simd_traits< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Types

    using type = T
     
    + + + +

    +Static Public Attributes

    static constexpr std::size_t size = simd_traits<type>::size
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt_simd::revert_simd_traits< T >
    +

    Definition at line 129 of file xtensor_simd.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt_simd::revert_simd_traits< T >::type = T
    +
    + +

    Definition at line 131 of file xtensor_simd.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ size

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + +
    std::size_t xt_simd::revert_simd_traits< T >::size = simd_traits<type>::size
    +
    +staticconstexpr
    +
    + +

    Definition at line 132 of file xtensor_simd.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1simd__condition.html b/structxt__simd_1_1simd__condition.html new file mode 100644 index 000000000..61472dce9 --- /dev/null +++ b/structxt__simd_1_1simd__condition.html @@ -0,0 +1,131 @@ + + + + + + + +xtensor: xt_simd::simd_condition< T1, T2 > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::simd_condition< T1, T2 > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for xt_simd::simd_condition< T1, T2 >:
    +
    +
    + +
    +

    Detailed Description

    +
    template<class T1, class T2>
    +struct xt_simd::simd_condition< T1, T2 >
    +

    Definition at line 200 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1simd__condition.png b/structxt__simd_1_1simd__condition.png new file mode 100644 index 0000000000000000000000000000000000000000..dece841efc415f528f8753123e3fe85d15ecd98b GIT binary patch literal 706 zcmeAS@N?(olHy`uVBq!ia0vp^r-3+tgBeIRv=lZ1Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5CG9y|bwo1P6@0+iz{3GxeO0P?}WoN4wI1_mZyPZ!6K3dXl{@0P7r5NQ2= zr{w+j`bSkf3JQUfXU)^h4l0{&&`@)xf4hP4Y!`z`bDR!3P5LLIqw>;!`^F`?r}Elw z*FF2!)S7ZN=VsE%cdwoAy}cO!U(P+AT`O5CUhdk*TRxNCzhDzn-X2z7w7z7w>f5II z*01HJ9jxrO_ls~#n^fame)NXs>HYWbO-(lT+_$j0s9r#WdHcF?Cs|doNqgM)pWd{r;*-PQ`6~76{y&@k<(6iI z$EP$_ZqHxA8zwBV*VRc&E9PLZTd&VB!$o*wP3>7`W5Lr+M!aWybOMhv99Z1M%J4@s zg5kh?5*QCuXU_ChnxW#mFkzxfJ(rm0r{#T1*{xsB_np4P@AQ;QDw!)nrvH*X{o%0M z%1m{gNwdn5_8%+Cd}Nhe|LpjOiuN;;rsoBJ+8VL*Na~YKmh#H?^WH60&CJW5x@D`$ zrz@Y?b*zu)Z``nNmCflZ+s?)8)p~n z(k`ceQd|1H%w`i~?t{kDv^tKp+ZygabLr?!Meq2gOD{G{+}^+Kyv5{Q-=gbYuBhI> z#By;>=H$n-epfK_M`!=jfRnzFOwLO+OuG8(XXgrZxso LS3j3^P6 + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::simd_traits< T > Member List
    +
    +
    + +

    This is the complete list of members for xt_simd::simd_traits< T >, including all inherited members.

    + + + + + +
    batch_bool typedef (defined in xt_simd::simd_traits< T >)xt_simd::simd_traits< T >
    bool_type typedef (defined in xt_simd::simd_traits< T >)xt_simd::simd_traits< T >
    size (defined in xt_simd::simd_traits< T >)xt_simd::simd_traits< T >static
    type typedef (defined in xt_simd::simd_traits< T >)xt_simd::simd_traits< T >
    +
    + + + + diff --git a/structxt__simd_1_1simd__traits.html b/structxt__simd_1_1simd__traits.html new file mode 100644 index 000000000..2f6418964 --- /dev/null +++ b/structxt__simd_1_1simd__traits.html @@ -0,0 +1,226 @@ + + + + + + + +xtensor: xt_simd::simd_traits< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xt_simd::simd_traits< T > Struct Template Reference
    +
    +
    + + + + + + + + +

    +Public Types

    using type = T
     
    using bool_type = bool
     
    using batch_bool = bool
     
    + + + +

    +Static Public Attributes

    static constexpr std::size_t size = 1
     
    +

    Detailed Description

    +
    template<class T>
    +struct xt_simd::simd_traits< T >
    +

    Definition at line 120 of file xtensor_simd.hpp.

    +

    Member Typedef Documentation

    + +

    ◆ batch_bool

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt_simd::simd_traits< T >::batch_bool = bool
    +
    + +

    Definition at line 124 of file xtensor_simd.hpp.

    + +
    +
    + +

    ◆ bool_type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt_simd::simd_traits< T >::bool_type = bool
    +
    + +

    Definition at line 123 of file xtensor_simd.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<class T>
    + + + + +
    using xt_simd::simd_traits< T >::type = T
    +
    + +

    Definition at line 122 of file xtensor_simd.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ size

    + +
    +
    +
    +template<class T>
    + + + + + +
    + + + + +
    std::size_t xt_simd::simd_traits< T >::size = 1
    +
    +staticconstexpr
    +
    + +

    Definition at line 125 of file xtensor_simd.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxt__simd_1_1unaligned__mode.html b/structxt__simd_1_1unaligned__mode.html new file mode 100644 index 000000000..198aff355 --- /dev/null +++ b/structxt__simd_1_1unaligned__mode.html @@ -0,0 +1,124 @@ + + + + + + + +xtensor: xt_simd::unaligned_mode Struct Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xt_simd::unaligned_mode Struct Reference
    +
    +
    +

    Detailed Description

    +
    +

    Definition at line 97 of file xtensor_simd.hpp.

    +

    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structxtl_1_1conjunction-members.html b/structxtl_1_1conjunction-members.html new file mode 100644 index 000000000..4ab717549 --- /dev/null +++ b/structxtl_1_1conjunction-members.html @@ -0,0 +1,121 @@ + + + + + + + +xtensor: Member List + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtl::conjunction< T > Member List
    +
    +
    + +

    This is the complete list of members for xtl::conjunction< T >, including all inherited members.

    + + +
    value (defined in xtl::conjunction< T >)xtl::conjunction< T >
    +
    + + + + diff --git a/structxtl_1_1conjunction.html b/structxtl_1_1conjunction.html new file mode 100644 index 000000000..3787e402a --- /dev/null +++ b/structxtl_1_1conjunction.html @@ -0,0 +1,161 @@ + + + + + + + +xtensor: xtl::conjunction< T > Struct Template Reference + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    xtl::conjunction< T > Struct Template Reference
    +
    +
    + + + + +

    +Public Attributes

    constexpr bool value = true
     
    +

    Detailed Description

    +
    template<class... T>
    +struct xtl::conjunction< T >
    +

    Definition at line 125 of file xtensor_config.hpp.

    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<class... T>
    + + + + + +
    + + + + +
    bool xtl::conjunction< T >::value = true
    +
    +constexpr
    +
    + +

    Definition at line 127 of file xtensor_config.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..e34850acfc24be58da6d2fd1ccc6b29cc84fe34d GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhuH;jv*C{Z|5d*H3V=pKi{In zd2jxLclDRPylmD}^l7{QOtL{vUjO{-WqItb5sQp2h-99b8^^Scr-=2mblCdZuUm?4 jzOJvgvt3{(cjKLW5(A@0qPS@<&}0TrS3j3^P6y&q2{!U5bk+Tso_B!YCpDh>v z{CM*1U8YvQRyBUHt^Ju0W_sq-?;9@_4equ-bavTs=gk796zopr0EBT&m;e9( literal 0 HcmV?d00001 diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..ab478c95b67371d700a20869f7de1ddd73522d50 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QuUrLjv*C{Z|^p8HaRdjTwH7) zC?wLlL}}I{)n%R&r+1}IGmDnq;&J#%V6)9VsYhS`O^BVBQlxOUep0c$RENLq#g8A$ z)z7%K_bI&n@J+X_=x}fJoEKed-$<>=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..757a565ced4730f85c833fb2547d8e199ae68f19 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq7(&jv*C{Z|_!fH5o7*c=%9% zcILh!EA=pAQKdx-Cdiev=v{eg{8Ht<{e8_NAN~b=)%W>-WDCE0PyDHGemi$BoXwcK z{>e9^za6*c1ilttWw&V+U;WCPlV9{LdC~Ey%_H(qj`xgfES(4Yz5jSTZfCt`4E$0YRsR*S^mTCR^;V&sxC8{l_Cp7w8-YPgg&ebxsLQ00$vXK>z>% literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 000000000..7fa4268a4 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} diff --git a/topics.html b/topics.html new file mode 100644 index 000000000..2a9ce28d0 --- /dev/null +++ b/topics.html @@ -0,0 +1,149 @@ + + + + + + + +xtensor: Topics + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Topics
    +
    +
    +
    Here is a list of all topics with brief descriptions:
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Chunked arrayChunked array container
     Adaptors of STL-like containers
     EvaluationEvaluation functions
     Basic functions
     Exponential functions
     Power functions
     Trigonometric function
     Hyperbolic functions
     Error and gamma functions
     Nearest integer floating point operations
     Classification functions
     reducing functions
     accumulating functions
     nan functions
     Arithmetic operators
     Logical operators
     Bitwise operators
     Comparison operators
     Casting operators
     Support functions to get/check a shape array.
     Support functions swich between array indices and flat indices
     Complex numbersDefined in xtensor/xcomplex.hpp
     Digitize helpersHelpers for assigning values to histogram bins
     Histogram functionsHelpers for computing histograms and histogram bin edges
     Array manipulation
     Searchsorted helpersHelpers for locating insertion indices in sorted arrays
     Sorting functions.Because sorting functions need to access the tensor data repeatedly, they evaluate their input and may allocate temporaries
     Functor viewChunked array container
    +
    +
    +
    + + + + diff --git a/topics.js b/topics.js new file mode 100644 index 000000000..b3932ff0b --- /dev/null +++ b/topics.js @@ -0,0 +1,31 @@ +var topics = +[ + [ "Chunked array", "group__xt__xchunked__array.html", "group__xt__xchunked__array" ], + [ "Adaptors of STL-like containers", "group__xt__xadapt.html", "group__xt__xadapt" ], + [ "Evaluation", "group__xt__xeval.html", "group__xt__xeval" ], + [ "Basic functions", "group__basic__functions.html", "group__basic__functions" ], + [ "Exponential functions", "group__exp__functions.html", "group__exp__functions" ], + [ "Power functions", "group__pow__functions.html", "group__pow__functions" ], + [ "Trigonometric function", "group__trigo__functions.html", "group__trigo__functions" ], + [ "Hyperbolic functions", "group__hyper__functions.html", "group__hyper__functions" ], + [ "Error and gamma functions", "group__err__functions.html", "group__err__functions" ], + [ "Nearest integer floating point operations", "group__nearint__functions.html", "group__nearint__functions" ], + [ "Classification functions", "group__classif__functions.html", "group__classif__functions" ], + [ "reducing functions", "group__red__functions.html", "group__red__functions" ], + [ "accumulating functions", "group__acc__functions.html", "group__acc__functions" ], + [ "nan functions", "group__nan__functions.html", "group__nan__functions" ], + [ "Arithmetic operators", "group__arithmetic__operators.html", "group__arithmetic__operators" ], + [ "Logical operators", "group__logical__operators.html", "group__logical__operators" ], + [ "Bitwise operators", "group__bitwise__operators.html", "group__bitwise__operators" ], + [ "Comparison operators", "group__comparison__operators.html", "group__comparison__operators" ], + [ "Casting operators", "group__casting__operators.html", "group__casting__operators" ], + [ "Support functions to get/check a shape array.", "group__xt__xshape.html", "group__xt__xshape" ], + [ "Support functions swich between array indices and flat indices", "group__xt__xstrides.html", "group__xt__xstrides" ], + [ "Complex numbers", "group__xt__xcomplex.html", "group__xt__xcomplex" ], + [ "Digitize helpers", "group__digitize.html", "group__digitize" ], + [ "Histogram functions", "group__histogram.html", "group__histogram" ], + [ "Array manipulation", "group__xt__xmanipulation.html", "group__xt__xmanipulation" ], + [ "Searchsorted helpers", "group__searchsorted.html", "group__searchsorted" ], + [ "Sorting functions.", "group__xt__xsort.html", "group__xt__xsort" ], + [ "Functor view", "group__xt__xfunctor__view.html", "group__xt__xfunctor__view" ] +]; \ No newline at end of file diff --git a/xaccessible_8hpp_source.html b/xaccessible_8hpp_source.html new file mode 100644 index 000000000..16af68300 --- /dev/null +++ b/xaccessible_8hpp_source.html @@ -0,0 +1,433 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xaccessible.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xaccessible.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ACCESSIBLE_HPP
    +
    11#define XTENSOR_ACCESSIBLE_HPP
    +
    12
    +
    13#include "../core/xstrides.hpp"
    +
    14#include "../core/xtensor_forward.hpp"
    +
    15#include "../utils/xexception.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    28 template <class D>
    +
    +
    29 class xconst_accessible
    +
    30 {
    +
    31 public:
    +
    32
    +
    33 using derived_type = D;
    +
    34 using inner_types = xcontainer_inner_types<D>;
    +
    35 using reference = typename inner_types::reference;
    +
    36 using const_reference = typename inner_types::const_reference;
    +
    37 using size_type = typename inner_types::size_type;
    +
    38
    +
    39 size_type size() const noexcept(noexcept(derived_cast().shape()));
    +
    40 size_type dimension() const noexcept;
    +
    41 size_type shape(size_type index) const;
    +
    42
    +
    43 template <class... Args>
    +
    44 const_reference at(Args... args) const;
    +
    45
    +
    46 template <class S>
    +
    47 disable_integral_t<S, const_reference> operator[](const S& index) const;
    +
    48 template <class I>
    +
    49 const_reference operator[](std::initializer_list<I> index) const;
    +
    50 const_reference operator[](size_type i) const;
    +
    51
    +
    52 template <class... Args>
    +
    53 const_reference periodic(Args... args) const;
    +
    54
    +
    55 template <class... Args>
    +
    56 bool in_bounds(Args... args) const;
    +
    57
    +
    58 const_reference front() const;
    +
    59 const_reference back() const;
    +
    60
    +
    61 protected:
    +
    62
    +
    63 xconst_accessible() = default;
    +
    64 ~xconst_accessible() = default;
    +
    65
    +
    66 xconst_accessible(const xconst_accessible&) = default;
    +
    67 xconst_accessible& operator=(const xconst_accessible&) = default;
    +
    68
    +
    69 xconst_accessible(xconst_accessible&&) = default;
    +
    70 xconst_accessible& operator=(xconst_accessible&&) = default;
    +
    71
    +
    72 private:
    +
    73
    +
    74 const derived_type& derived_cast() const noexcept;
    +
    75 };
    +
    +
    76
    +
    86 template <class D>
    +
    +
    87 class xaccessible : public xconst_accessible<D>
    +
    88 {
    +
    89 public:
    +
    90
    +
    91 using base_type = xconst_accessible<D>;
    +
    92 using derived_type = typename base_type::derived_type;
    +
    93 using reference = typename base_type::reference;
    +
    94 using size_type = typename base_type::size_type;
    +
    95
    +
    96 template <class... Args>
    +
    97 reference at(Args... args);
    +
    98
    +
    99 template <class S>
    +
    100 disable_integral_t<S, reference> operator[](const S& index);
    +
    101 template <class I>
    +
    102 reference operator[](std::initializer_list<I> index);
    +
    103 reference operator[](size_type i);
    +
    104
    +
    105 template <class... Args>
    +
    106 reference periodic(Args... args);
    +
    107
    +
    108 reference front();
    +
    109 reference back();
    +
    110
    +
    111 using base_type::at;
    +
    112 using base_type::operator[];
    +
    + +
    + +
    115 using base_type::periodic;
    +
    116
    +
    117 protected:
    +
    118
    +
    119 xaccessible() = default;
    +
    120 ~xaccessible() = default;
    +
    121
    +
    122 xaccessible(const xaccessible&) = default;
    +
    123 xaccessible& operator=(const xaccessible&) = default;
    +
    124
    +
    125 xaccessible(xaccessible&&) = default;
    +
    126 xaccessible& operator=(xaccessible&&) = default;
    +
    127
    +
    128 private:
    +
    129
    +
    130 derived_type& derived_cast() noexcept;
    +
    131 };
    +
    132
    +
    133 /************************************
    +
    134 * xconst_accessible implementation *
    +
    135 ************************************/
    +
    136
    +
    140 template <class D>
    +
    +
    141 inline auto xconst_accessible<D>::size() const noexcept(noexcept(derived_cast().shape())) -> size_type
    +
    + +
    143 return compute_size(derived_cast().shape());
    +
    144 }
    +
    145
    +
    149 template <class D>
    +
    +
    150 inline auto xconst_accessible<D>::dimension() const noexcept -> size_type
    +
    151 {
    +
    152 return derived_cast().shape().size();
    +
    153 }
    +
    +
    154
    +
    158 template <class D>
    +
    +
    159 inline auto xconst_accessible<D>::shape(size_type index) const -> size_type
    +
    160 {
    +
    161 return derived_cast().shape()[index];
    +
    162 }
    +
    +
    163
    +
    173 template <class D>
    +
    174 template <class... Args>
    +
    +
    175 inline auto xconst_accessible<D>::at(Args... args) const -> const_reference
    +
    176 {
    +
    177 check_access(derived_cast().shape(), args...);
    +
    178 return derived_cast().operator()(args...);
    +
    179 }
    +
    +
    180
    +
    187 template <class D>
    +
    188 template <class S>
    +
    +
    189 inline auto xconst_accessible<D>::operator[](const S& index) const
    +
    190 -> disable_integral_t<S, const_reference>
    +
    191 {
    +
    192 return derived_cast().element(index.cbegin(), index.cend());
    +
    193 }
    +
    +
    194
    +
    195 template <class D>
    +
    196 template <class I>
    +
    197 inline auto xconst_accessible<D>::operator[](std::initializer_list<I> index) const -> const_reference
    + +
    199 return derived_cast().element(index.begin(), index.end());
    +
    200 }
    +
    201
    +
    +
    202 template <class D>
    +
    +
    203 inline auto xconst_accessible<D>::operator[](size_type i) const -> const_reference
    +
    204 {
    +
    205 return derived_cast().operator()(i);
    +
    206 }
    +
    207
    +
    215 template <class D>
    +
    216 template <class... Args>
    +
    +
    217 inline auto xconst_accessible<D>::periodic(Args... args) const -> const_reference
    +
    218 {
    +
    219 normalize_periodic(derived_cast().shape(), args...);
    +
    220 return derived_cast()(static_cast<size_type>(args)...);
    +
    221 }
    +
    +
    222
    +
    226 template <class D>
    +
    +
    227 inline auto xconst_accessible<D>::front() const -> const_reference
    +
    228 {
    +
    229 return *derived_cast().begin();
    +
    230 }
    +
    +
    231
    +
    235 template <class D>
    +
    +
    236 inline auto xconst_accessible<D>::back() const -> const_reference
    +
    237 {
    +
    238 return *std::prev(derived_cast().end());
    +
    239 }
    +
    +
    240
    +
    246 template <class D>
    +
    247 template <class... Args>
    +
    +
    248 inline bool xconst_accessible<D>::in_bounds(Args... args) const
    +
    249 {
    +
    250 return check_in_bounds(derived_cast().shape(), args...);
    +
    251 }
    +
    +
    252
    +
    253 template <class D>
    +
    254 inline auto xconst_accessible<D>::derived_cast() const noexcept -> const derived_type&
    +
    255 {
    +
    256 return *static_cast<const derived_type*>(this);
    +
    257 }
    +
    258
    +
    259 /******************************
    +
    260 * xaccessible implementation *
    +
    261 ******************************/
    +
    262
    +
    272 template <class D>
    +
    273 template <class... Args>
    +
    +
    274 inline auto xaccessible<D>::at(Args... args) -> reference
    +
    275 {
    +
    276 check_access(derived_cast().shape(), args...);
    +
    277 return derived_cast().operator()(args...);
    +
    278 }
    +
    +
    279
    +
    286 template <class D>
    +
    287 template <class S>
    +
    +
    288 inline auto xaccessible<D>::operator[](const S& index) -> disable_integral_t<S, reference>
    +
    289 {
    +
    290 return derived_cast().element(index.cbegin(), index.cend());
    +
    291 }
    +
    +
    292
    +
    293 template <class D>
    +
    294 template <class I>
    +
    295 inline auto xaccessible<D>::operator[](std::initializer_list<I> index) -> reference
    +
    296 {
    +
    297 return derived_cast().element(index.begin(), index.end());
    +
    298 }
    +
    299
    +
    300 template <class D>
    +
    301 inline auto xaccessible<D>::operator[](size_type i) -> reference
    +
    302 {
    +
    303 return derived_cast().operator()(i);
    + + +
    313 template <class D>
    +
    314 template <class... Args>
    +
    +
    315 inline auto xaccessible<D>::periodic(Args... args) -> reference
    +
    316 {
    +
    317 normalize_periodic(derived_cast().shape(), args...);
    +
    318 return derived_cast()(args...);
    +
    319 }
    +
    +
    320
    +
    324 template <class D>
    +
    +
    325 inline auto xaccessible<D>::front() -> reference
    +
    326 {
    +
    327 return *derived_cast().begin();
    +
    328 }
    +
    +
    +
    329
    +
    333 template <class D>
    +
    +
    334 inline auto xaccessible<D>::back() -> reference
    +
    335 {
    +
    336 return *std::prev(derived_cast().end());
    +
    337 }
    +
    +
    +
    338
    +
    339 template <class D>
    +
    340 inline auto xaccessible<D>::derived_cast() noexcept -> derived_type&
    +
    341 {
    +
    342 return *static_cast<derived_type*>(this);
    +
    343 }
    +
    344
    +
    345}
    +
    346
    +
    347#endif
    +
    +
    +
    +
    +
    +
    reference back()
    Returns a reference to the last element of the expression.
    +
    reference front()
    Returns a reference to the first element of the expression.
    +
    Base class for implementation of common expression constant access methods.
    +
    const_reference front() const
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    Returns the size of the expression.
    +
    size_type dimension() const noexcept
    +
    bool in_bounds(Args... args) const
    +
    const_reference back() const
    +
    size_type shape(size_type index) const
    +
    size_type size() const noexcept
    +
    constexpr const inner_shape_type & shape() const noexcept
    +
    void normalize_periodic(const S &shape, Args &... args)
    Normalise an index of a periodic array.
    Definition xstrides.hpp:913
    +
    standard mathematical functions for xexpressions
    + +
    +
    + + + + diff --git a/xaccumulator_8hpp_source.html b/xaccumulator_8hpp_source.html new file mode 100644 index 000000000..8af874a60 --- /dev/null +++ b/xaccumulator_8hpp_source.html @@ -0,0 +1,483 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xaccumulator.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xaccumulator.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ACCUMULATOR_HPP
    +
    11#define XTENSOR_ACCUMULATOR_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <numeric>
    +
    16#include <type_traits>
    +
    17
    +
    18#include "../core/xexpression.hpp"
    +
    19#include "../core/xstrides.hpp"
    +
    20#include "../core/xtensor_config.hpp"
    +
    21#include "../core/xtensor_forward.hpp"
    +
    22
    +
    23namespace xt
    +
    24{
    +
    25
    +
    26#define DEFAULT_STRATEGY_ACCUMULATORS evaluation_strategy::immediate_type
    +
    27
    +
    28 namespace detail
    +
    29 {
    +
    30 template <class V = void>
    +
    31 struct accumulator_identity : xtl::identity
    +
    32 {
    +
    33 using value_type = V;
    +
    34 };
    +
    35 }
    +
    36
    +
    37 /**************
    +
    38 * accumulate *
    +
    39 **************/
    +
    40
    +
    41 template <class ACCUMULATE_FUNC, class INIT_FUNC = detail::accumulator_identity<void>>
    +
    +
    42 struct xaccumulator_functor : public std::tuple<ACCUMULATE_FUNC, INIT_FUNC>
    +
    43 {
    +
    44 using self_type = xaccumulator_functor<ACCUMULATE_FUNC, INIT_FUNC>;
    +
    45 using base_type = std::tuple<ACCUMULATE_FUNC, INIT_FUNC>;
    +
    46 using accumulate_functor_type = ACCUMULATE_FUNC;
    +
    47 using init_functor_type = INIT_FUNC;
    +
    48 using init_value_type = typename init_functor_type::value_type;
    +
    49
    +
    50 xaccumulator_functor()
    +
    51 : base_type()
    +
    52 {
    +
    53 }
    +
    54
    +
    55 template <class RF>
    +
    56 xaccumulator_functor(RF&& accumulate_func)
    +
    57 : base_type(std::forward<RF>(accumulate_func), INIT_FUNC())
    +
    58 {
    +
    59 }
    +
    60
    +
    61 template <class RF, class IF>
    +
    62 xaccumulator_functor(RF&& accumulate_func, IF&& init_func)
    +
    63 : base_type(std::forward<RF>(accumulate_func), std::forward<IF>(init_func))
    +
    64 {
    +
    65 }
    +
    66 };
    +
    +
    67
    +
    68 template <class RF>
    +
    69 auto make_xaccumulator_functor(RF&& accumulate_func)
    +
    70 {
    + +
    72 return accumulator_type(std::forward<RF>(accumulate_func));
    +
    73 }
    +
    74
    +
    75 template <class RF, class IF>
    +
    76 auto make_xaccumulator_functor(RF&& accumulate_func, IF&& init_func)
    +
    77 {
    +
    78 using accumulator_type = xaccumulator_functor<std::remove_reference_t<RF>, std::remove_reference_t<IF>>;
    +
    79 return accumulator_type(std::forward<RF>(accumulate_func), std::forward<IF>(init_func));
    +
    80 }
    +
    81
    +
    82 namespace detail
    +
    83 {
    +
    84 template <class F, class E, class EVS>
    +
    85 xarray<typename std::decay_t<E>::value_type> accumulator_impl(F&&, E&&, std::size_t, EVS)
    +
    86 {
    +
    87 static_assert(
    +
    88 !std::is_same<evaluation_strategy::lazy_type, EVS>::value,
    +
    89 "Lazy accumulators not yet implemented."
    +
    90 );
    +
    91 }
    +
    92
    +
    93 template <class F, class E, class EVS>
    +
    94 xarray<typename std::decay_t<E>::value_type> accumulator_impl(F&&, E&&, EVS)
    +
    95 {
    +
    96 static_assert(
    +
    97 !std::is_same<evaluation_strategy::lazy_type, EVS>::value,
    +
    98 "Lazy accumulators not yet implemented."
    +
    99 );
    +
    100 }
    +
    101
    +
    102 template <class T, class R>
    +
    103 struct xaccumulator_return_type
    +
    104 {
    +
    105 using type = xarray<R>;
    +
    106 };
    +
    107
    +
    108 template <class T, layout_type L, class R>
    +
    109 struct xaccumulator_return_type<xarray<T, L>, R>
    +
    110 {
    +
    111 using type = xarray<R, L>;
    +
    112 };
    +
    113
    +
    114 template <class T, std::size_t N, layout_type L, class R>
    +
    115 struct xaccumulator_return_type<xtensor<T, N, L>, R>
    +
    116 {
    +
    117 using type = xtensor<R, N, L>;
    +
    118 };
    +
    119
    +
    120 template <class T, std::size_t... I, layout_type L, class R>
    +
    121 struct xaccumulator_return_type<xtensor_fixed<T, xshape<I...>, L>, R>
    +
    122 {
    +
    123 using type = xtensor_fixed<R, xshape<I...>, L>;
    +
    124 };
    +
    125
    +
    126 template <class T, class R>
    +
    127 using xaccumulator_return_type_t = typename xaccumulator_return_type<T, R>::type;
    +
    128
    +
    129 template <class T>
    +
    130 struct fixed_compute_size;
    +
    131
    +
    132 template <class T, class R>
    +
    133 struct xaccumulator_linear_return_type
    +
    134 {
    +
    135 using type = xtensor<R, 1>;
    +
    136 };
    +
    137
    +
    138 template <class T, layout_type L, class R>
    +
    139 struct xaccumulator_linear_return_type<xarray<T, L>, R>
    +
    140 {
    +
    141 using type = xtensor<R, 1, L>;
    +
    142 };
    +
    143
    +
    144 template <class T, std::size_t N, layout_type L, class R>
    +
    145 struct xaccumulator_linear_return_type<xtensor<T, N, L>, R>
    +
    146 {
    +
    147 using type = xtensor<R, 1, L>;
    +
    148 };
    +
    149
    +
    150 template <class T, std::size_t... I, layout_type L, class R>
    +
    151 struct xaccumulator_linear_return_type<xtensor_fixed<T, xshape<I...>, L>, R>
    +
    152 {
    +
    153 using type = xtensor_fixed<R, xshape<fixed_compute_size<xshape<I...>>::value>, L>;
    +
    154 };
    +
    155
    +
    156 template <class T, class R>
    +
    157 using xaccumulator_linear_return_type_t = typename xaccumulator_linear_return_type<T, R>::type;
    +
    158
    +
    159 template <class F, class E>
    +
    160 inline auto accumulator_init_with_f(F&& f, E& e, std::size_t axis)
    +
    161 {
    +
    162 // this function is the equivalent (but hopefully faster) to (if axis == 1)
    +
    163 // e[:, 0, :, :, ...] = f(e[:, 0, :, :, ...])
    +
    164 // so that all "first" values are initialized in a first pass
    +
    165
    +
    166 std::size_t outer_loop_size, inner_loop_size, pos = 0;
    +
    167 std::size_t outer_stride, inner_stride;
    +
    168
    +
    169 auto set_loop_sizes = [&outer_loop_size, &inner_loop_size](auto first, auto last, std::ptrdiff_t ax)
    +
    170 {
    +
    171 outer_loop_size = std::accumulate(
    +
    172 first,
    +
    173 first + ax,
    +
    174 std::size_t(1),
    +
    175 std::multiplies<std::size_t>()
    +
    176 );
    +
    177 inner_loop_size = std::accumulate(
    +
    178 first + ax + 1,
    +
    179 last,
    +
    180 std::size_t(1),
    +
    181 std::multiplies<std::size_t>()
    +
    182 );
    +
    183 };
    +
    184
    +
    185 // Note: add check that strides > 0
    +
    186 auto set_loop_strides = [&outer_stride, &inner_stride](auto first, auto last, std::ptrdiff_t ax)
    +
    187 {
    +
    188 outer_stride = static_cast<std::size_t>(ax == 0 ? 1 : *std::min_element(first, first + ax));
    +
    189 inner_stride = static_cast<std::size_t>(
    +
    190 (ax == std::distance(first, last) - 1) ? 1 : *std::min_element(first + ax + 1, last)
    +
    191 );
    +
    192 };
    +
    193
    +
    194 set_loop_sizes(e.shape().begin(), e.shape().end(), static_cast<std::ptrdiff_t>(axis));
    +
    195 set_loop_strides(e.strides().begin(), e.strides().end(), static_cast<std::ptrdiff_t>(axis));
    +
    196
    +
    197 if (e.layout() == layout_type::column_major)
    +
    198 {
    +
    199 // swap for better memory locality (smaller stride in the inner loop)
    +
    200 std::swap(outer_loop_size, inner_loop_size);
    +
    201 std::swap(outer_stride, inner_stride);
    +
    202 }
    +
    203
    +
    204 for (std::size_t i = 0; i < outer_loop_size; ++i)
    +
    205 {
    +
    206 pos = i * outer_stride;
    +
    207 for (std::size_t j = 0; j < inner_loop_size; ++j)
    +
    208 {
    +
    209 e.storage()[pos] = f(e.storage()[pos]);
    +
    210 pos += inner_stride;
    +
    211 }
    +
    212 }
    +
    213 }
    +
    214
    +
    215 template <class F, class E>
    +
    216 inline auto accumulator_impl(F&& f, E&& e, std::size_t axis, evaluation_strategy::immediate_type)
    +
    217 {
    +
    218 using init_type = typename F::init_value_type;
    +
    219 using accumulate_functor_type = typename F::accumulate_functor_type;
    +
    220 using expr_value_type = typename std::decay_t<E>::value_type;
    +
    221 // using return_type = std::conditional_t<std::is_same<init_type, void>::value, typename
    +
    222 // std::decay_t<E>::value_type, init_type>;
    +
    223
    +
    224 using return_type = std::decay_t<decltype(std::declval<accumulate_functor_type>()(
    +
    225 std::declval<init_type>(),
    +
    226 std::declval<expr_value_type>()
    +
    227 ))>;
    +
    228
    +
    229 using result_type = xaccumulator_return_type_t<std::decay_t<E>, return_type>;
    +
    230
    +
    231 if (axis >= e.dimension())
    +
    232 {
    +
    233 XTENSOR_THROW(std::runtime_error, "Axis larger than expression dimension in accumulator.");
    +
    234 }
    +
    235
    +
    236 result_type res = e; // assign + make a copy, we need it anyways
    +
    237
    +
    238 if (res.shape(axis) != std::size_t(0))
    +
    239 {
    +
    240 std::size_t inner_stride = static_cast<std::size_t>(res.strides()[axis]);
    +
    241 std::size_t outer_stride = 1; // either row- or column-wise (strides.back / strides.front)
    +
    242 std::size_t outer_loop_size = 0;
    +
    243 std::size_t inner_loop_size = 0;
    +
    244 std::size_t init_size = e.shape()[axis] != std::size_t(1) ? std::size_t(1) : std::size_t(0);
    +
    245
    +
    246 auto set_loop_sizes =
    +
    247 [&outer_loop_size, &inner_loop_size, init_size](auto first, auto last, std::ptrdiff_t ax)
    +
    248 {
    +
    249 outer_loop_size = std::accumulate(first, first + ax, init_size, std::multiplies<std::size_t>());
    +
    250
    +
    251 inner_loop_size = std::accumulate(
    +
    252 first + ax,
    +
    253 last,
    +
    254 std::size_t(1),
    +
    255 std::multiplies<std::size_t>()
    +
    256 );
    +
    257 };
    +
    258
    +
    259 if (result_type::static_layout == layout_type::row_major)
    +
    260 {
    +
    261 set_loop_sizes(res.shape().cbegin(), res.shape().cend(), static_cast<std::ptrdiff_t>(axis));
    +
    262 }
    +
    263 else
    +
    264 {
    +
    265 set_loop_sizes(res.shape().cbegin(), res.shape().cend(), static_cast<std::ptrdiff_t>(axis + 1));
    +
    266 std::swap(inner_loop_size, outer_loop_size);
    +
    267 }
    +
    268
    +
    269 std::size_t pos = 0;
    +
    270
    +
    271 inner_loop_size = inner_loop_size - inner_stride;
    +
    272
    +
    273 // activate the init loop if we have an init function other than identity
    +
    274 if (!std::is_same<
    +
    275 std::decay_t<typename F::init_functor_type>,
    +
    276 typename detail::accumulator_identity<init_type>>::value)
    +
    277 {
    +
    278 accumulator_init_with_f(xt::get<1>(f), res, axis);
    +
    279 }
    +
    280
    +
    281 pos = 0;
    +
    282 for (std::size_t i = 0; i < outer_loop_size; ++i)
    +
    283 {
    +
    284 for (std::size_t j = 0; j < inner_loop_size; ++j)
    +
    285 {
    +
    286 res.storage()[pos + inner_stride] = xt::get<0>(f)(
    +
    287 res.storage()[pos],
    +
    288 res.storage()[pos + inner_stride]
    +
    289 );
    +
    290
    +
    291 pos += outer_stride;
    +
    292 }
    +
    293 pos += inner_stride;
    +
    294 }
    +
    295 }
    +
    296 return res;
    +
    297 }
    +
    298
    +
    299 template <class F, class E>
    +
    300 inline auto accumulator_impl(F&& f, E&& e, evaluation_strategy::immediate_type)
    +
    301 {
    +
    302 using init_type = typename F::init_value_type;
    +
    303 using expr_value_type = typename std::decay_t<E>::value_type;
    +
    304 using accumulate_functor_type = typename F::accumulate_functor_type;
    +
    305 using return_type = std::decay_t<decltype(std::declval<accumulate_functor_type>()(
    +
    306 std::declval<init_type>(),
    +
    307 std::declval<expr_value_type>()
    +
    308 ))>;
    +
    309 // using return_type = std::conditional_t<std::is_same<init_type, void>::value, typename
    +
    310 // std::decay_t<E>::value_type, init_type>;
    +
    311
    +
    312 using result_type = xaccumulator_return_type_t<std::decay_t<E>, return_type>;
    +
    313
    +
    314 std::size_t sz = e.size();
    +
    315 auto result = result_type::from_shape({sz});
    +
    316
    +
    317 if (sz != std::size_t(0))
    +
    318 {
    +
    319 auto it = e.template begin<XTENSOR_DEFAULT_TRAVERSAL>();
    +
    320 result.storage()[0] = xt::get<1>(f)(*it);
    +
    321 ++it;
    +
    322
    +
    323 for (std::size_t idx = 0; it != e.template end<XTENSOR_DEFAULT_TRAVERSAL>(); ++it)
    +
    324 {
    +
    325 result.storage()[idx + 1] = xt::get<0>(f)(result.storage()[idx], *it);
    +
    326 ++idx;
    +
    327 }
    +
    328 }
    +
    329 return result;
    +
    330 }
    +
    331 }
    +
    332
    +
    343 template <class F, class E, class EVS = DEFAULT_STRATEGY_ACCUMULATORS, XTL_REQUIRES(is_evaluation_strategy<EVS>)>
    +
    +
    344 inline auto accumulate(F&& f, E&& e, EVS evaluation_strategy = EVS())
    +
    345 {
    +
    346 // Note we need to check is_integral above in order to prohibit EVS = int, and not taking the
    +
    347 // std::size_t overload below!
    +
    348 return detail::accumulator_impl(std::forward<F>(f), std::forward<E>(e), evaluation_strategy);
    +
    349 }
    +
    +
    350
    +
    362 template <class F, class E, class EVS = DEFAULT_STRATEGY_ACCUMULATORS>
    +
    +
    363 inline auto accumulate(F&& f, E&& e, std::ptrdiff_t axis, EVS evaluation_strategy = EVS())
    +
    364 {
    +
    365 std::size_t ax = normalize_axis(e.dimension(), axis);
    +
    366 return detail::accumulator_impl(std::forward<F>(f), std::forward<E>(e), ax, evaluation_strategy);
    +
    367 }
    +
    +
    368}
    +
    369
    +
    370#endif
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    + + +
    xfixed_container< T, FSH, L, Sharable > xtensor_fixed
    Alias template on xfixed_container with default parameters for layout type.
    +
    auto accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())
    Accumulate and flatten array NOTE This function is not lazy!
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    fixed_shape< N... > xshape
    Alias template for fixed_shape allows for a shorter template shape definition in xtensor_fixed.
    + +
    +
    + + + + diff --git a/xadapt_8hpp_source.html b/xadapt_8hpp_source.html new file mode 100644 index 000000000..9e12b2fb3 --- /dev/null +++ b/xadapt_8hpp_source.html @@ -0,0 +1,602 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xadapt.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xadapt.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ADAPT_HPP
    +
    11#define XTENSOR_ADAPT_HPP
    +
    12
    +
    13#include <array>
    +
    14#include <cstddef>
    +
    15#include <memory>
    +
    16#include <type_traits>
    +
    17
    +
    18#include <xtl/xsequence.hpp>
    +
    19
    +
    20#include "../containers/xarray.hpp"
    +
    21#include "../containers/xbuffer_adaptor.hpp"
    +
    22#include "../containers/xfixed.hpp"
    +
    23#include "../containers/xtensor.hpp"
    +
    24
    +
    25namespace xt
    +
    26{
    +
    30
    +
    31 namespace detail
    +
    32 {
    +
    33 template <class>
    +
    34 struct array_size_impl;
    +
    35
    +
    36 template <class T, std::size_t N>
    +
    37 struct array_size_impl<std::array<T, N>>
    +
    38 {
    +
    39 static constexpr std::size_t value = N;
    +
    40 };
    +
    41
    +
    42 template <class C>
    +
    43 using array_size = array_size_impl<std::decay_t<C>>;
    +
    44
    +
    45 template <class P>
    +
    46 struct default_allocator_for_ptr
    +
    47 {
    +
    48 using type = std::allocator<std::remove_const_t<std::remove_pointer_t<std::remove_reference_t<P>>>>;
    +
    49 };
    +
    50
    +
    51 template <class P>
    +
    52 using default_allocator_for_ptr_t = typename default_allocator_for_ptr<P>::type;
    +
    53
    +
    54 template <class T>
    +
    55 using not_an_array = std::negation<is_array<T>>;
    +
    56
    +
    57 template <class T>
    +
    58 using not_a_pointer = std::negation<std::is_pointer<T>>;
    +
    59
    +
    60 template <class T>
    +
    61 using not_a_layout = std::negation<std::is_same<layout_type, T>>;
    +
    62 }
    +
    63
    +
    64#ifndef IN_DOXYGEN
    +
    65
    +
    66 /**************************
    +
    67 * xarray_adaptor builder *
    +
    68 **************************/
    +
    69
    +
    79 template <
    +
    80 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    81 class C,
    +
    82 class SC,
    +
    83 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>, detail::not_a_pointer<C>)>
    +
    84 inline xarray_adaptor<xtl::closure_type_t<C>, L, std::decay_t<SC>>
    +
    85 adapt(C&& container, const SC& shape, layout_type l = L)
    +
    86 {
    +
    87 static_assert(!xtl::is_integral<SC>::value, "shape cannot be a integer");
    +
    88 using return_type = xarray_adaptor<xtl::closure_type_t<C>, L, std::decay_t<SC>>;
    +
    89 return return_type(std::forward<C>(container), shape, l);
    +
    90 }
    +
    91
    +
    100 template <
    +
    101 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    102 class C,
    +
    103 class SC,
    +
    104 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>, std::is_pointer<std::remove_reference_t<C>>)>
    +
    105 inline auto adapt(C&& pointer, const SC& shape, layout_type l = L)
    +
    106 {
    +
    107 static_assert(!xtl::is_integral<SC>::value, "shape cannot be a integer");
    + + +
    110 std::size_t size = compute_size(shape);
    +
    111 return return_type(buffer_type(pointer, size), shape, l);
    +
    112 }
    +
    113
    +
    123 template <
    +
    124 class C,
    +
    125 class SC,
    +
    126 class SS,
    +
    127 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<SS>>)>
    + +
    129 adapt(C&& container, SC&& shape, SS&& strides)
    +
    130 {
    +
    131 static_assert(!xtl::is_integral<std::decay_t<SC>>::value, "shape cannot be a integer");
    +
    132 using return_type = xarray_adaptor<xtl::closure_type_t<C>, layout_type::dynamic, std::decay_t<SC>>;
    +
    133 return return_type(
    +
    134 std::forward<C>(container),
    +
    135 xtl::forward_sequence<typename return_type::inner_shape_type, SC>(shape),
    +
    136 xtl::forward_sequence<typename return_type::inner_strides_type, SS>(strides)
    +
    137 );
    +
    138 }
    +
    139
    +
    153 template <
    +
    154 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    155 class P,
    +
    156 class O,
    +
    157 class SC,
    +
    158 class A = detail::default_allocator_for_ptr_t<P>,
    +
    159 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>)>
    + +
    161 P&& pointer,
    +
    162 typename A::size_type size,
    +
    163 O ownership,
    +
    164 const SC& shape,
    +
    165 layout_type l = L,
    +
    166 const A& alloc = A()
    +
    167 )
    +
    168 {
    +
    169 static_assert(!xtl::is_integral<SC>::value, "shape cannot be a integer");
    +
    170 (void) ownership;
    +
    171 using buffer_type = xbuffer_adaptor<xtl::closure_type_t<P>, O, A>;
    +
    172 using return_type = xarray_adaptor<buffer_type, L, SC>;
    +
    173 buffer_type buf(std::forward<P>(pointer), size, alloc);
    +
    174 return return_type(std::move(buf), shape, l);
    +
    175 }
    +
    176
    +
    190 template <
    +
    191 class P,
    +
    192 class O,
    +
    193 class SC,
    +
    194 class SS,
    +
    195 class A = detail::default_allocator_for_ptr_t<P>,
    +
    196 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<SS>>)>
    + +
    198 adapt(P&& pointer, typename A::size_type size, O ownership, SC&& shape, SS&& strides, const A& alloc = A())
    +
    199 {
    +
    200 static_assert(!xtl::is_integral<std::decay_t<SC>>::value, "shape cannot be a integer");
    +
    201 (void) ownership;
    +
    202 using buffer_type = xbuffer_adaptor<xtl::closure_type_t<P>, O, A>;
    + +
    204 buffer_type buf(std::forward<P>(pointer), size, alloc);
    +
    205 return return_type(
    +
    206 std::move(buf),
    +
    207 xtl::forward_sequence<typename return_type::inner_shape_type, SC>(shape),
    +
    208 xtl::forward_sequence<typename return_type::inner_strides_type, SS>(strides)
    +
    209 );
    +
    210 }
    +
    211
    +
    221 template <
    +
    222 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    223 class T,
    +
    224 std::size_t N,
    +
    225 class SC,
    +
    226 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>)>
    +
    227 inline auto adapt(T (&c_array)[N], const SC& shape, layout_type l = L)
    +
    228 {
    +
    229 return adapt(&c_array[0], N, xt::no_ownership(), shape, l);
    +
    230 }
    +
    231
    +
    241 template <
    +
    242 class T,
    +
    243 std::size_t N,
    +
    244 class SC,
    +
    245 class SS,
    +
    246 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<SS>>)>
    +
    247 inline auto adapt(T (&c_array)[N], SC&& shape, SS&& strides)
    +
    248 {
    +
    249 return adapt(&c_array[0], N, xt::no_ownership(), std::forward<SC>(shape), std::forward<SS>(strides));
    +
    250 }
    +
    251
    +
    252 /***************************
    +
    253 * xtensor_adaptor builder *
    +
    254 ***************************/
    +
    255
    +
    264 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class C>
    +
    265 inline xtensor_adaptor<C, 1, L> adapt(C&& container, layout_type l = L)
    +
    266 {
    +
    267 const std::array<typename std::decay_t<C>::size_type, 1> shape{container.size()};
    +
    268 using return_type = xtensor_adaptor<xtl::closure_type_t<C>, 1, L>;
    +
    269 return return_type(std::forward<C>(container), shape, l);
    +
    270 }
    +
    271
    +
    281 template <
    +
    282 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    283 class C,
    +
    284 class SC,
    +
    285 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>, detail::not_a_pointer<C>)>
    + +
    287 adapt(C&& container, const SC& shape, layout_type l = L)
    +
    288 {
    +
    289 static_assert(!xtl::is_integral<SC>::value, "shape cannot be a integer");
    +
    290 constexpr std::size_t N = detail::array_size<SC>::value;
    +
    291 using return_type = xtensor_adaptor<xtl::closure_type_t<C>, N, L>;
    +
    292 return return_type(std::forward<C>(container), shape, l);
    +
    293 }
    +
    294
    +
    303 template <
    +
    304 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    305 class C,
    +
    306 class SC,
    +
    307 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>, std::is_pointer<std::remove_reference_t<C>>)>
    +
    308 inline auto adapt(C&& pointer, const SC& shape, layout_type l = L)
    +
    309 {
    +
    310 static_assert(!xtl::is_integral<SC>::value, "shape cannot be a integer");
    + +
    312 constexpr std::size_t N = detail::array_size<SC>::value;
    +
    313 using return_type = xtensor_adaptor<buffer_type, N, L>;
    +
    314 return return_type(buffer_type(pointer, compute_size(shape)), shape, l);
    +
    315 }
    +
    316
    +
    326 template <
    +
    327 class C,
    +
    328 class SC,
    +
    329 class SS,
    +
    330 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<SS>>)>
    + +
    332 adapt(C&& container, SC&& shape, SS&& strides)
    +
    333 {
    +
    334 static_assert(!xtl::is_integral<std::decay_t<SC>>::value, "shape cannot be a integer");
    +
    335 constexpr std::size_t N = detail::array_size<SC>::value;
    + +
    337 return return_type(
    +
    338 std::forward<C>(container),
    +
    339 xtl::forward_sequence<typename return_type::inner_shape_type, SC>(shape),
    +
    340 xtl::forward_sequence<typename return_type::inner_strides_type, SS>(strides)
    +
    341 );
    +
    342 }
    +
    343
    +
    356 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class P, class O, class A = detail::default_allocator_for_ptr_t<P>>
    + +
    358 adapt(P&& pointer, typename A::size_type size, O ownership, layout_type l = L, const A& alloc = A())
    +
    359 {
    +
    360 (void) ownership;
    +
    361 using buffer_type = xbuffer_adaptor<xtl::closure_type_t<P>, O, A>;
    +
    362 using return_type = xtensor_adaptor<buffer_type, 1, L>;
    +
    363 buffer_type buf(std::forward<P>(pointer), size, alloc);
    +
    364 const std::array<typename A::size_type, 1> shape{size};
    +
    365 return return_type(std::move(buf), shape, l);
    +
    366 }
    +
    367
    +
    381 template <
    +
    382 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    383 class P,
    +
    384 class O,
    +
    385 class SC,
    +
    386 class A = detail::default_allocator_for_ptr_t<P>,
    +
    387 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>)>
    +
    388 inline xtensor_adaptor<xbuffer_adaptor<xtl::closure_type_t<P>, O, A>, detail::array_size<SC>::value, L>
    +
    389 adapt(
    +
    390 P&& pointer,
    +
    391 typename A::size_type size,
    +
    392 O ownership,
    +
    393 const SC& shape,
    +
    394 layout_type l = L,
    +
    395 const A& alloc = A()
    +
    396 )
    +
    397 {
    +
    398 static_assert(!xtl::is_integral<SC>::value, "shape cannot be a integer");
    +
    399 (void) ownership;
    +
    400 using buffer_type = xbuffer_adaptor<xtl::closure_type_t<P>, O, A>;
    +
    401 constexpr std::size_t N = detail::array_size<SC>::value;
    +
    402 using return_type = xtensor_adaptor<buffer_type, N, L>;
    +
    403 buffer_type buf(std::forward<P>(pointer), size, alloc);
    +
    404 return return_type(std::move(buf), shape, l);
    +
    405 }
    +
    406
    +
    420 template <
    +
    421 class P,
    +
    422 class O,
    +
    423 class SC,
    +
    424 class SS,
    +
    425 class A = detail::default_allocator_for_ptr_t<P>,
    +
    426 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<SS>>)>
    +
    427 inline xtensor_adaptor<xbuffer_adaptor<xtl::closure_type_t<P>, O, A>, detail::array_size<SC>::value, layout_type::dynamic>
    +
    428 adapt(P&& pointer, typename A::size_type size, O ownership, SC&& shape, SS&& strides, const A& alloc = A())
    +
    429 {
    +
    430 static_assert(!xtl::is_integral<std::decay_t<SC>>::value, "shape cannot be a integer");
    +
    431 (void) ownership;
    +
    432 using buffer_type = xbuffer_adaptor<xtl::closure_type_t<P>, O, A>;
    +
    433 constexpr std::size_t N = detail::array_size<SC>::value;
    + +
    435 buffer_type buf(std::forward<P>(pointer), size, alloc);
    +
    436 return return_type(
    +
    437 std::move(buf),
    +
    438 xtl::forward_sequence<typename return_type::inner_shape_type, SC>(shape),
    +
    439 xtl::forward_sequence<typename return_type::inner_strides_type, SS>(strides)
    +
    440 );
    +
    441 }
    +
    442
    +
    452 template <
    +
    453 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    454 class T,
    +
    455 std::size_t N,
    +
    456 class SC,
    +
    457 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>)>
    +
    458 inline auto adapt(T (&c_array)[N], const SC& shape, layout_type l = L)
    +
    459 {
    +
    460 return adapt(&c_array[0], N, xt::no_ownership(), shape, l);
    +
    461 }
    +
    462
    +
    472 template <
    +
    473 class T,
    +
    474 std::size_t N,
    +
    475 class SC,
    +
    476 class SS,
    +
    477 XTL_REQUIRES(detail::is_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<SS>>)>
    +
    478 inline auto adapt(T (&c_array)[N], SC&& shape, SS&& strides)
    +
    479 {
    +
    480 return adapt(&c_array[0], N, xt::no_ownership(), std::forward<SC>(shape), std::forward<SS>(strides));
    +
    481 }
    +
    482
    +
    491 template <
    +
    492 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    493 class C,
    +
    494 std::size_t... X,
    +
    495 XTL_REQUIRES(std::is_pointer<std::remove_reference_t<C>>)>
    +
    496 inline auto adapt(C&& pointer, const fixed_shape<X...>& /*shape*/)
    +
    497 {
    + +
    499 using return_type = xfixed_adaptor<buffer_type, fixed_shape<X...>, L>;
    +
    500 return return_type(buffer_type(pointer, detail::fixed_compute_size<fixed_shape<X...>>::value));
    +
    501 }
    +
    502
    +
    503 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class C, class T, std::size_t N>
    +
    504 inline auto adapt(C&& ptr, const T (&shape)[N])
    +
    505 {
    +
    506 using shape_type = std::array<std::size_t, N>;
    +
    507 return adapt(std::forward<C>(ptr), xtl::forward_sequence<shape_type, decltype(shape)>(shape));
    +
    508 }
    +
    509
    +
    510#else // IN_DOXYGEN
    +
    511
    +
    525 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class C, class SC>
    +
    526 inline auto adapt(C&& container, const SC& shape, layout_type l = L);
    +
    527
    +
    540 template <class C, class SC, class SS>
    +
    541 inline auto adapt(C&& container, SC&& shape, SS&& strides);
    +
    542
    +
    559 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class P, class O, class SC, class A = detail::default_allocator_for_ptr_t<P>>
    +
    560 inline auto adapt(
    +
    561 P&& pointer,
    +
    562 typename A::size_type size,
    +
    563 O ownership,
    +
    564 const SC& shape,
    +
    565 layout_type l = L,
    +
    566 const A& alloc = A()
    +
    567 );
    +
    568
    +
    585 template <class P, class O, class SC, class SS, class A = detail::default_allocator_for_ptr_t<P>>
    +
    586 inline auto
    +
    587 adapt(P&& pointer, typename A::size_type size, O ownership, SC&& shape, SS&& strides, const A& alloc = A());
    +
    588
    +
    601 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class T, std::size_t N, class SC>
    +
    602 inline auto adapt(T (&c_array)[N], const SC& shape, layout_type l = L);
    +
    603
    +
    617 template <class T, std::size_t N, class SC, class SS>
    +
    618 inline auto adapt(T (&c_array)[N], SC&& shape, SS&& strides);
    +
    619
    +
    628 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class C, std::size_t... X>
    +
    629 inline auto adapt(C&& pointer, const fixed_shape<X...>& /*shape*/);
    +
    630
    +
    639 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class C>
    +
    640 inline xtensor_adaptor<C, 1, L> adapt(C&& container, layout_type l = L);
    +
    641
    +
    654 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class P, class O, class A = detail::default_allocator_for_ptr_t<P>>
    + +
    656 adapt(P&& pointer, typename A::size_type size, O ownership, layout_type l = L, const A& alloc = A());
    +
    657
    +
    658#endif // IN_DOXYGEN
    +
    659
    +
    660 /*****************************
    +
    661 * smart_ptr adapter builder *
    +
    662 *****************************/
    +
    663
    +
    686 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class P, class SC, XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>)>
    +
    +
    687 auto adapt_smart_ptr(P&& smart_ptr, const SC& shape, layout_type l = L)
    +
    688 {
    +
    689 using buffer_adaptor = xbuffer_adaptor<decltype(smart_ptr.get()), smart_ownership, std::decay_t<P>>;
    + +
    691 buffer_adaptor(smart_ptr.get(), compute_size(shape), std::forward<P>(smart_ptr)),
    +
    692 shape,
    +
    693 l
    +
    694 );
    +
    695 }
    +
    +
    696
    +
    746 template <
    +
    747 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    748 class P,
    +
    749 class SC,
    +
    750 class D,
    +
    751 XTL_REQUIRES(detail::not_an_array<std::decay_t<SC>>, detail::not_a_layout<std::decay_t<D>>)>
    +
    +
    752 auto adapt_smart_ptr(P&& data_ptr, const SC& shape, D&& smart_ptr, layout_type l = L)
    +
    753 {
    + +
    755
    + +
    757 buffer_adaptor(data_ptr, compute_size(shape), std::forward<D>(smart_ptr)),
    +
    758 shape,
    +
    759 l
    +
    760 );
    +
    761 }
    +
    +
    762
    +
    784 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class P, class I, std::size_t N>
    +
    +
    785 auto adapt_smart_ptr(P&& smart_ptr, const I (&shape)[N], layout_type l = L)
    +
    786 {
    +
    787 using buffer_adaptor = xbuffer_adaptor<decltype(smart_ptr.get()), smart_ownership, std::decay_t<P>>;
    +
    788 std::array<std::size_t, N> fshape = xtl::forward_sequence<std::array<std::size_t, N>, decltype(shape)>(
    +
    789 shape
    +
    790 );
    + +
    792 buffer_adaptor(smart_ptr.get(), compute_size(fshape), std::forward<P>(smart_ptr)),
    +
    793 std::move(fshape),
    +
    794 l
    +
    795 );
    +
    796 }
    +
    +
    797
    +
    845 template <
    +
    846 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    847 class P,
    +
    848 class I,
    +
    849 std::size_t N,
    +
    850 class D,
    +
    851 XTL_REQUIRES(detail::not_a_layout<std::decay_t<D>>)>
    +
    +
    852 auto adapt_smart_ptr(P&& data_ptr, const I (&shape)[N], D&& smart_ptr, layout_type l = L)
    +
    853 {
    + +
    855 std::array<std::size_t, N> fshape = xtl::forward_sequence<std::array<std::size_t, N>, decltype(shape)>(
    +
    856 shape
    +
    857 );
    +
    858
    + +
    860 buffer_adaptor(data_ptr, compute_size(fshape), std::forward<D>(smart_ptr)),
    +
    861 std::move(fshape),
    +
    862 l
    +
    863 );
    +
    864 }
    +
    +
    865
    +
    885 template <class T, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT>
    + +
    887 xbuffer_adaptor<xtl::closure_type_t<T*>, xt::no_ownership, detail::default_allocator_for_ptr_t<T>>,
    +
    888 N,
    +
    889 L>;
    +
    890
    +
    911 template <
    +
    912 class T,
    +
    913 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    914 class SC = XTENSOR_DEFAULT_SHAPE_CONTAINER(T, std::allocator<std::size_t>, std::allocator<std::size_t>)>
    + +
    916 xbuffer_adaptor<xtl::closure_type_t<T*>, xt::no_ownership, detail::default_allocator_for_ptr_t<T>>,
    +
    917 L,
    +
    918 SC>;
    +
    919}
    +
    920
    +
    921#endif
    +
    Fixed shape implementation for compile time defined arrays.
    +
    Dense multidimensional container adaptor with tensor semantic.
    Definition xarray.hpp:216
    + +
    Dense multidimensional container adaptor with tensor semantic and fixed dimension.
    Definition xfixed.hpp:432
    +
    Dense multidimensional container adaptor with tensor semantics and fixed dimension.
    Definition xtensor.hpp:212
    +
    auto adapt_smart_ptr(P &&smart_ptr, const SC &shape, layout_type l=L)
    Adapt a smart pointer to a typed memory block (unique_ptr or shared_ptr)
    Definition xadapt.hpp:687
    +
    xtensor_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, N, L > xtensor_pointer
    xtensor adaptor for a pointer.
    Definition xadapt.hpp:886
    +
    xarray_adaptor< xbuffer_adaptor< xtl::closure_type_t< T * >, xt::no_ownership, detail::default_allocator_for_ptr_t< T > >, L, SC > xarray_pointer
    xarray adaptor for a pointer.
    Definition xadapt.hpp:915
    +
    auto adapt(C &&container, const SC &shape, layout_type l=L)
    Constructs:
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + +
    +
    + + + + diff --git a/xarray_8hpp_source.html b/xarray_8hpp_source.html new file mode 100644 index 000000000..aae5d58fa --- /dev/null +++ b/xarray_8hpp_source.html @@ -0,0 +1,738 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xarray.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xarray.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ARRAY_HPP
    +
    11#define XTENSOR_ARRAY_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <utility>
    +
    15
    +
    16#include <xtl/xsequence.hpp>
    +
    17
    +
    18#include "../containers/xbuffer_adaptor.hpp"
    +
    19#include "../containers/xcontainer.hpp"
    +
    20#include "../core/xsemantic.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24
    +
    25 /********************************
    +
    26 * xarray_container declaration *
    +
    27 ********************************/
    +
    28
    +
    29 namespace extension
    +
    30 {
    +
    31 template <class EC, layout_type L, class SC, class Tag>
    + +
    33
    +
    34 template <class EC, layout_type L, class SC>
    +
    + +
    36 {
    +
    37 using type = xtensor_empty_base;
    +
    38 };
    +
    +
    39
    +
    40 template <class EC, layout_type L, class SC, class Tag>
    +
    41 using xarray_container_base_t = typename xarray_container_base<EC, L, SC, Tag>::type;
    +
    42 }
    +
    43
    +
    44 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    46 {
    +
    47 using storage_type = EC;
    +
    48 using reference = inner_reference_t<storage_type>;
    +
    49 using const_reference = typename storage_type::const_reference;
    +
    50 using size_type = typename storage_type::size_type;
    +
    51 using shape_type = SC;
    +
    52 using strides_type = get_strides_t<shape_type>;
    +
    53 using backstrides_type = get_strides_t<shape_type>;
    +
    54 using inner_shape_type = shape_type;
    +
    55 using inner_strides_type = strides_type;
    +
    56 using inner_backstrides_type = backstrides_type;
    +
    57 using temporary_type = xarray_container<EC, L, SC, Tag>;
    +
    58 static constexpr layout_type layout = L;
    +
    59 };
    +
    +
    60
    +
    61 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    63 : xcontainer_iterable_types<xarray_container<EC, L, SC, Tag>>
    +
    64 {
    +
    65 };
    +
    +
    66
    +
    80 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    81 class xarray_container : public xstrided_container<xarray_container<EC, L, SC, Tag>>,
    +
    82 public xcontainer_semantic<xarray_container<EC, L, SC, Tag>>,
    +
    83 public extension::xarray_container_base_t<EC, L, SC, Tag>
    +
    84 {
    +
    85 public:
    +
    86
    +
    87 using self_type = xarray_container<EC, L, SC, Tag>;
    +
    88 using base_type = xstrided_container<self_type>;
    +
    89 using semantic_base = xcontainer_semantic<self_type>;
    +
    90 using extension_base = extension::xarray_container_base_t<EC, L, SC, Tag>;
    +
    91 using storage_type = typename base_type::storage_type;
    +
    92 using allocator_type = typename base_type::allocator_type;
    +
    93 using value_type = typename base_type::value_type;
    +
    94 using reference = typename base_type::reference;
    +
    95 using const_reference = typename base_type::const_reference;
    +
    96 using pointer = typename base_type::pointer;
    +
    97 using const_pointer = typename base_type::const_pointer;
    +
    98 using shape_type = typename base_type::shape_type;
    +
    99 using inner_shape_type = typename base_type::inner_shape_type;
    +
    100 using strides_type = typename base_type::strides_type;
    +
    101 using backstrides_type = typename base_type::backstrides_type;
    +
    102 using inner_strides_type = typename base_type::inner_strides_type;
    +
    103 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    104 using temporary_type = typename semantic_base::temporary_type;
    +
    105 using expression_tag = Tag;
    +
    106 static constexpr std::size_t rank = SIZE_MAX;
    +
    107
    + +
    109 explicit xarray_container(const shape_type& shape, layout_type l = L);
    +
    110 explicit xarray_container(const shape_type& shape, const_reference value, layout_type l = L);
    +
    111 explicit xarray_container(const shape_type& shape, const strides_type& strides);
    +
    112 explicit xarray_container(const shape_type& shape, const strides_type& strides, const_reference value);
    +
    113 explicit xarray_container(storage_type&& storage, inner_shape_type&& shape, inner_strides_type&& strides);
    +
    114
    +
    115 xarray_container(const value_type& t);
    +
    116 xarray_container(nested_initializer_list_t<value_type, 1> t);
    +
    117 xarray_container(nested_initializer_list_t<value_type, 2> t);
    +
    118 xarray_container(nested_initializer_list_t<value_type, 3> t);
    +
    119 xarray_container(nested_initializer_list_t<value_type, 4> t);
    +
    120 xarray_container(nested_initializer_list_t<value_type, 5> t);
    +
    121
    +
    122 template <class S = shape_type>
    +
    123 static xarray_container from_shape(S&& s);
    +
    124
    +
    125 ~xarray_container() = default;
    +
    126
    +
    127 xarray_container(const xarray_container&) = default;
    +
    128 xarray_container& operator=(const xarray_container&) = default;
    +
    129
    + +
    131 xarray_container& operator=(xarray_container&&) = default;
    +
    132
    +
    133 template <std::size_t N>
    + +
    135 template <std::size_t N>
    + +
    137
    +
    138 template <class E>
    + +
    140
    +
    141 template <class E>
    +
    142 xarray_container& operator=(const xexpression<E>& e);
    +
    143
    +
    144 private:
    +
    145
    +
    146 storage_type m_storage;
    +
    147
    +
    148 storage_type& storage_impl() noexcept;
    +
    149 const storage_type& storage_impl() const noexcept;
    +
    150
    +
    151 friend class xcontainer<xarray_container<EC, L, SC, Tag>>;
    +
    152 };
    +
    +
    153
    +
    154 /******************************
    +
    155 * xarray_adaptor declaration *
    +
    156 ******************************/
    +
    157
    +
    158 namespace extension
    +
    159 {
    +
    160 template <class EC, layout_type L, class SC, class Tag>
    + +
    162
    +
    163 template <class EC, layout_type L, class SC>
    +
    + +
    165 {
    +
    166 using type = xtensor_empty_base;
    +
    167 };
    +
    +
    168
    +
    169 template <class EC, layout_type L, class SC, class Tag>
    +
    170 using xarray_adaptor_base_t = typename xarray_adaptor_base<EC, L, SC, Tag>::type;
    +
    171 }
    +
    172
    +
    173 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    175 {
    +
    176 using storage_type = std::remove_reference_t<EC>;
    +
    177 using reference = inner_reference_t<storage_type>;
    +
    178 using const_reference = typename storage_type::const_reference;
    +
    179 using size_type = typename storage_type::size_type;
    +
    180 using shape_type = SC;
    +
    181 using strides_type = get_strides_t<shape_type>;
    +
    182 using backstrides_type = get_strides_t<shape_type>;
    +
    183 using inner_shape_type = shape_type;
    +
    184 using inner_strides_type = strides_type;
    +
    185 using inner_backstrides_type = backstrides_type;
    +
    186 using temporary_type = xarray_container<temporary_container_t<storage_type>, L, SC, Tag>;
    +
    187 static constexpr layout_type layout = L;
    +
    188 };
    +
    +
    189
    +
    190 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    191 struct xiterable_inner_types<xarray_adaptor<EC, L, SC, Tag>>
    +
    192 : xcontainer_iterable_types<xarray_adaptor<EC, L, SC, Tag>>
    +
    193 {
    +
    194 };
    +
    +
    195
    +
    212 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    213 class xarray_adaptor : public xstrided_container<xarray_adaptor<EC, L, SC, Tag>>,
    +
    214 public xcontainer_semantic<xarray_adaptor<EC, L, SC, Tag>>,
    +
    215 public extension::xarray_adaptor_base_t<EC, L, SC, Tag>
    +
    216 {
    +
    217 public:
    +
    218
    +
    219 using container_closure_type = EC;
    +
    220
    +
    221 using self_type = xarray_adaptor<EC, L, SC, Tag>;
    +
    222 using base_type = xstrided_container<self_type>;
    +
    223 using semantic_base = xcontainer_semantic<self_type>;
    +
    224 using extension_base = extension::xarray_adaptor_base_t<EC, L, SC, Tag>;
    +
    225 using storage_type = typename base_type::storage_type;
    +
    226 using allocator_type = typename base_type::allocator_type;
    +
    227 using shape_type = typename base_type::shape_type;
    +
    228 using strides_type = typename base_type::strides_type;
    +
    229 using backstrides_type = typename base_type::backstrides_type;
    +
    230 using temporary_type = typename semantic_base::temporary_type;
    +
    231 using expression_tag = Tag;
    +
    232 static constexpr std::size_t rank = SIZE_MAX;
    +
    233
    +
    234 xarray_adaptor(storage_type&& storage);
    +
    235 xarray_adaptor(const storage_type& storage);
    +
    236
    +
    237 template <class D>
    +
    238 xarray_adaptor(D&& storage, const shape_type& shape, layout_type l = L);
    +
    239
    +
    240 template <class D>
    +
    241 xarray_adaptor(D&& storage, const shape_type& shape, const strides_type& strides);
    +
    242
    +
    243 ~xarray_adaptor() = default;
    +
    244
    +
    245 xarray_adaptor(const xarray_adaptor&) = default;
    +
    246 xarray_adaptor& operator=(const xarray_adaptor&);
    +
    247
    +
    248 xarray_adaptor(xarray_adaptor&&) = default;
    +
    249 xarray_adaptor& operator=(xarray_adaptor&&);
    +
    250 xarray_adaptor& operator=(temporary_type&&);
    +
    251
    +
    252 template <class E>
    +
    253 xarray_adaptor& operator=(const xexpression<E>& e);
    +
    254
    +
    255 template <class P, class S>
    +
    256 void reset_buffer(P&& pointer, S&& size);
    +
    257
    +
    258 private:
    +
    259
    +
    260 container_closure_type m_storage;
    +
    261
    +
    262 storage_type& storage_impl() noexcept;
    +
    263 const storage_type& storage_impl() const noexcept;
    +
    264
    +
    265 friend class xcontainer<xarray_adaptor<EC, L, SC, Tag>>;
    +
    266 };
    +
    +
    267
    +
    268 /***********************************
    +
    269 * xarray_container implementation *
    +
    270 ***********************************/
    +
    271
    +
    276
    +
    279 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    280 inline xarray_container<EC, L, SC, Tag>::xarray_container()
    +
    281 : base_type()
    +
    282 , m_storage(1, value_type())
    +
    283 {
    +
    284 }
    +
    +
    285
    +
    292 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    294 : base_type()
    +
    295 {
    +
    296 base_type::resize(shape, l);
    +
    297 }
    +
    +
    298
    +
    306 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    308 const shape_type& shape,
    +
    309 const_reference value,
    + +
    311 )
    +
    312 : base_type()
    +
    313 {
    +
    314 base_type::resize(shape, l);
    +
    315 std::fill(m_storage.begin(), m_storage.end(), value);
    +
    316 }
    +
    +
    317
    +
    323 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    324 inline xarray_container<EC, L, SC, Tag>::xarray_container(const shape_type& shape, const strides_type& strides)
    +
    325 : base_type()
    +
    326 {
    + +
    328 }
    +
    +
    329
    +
    337 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    339 const shape_type& shape,
    +
    340 const strides_type& strides,
    +
    341 const_reference value
    +
    342 )
    +
    343 : base_type()
    +
    344 {
    + +
    346 std::fill(m_storage.begin(), m_storage.end(), value);
    +
    347 }
    +
    +
    348
    +
    354 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    356 : base_type()
    +
    357 {
    +
    358 base_type::resize(xt::shape<shape_type>(t), true);
    +
    359 nested_copy(m_storage.begin(), t);
    +
    360 }
    +
    +
    361
    +
    369 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    371 storage_type&& storage,
    +
    372 inner_shape_type&& shape,
    +
    373 inner_strides_type&& strides
    +
    374 )
    +
    375 : base_type(std::move(shape), std::move(strides))
    +
    376 , m_storage(std::move(storage))
    +
    377 {
    +
    378 }
    +
    +
    379
    +
    381
    +
    386
    +
    390 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    391 inline xarray_container<EC, L, SC, Tag>::xarray_container(nested_initializer_list_t<value_type, 1> t)
    +
    392 : base_type()
    +
    393 {
    +
    394 base_type::resize(xt::shape<shape_type>(t));
    +
    395 constexpr auto tmp = layout_type::row_major;
    +
    396 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    397 }
    +
    +
    398
    +
    403 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    404 inline xarray_container<EC, L, SC, Tag>::xarray_container(nested_initializer_list_t<value_type, 2> t)
    +
    405 : base_type()
    +
    406 {
    +
    407 base_type::resize(xt::shape<shape_type>(t));
    +
    408 constexpr auto tmp = layout_type::row_major;
    +
    409 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    410 }
    +
    +
    411
    +
    416 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    417 inline xarray_container<EC, L, SC, Tag>::xarray_container(nested_initializer_list_t<value_type, 3> t)
    +
    418 : base_type()
    +
    419 {
    +
    420 base_type::resize(xt::shape<shape_type>(t));
    +
    421 constexpr auto tmp = layout_type::row_major;
    +
    422 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    423 }
    +
    +
    424
    +
    429 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    430 inline xarray_container<EC, L, SC, Tag>::xarray_container(nested_initializer_list_t<value_type, 4> t)
    +
    431 : base_type()
    +
    432 {
    +
    433 base_type::resize(xt::shape<shape_type>(t));
    +
    434 constexpr auto tmp = layout_type::row_major;
    +
    435 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    436 }
    +
    +
    437
    +
    442 template <class EC, layout_type L, class SC, class Tag>
    +
    +
    443 inline xarray_container<EC, L, SC, Tag>::xarray_container(nested_initializer_list_t<value_type, 5> t)
    +
    444 : base_type()
    +
    445 {
    +
    446 base_type::resize(xt::shape<shape_type>(t));
    +
    447 constexpr auto tmp = layout_type::row_major;
    +
    448 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    449 }
    +
    +
    450
    +
    452
    +
    457 template <class EC, layout_type L, class SC, class Tag>
    +
    458 template <class S>
    +
    +
    459 inline xarray_container<EC, L, SC, Tag> xarray_container<EC, L, SC, Tag>::from_shape(S&& s)
    +
    460 {
    +
    461 shape_type shape = xtl::forward_sequence<shape_type, S>(s);
    +
    462 return self_type(shape);
    +
    463 }
    +
    +
    464
    +
    465 template <class EC, layout_type L, class SC, class Tag>
    +
    466 template <std::size_t N>
    + +
    468 : base_type(
    +
    469 inner_shape_type(rhs.shape().cbegin(), rhs.shape().cend()),
    +
    470 inner_strides_type(rhs.strides().cbegin(), rhs.strides().cend()),
    +
    471 inner_backstrides_type(rhs.backstrides().cbegin(), rhs.backstrides().cend()),
    +
    472 std::move(rhs.layout())
    +
    473 )
    +
    474 , m_storage(std::move(rhs.storage()))
    +
    475 {
    +
    476 }
    +
    477
    +
    478 template <class EC, layout_type L, class SC, class Tag>
    +
    479 template <std::size_t N>
    +
    480 inline xarray_container<EC, L, SC, Tag>&
    +
    481 xarray_container<EC, L, SC, Tag>::operator=(xtensor_container<EC, N, L, Tag>&& rhs)
    +
    482 {
    +
    483 this->shape_impl().assign(rhs.shape().cbegin(), rhs.shape().cend());
    +
    484 this->strides_impl().assign(rhs.strides().cbegin(), rhs.strides().cend());
    +
    485 this->backstrides_impl().assign(rhs.backstrides().cbegin(), rhs.backstrides().cend());
    +
    486 this->mutable_layout() = rhs.layout();
    +
    487 m_storage = std::move(rhs.storage());
    +
    488 return *this;
    +
    489 }
    +
    490
    +
    495
    +
    498 template <class EC, layout_type L, class SC, class Tag>
    +
    499 template <class E>
    +
    + +
    501 : base_type()
    +
    502 {
    +
    503 // Avoids unintialized data because of (m_shape == shape) condition
    +
    504 // in resize (called by assign), which is always true when dimension == 0.
    +
    505 if (e.derived_cast().dimension() == 0)
    +
    506 {
    +
    507 detail::resize_data_container(m_storage, std::size_t(1));
    +
    508 }
    +
    509 semantic_base::assign(e);
    +
    510 }
    +
    +
    511
    +
    515 template <class EC, layout_type L, class SC, class Tag>
    +
    516 template <class E>
    +
    +
    517 inline auto xarray_container<EC, L, SC, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    518 {
    +
    519 return semantic_base::operator=(e);
    +
    520 }
    +
    +
    521
    +
    523
    +
    524 template <class EC, layout_type L, class SC, class Tag>
    +
    525 inline auto xarray_container<EC, L, SC, Tag>::storage_impl() noexcept -> storage_type&
    +
    526 {
    +
    527 return m_storage;
    +
    528 }
    +
    529
    +
    530 template <class EC, layout_type L, class SC, class Tag>
    +
    531 inline auto xarray_container<EC, L, SC, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    532 {
    +
    533 return m_storage;
    +
    534 }
    +
    535
    +
    536 /******************
    +
    537 * xarray_adaptor *
    +
    538 ******************/
    +
    539
    +
    544
    +
    548 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    550 : base_type()
    +
    551 , m_storage(std::move(storage))
    +
    552 {
    +
    553 }
    +
    +
    554
    +
    559 template <class EC, layout_type L, class SC, class Tag>
    +
    + +
    561 : base_type()
    +
    562 , m_storage(storage)
    +
    563 {
    +
    564 }
    +
    +
    565
    +
    573 template <class EC, layout_type L, class SC, class Tag>
    +
    574 template <class D>
    +
    + +
    576 : base_type()
    +
    577 , m_storage(std::forward<D>(storage))
    +
    578 {
    +
    579 base_type::resize(shape, l);
    +
    580 }
    +
    +
    581
    +
    589 template <class EC, layout_type L, class SC, class Tag>
    +
    590 template <class D>
    +
    + +
    592 D&& storage,
    +
    593 const shape_type& shape,
    +
    594 const strides_type& strides
    +
    595 )
    +
    596 : base_type()
    +
    597 , m_storage(std::forward<D>(storage))
    +
    598 {
    + +
    600 }
    +
    +
    601
    +
    603
    +
    604 template <class EC, layout_type L, class SC, class Tag>
    +
    605 inline auto xarray_adaptor<EC, L, SC, Tag>::operator=(const xarray_adaptor& rhs) -> self_type&
    +
    606 {
    +
    607 base_type::operator=(rhs);
    +
    608 m_storage = rhs.m_storage;
    +
    609 return *this;
    +
    610 }
    +
    611
    +
    612 template <class EC, layout_type L, class SC, class Tag>
    +
    613 inline auto xarray_adaptor<EC, L, SC, Tag>::operator=(xarray_adaptor&& rhs) -> self_type&
    +
    614 {
    +
    615 base_type::operator=(std::move(rhs));
    +
    616 m_storage = rhs.m_storage;
    +
    617 return *this;
    +
    618 }
    +
    619
    +
    620 template <class EC, layout_type L, class SC, class Tag>
    +
    621 inline auto xarray_adaptor<EC, L, SC, Tag>::operator=(temporary_type&& rhs) -> self_type&
    +
    622 {
    +
    623 base_type::shape_impl() = std::move(const_cast<shape_type&>(rhs.shape()));
    +
    624 base_type::strides_impl() = std::move(const_cast<strides_type&>(rhs.strides()));
    +
    625 base_type::backstrides_impl() = std::move(const_cast<backstrides_type&>(rhs.backstrides()));
    +
    626 m_storage = std::move(rhs.storage());
    +
    627 return *this;
    +
    628 }
    +
    629
    +
    634
    +
    637 template <class EC, layout_type L, class SC, class Tag>
    +
    638 template <class E>
    +
    +
    639 inline auto xarray_adaptor<EC, L, SC, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    640 {
    +
    641 return semantic_base::operator=(e);
    +
    642 }
    +
    +
    643
    +
    645
    +
    646 template <class EC, layout_type L, class SC, class Tag>
    +
    647 inline auto xarray_adaptor<EC, L, SC, Tag>::storage_impl() noexcept -> storage_type&
    +
    648 {
    +
    649 return m_storage;
    +
    650 }
    +
    651
    +
    652 template <class EC, layout_type L, class SC, class Tag>
    +
    653 inline auto xarray_adaptor<EC, L, SC, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    654 {
    +
    655 return m_storage;
    +
    656 }
    +
    657
    +
    658 template <class EC, layout_type L, class SC, class Tag>
    +
    659 template <class P, class S>
    +
    660 inline void xarray_adaptor<EC, L, SC, Tag>::reset_buffer(P&& pointer, S&& size)
    +
    661 {
    +
    662 return m_storage.reset_data(std::forward<P>(pointer), std::forward<S>(size));
    +
    663 }
    +
    664}
    +
    665
    +
    666#endif
    +
    Dense multidimensional container adaptor with tensor semantic.
    Definition xarray.hpp:216
    +
    xarray_adaptor(D &&storage, const shape_type &shape, layout_type l=L)
    Constructs an xarray_adaptor of the given stl-like container, with the specified shape and layout_typ...
    Definition xarray.hpp:575
    +
    xarray_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)
    Constructs an xarray_adaptor of the given stl-like container, with the specified shape and strides.
    Definition xarray.hpp:591
    +
    xarray_adaptor(const storage_type &storage)
    Constructs an xarray_adaptor of the given stl-like container.
    Definition xarray.hpp:560
    +
    xarray_adaptor(storage_type &&storage)
    Constructs an xarray_adaptor of the given stl-like container.
    Definition xarray.hpp:549
    +
    Dense multidimensional container with tensor semantic.
    Definition xarray.hpp:84
    +
    xarray_container(const shape_type &shape, const strides_type &strides, const_reference value)
    Allocates an uninitialized xarray_container with the specified shape and strides.
    Definition xarray.hpp:338
    +
    xarray_container(const shape_type &shape, const strides_type &strides)
    Allocates an uninitialized xarray_container with the specified shape and strides.
    Definition xarray.hpp:324
    +
    xarray_container(nested_initializer_list_t< value_type, 2 > t)
    Allocates a two-dimensional xarray_container.
    Definition xarray.hpp:404
    +
    xarray_container(nested_initializer_list_t< value_type, 5 > t)
    Allocates a five-dimensional xarray_container.
    Definition xarray.hpp:443
    +
    xarray_container(const shape_type &shape, layout_type l=L)
    Allocates an uninitialized xarray_container with the specified shape and layout_type.
    Definition xarray.hpp:293
    +
    xarray_container(const shape_type &shape, const_reference value, layout_type l=L)
    Allocates an xarray_container with the specified shape and layout_type.
    Definition xarray.hpp:307
    +
    xarray_container(const value_type &t)
    Allocates an xarray_container that holds a single element initialized to the specified value.
    Definition xarray.hpp:355
    +
    xarray_container(nested_initializer_list_t< value_type, 1 > t)
    Allocates a one-dimensional xarray_container.
    Definition xarray.hpp:391
    +
    xarray_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)
    Allocates an xarray_container by moving specified data, shape and strides.
    Definition xarray.hpp:370
    +
    xarray_container(nested_initializer_list_t< value_type, 3 > t)
    Allocates a three-dimensional xarray_container.
    Definition xarray.hpp:417
    +
    xarray_container(nested_initializer_list_t< value_type, 4 > t)
    Allocates a four-dimensional xarray_container.
    Definition xarray.hpp:430
    +
    xarray_container(const xexpression< E > &e)
    The extended copy constructor.
    Definition xarray.hpp:500
    +
    xarray_container()
    Allocates an uninitialized xarray_container that holds 0 element.
    Definition xarray.hpp:280
    +
    Base class for dense multidimensional containers.
    +
    storage_type & storage() noexcept
    Returns a reference to the buffer containing the elements of the container.
    +
    size_type size() const noexcept
    Returns the number of element in the container.
    +
    constexpr size_type dimension() const noexcept
    Returns the number of dimensions of the container.
    +
    constexpr const inner_strides_type & strides() const noexcept
    Returns the strides of the container.
    +
    constexpr const inner_shape_type & shape() const noexcept
    Returns the shape of the container.
    + +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    void resize(S &&shape, bool force=false)
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + +
    +
    + + + + diff --git a/xassign_8hpp_source.html b/xassign_8hpp_source.html new file mode 100644 index 000000000..cc1396002 --- /dev/null +++ b/xassign_8hpp_source.html @@ -0,0 +1,1518 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xassign.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xassign.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ASSIGN_HPP
    +
    11#define XTENSOR_ASSIGN_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <functional>
    +
    15#include <type_traits>
    +
    16#include <utility>
    +
    17
    +
    18#include <xtl/xcomplex.hpp>
    +
    19#include <xtl/xsequence.hpp>
    +
    20
    +
    21#include "../core/xexpression.hpp"
    +
    22#include "../core/xfunction.hpp"
    +
    23#include "../core/xiterator.hpp"
    +
    24#include "../core/xstrides.hpp"
    +
    25#include "../core/xtensor_config.hpp"
    +
    26#include "../core/xtensor_forward.hpp"
    +
    27#include "../utils/xutils.hpp"
    +
    28
    +
    29#if defined(XTENSOR_USE_TBB)
    +
    30#include <tbb/tbb.h>
    +
    31#endif
    +
    32
    +
    33namespace xt
    +
    34{
    +
    35
    +
    36 /********************
    +
    37 * Assign functions *
    +
    38 ********************/
    +
    39
    +
    40 template <class E1, class E2>
    +
    41 void assign_data(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial);
    +
    42
    +
    43 template <class E1, class E2>
    +
    44 void assign_xexpression(xexpression<E1>& e1, const xexpression<E2>& e2);
    +
    45
    +
    46 template <class E1, class E2>
    +
    47 void computed_assign(xexpression<E1>& e1, const xexpression<E2>& e2);
    +
    48
    +
    49 template <class E1, class E2, class F>
    +
    50 void scalar_computed_assign(xexpression<E1>& e1, const E2& e2, F&& f);
    +
    51
    +
    52 template <class E1, class E2>
    +
    53 void assert_compatible_shape(const xexpression<E1>& e1, const xexpression<E2>& e2);
    +
    54
    +
    55 template <class E1, class E2>
    +
    56 void strided_assign(E1& e1, const E2& e2, std::false_type /*disable*/);
    +
    57
    +
    58 template <class E1, class E2>
    +
    59 void strided_assign(E1& e1, const E2& e2, std::true_type /*enable*/);
    +
    60
    +
    61 /************************
    +
    62 * xexpression_assigner *
    +
    63 ************************/
    +
    64
    +
    65 template <class Tag>
    + +
    67
    +
    68 template <>
    +
    + +
    70 {
    +
    71 public:
    +
    72
    +
    73 template <class E1, class E2>
    +
    74 static void assign_data(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial);
    +
    75 };
    +
    +
    76
    +
    77 template <class Tag>
    +
    + +
    79 {
    +
    80 public:
    +
    81
    +
    82 using base_type = xexpression_assigner_base<Tag>;
    +
    83
    +
    84 template <class E1, class E2>
    +
    85 static void assign_xexpression(E1& e1, const E2& e2);
    +
    86
    +
    87 template <class E1, class E2>
    +
    88 static void computed_assign(xexpression<E1>& e1, const xexpression<E2>& e2);
    +
    89
    +
    90 template <class E1, class E2, class F>
    +
    91 static void scalar_computed_assign(xexpression<E1>& e1, const E2& e2, F&& f);
    +
    92
    +
    93 template <class E1, class E2>
    +
    94 static void assert_compatible_shape(const xexpression<E1>& e1, const xexpression<E2>& e2);
    +
    95
    +
    96 private:
    +
    97
    +
    98 template <class E1, class E2>
    +
    99 static bool resize(E1& e1, const E2& e2);
    +
    100
    +
    101 template <class E1, class F, class... CT>
    +
    102 static bool resize(E1& e1, const xfunction<F, CT...>& e2);
    +
    103 };
    +
    +
    104
    +
    105 /********************
    +
    106 * stepper_assigner *
    +
    107 ********************/
    +
    108
    +
    109 template <class E1, class E2, layout_type L>
    +
    +
    110 class stepper_assigner
    +
    111 {
    +
    112 public:
    +
    113
    +
    114 using lhs_iterator = typename E1::stepper;
    +
    115 using rhs_iterator = typename E2::const_stepper;
    +
    116 using shape_type = typename E1::shape_type;
    +
    117 using index_type = xindex_type_t<shape_type>;
    +
    118 using size_type = typename lhs_iterator::size_type;
    +
    119 using difference_type = typename lhs_iterator::difference_type;
    +
    120
    +
    121 stepper_assigner(E1& e1, const E2& e2);
    +
    122
    +
    123 void run();
    +
    124
    +
    125 void step(size_type i);
    +
    126 void step(size_type i, size_type n);
    +
    127 void reset(size_type i);
    +
    128
    +
    129 void to_end(layout_type);
    +
    130
    +
    131 private:
    +
    132
    +
    133 E1& m_e1;
    +
    134
    +
    135 lhs_iterator m_lhs;
    +
    136 rhs_iterator m_rhs;
    +
    137
    +
    138 index_type m_index;
    +
    139 };
    +
    +
    140
    +
    141 /*******************
    +
    142 * linear_assigner *
    +
    143 *******************/
    +
    144
    +
    145 template <bool simd_assign>
    +
    + +
    147 {
    +
    148 public:
    +
    149
    +
    150 template <class E1, class E2>
    +
    151 static void run(E1& e1, const E2& e2);
    +
    152 };
    +
    +
    153
    +
    154 template <>
    +
    +
    155 class linear_assigner<false>
    +
    156 {
    +
    157 public:
    +
    158
    +
    159 template <class E1, class E2>
    +
    160 static void run(E1& e1, const E2& e2);
    +
    161
    +
    162 private:
    +
    163
    +
    164 template <class E1, class E2>
    +
    165 static void run_impl(E1& e1, const E2& e2, std::true_type);
    +
    166
    +
    167 template <class E1, class E2>
    +
    168 static void run_impl(E1& e1, const E2& e2, std::false_type);
    +
    169 };
    +
    +
    170
    +
    171 /*************************
    +
    172 * strided_loop_assigner *
    +
    173 *************************/
    +
    174
    +
    175 namespace strided_assign_detail
    +
    176 {
    +
    + +
    178 {
    +
    179 bool can_do_strided_assign;
    +
    180 bool is_row_major;
    +
    181 std::size_t inner_loop_size;
    +
    182 std::size_t outer_loop_size;
    +
    183 std::size_t cut;
    +
    184 std::size_t dimension;
    +
    185 };
    +
    +
    186 }
    +
    187
    +
    188 template <bool simd>
    +
    + +
    190 {
    +
    191 public:
    +
    192
    +
    193 using loop_sizes_t = strided_assign_detail::loop_sizes_t;
    +
    194 // is_row_major, inner_loop_size, outer_loop_size, cut
    +
    195 template <class E1, class E2>
    +
    196 static void run(E1& e1, const E2& e2, const loop_sizes_t& loop_sizes);
    +
    197 template <class E1, class E2>
    +
    198 static loop_sizes_t get_loop_sizes(E1& e1, const E2& e2);
    +
    199 template <class E1, class E2>
    +
    200 static void run(E1& e1, const E2& e2);
    +
    201 };
    +
    +
    202
    +
    203 /***********************************
    +
    204 * Assign functions implementation *
    +
    205 ***********************************/
    +
    206
    +
    207 template <class E1, class E2>
    +
    208 inline void assign_data(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial)
    +
    209 {
    +
    210 using tag = xexpression_tag_t<E1, E2>;
    + +
    212 }
    +
    213
    +
    214 template <class E1, class E2>
    +
    215 inline void assign_xexpression(xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    216 {
    +
    217 if constexpr (has_assign_to<E1, E2>::value)
    +
    218 {
    +
    219 e2.derived_cast().assign_to(e1);
    +
    220 }
    +
    221 else
    +
    222 {
    +
    223 using tag = xexpression_tag_t<E1, E2>;
    +
    224 xexpression_assigner<tag>::assign_xexpression(e1, e2);
    +
    225 }
    +
    226 }
    +
    227
    +
    228 template <class E1, class E2>
    +
    229 inline void computed_assign(xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    230 {
    +
    231 using tag = xexpression_tag_t<E1, E2>;
    +
    232 xexpression_assigner<tag>::computed_assign(e1, e2);
    +
    233 }
    +
    234
    +
    235 template <class E1, class E2, class F>
    +
    236 inline void scalar_computed_assign(xexpression<E1>& e1, const E2& e2, F&& f)
    +
    237 {
    +
    238 using tag = xexpression_tag_t<E1, E2>;
    +
    239 xexpression_assigner<tag>::scalar_computed_assign(e1, e2, std::forward<F>(f));
    +
    240 }
    +
    241
    +
    242 template <class E1, class E2>
    +
    243 inline void assert_compatible_shape(const xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    244 {
    +
    245 using tag = xexpression_tag_t<E1, E2>;
    +
    246 xexpression_assigner<tag>::assert_compatible_shape(e1, e2);
    +
    247 }
    +
    248
    +
    249 /***************************************
    +
    250 * xexpression_assigner implementation *
    +
    251 ***************************************/
    +
    252
    +
    253 namespace detail
    +
    254 {
    +
    255 template <class E1, class E2>
    +
    256 constexpr bool linear_static_layout()
    +
    257 {
    +
    258 // A row_major or column_major container with a dimension <= 1 is computed as
    +
    259 // layout any, leading to some performance improvements, for example when
    +
    260 // assigning a col-major vector to a row-major vector etc
    +
    261 return compute_layout(
    +
    262 select_layout<E1::static_layout, typename E1::shape_type>::value,
    +
    263 select_layout<E2::static_layout, typename E2::shape_type>::value
    +
    264 )
    + +
    266 }
    +
    267
    +
    268 template <class E1, class E2>
    +
    269 inline auto is_linear_assign(const E1& e1, const E2& e2)
    +
    270 -> std::enable_if_t<has_strides<E1>::value, bool>
    +
    271 {
    +
    272 return (E1::contiguous_layout && E2::contiguous_layout && linear_static_layout<E1, E2>())
    +
    273 || (e1.is_contiguous() && e2.has_linear_assign(e1.strides()));
    +
    274 }
    +
    275
    +
    276 template <class E1, class E2>
    +
    277 inline auto is_linear_assign(const E1&, const E2&) -> std::enable_if_t<!has_strides<E1>::value, bool>
    +
    278 {
    +
    279 return false;
    +
    280 }
    +
    281
    +
    282 template <class E1, class E2>
    +
    283 inline bool linear_dynamic_layout(const E1& e1, const E2& e2)
    +
    284 {
    +
    285 return e1.is_contiguous() && e2.is_contiguous()
    +
    286 && compute_layout(e1.layout(), e2.layout()) != layout_type::dynamic;
    +
    287 }
    +
    288
    +
    289 template <class E, class = void>
    +
    290 struct has_step_leading : std::false_type
    +
    291 {
    +
    292 };
    +
    293
    +
    294 template <class E>
    +
    295 struct has_step_leading<E, void_t<decltype(std::declval<E>().step_leading())>> : std::true_type
    +
    296 {
    +
    297 };
    +
    298
    +
    299 template <class T>
    +
    300 struct use_strided_loop
    +
    301 {
    +
    302 static constexpr bool stepper_deref()
    +
    303 {
    +
    304 return std::is_reference<typename T::stepper::reference>::value;
    +
    305 }
    +
    306
    +
    307 static constexpr bool value = has_strides<T>::value
    +
    308 && has_step_leading<typename T::stepper>::value && stepper_deref();
    +
    309 };
    +
    310
    +
    311 template <class T>
    +
    312 struct use_strided_loop<xscalar<T>>
    +
    313 {
    +
    314 static constexpr bool value = true;
    +
    315 };
    +
    316
    +
    317 template <class F, class... CT>
    +
    318 struct use_strided_loop<xfunction<F, CT...>>
    +
    319 {
    +
    320 static constexpr bool value = std::conjunction<use_strided_loop<std::decay_t<CT>>...>::value;
    +
    321 };
    +
    322
    +
    339 template <class T1, class T2>
    +
    340 struct conditional_promote_to_complex
    +
    341 {
    +
    342 static constexpr bool cond = xtl::is_gen_complex<T1>::value && !xtl::is_gen_complex<T2>::value;
    +
    343 // Alternative: use std::complex<T2> or xcomplex<T2, T2, bool> depending on T1
    +
    344 using type = std::conditional_t<cond, T1, T2>;
    +
    345 };
    +
    346
    +
    347 template <class T1, class T2>
    +
    348 using conditional_promote_to_complex_t = typename conditional_promote_to_complex<T1, T2>::type;
    +
    349 }
    +
    350
    +
    351 template <class E1, class E2>
    +
    + +
    353 {
    +
    354 private:
    +
    355
    +
    356 using e1_value_type = typename E1::value_type;
    +
    357 using e2_value_type = typename E2::value_type;
    +
    358
    +
    359 template <class T>
    +
    360 using is_bool = std::is_same<T, bool>;
    +
    361
    +
    362 static constexpr bool is_bool_conversion()
    +
    363 {
    +
    364 return is_bool<e2_value_type>::value && !is_bool<e1_value_type>::value;
    +
    365 }
    +
    366
    +
    367 static constexpr bool contiguous_layout()
    +
    368 {
    +
    369 return E1::contiguous_layout && E2::contiguous_layout;
    +
    370 }
    +
    371
    +
    372 static constexpr bool convertible_types()
    +
    373 {
    +
    374 return std::is_convertible<e2_value_type, e1_value_type>::value && !is_bool_conversion();
    +
    375 }
    +
    376
    +
    377 static constexpr bool use_xsimd()
    +
    378 {
    +
    379 return xt_simd::simd_traits<int8_t>::size > 1;
    +
    380 }
    +
    381
    +
    382 template <class T>
    +
    383 static constexpr bool simd_size_impl()
    +
    384 {
    +
    385 return xt_simd::simd_traits<T>::size > 1 || (is_bool<T>::value && use_xsimd());
    +
    386 }
    +
    387
    +
    388 static constexpr bool simd_size()
    +
    389 {
    +
    390 return simd_size_impl<e1_value_type>() && simd_size_impl<e2_value_type>();
    +
    391 }
    +
    392
    +
    393 static constexpr bool simd_interface()
    +
    394 {
    + + +
    397 }
    +
    398
    +
    399 public:
    +
    400
    +
    401 // constexpr methods instead of constexpr data members avoid the need of definitions at namespace
    +
    402 // scope of these data members (since they are odr-used).
    +
    403
    +
    404 static constexpr bool simd_assign()
    +
    405 {
    +
    406 return convertible_types() && simd_size() && simd_interface();
    +
    407 }
    +
    408
    +
    409 static constexpr bool linear_assign(const E1& e1, const E2& e2, bool trivial)
    +
    410 {
    +
    411 return trivial && detail::is_linear_assign(e1, e2);
    +
    412 }
    +
    413
    +
    414 static constexpr bool strided_assign()
    +
    415 {
    +
    416 return detail::use_strided_loop<E1>::value && detail::use_strided_loop<E2>::value;
    +
    417 }
    +
    418
    +
    419 static constexpr bool simd_linear_assign()
    +
    420 {
    +
    421 return contiguous_layout() && simd_assign();
    +
    422 }
    +
    423
    +
    424 static constexpr bool simd_strided_assign()
    +
    425 {
    +
    426 return strided_assign() && simd_assign();
    +
    427 }
    +
    428
    +
    429 static constexpr bool simd_linear_assign(const E1& e1, const E2& e2)
    +
    430 {
    +
    431 return simd_assign() && detail::linear_dynamic_layout(e1, e2);
    +
    432 }
    +
    433
    +
    434 using e2_requested_value_type = std::
    +
    435 conditional_t<is_bool<e2_value_type>::value, typename E2::bool_load_type, e2_value_type>;
    +
    436 using requested_value_type = detail::conditional_promote_to_complex_t<e1_value_type, e2_requested_value_type>;
    +
    437 };
    +
    +
    438
    +
    439 template <class E1, class E2>
    + +
    441 xexpression<E1>& e1,
    +
    442 const xexpression<E2>& e2,
    +
    443 bool trivial
    +
    444 )
    +
    445 {
    +
    446 E1& de1 = e1.derived_cast();
    +
    447 const E2& de2 = e2.derived_cast();
    +
    448 using traits = xassign_traits<E1, E2>;
    +
    449
    +
    450 bool linear_assign = traits::linear_assign(de1, de2, trivial);
    +
    451 constexpr bool simd_assign = traits::simd_assign();
    +
    452 constexpr bool simd_linear_assign = traits::simd_linear_assign();
    +
    453 constexpr bool simd_strided_assign = traits::simd_strided_assign();
    +
    454 if (linear_assign)
    +
    455 {
    +
    456 if (simd_linear_assign || traits::simd_linear_assign(de1, de2))
    +
    457 {
    +
    458 // Do not use linear_assigner<true> here since it will make the compiler
    +
    459 // instantiate this branch even if the runtime condition is false, resulting
    +
    460 // in compilation error for expressions that do not provide a SIMD interface.
    +
    461 // simd_assign is true if simd_linear_assign() or simd_linear_assign(de1, de2)
    +
    462 // is true.
    +
    463 linear_assigner<simd_assign>::run(de1, de2);
    +
    464 }
    +
    465 else
    +
    466 {
    +
    467 linear_assigner<false>::run(de1, de2);
    +
    468 }
    +
    469 }
    +
    470 else if (simd_strided_assign)
    +
    471 {
    +
    472 strided_loop_assigner<simd_strided_assign>::run(de1, de2);
    +
    473 }
    +
    474 else
    +
    475 {
    + +
    477 }
    +
    478 }
    +
    479
    +
    480 template <class Tag>
    +
    481 template <class E1, class E2>
    +
    482 inline void xexpression_assigner<Tag>::assign_xexpression(E1& e1, const E2& e2)
    +
    483 {
    +
    484 bool trivial_broadcast = resize(e1.derived_cast(), e2.derived_cast());
    +
    485 base_type::assign_data(e1, e2, trivial_broadcast);
    +
    486 }
    +
    487
    +
    488 template <class Tag>
    +
    489 template <class E1, class E2>
    +
    490 inline void xexpression_assigner<Tag>::computed_assign(xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    491 {
    +
    492 using shape_type = typename E1::shape_type;
    +
    493 using comperator_type = std::greater<typename shape_type::value_type>;
    +
    494
    +
    495 using size_type = typename E1::size_type;
    +
    496
    +
    497 E1& de1 = e1.derived_cast();
    +
    498 const E2& de2 = e2.derived_cast();
    +
    499
    +
    500 size_type dim2 = de2.dimension();
    +
    501 shape_type shape = uninitialized_shape<shape_type>(dim2);
    +
    502
    +
    503 bool trivial_broadcast = de2.broadcast_shape(shape, true);
    +
    504
    +
    505 auto&& de1_shape = de1.shape();
    +
    506 if (dim2 > de1.dimension()
    +
    507 || std::lexicographical_compare(
    +
    508 shape.begin(),
    +
    509 shape.end(),
    +
    510 de1_shape.begin(),
    +
    511 de1_shape.end(),
    +
    512 comperator_type()
    +
    513 ))
    +
    514 {
    +
    515 typename E1::temporary_type tmp(shape);
    +
    516 base_type::assign_data(tmp, e2, trivial_broadcast);
    +
    517 de1.assign_temporary(std::move(tmp));
    +
    518 }
    +
    519 else
    +
    520 {
    +
    521 base_type::assign_data(e1, e2, trivial_broadcast);
    +
    522 }
    +
    523 }
    +
    524
    +
    525 template <class Tag>
    +
    526 template <class E1, class E2, class F>
    +
    527 inline void xexpression_assigner<Tag>::scalar_computed_assign(xexpression<E1>& e1, const E2& e2, F&& f)
    +
    528 {
    +
    529 E1& d = e1.derived_cast();
    +
    530 using size_type = typename E1::size_type;
    +
    531 auto dst = d.storage().begin();
    +
    532 for (size_type i = d.size(); i > 0; --i)
    +
    533 {
    +
    534 *dst = f(*dst, e2);
    +
    535 ++dst;
    +
    536 }
    +
    537 }
    +
    538
    +
    539 template <class Tag>
    +
    540 template <class E1, class E2>
    +
    541 inline void
    +
    542 xexpression_assigner<Tag>::assert_compatible_shape(const xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    543 {
    +
    544 const E1& de1 = e1.derived_cast();
    +
    545 const E2& de2 = e2.derived_cast();
    +
    546 if (!broadcastable(de2.shape(), de1.shape()))
    +
    547 {
    +
    548 throw_broadcast_error(de2.shape(), de1.shape());
    +
    549 }
    +
    550 }
    +
    551
    +
    552 namespace detail
    +
    553 {
    +
    554 template <bool B, class... CT>
    +
    555 struct static_trivial_broadcast;
    +
    556
    +
    557 template <class... CT>
    +
    558 struct static_trivial_broadcast<true, CT...>
    +
    559 {
    +
    560 static constexpr bool value = detail::promote_index<typename std::decay_t<CT>::shape_type...>::value;
    +
    561 };
    +
    562
    +
    563 template <class... CT>
    +
    564 struct static_trivial_broadcast<false, CT...>
    +
    565 {
    +
    566 static constexpr bool value = false;
    +
    567 };
    +
    568 }
    +
    569
    +
    570 template <class Tag>
    +
    571 template <class E1, class E2>
    +
    572 inline bool xexpression_assigner<Tag>::resize(E1& e1, const E2& e2)
    +
    573 {
    +
    574 // If our RHS is not a xfunction, we know that the RHS is at least potentially trivial
    +
    575 // We check the strides of the RHS in detail::is_trivial_broadcast to see if they match up!
    +
    576 // So we can skip a shape copy and a call to broadcast_shape(...)
    +
    577 e1.resize(e2.shape());
    +
    578 return true;
    +
    579 }
    +
    580
    +
    581 template <class Tag>
    +
    582 template <class E1, class F, class... CT>
    +
    583 inline bool xexpression_assigner<Tag>::resize(E1& e1, const xfunction<F, CT...>& e2)
    +
    584 {
    +
    585 if constexpr (detail::is_fixed<typename xfunction<F, CT...>::shape_type>::value)
    +
    586 {
    +
    587 /*
    +
    588 * If the shape of the xfunction is statically known, we can compute the broadcast triviality
    +
    589 * at compile time plus we can resize right away.
    +
    590 */
    +
    591 // resize in case LHS is not a fixed size container. If it is, this is a NOP
    +
    592 e1.resize(typename xfunction<F, CT...>::shape_type{});
    +
    593 return detail::static_trivial_broadcast<
    +
    594 detail::is_fixed<typename xfunction<F, CT...>::shape_type>::value,
    +
    595 CT...>::value;
    +
    596 }
    +
    597 else
    +
    598 {
    +
    599 using index_type = xindex_type_t<typename E1::shape_type>;
    +
    600 using size_type = typename E1::size_type;
    +
    601 size_type size = e2.dimension();
    +
    602 index_type shape = uninitialized_shape<index_type>(size);
    +
    603 bool trivial_broadcast = e2.broadcast_shape(shape, true);
    +
    604 e1.resize(std::move(shape));
    +
    605 return trivial_broadcast;
    +
    606 }
    +
    607 }
    +
    608
    +
    609 /***********************************
    +
    610 * stepper_assigner implementation *
    +
    611 ***********************************/
    +
    612
    +
    613 template <class FROM, class TO>
    +
    + +
    615 {
    +
    616 using argument_type = std::decay_t<FROM>;
    +
    617 using result_type = std::decay_t<TO>;
    +
    618
    +
    619 static const bool value = xtl::is_arithmetic<result_type>::value
    +
    620 && (sizeof(result_type) < sizeof(argument_type)
    +
    621 || (xtl::is_integral<result_type>::value
    +
    622 && std::is_floating_point<argument_type>::value));
    +
    623 };
    +
    +
    624
    +
    625 template <class FROM, class TO>
    +
    + +
    627 {
    +
    628 using argument_type = std::decay_t<FROM>;
    +
    629 using result_type = std::decay_t<TO>;
    +
    630
    +
    631 static const bool value = xtl::is_signed<argument_type>::value != xtl::is_signed<result_type>::value;
    +
    632 };
    +
    +
    633
    +
    634 template <class FROM, class TO>
    +
    + +
    636 {
    +
    637 using argument_type = std::decay_t<FROM>;
    +
    638 using result_type = std::decay_t<TO>;
    +
    639
    +
    640 static const bool value = is_narrowing_conversion<argument_type, result_type>::value
    +
    641 || has_sign_conversion<argument_type, result_type>::value;
    +
    642 };
    +
    +
    643
    +
    644 template <class E1, class E2, layout_type L>
    +
    645 inline stepper_assigner<E1, E2, L>::stepper_assigner(E1& e1, const E2& e2)
    +
    646 : m_e1(e1)
    +
    647 , m_lhs(e1.stepper_begin(e1.shape()))
    +
    648 , m_rhs(e2.stepper_begin(e1.shape()))
    +
    649 , m_index(xtl::make_sequence<index_type>(e1.shape().size(), size_type(0)))
    +
    650 {
    +
    651 }
    +
    652
    +
    653 template <class E1, class E2, layout_type L>
    +
    654 inline void stepper_assigner<E1, E2, L>::run()
    +
    655 {
    +
    656 using tmp_size_type = typename E1::size_type;
    +
    657 using argument_type = std::decay_t<decltype(*m_rhs)>;
    +
    658 using result_type = std::decay_t<decltype(*m_lhs)>;
    +
    659 constexpr bool needs_cast = has_assign_conversion<argument_type, result_type>::value;
    +
    660
    +
    661 tmp_size_type s = m_e1.size();
    +
    662 for (tmp_size_type i = 0; i < s; ++i)
    +
    663 {
    + +
    665 stepper_tools<L>::increment_stepper(*this, m_index, m_e1.shape());
    +
    666 }
    +
    667 }
    +
    668
    +
    669 template <class E1, class E2, layout_type L>
    +
    670 inline void stepper_assigner<E1, E2, L>::step(size_type i)
    +
    671 {
    +
    672 m_lhs.step(i);
    +
    673 m_rhs.step(i);
    +
    674 }
    +
    675
    +
    676 template <class E1, class E2, layout_type L>
    +
    677 inline void stepper_assigner<E1, E2, L>::step(size_type i, size_type n)
    +
    678 {
    +
    679 m_lhs.step(i, n);
    +
    680 m_rhs.step(i, n);
    +
    681 }
    +
    682
    +
    683 template <class E1, class E2, layout_type L>
    +
    684 inline void stepper_assigner<E1, E2, L>::reset(size_type i)
    +
    685 {
    +
    686 m_lhs.reset(i);
    +
    687 m_rhs.reset(i);
    +
    688 }
    +
    689
    +
    690 template <class E1, class E2, layout_type L>
    +
    691 inline void stepper_assigner<E1, E2, L>::to_end(layout_type l)
    +
    692 {
    +
    693 m_lhs.to_end(l);
    +
    694 m_rhs.to_end(l);
    +
    695 }
    +
    696
    +
    697 /**********************************
    +
    698 * linear_assigner implementation *
    +
    699 **********************************/
    +
    700
    +
    701 template <bool simd_assign>
    +
    702 template <class E1, class E2>
    +
    703 inline void linear_assigner<simd_assign>::run(E1& e1, const E2& e2)
    +
    704 {
    +
    705 using lhs_align_mode = xt_simd::container_alignment_t<E1>;
    +
    706 constexpr bool is_aligned = std::is_same<lhs_align_mode, aligned_mode>::value;
    +
    707 using rhs_align_mode = std::conditional_t<is_aligned, inner_aligned_mode, unaligned_mode>;
    +
    708 using e1_value_type = typename E1::value_type;
    +
    709 using e2_value_type = typename E2::value_type;
    +
    710 using value_type = typename xassign_traits<E1, E2>::requested_value_type;
    +
    711 using simd_type = xt_simd::simd_type<value_type>;
    +
    712 using size_type = typename E1::size_type;
    +
    713 size_type size = e1.size();
    +
    714 constexpr size_type simd_size = simd_type::size;
    +
    715 constexpr bool needs_cast = has_assign_conversion<e2_value_type, e1_value_type>::value;
    +
    716
    +
    717 size_type align_begin = is_aligned ? 0 : xt_simd::get_alignment_offset(e1.data(), size, simd_size);
    +
    718 size_type align_end = align_begin + ((size - align_begin) & ~(simd_size - 1));
    +
    719
    +
    720 for (size_type i = 0; i < align_begin; ++i)
    +
    721 {
    +
    722 e1.data_element(i) = conditional_cast<needs_cast, e1_value_type>(e2.data_element(i));
    +
    723 }
    +
    724
    +
    725#if defined(XTENSOR_USE_TBB)
    +
    726 if (size >= XTENSOR_TBB_THRESHOLD)
    +
    727 {
    +
    728 tbb::static_partitioner ap;
    +
    729 tbb::parallel_for(
    +
    730 align_begin,
    +
    731 align_end,
    +
    732 simd_size,
    +
    733 [&e1, &e2](size_t i)
    +
    734 {
    +
    735 e1.template store_simd<lhs_align_mode>(
    +
    736 i,
    +
    737 e2.template load_simd<rhs_align_mode, value_type>(i)
    +
    738 );
    +
    739 },
    +
    740 ap
    +
    741 );
    +
    742 }
    +
    743 else
    +
    744 {
    +
    745 for (size_type i = align_begin; i < align_end; i += simd_size)
    +
    746 {
    +
    747 e1.template store_simd<lhs_align_mode>(i, e2.template load_simd<rhs_align_mode, value_type>(i));
    +
    748 }
    +
    749 }
    +
    750#elif defined(XTENSOR_USE_OPENMP)
    +
    751 if (size >= size_type(XTENSOR_OPENMP_TRESHOLD))
    +
    752 {
    +
    753#pragma omp parallel for default(none) shared(align_begin, align_end, e1, e2)
    +
    754#ifndef _WIN32
    +
    755 for (size_type i = align_begin; i < align_end; i += simd_size)
    +
    756 {
    +
    757 e1.template store_simd<lhs_align_mode>(i, e2.template load_simd<rhs_align_mode, value_type>(i));
    +
    758 }
    +
    759#else
    +
    760 for (auto i = static_cast<std::ptrdiff_t>(align_begin); i < static_cast<std::ptrdiff_t>(align_end);
    +
    761 i += static_cast<std::ptrdiff_t>(simd_size))
    +
    762 {
    +
    763 size_type ui = static_cast<size_type>(i);
    +
    764 e1.template store_simd<lhs_align_mode>(ui, e2.template load_simd<rhs_align_mode, value_type>(ui));
    +
    765 }
    +
    766#endif
    +
    767 }
    +
    768 else
    +
    769 {
    +
    770 for (size_type i = align_begin; i < align_end; i += simd_size)
    +
    771 {
    +
    772 e1.template store_simd<lhs_align_mode>(i, e2.template load_simd<rhs_align_mode, value_type>(i));
    +
    773 }
    +
    774 }
    +
    775#else
    +
    776 for (size_type i = align_begin; i < align_end; i += simd_size)
    +
    777 {
    +
    778 e1.template store_simd<lhs_align_mode>(i, e2.template load_simd<rhs_align_mode, value_type>(i));
    +
    779 }
    +
    780#endif
    +
    781 for (size_type i = align_end; i < size; ++i)
    +
    782 {
    +
    783 e1.data_element(i) = conditional_cast<needs_cast, e1_value_type>(e2.data_element(i));
    +
    784 }
    +
    785 }
    +
    786
    +
    787 template <class E1, class E2>
    +
    788 inline void linear_assigner<false>::run(E1& e1, const E2& e2)
    +
    789 {
    +
    790 using is_convertible = std::
    +
    791 is_convertible<typename std::decay_t<E2>::value_type, typename std::decay_t<E1>::value_type>;
    +
    792 // If the types are not compatible, this function is still instantiated but never called.
    +
    793 // To avoid compilation problems in effectively unused code trivial_assigner_run_impl is
    +
    794 // empty in this case.
    +
    795 run_impl(e1, e2, is_convertible());
    +
    796 }
    +
    797
    +
    798 template <class E1, class E2>
    +
    799 inline void linear_assigner<false>::run_impl(E1& e1, const E2& e2, std::true_type /*is_convertible*/)
    +
    800 {
    +
    801 using value_type = typename E1::value_type;
    +
    802 using size_type = typename E1::size_type;
    +
    803 auto src = linear_begin(e2);
    +
    804 auto dst = linear_begin(e1);
    +
    805 size_type n = e1.size();
    +
    806#if defined(XTENSOR_USE_TBB)
    +
    807 tbb::static_partitioner sp;
    +
    808 tbb::parallel_for(
    +
    809 std::ptrdiff_t(0),
    +
    810 static_cast<std::ptrdiff_t>(n),
    +
    811 [&](std::ptrdiff_t i)
    +
    812 {
    +
    813 *(dst + i) = static_cast<value_type>(*(src + i));
    +
    814 },
    +
    815 sp
    +
    816 );
    +
    817#elif defined(XTENSOR_USE_OPENMP)
    +
    818 if (n >= XTENSOR_OPENMP_TRESHOLD)
    +
    819 {
    +
    820#pragma omp parallel for default(none) shared(src, dst, n)
    +
    821 for (std::ptrdiff_t i = std::ptrdiff_t(0); i < static_cast<std::ptrdiff_t>(n); i++)
    +
    822 {
    +
    823 *(dst + i) = static_cast<value_type>(*(src + i));
    +
    824 }
    +
    825 }
    +
    826 else
    +
    827 {
    +
    828 for (; n > size_type(0); --n)
    +
    829 {
    +
    830 *dst = static_cast<value_type>(*src);
    +
    831 ++src;
    +
    832 ++dst;
    +
    833 }
    +
    834 }
    +
    835#else
    +
    836 for (; n > size_type(0); --n)
    +
    837 {
    +
    838 *dst = static_cast<value_type>(*src);
    +
    839 ++src;
    +
    840 ++dst;
    +
    841 }
    +
    842#endif
    +
    843 }
    +
    844
    +
    845 template <class E1, class E2>
    +
    846 inline void linear_assigner<false>::run_impl(E1&, const E2&, std::false_type /*is_convertible*/)
    +
    847 {
    +
    848 XTENSOR_PRECONDITION(false, "Internal error: linear_assigner called with unrelated types.");
    +
    849 }
    +
    850
    +
    851 /****************************************
    +
    852 * strided_loop_assigner implementation *
    +
    853 ****************************************/
    +
    854
    +
    855 namespace strided_assign_detail
    +
    856 {
    +
    857 template <layout_type layout>
    +
    858 struct idx_tools;
    +
    859
    +
    860 template <>
    +
    + +
    862 {
    +
    863 template <class T>
    +
    864 static void next_idx(T& outer_index, T& outer_shape)
    +
    865 {
    +
    866 auto i = outer_index.size();
    +
    867 for (; i > 0; --i)
    +
    868 {
    +
    869 if (outer_index[i - 1] + 1 >= outer_shape[i - 1])
    +
    870 {
    +
    871 outer_index[i - 1] = 0;
    +
    872 }
    +
    873 else
    +
    874 {
    +
    875 outer_index[i - 1]++;
    +
    876 break;
    +
    877 }
    +
    878 }
    +
    879 }
    +
    880
    +
    881 template <class T>
    +
    882 static void nth_idx(size_t n, T& outer_index, const T& outer_shape)
    +
    883 {
    +
    884 dynamic_shape<std::size_t> stride_sizes;
    +
    885 xt::resize_container(stride_sizes, outer_shape.size());
    +
    886 // compute strides
    +
    887 using size_type = typename T::size_type;
    +
    888 for (size_type i = outer_shape.size(); i > 0; i--)
    +
    889 {
    +
    890 stride_sizes[i - 1] = (i == outer_shape.size()) ? 1 : stride_sizes[i] * outer_shape[i];
    +
    891 }
    +
    892
    +
    893 // compute index
    +
    894 for (size_type i = 0; i < outer_shape.size(); i++)
    +
    895 {
    +
    896 auto d_idx = n / stride_sizes[i];
    +
    897 outer_index[i] = d_idx;
    +
    898 n -= d_idx * stride_sizes[i];
    +
    899 }
    +
    900 }
    +
    901 };
    +
    +
    902
    +
    903 template <>
    +
    + +
    905 {
    +
    906 template <class T>
    +
    907 static void next_idx(T& outer_index, T& outer_shape)
    +
    908 {
    +
    909 using size_type = typename T::size_type;
    +
    910 size_type i = 0;
    +
    911 auto sz = outer_index.size();
    +
    912 for (; i < sz; ++i)
    +
    913 {
    +
    914 if (outer_index[i] + 1 >= outer_shape[i])
    +
    915 {
    +
    916 outer_index[i] = 0;
    +
    917 }
    +
    918 else
    +
    919 {
    +
    920 outer_index[i]++;
    +
    921 break;
    +
    922 }
    +
    923 }
    +
    924 }
    +
    925
    +
    926 template <class T>
    +
    927 static void nth_idx(size_t n, T& outer_index, const T& outer_shape)
    +
    928 {
    +
    929 dynamic_shape<std::size_t> stride_sizes;
    +
    930 xt::resize_container(stride_sizes, outer_shape.size());
    +
    931
    +
    932 using size_type = typename T::size_type;
    +
    933
    +
    934 // compute required strides
    +
    935 for (size_type i = 0; i < outer_shape.size(); i++)
    +
    936 {
    +
    937 stride_sizes[i] = (i == 0) ? 1 : stride_sizes[i - 1] * outer_shape[i - 1];
    +
    938 }
    +
    939
    +
    940 // compute index
    +
    941 for (size_type i = outer_shape.size(); i > 0;)
    +
    942 {
    +
    943 i--;
    +
    944 auto d_idx = n / stride_sizes[i];
    +
    945 outer_index[i] = d_idx;
    +
    946 n -= d_idx * stride_sizes[i];
    +
    947 }
    +
    948 }
    +
    949 };
    +
    +
    950
    +
    951 template <layout_type L, class S>
    +
    +
    952 struct check_strides_functor
    +
    953 {
    +
    954 using strides_type = S;
    +
    955
    +
    956 check_strides_functor(const S& strides)
    +
    957 : m_cut(L == layout_type::row_major ? 0 : strides.size())
    +
    958 , m_strides(strides)
    +
    959 {
    +
    960 }
    +
    961
    +
    962 template <class T, layout_type LE = L>
    +
    963 std::enable_if_t<LE == layout_type::row_major, std::size_t> operator()(const T& el)
    +
    964 {
    +
    965 // All dimenions less than var have differing strides
    +
    966 auto var = check_strides_overlap<layout_type::row_major>::get(m_strides, el.strides());
    +
    967 if (var > m_cut)
    +
    968 {
    +
    969 m_cut = var;
    +
    970 }
    +
    971 return m_cut;
    +
    972 }
    +
    973
    +
    974 template <class T, layout_type LE = L>
    +
    975 std::enable_if_t<LE == layout_type::column_major, std::size_t> operator()(const T& el)
    +
    976 {
    +
    977 auto var = check_strides_overlap<layout_type::column_major>::get(m_strides, el.strides());
    +
    978 // All dimensions >= var have differing strides
    +
    979 if (var < m_cut)
    +
    980 {
    +
    981 m_cut = var;
    +
    982 }
    +
    983 return m_cut;
    +
    984 }
    +
    985
    +
    986 template <class T>
    +
    987 std::size_t operator()(const xt::xscalar<T>& /*el*/)
    +
    988 {
    +
    989 return m_cut;
    +
    990 }
    +
    991
    +
    992 template <class F, class... CT>
    +
    993 std::size_t operator()(const xt::xfunction<F, CT...>& xf)
    +
    994 {
    +
    995 xt::for_each(*this, xf.arguments());
    +
    996 return m_cut;
    +
    997 }
    +
    998
    +
    999 private:
    +
    1000
    +
    1001 std::size_t m_cut;
    +
    1002 const strides_type& m_strides;
    +
    1003 };
    +
    +
    1004
    +
    1005 template <bool possible = true, class E1, class E2, std::enable_if_t<!has_strides<E1>::value || !possible, bool> = true>
    +
    1006 loop_sizes_t get_loop_sizes(const E1& e1, const E2&)
    +
    1007 {
    +
    1008 return {false, true, 1, e1.size(), e1.dimension(), e1.dimension()};
    +
    1009 }
    +
    1010
    +
    1011 template <bool possible = true, class E1, class E2, std::enable_if_t<has_strides<E1>::value && possible, bool> = true>
    +
    1012 loop_sizes_t get_loop_sizes(const E1& e1, const E2& e2)
    +
    1013 {
    +
    1014 using shape_value_type = typename E1::shape_type::value_type;
    +
    1015 bool is_row_major = true;
    +
    1016
    +
    1017 // Try to find a row-major scheme first, where the outer loop is on the first N = `cut`
    +
    1018 // dimensions, and the inner loop is
    +
    1019 is_row_major = true;
    +
    1020 auto is_zero = [](auto i)
    +
    1021 {
    +
    1022 return i == 0;
    +
    1023 };
    +
    1024 auto&& strides = e1.strides();
    +
    1025 auto it_bwd = std::find_if_not(strides.rbegin(), strides.rend(), is_zero);
    +
    1026 bool de1_row_contiguous = it_bwd != strides.rend() && *it_bwd == 1;
    +
    1027 auto it_fwd = std::find_if_not(strides.begin(), strides.end(), is_zero);
    +
    1028 bool de1_col_contiguous = it_fwd != strides.end() && *it_fwd == 1;
    +
    1029 if (de1_row_contiguous)
    +
    1030 {
    +
    1031 is_row_major = true;
    +
    1032 }
    +
    1033 else if (de1_col_contiguous)
    +
    1034 {
    +
    1035 is_row_major = false;
    +
    1036 }
    +
    1037 else
    +
    1038 {
    +
    1039 // No strided loop possible.
    +
    1040 return {false, true, 1, e1.size(), e1.dimension(), e1.dimension()};
    +
    1041 }
    +
    1042
    +
    1043 // Cut is the number of dimensions in the outer loop
    +
    1044 std::size_t cut = 0;
    +
    1045
    +
    1046 if (is_row_major)
    +
    1047 {
    +
    1048 auto csf = check_strides_functor<layout_type::row_major, decltype(e1.strides())>(e1.strides());
    +
    1049 cut = csf(e2);
    +
    1050 // This makes that only one dimension will be treated in the inner loop.
    +
    1051 if (cut < e1.strides().size() - 1)
    +
    1052 {
    +
    1053 // Only make the inner loop go over one dimension by default for now
    +
    1054 cut = e1.strides().size() - 1;
    +
    1055 }
    +
    1056 }
    +
    1057 else if (!is_row_major)
    +
    1058 {
    +
    1059 auto csf = check_strides_functor<layout_type::column_major, decltype(e1.strides())>(e1.strides()
    +
    1060 );
    +
    1061 cut = csf(e2);
    +
    1062 if (cut > 1)
    +
    1063 {
    +
    1064 // Only make the inner loop go over one dimension by default for now
    +
    1065 cut = 1;
    +
    1066 }
    +
    1067 } // can't reach here because this would have already triggered the fallback
    +
    1068
    +
    1069 std::size_t outer_loop_size = static_cast<std::size_t>(std::accumulate(
    +
    1070 e1.shape().begin(),
    +
    1071 e1.shape().begin() + static_cast<std::ptrdiff_t>(cut),
    +
    1072 shape_value_type(1),
    +
    1073 std::multiplies<shape_value_type>{}
    +
    1074 ));
    +
    1075 std::size_t inner_loop_size = static_cast<std::size_t>(std::accumulate(
    +
    1076 e1.shape().begin() + static_cast<std::ptrdiff_t>(cut),
    +
    1077 e1.shape().end(),
    +
    1078 shape_value_type(1),
    +
    1079 std::multiplies<shape_value_type>{}
    +
    1080 ));
    +
    1081
    +
    1082 if (!is_row_major)
    +
    1083 {
    +
    1084 std::swap(outer_loop_size, inner_loop_size);
    +
    1085 }
    +
    1086
    +
    1087 return {inner_loop_size > 1, is_row_major, inner_loop_size, outer_loop_size, cut, e1.dimension()};
    +
    1088 }
    +
    1089 }
    +
    1090
    +
    1091 template <bool simd>
    +
    1092 template <class E1, class E2>
    +
    1093 inline strided_assign_detail::loop_sizes_t strided_loop_assigner<simd>::get_loop_sizes(E1& e1, const E2& e2)
    +
    1094 {
    +
    1095 return strided_assign_detail::get_loop_sizes<simd>(e1, e2);
    +
    1096 }
    +
    1097
    +
    1098#define strided_parallel_assign
    +
    1099
    +
    1100 template <bool simd>
    +
    1101 template <class E1, class E2>
    +
    1102 inline void strided_loop_assigner<simd>::run(E1& e1, const E2& e2, const loop_sizes_t& loop_sizes)
    +
    1103 {
    +
    1104 bool is_row_major = loop_sizes.is_row_major;
    +
    1105 std::size_t inner_loop_size = loop_sizes.inner_loop_size;
    +
    1106 std::size_t outer_loop_size = loop_sizes.outer_loop_size;
    +
    1107 std::size_t cut = loop_sizes.cut;
    +
    1108
    +
    1109
    +
    1110 // TODO can we get rid of this and use `shape_type`?
    +
    1111 dynamic_shape<std::size_t> idx, max_shape;
    +
    1112
    +
    1113 if (is_row_major)
    +
    1114 {
    +
    1115 xt::resize_container(idx, cut);
    +
    1116 max_shape.assign(e1.shape().begin(), e1.shape().begin() + static_cast<std::ptrdiff_t>(cut));
    +
    1117 }
    +
    1118 else
    +
    1119 {
    +
    1120 xt::resize_container(idx, e1.shape().size() - cut);
    +
    1121 max_shape.assign(e1.shape().begin() + static_cast<std::ptrdiff_t>(cut), e1.shape().end());
    +
    1122 }
    +
    1123
    +
    1124 // add this when we have std::array index!
    +
    1125 // std::fill(idx.begin(), idx.end(), 0);
    +
    1126 using e1_value_type = typename E1::value_type;
    +
    1127 using e2_value_type = typename E2::value_type;
    +
    1128 constexpr bool needs_cast = has_assign_conversion<e2_value_type, e1_value_type>::value;
    +
    1129 using value_type = typename xassign_traits<E1, E2>::requested_value_type;
    +
    1130 using simd_type = std::conditional_t<
    +
    1131 std::is_same<e1_value_type, bool>::value,
    +
    1132 xt_simd::simd_bool_type<value_type>,
    +
    1133 xt_simd::simd_type<value_type>>;
    +
    1134
    +
    1135 std::size_t simd_size = inner_loop_size / simd_type::size;
    +
    1136 std::size_t simd_rest = inner_loop_size % simd_type::size;
    +
    1137
    +
    1138 auto fct_stepper = e2.stepper_begin(e1.shape());
    +
    1139 auto res_stepper = e1.stepper_begin(e1.shape());
    +
    1140
    +
    1141 // TODO in 1D case this is ambiguous -- could be RM or CM.
    +
    1142 // Use default layout to make decision
    +
    1143 std::size_t step_dim = 0;
    +
    1144 if (!is_row_major) // row major case
    +
    1145 {
    +
    1146 step_dim = cut;
    +
    1147 }
    +
    1148#if defined(XTENSOR_USE_OPENMP) && defined(strided_parallel_assign)
    +
    1149 if (outer_loop_size >= XTENSOR_OPENMP_TRESHOLD / inner_loop_size)
    +
    1150 {
    +
    1151 std::size_t first_step = true;
    +
    1152#pragma omp parallel for schedule(static) firstprivate(first_step, fct_stepper, res_stepper, idx)
    +
    1153 for (std::size_t ox = 0; ox < outer_loop_size; ++ox)
    +
    1154 {
    +
    1155 if (first_step)
    +
    1156 {
    +
    1157 is_row_major
    + +
    1159 : strided_assign_detail::idx_tools<layout_type::column_major>::nth_idx(ox, idx, max_shape);
    +
    1160
    +
    1161 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1162 {
    +
    1163 fct_stepper.step(i + step_dim, idx[i]);
    +
    1164 res_stepper.step(i + step_dim, idx[i]);
    +
    1165 }
    +
    1166 first_step = false;
    +
    1167 }
    +
    1168
    +
    1169 for (std::size_t i = 0; i < simd_size; ++i)
    +
    1170 {
    +
    1171 res_stepper.store_simd(fct_stepper.template step_simd<value_type>());
    +
    1172 }
    +
    1173 for (std::size_t i = 0; i < simd_rest; ++i)
    +
    1174 {
    +
    1175 *(res_stepper) = conditional_cast<needs_cast, e1_value_type>(*(fct_stepper));
    +
    1176 res_stepper.step_leading();
    +
    1177 fct_stepper.step_leading();
    +
    1178 }
    +
    1179
    +
    1180 // next unaligned index
    +
    1181 is_row_major
    + +
    1183 : strided_assign_detail::idx_tools<layout_type::column_major>::next_idx(idx, max_shape);
    +
    1184
    +
    1185 fct_stepper.to_begin();
    +
    1186
    +
    1187 // need to step E1 as well if not contigous assign (e.g. view)
    +
    1188 if (!E1::contiguous_layout)
    +
    1189 {
    +
    1190 res_stepper.to_begin();
    +
    1191 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1192 {
    +
    1193 fct_stepper.step(i + step_dim, idx[i]);
    +
    1194 res_stepper.step(i + step_dim, idx[i]);
    +
    1195 }
    +
    1196 }
    +
    1197 else
    +
    1198 {
    +
    1199 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1200 {
    +
    1201 fct_stepper.step(i + step_dim, idx[i]);
    +
    1202 }
    +
    1203 }
    +
    1204 }
    +
    1205 }
    +
    1206 else
    +
    1207 {
    +
    1208#elif defined(strided_parallel_assign) && defined(XTENSOR_USE_TBB)
    +
    1209 if (outer_loop_size > XTENSOR_TBB_THRESHOLD / inner_loop_size)
    +
    1210 {
    +
    1211 tbb::static_partitioner sp;
    +
    1212 tbb::parallel_for(
    +
    1213 tbb::blocked_range<size_t>(0ul, outer_loop_size),
    +
    1214 [&e1, &e2, is_row_major, step_dim, simd_size, simd_rest, &max_shape, &idx_ = idx](
    +
    1215 const tbb::blocked_range<size_t>& r
    +
    1216 )
    +
    1217 {
    +
    1218 auto idx = idx_;
    +
    1219 auto fct_stepper = e2.stepper_begin(e1.shape());
    +
    1220 auto res_stepper = e1.stepper_begin(e1.shape());
    +
    1221 std::size_t first_step = true;
    +
    1222 // #pragma omp parallel for schedule(static) firstprivate(first_step, fct_stepper,
    +
    1223 // res_stepper, idx)
    +
    1224 for (std::size_t ox = r.begin(); ox < r.end(); ++ox)
    +
    1225 {
    +
    1226 if (first_step)
    +
    1227 {
    +
    1228 is_row_major
    + +
    1230 : strided_assign_detail::idx_tools<layout_type::column_major>::nth_idx(
    +
    1231 ox,
    +
    1232 idx,
    +
    1233 max_shape
    +
    1234 );
    +
    1235
    +
    1236 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1237 {
    +
    1238 fct_stepper.step(i + step_dim, idx[i]);
    +
    1239 res_stepper.step(i + step_dim, idx[i]);
    +
    1240 }
    +
    1241 first_step = false;
    +
    1242 }
    +
    1243
    +
    1244 for (std::size_t i = 0; i < simd_size; ++i)
    +
    1245 {
    +
    1246 res_stepper.store_simd(fct_stepper.template step_simd<value_type>());
    +
    1247 }
    +
    1248 for (std::size_t i = 0; i < simd_rest; ++i)
    +
    1249 {
    +
    1250 *(res_stepper) = conditional_cast<needs_cast, e1_value_type>(*(fct_stepper));
    +
    1251 res_stepper.step_leading();
    +
    1252 fct_stepper.step_leading();
    +
    1253 }
    +
    1254
    +
    1255 // next unaligned index
    +
    1256 is_row_major
    + +
    1258 : strided_assign_detail::idx_tools<layout_type::column_major>::next_idx(idx, max_shape);
    +
    1259
    +
    1260 fct_stepper.to_begin();
    +
    1261
    +
    1262 // need to step E1 as well if not contigous assign (e.g. view)
    +
    1263 if (!E1::contiguous_layout)
    +
    1264 {
    +
    1265 res_stepper.to_begin();
    +
    1266 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1267 {
    +
    1268 fct_stepper.step(i + step_dim, idx[i]);
    +
    1269 res_stepper.step(i + step_dim, idx[i]);
    +
    1270 }
    +
    1271 }
    +
    1272 else
    +
    1273 {
    +
    1274 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1275 {
    +
    1276 fct_stepper.step(i + step_dim, idx[i]);
    +
    1277 }
    +
    1278 }
    +
    1279 }
    +
    1280 },
    +
    1281 sp
    +
    1282 );
    +
    1283 }
    +
    1284 else
    +
    1285 {
    +
    1286
    +
    1287#endif
    +
    1288 for (std::size_t ox = 0; ox < outer_loop_size; ++ox)
    +
    1289 {
    +
    1290 for (std::size_t i = 0; i < simd_size; ++i)
    +
    1291 {
    +
    1292 res_stepper.store_simd(fct_stepper.template step_simd<value_type>());
    +
    1293 }
    +
    1294 for (std::size_t i = 0; i < simd_rest; ++i)
    +
    1295 {
    +
    1296 *(res_stepper) = conditional_cast<needs_cast, e1_value_type>(*(fct_stepper));
    +
    1297 res_stepper.step_leading();
    +
    1298 fct_stepper.step_leading();
    +
    1299 }
    +
    1300
    +
    1301 is_row_major
    + +
    1303 : strided_assign_detail::idx_tools<layout_type::column_major>::next_idx(idx, max_shape);
    +
    1304
    +
    1305 fct_stepper.to_begin();
    +
    1306
    +
    1307 // need to step E1 as well if not contigous assign (e.g. view)
    +
    1308 if (!E1::contiguous_layout)
    +
    1309 {
    +
    1310 res_stepper.to_begin();
    +
    1311 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1312 {
    +
    1313 fct_stepper.step(i + step_dim, idx[i]);
    +
    1314 res_stepper.step(i + step_dim, idx[i]);
    +
    1315 }
    +
    1316 }
    +
    1317 else
    +
    1318 {
    +
    1319 for (std::size_t i = 0; i < idx.size(); ++i)
    +
    1320 {
    +
    1321 fct_stepper.step(i + step_dim, idx[i]);
    +
    1322 }
    +
    1323 }
    +
    1324 }
    +
    1325#if (defined(XTENSOR_USE_OPENMP) || defined(XTENSOR_USE_TBB)) && defined(strided_parallel_assign)
    +
    1326 }
    +
    1327#endif
    +
    1328 }
    +
    1329
    +
    1330 template <>
    +
    1331 template <class E1, class E2>
    +
    1332 inline void strided_loop_assigner<true>::run(E1& e1, const E2& e2)
    +
    1333 {
    +
    1334 strided_assign_detail::loop_sizes_t loop_sizes = strided_loop_assigner<true>::get_loop_sizes(e1, e2);
    +
    1335 if (loop_sizes.can_do_strided_assign)
    +
    1336 {
    +
    1337 run(e1, e2, loop_sizes);
    +
    1338 }
    +
    1339 else
    +
    1340 {
    +
    1341 // trigger the fallback assigner
    + +
    1343 }
    +
    1344 }
    +
    1345
    +
    1346 template <>
    +
    1347 template <class E1, class E2>
    +
    1348 inline void strided_loop_assigner<false>::run(E1& /*e1*/, const E2& /*e2*/, const loop_sizes_t&)
    +
    1349 {
    +
    1350 }
    +
    1351
    +
    1352 template <>
    +
    1353 template <class E1, class E2>
    +
    1354 inline void strided_loop_assigner<false>::run(E1& e1, const E2& e2)
    +
    1355 {
    +
    1356 // trigger the fallback assigner
    + +
    1358 }
    +
    1359}
    +
    1360
    +
    1361#endif
    + + + + + + +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    Multidimensional function operating on xtensor expressions.
    + +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    constexpr layout_type compute_layout(Args... args) noexcept
    Implementation of the following logical table:
    Definition xlayout.hpp:88
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    auto conditional_cast(U &&u)
    Perform a type cast when a condition is true.
    Definition xutils.hpp:677
    + + + + + + + + + +
    +
    + + + + diff --git a/xaxis__iterator_8hpp_source.html b/xaxis__iterator_8hpp_source.html new file mode 100644 index 000000000..2b2500633 --- /dev/null +++ b/xaxis__iterator_8hpp_source.html @@ -0,0 +1,404 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xaxis_iterator.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xaxis_iterator.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_AXIS_ITERATOR_HPP
    +
    11#define XTENSOR_AXIS_ITERATOR_HPP
    +
    12
    +
    13#include "../views/xstrided_view.hpp"
    +
    14
    +
    15namespace xt
    +
    16{
    +
    17
    +
    18 /******************
    +
    19 * xaxis_iterator *
    +
    20 ******************/
    +
    21
    +
    32 template <class CT>
    +
    + +
    34 {
    +
    35 public:
    +
    36
    +
    37 using self_type = xaxis_iterator<CT>;
    +
    38
    +
    39 using xexpression_type = std::decay_t<CT>;
    +
    40 using size_type = typename xexpression_type::size_type;
    +
    41 using difference_type = typename xexpression_type::difference_type;
    +
    42 using shape_type = typename xexpression_type::shape_type;
    +
    43 using value_type = xstrided_view<CT, shape_type>;
    +
    44 using reference = std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>;
    +
    45 using pointer = xtl::xclosure_pointer<std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>>;
    +
    46
    +
    47 using iterator_category = std::forward_iterator_tag;
    +
    48
    +
    49 template <class CTA>
    +
    50 xaxis_iterator(CTA&& e, size_type axis);
    +
    51 template <class CTA>
    +
    52 xaxis_iterator(CTA&& e, size_type axis, size_type index, size_type offset);
    +
    53
    +
    54 self_type& operator++();
    +
    55 self_type operator++(int);
    +
    56
    +
    57 reference operator*() const;
    +
    58 pointer operator->() const;
    +
    59
    +
    60 bool equal(const self_type& rhs) const;
    +
    61
    +
    62 private:
    +
    63
    +
    64 using storing_type = xtl::ptr_closure_type_t<CT>;
    +
    65 mutable storing_type p_expression;
    +
    66 size_type m_index;
    +
    67 size_type m_add_offset;
    +
    68 value_type m_sv;
    +
    69
    +
    70 template <class T, class CTA>
    +
    71 T get_storage_init(CTA&& e) const;
    +
    72 };
    +
    +
    73
    +
    74 template <class CT>
    +
    75 bool operator==(const xaxis_iterator<CT>& lhs, const xaxis_iterator<CT>& rhs);
    +
    76
    +
    77 template <class CT>
    +
    78 bool operator!=(const xaxis_iterator<CT>& lhs, const xaxis_iterator<CT>& rhs);
    +
    79
    +
    80 template <class E>
    +
    81 auto axis_begin(E&& e);
    +
    82
    +
    83 template <class E>
    +
    84 auto axis_begin(E&& e, typename std::decay_t<E>::size_type axis);
    +
    85
    +
    86 template <class E>
    +
    87 auto axis_end(E&& e);
    +
    88
    +
    89 template <class E>
    +
    90 auto axis_end(E&& e, typename std::decay_t<E>::size_type axis);
    +
    91
    +
    92 /*********************************
    +
    93 * xaxis_iterator implementation *
    +
    94 *********************************/
    +
    95
    +
    96 namespace detail
    +
    97 {
    +
    98 template <class CT>
    +
    99 auto derive_xstrided_view(
    +
    100 CT&& e,
    +
    101 typename std::decay_t<CT>::size_type axis,
    +
    102 typename std::decay_t<CT>::size_type offset
    +
    103 )
    +
    104 {
    +
    105 using xexpression_type = std::decay_t<CT>;
    +
    106 using shape_type = typename xexpression_type::shape_type;
    +
    107 using strides_type = typename xexpression_type::strides_type;
    +
    108
    +
    109 const auto& e_shape = e.shape();
    +
    110 shape_type shape(e_shape.size() - 1);
    +
    111 auto nxt = std::copy(e_shape.cbegin(), e_shape.cbegin() + axis, shape.begin());
    +
    112 std::copy(e_shape.cbegin() + axis + 1, e_shape.end(), nxt);
    +
    113
    +
    114 const auto& e_strides = e.strides();
    +
    115 strides_type strides(e_strides.size() - 1);
    +
    116 auto nxt_strides = std::copy(e_strides.cbegin(), e_strides.cbegin() + axis, strides.begin());
    +
    117 std::copy(e_strides.cbegin() + axis + 1, e_strides.end(), nxt_strides);
    +
    118
    +
    119 return strided_view(std::forward<CT>(e), std::move(shape), std::move(strides), offset, e.layout());
    +
    120 }
    +
    121 }
    +
    122
    +
    123 template <class CT>
    +
    124 template <class T, class CTA>
    +
    125 inline T xaxis_iterator<CT>::get_storage_init(CTA&& e) const
    +
    126 {
    +
    127 if constexpr (xtl::pointer_concept<T>)
    +
    128 {
    +
    129 return &e;
    +
    130 }
    +
    131 else
    +
    132 {
    +
    133 return e;
    +
    134 }
    +
    135 }
    +
    136
    +
    141
    +
    147 template <class CT>
    +
    148 template <class CTA>
    +
    +
    149 inline xaxis_iterator<CT>::xaxis_iterator(CTA&& e, size_type axis)
    +
    150 : xaxis_iterator(std::forward<CTA>(e), axis, 0, e.data_offset())
    +
    151 {
    +
    152 }
    +
    +
    153
    +
    162 template <class CT>
    +
    163 template <class CTA>
    +
    +
    164 inline xaxis_iterator<CT>::xaxis_iterator(CTA&& e, size_type axis, size_type index, size_type offset)
    +
    165 : p_expression(get_storage_init<storing_type>(std::forward<CTA>(e)))
    +
    166 , m_index(index)
    +
    167 , m_add_offset(static_cast<size_type>(e.strides()[axis]))
    +
    168 , m_sv(detail::derive_xstrided_view<CTA>(std::forward<CTA>(e), axis, offset))
    +
    169 {
    +
    170 }
    +
    +
    171
    +
    173
    +
    178
    +
    181 template <class CT>
    +
    +
    182 inline auto xaxis_iterator<CT>::operator++() -> self_type&
    +
    183 {
    +
    184 m_sv.set_offset(m_sv.data_offset() + m_add_offset);
    +
    185 ++m_index;
    +
    186 return *this;
    +
    187 }
    +
    +
    188
    +
    193 template <class CT>
    +
    +
    194 inline auto xaxis_iterator<CT>::operator++(int) -> self_type
    +
    195 {
    +
    196 self_type tmp(*this);
    +
    197 ++(*this);
    +
    198 return tmp;
    +
    199 }
    +
    +
    200
    +
    202
    +
    207
    +
    212 template <class CT>
    +
    +
    213 inline auto xaxis_iterator<CT>::operator*() const -> reference
    +
    214 {
    +
    215 return m_sv;
    +
    216 }
    +
    +
    217
    +
    223 template <class CT>
    +
    +
    224 inline auto xaxis_iterator<CT>::operator->() const -> pointer
    +
    225 {
    +
    226 return xtl::closure_pointer(operator*());
    +
    227 }
    +
    +
    228
    +
    230
    +
    231 /*
    +
    232 * @name Comparisons
    +
    233 */
    +
    235
    +
    241 template <class CT>
    +
    +
    242 inline bool xaxis_iterator<CT>::equal(const self_type& rhs) const
    +
    243 {
    +
    244 return p_expression == rhs.p_expression && m_index == rhs.m_index
    +
    245 && m_sv.data_offset() == rhs.m_sv.data_offset();
    +
    246 }
    +
    +
    247
    +
    253 template <class CT>
    +
    +
    254 inline bool operator==(const xaxis_iterator<CT>& lhs, const xaxis_iterator<CT>& rhs)
    +
    255 {
    +
    256 return lhs.equal(rhs);
    +
    257 }
    +
    +
    258
    +
    263 template <class CT>
    +
    +
    264 inline bool operator!=(const xaxis_iterator<CT>& lhs, const xaxis_iterator<CT>& rhs)
    +
    265 {
    +
    266 return !(lhs == rhs);
    +
    267 }
    +
    +
    268
    +
    270
    +
    275
    +
    281 template <class E>
    +
    +
    282 inline auto axis_begin(E&& e)
    +
    283 {
    +
    284 using return_type = xaxis_iterator<xtl::closure_type_t<E>>;
    +
    285 return return_type(std::forward<E>(e), 0);
    +
    286 }
    +
    +
    287
    +
    295 template <class E>
    +
    +
    296 inline auto axis_begin(E&& e, typename std::decay_t<E>::size_type axis)
    +
    297 {
    +
    298 using return_type = xaxis_iterator<xtl::closure_type_t<E>>;
    +
    299 return return_type(std::forward<E>(e), axis);
    +
    300 }
    +
    +
    301
    +
    309 template <class E>
    +
    +
    310 inline auto axis_end(E&& e)
    +
    311 {
    +
    312 using size_type = typename std::decay_t<E>::size_type;
    +
    313 using return_type = xaxis_iterator<xtl::closure_type_t<E>>;
    +
    314 return return_type(
    +
    315 std::forward<E>(e),
    +
    316 0,
    +
    317 e.shape()[0],
    +
    318 static_cast<size_type>(e.strides()[0]) * e.shape()[0]
    +
    319 );
    +
    320 }
    +
    +
    321
    +
    330 template <class E>
    +
    +
    331 inline auto axis_end(E&& e, typename std::decay_t<E>::size_type axis)
    +
    332 {
    +
    333 using size_type = typename std::decay_t<E>::size_type;
    +
    334 using return_type = xaxis_iterator<xtl::closure_type_t<E>>;
    +
    335 return return_type(
    +
    336 std::forward<E>(e),
    +
    337 axis,
    +
    338 e.shape()[axis],
    +
    339 static_cast<size_type>(e.strides()[axis]) * e.shape()[axis]
    +
    340 );
    +
    341 }
    +
    +
    342
    +
    344}
    +
    345
    +
    346#endif
    +
    Class for iteration over (N-1)-dimensional slices, where N is the dimension of the underlying express...
    +
    reference operator*() const
    Returns the strided view at the current iteration position.
    +
    pointer operator->() const
    Returns a pointer to the strided view at the current iteration position.
    +
    xaxis_iterator(CTA &&e, size_type axis)
    Constructs an xaxis_iterator.
    +
    self_type & operator++()
    Increments the iterator to the next position and returns it.
    +
    bool equal(const self_type &rhs) const
    Checks equality of the xaxis_slice_iterator and rhs.
    +
    View of an xexpression using strides.
    +
    size_type data_offset() const noexcept
    Returns the offset to the first element in the view.
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto axis_begin(E &&e)
    Returns an iterator to the first element of the expression for axis 0.
    +
    auto axis_end(E &&e)
    Returns an iterator to the element following the last element of the expression for axis 0.
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    +
    + + + + diff --git a/xaxis__slice__iterator_8hpp_source.html b/xaxis__slice__iterator_8hpp_source.html new file mode 100644 index 000000000..853d0cf4b --- /dev/null +++ b/xaxis__slice__iterator_8hpp_source.html @@ -0,0 +1,423 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xaxis_slice_iterator.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xaxis_slice_iterator.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_AXIS_SLICE_ITERATOR_HPP
    +
    11#define XTENSOR_AXIS_SLICE_ITERATOR_HPP
    +
    12
    +
    13#include "../views/xstrided_view.hpp"
    +
    14
    +
    15namespace xt
    +
    16{
    +
    17
    +
    27 template <class CT>
    +
    + +
    29 {
    +
    30 public:
    +
    31
    +
    32 using self_type = xaxis_slice_iterator<CT>;
    +
    33
    +
    34 using xexpression_type = std::decay_t<CT>;
    +
    35 using size_type = typename xexpression_type::size_type;
    +
    36 using difference_type = typename xexpression_type::difference_type;
    +
    37 using shape_type = typename xexpression_type::shape_type;
    +
    38 using strides_type = typename xexpression_type::strides_type;
    +
    39 using value_type = xstrided_view<CT, shape_type>;
    +
    40 using reference = std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>;
    +
    41 using pointer = xtl::xclosure_pointer<std::remove_reference_t<xtl::apply_cv_t<CT, value_type>>>;
    +
    42
    +
    43 using iterator_category = std::forward_iterator_tag;
    +
    44
    +
    45 template <class CTA>
    +
    46 xaxis_slice_iterator(CTA&& e, size_type axis);
    +
    47 template <class CTA>
    +
    48 xaxis_slice_iterator(CTA&& e, size_type axis, size_type index, size_type offset);
    +
    49
    +
    50 self_type& operator++();
    +
    51 self_type operator++(int);
    +
    52
    +
    53 reference operator*() const;
    +
    54 pointer operator->() const;
    +
    55
    +
    56 bool equal(const self_type& rhs) const;
    +
    57
    +
    58 private:
    +
    59
    +
    60 using storing_type = xtl::ptr_closure_type_t<CT>;
    +
    61 mutable storing_type p_expression;
    +
    62 size_type m_index;
    +
    63 size_type m_offset;
    +
    64 size_type m_axis_stride;
    +
    65 size_type m_lower_shape;
    +
    66 size_type m_upper_shape;
    +
    67 size_type m_iter_size;
    +
    68 bool m_is_target_axis;
    +
    69 value_type m_sv;
    +
    70
    +
    71 template <class T, class CTA>
    +
    72 T get_storage_init(CTA&& e) const;
    +
    73 };
    +
    +
    74
    +
    75 template <class CT>
    +
    76 bool operator==(const xaxis_slice_iterator<CT>& lhs, const xaxis_slice_iterator<CT>& rhs);
    +
    77
    +
    78 template <class CT>
    +
    79 bool operator!=(const xaxis_slice_iterator<CT>& lhs, const xaxis_slice_iterator<CT>& rhs);
    +
    80
    +
    81 template <class E>
    +
    82 auto xaxis_slice_begin(E&& e);
    +
    83
    +
    84 template <class E>
    +
    85 auto xaxis_slice_begin(E&& e, typename std::decay_t<E>::size_type axis);
    +
    86
    +
    87 template <class E>
    +
    88 auto xaxis_slice_end(E&& e);
    +
    89
    +
    90 template <class E>
    +
    91 auto xaxis_slice_end(E&& e, typename std::decay_t<E>::size_type axis);
    +
    92
    +
    93 /***************************************
    +
    94 * xaxis_slice_iterator implementation *
    +
    95 ***************************************/
    +
    96
    +
    97 template <class CT>
    +
    98 template <class T, class CTA>
    +
    99 T xaxis_slice_iterator<CT>::get_storage_init(CTA&& e) const
    +
    100 {
    +
    101 if constexpr (xtl::pointer_concept<T>)
    +
    102 {
    +
    103 return &e;
    +
    104 }
    +
    105 else
    +
    106 {
    +
    107 return e;
    +
    108 }
    +
    109 }
    +
    110
    +
    115
    +
    121 template <class CT>
    +
    122 template <class CTA>
    +
    + +
    124 : xaxis_slice_iterator(std::forward<CTA>(e), axis, 0, e.data_offset())
    +
    125 {
    +
    126 }
    +
    +
    127
    +
    136 template <class CT>
    +
    137 template <class CTA>
    +
    +
    138 inline xaxis_slice_iterator<CT>::xaxis_slice_iterator(CTA&& e, size_type axis, size_type index, size_type offset)
    +
    139 : p_expression(get_storage_init<storing_type>(std::forward<CTA>(e)))
    +
    140 , m_index(index)
    +
    141 , m_offset(offset)
    +
    142 , m_axis_stride(static_cast<size_type>(e.strides()[axis]) * (e.shape()[axis] - 1u))
    +
    143 , m_lower_shape(0)
    +
    144 , m_upper_shape(0)
    +
    145 , m_iter_size(0)
    +
    146 , m_is_target_axis(false)
    +
    147 , m_sv(strided_view(
    +
    148 std::forward<CT>(e),
    +
    149 std::forward<shape_type>({e.shape()[axis]}),
    +
    150 std::forward<strides_type>({e.strides()[axis]}),
    +
    151 offset,
    +
    152 e.layout()
    +
    153 ))
    +
    154 {
    +
    155 if (e.layout() == layout_type::row_major)
    +
    156 {
    +
    157 m_is_target_axis = axis == e.dimension() - 1;
    +
    158 m_lower_shape = std::accumulate(
    +
    159 e.shape().begin() + axis + 1,
    +
    160 e.shape().end(),
    +
    161 size_t(1),
    +
    162 std::multiplies<>()
    +
    163 );
    +
    164 m_iter_size = std::accumulate(e.shape().begin() + 1, e.shape().end(), size_t(1), std::multiplies<>());
    +
    165 }
    +
    166 else
    +
    167 {
    +
    168 m_is_target_axis = axis == 0;
    +
    169 m_lower_shape = std::accumulate(
    +
    170 e.shape().begin(),
    +
    171 e.shape().begin() + axis,
    +
    172 size_t(1),
    +
    173 std::multiplies<>()
    +
    174 );
    +
    175 m_iter_size = std::accumulate(e.shape().begin(), e.shape().end() - 1, size_t(1), std::multiplies<>());
    +
    176 }
    +
    177 m_upper_shape = m_lower_shape + m_axis_stride;
    +
    178 }
    +
    +
    179
    +
    181
    +
    186
    +
    189 template <class CT>
    +
    +
    190 inline auto xaxis_slice_iterator<CT>::operator++() -> self_type&
    +
    191 {
    +
    192 ++m_index;
    +
    193 ++m_offset;
    +
    194 auto index_compare = (m_offset % m_iter_size);
    +
    195 if (m_is_target_axis || (m_upper_shape >= index_compare && index_compare >= m_lower_shape))
    +
    196 {
    +
    197 m_offset += m_axis_stride;
    +
    198 }
    +
    199 m_sv.set_offset(m_offset);
    +
    200 return *this;
    +
    201 }
    +
    +
    202
    +
    207 template <class CT>
    +
    +
    208 inline auto xaxis_slice_iterator<CT>::operator++(int) -> self_type
    +
    209 {
    +
    210 self_type tmp(*this);
    +
    211 ++(*this);
    +
    212 return tmp;
    +
    213 }
    +
    +
    214
    +
    216
    +
    221
    +
    226 template <class CT>
    +
    +
    227 inline auto xaxis_slice_iterator<CT>::operator*() const -> reference
    +
    228 {
    +
    229 return m_sv;
    +
    230 }
    +
    +
    231
    +
    237 template <class CT>
    +
    +
    238 inline auto xaxis_slice_iterator<CT>::operator->() const -> pointer
    +
    239 {
    +
    240 return xtl::closure_pointer(operator*());
    +
    241 }
    +
    +
    242
    +
    244
    +
    245 /*
    +
    246 * @name Comparisons
    +
    247 */
    +
    249
    +
    254 template <class CT>
    +
    +
    255 inline bool xaxis_slice_iterator<CT>::equal(const self_type& rhs) const
    +
    256 {
    +
    257 return p_expression == rhs.p_expression && m_index == rhs.m_index;
    +
    258 }
    +
    +
    259
    +
    265 template <class CT>
    +
    +
    266 inline bool operator==(const xaxis_slice_iterator<CT>& lhs, const xaxis_slice_iterator<CT>& rhs)
    +
    267 {
    +
    268 return lhs.equal(rhs);
    +
    269 }
    +
    +
    270
    +
    275 template <class CT>
    +
    +
    276 inline bool operator!=(const xaxis_slice_iterator<CT>& lhs, const xaxis_slice_iterator<CT>& rhs)
    +
    277 {
    +
    278 return !(lhs == rhs);
    +
    279 }
    +
    +
    280
    +
    282
    +
    287
    +
    293 template <class E>
    +
    +
    294 inline auto axis_slice_begin(E&& e)
    +
    295 {
    + +
    297 return return_type(std::forward<E>(e), 0);
    +
    298 }
    +
    +
    299
    +
    307 template <class E>
    +
    +
    308 inline auto axis_slice_begin(E&& e, typename std::decay_t<E>::size_type axis)
    +
    309 {
    + +
    311 return return_type(std::forward<E>(e), axis, 0, e.data_offset());
    +
    312 }
    +
    +
    313
    +
    321 template <class E>
    +
    +
    322 inline auto axis_slice_end(E&& e)
    +
    323 {
    + +
    325 return return_type(
    +
    326 std::forward<E>(e),
    +
    327 0,
    +
    328 std::accumulate(e.shape().begin() + 1, e.shape().end(), size_t(1), std::multiplies<>()),
    +
    329 e.size()
    +
    330 );
    +
    331 }
    +
    +
    332
    +
    341 template <class E>
    +
    +
    342 inline auto axis_slice_end(E&& e, typename std::decay_t<E>::size_type axis)
    +
    343 {
    + +
    345 auto index_sum = std::accumulate(
    +
    346 e.shape().begin(),
    +
    347 e.shape().begin() + axis,
    +
    348 size_t(1),
    +
    349 std::multiplies<>()
    +
    350 );
    +
    351 return return_type(
    +
    352 std::forward<E>(e),
    +
    353 axis,
    +
    354 std::accumulate(e.shape().begin() + axis + 1, e.shape().end(), index_sum, std::multiplies<>()),
    +
    355 e.size() + axis
    +
    356 );
    +
    357 }
    +
    +
    358
    +
    360}
    +
    361
    +
    362#endif
    +
    Class for iteration over one-dimensional slices.
    +
    self_type & operator++()
    Increments the iterator to the next position and returns it.
    +
    reference operator*() const
    Returns the strided view at the current iteration position.
    +
    pointer operator->() const
    Returns a pointer to the strided view at the current iteration position.
    +
    bool equal(const self_type &rhs) const
    Checks equality of the xaxis_slice_iterator and rhs.
    +
    xaxis_slice_iterator(CTA &&e, size_type axis)
    Constructs an xaxis_slice_iterator.
    +
    View of an xexpression using strides.
    + +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    + +
    auto axis_slice_begin(E &&e)
    Returns an iterator to the first element of the expression for axis 0.
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto axis_slice_end(E &&e)
    Returns an iterator to the element following the last element of the expression for axis 0.
    +
    +
    + + + + diff --git a/xblockwise__reducer_8hpp_source.html b/xblockwise__reducer_8hpp_source.html new file mode 100644 index 000000000..c4bc81c54 --- /dev/null +++ b/xblockwise__reducer_8hpp_source.html @@ -0,0 +1,658 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xblockwise_reducer.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xblockwise_reducer.hpp
    +
    +
    +
    1#ifndef XTENSOR_XBLOCKWISE_REDUCER_HPP
    +
    2#define XTENSOR_XBLOCKWISE_REDUCER_HPP
    +
    3
    +
    4#include "../core/xmultiindex_iterator.hpp"
    +
    5#include "../core/xshape.hpp"
    +
    6#include "../reducers/xblockwise_reducer_functors.hpp"
    +
    7#include "../reducers/xreducer.hpp"
    +
    8#include "xtl/xclosure.hpp"
    +
    9#include "xtl/xsequence.hpp"
    +
    10
    +
    11namespace xt
    +
    12{
    +
    13
    +
    14 template <class CT, class F, class X, class O>
    +
    +
    15 class xblockwise_reducer
    +
    16 {
    +
    17 public:
    +
    18
    +
    19 using self_type = xblockwise_reducer<CT, F, X, O>;
    +
    20 using raw_options_type = std::decay_t<O>;
    +
    21 using keep_dims = xtl::mpl::contains<raw_options_type, xt::keep_dims_type>;
    +
    22 using xexpression_type = std::decay_t<CT>;
    +
    23 using shape_type = typename xreducer_shape_type<typename xexpression_type::shape_type, std::decay_t<X>, keep_dims>::type;
    +
    24 using functor_type = F;
    +
    25 using value_type = typename functor_type::value_type;
    +
    26 using input_shape_type = typename xexpression_type::shape_type;
    +
    27 using input_chunk_index_type = filter_fixed_shape_t<input_shape_type>;
    +
    28 using input_grid_strides = filter_fixed_shape_t<input_shape_type>;
    +
    29 using axes_type = X;
    +
    30 using chunk_shape_type = filter_fixed_shape_t<shape_type>;
    +
    31
    +
    32
    +
    33 template <class E, class BS, class XX, class OO, class FF>
    +
    34 xblockwise_reducer(E&& e, BS&& block_shape, XX&& axes, OO&& options, FF&& functor);
    +
    35
    +
    36 const input_shape_type& input_shape() const;
    +
    37 const axes_type& axes() const;
    +
    38
    +
    39 std::size_t dimension() const;
    +
    40
    +
    41 const shape_type& shape() const;
    +
    42
    +
    43 const chunk_shape_type& chunk_shape() const;
    +
    44
    +
    45 template <class R>
    +
    46 void assign_to(R& result) const;
    +
    47
    +
    48 private:
    +
    49
    +
    50 using mapping_type = filter_fixed_shape_t<shape_type>;
    +
    51 using input_chunked_view_type = xchunked_view<const std::decay_t<CT>&>;
    +
    52 using input_const_chunked_iterator_type = typename input_chunked_view_type::const_chunk_iterator;
    +
    53 using input_chunk_range_type = std::array<xmultiindex_iterator<input_chunk_index_type>, 2>;
    +
    54
    +
    55 template <class CI>
    +
    56 void assign_to_chunk(CI& result_chunk_iter) const;
    +
    57
    +
    58 template <class CI>
    +
    59 input_chunk_range_type compute_input_chunk_range(CI& result_chunk_iter) const;
    +
    60
    +
    61 input_const_chunked_iterator_type get_input_chunk_iter(input_chunk_index_type input_chunk_index) const;
    +
    62 void init_shapes();
    +
    63
    +
    64 CT m_e;
    +
    65 xchunked_view<const std::decay_t<CT>&> m_e_chunked_view;
    +
    66 axes_type m_axes;
    +
    67 raw_options_type m_options;
    +
    68 functor_type m_functor;
    +
    69 shape_type m_result_shape;
    +
    70 chunk_shape_type m_result_chunk_shape;
    +
    71 mapping_type m_mapping;
    +
    72 input_grid_strides m_input_grid_strides;
    +
    73 };
    +
    +
    74
    +
    75 template <class CT, class F, class X, class O>
    +
    76 template <class E, class BS, class XX, class OO, class FF>
    +
    77 xblockwise_reducer<CT, F, X, O>::xblockwise_reducer(E&& e, BS&& block_shape, XX&& axes, OO&& options, FF&& functor)
    +
    78 : m_e(std::forward<E>(e))
    +
    79 , m_e_chunked_view(m_e, std::forward<BS>(block_shape))
    +
    80 , m_axes(std::forward<XX>(axes))
    +
    81 , m_options(std::forward<OO>(options))
    +
    82 , m_functor(std::forward<FF>(functor))
    +
    83 , m_result_shape()
    +
    84 , m_result_chunk_shape()
    +
    85 , m_mapping()
    +
    86 , m_input_grid_strides()
    +
    87 {
    +
    88 init_shapes();
    +
    89 resize_container(m_input_grid_strides, m_e.dimension());
    +
    90 std::size_t stride = 1;
    +
    91
    +
    92 for (std::size_t i = m_input_grid_strides.size(); i != 0; --i)
    +
    93 {
    +
    94 m_input_grid_strides[i - 1] = stride;
    +
    95 stride *= m_e_chunked_view.grid_shape()[i - 1];
    +
    96 }
    +
    97 }
    +
    98
    +
    99 template <class CT, class F, class X, class O>
    +
    100 inline auto xblockwise_reducer<CT, F, X, O>::input_shape() const -> const input_shape_type&
    +
    101 {
    +
    102 return m_e.shape();
    +
    103 }
    +
    104
    +
    105 template <class CT, class F, class X, class O>
    +
    106 inline auto xblockwise_reducer<CT, F, X, O>::axes() const -> const axes_type&
    +
    107 {
    +
    108 return m_axes;
    +
    109 }
    +
    110
    +
    111 template <class CT, class F, class X, class O>
    +
    112 inline std::size_t xblockwise_reducer<CT, F, X, O>::dimension() const
    +
    113 {
    +
    114 return m_result_shape.size();
    +
    115 }
    +
    116
    +
    117 template <class CT, class F, class X, class O>
    +
    118 inline auto xblockwise_reducer<CT, F, X, O>::shape() const -> const shape_type&
    +
    119 {
    +
    120 return m_result_shape;
    +
    121 }
    +
    122
    +
    123 template <class CT, class F, class X, class O>
    +
    124 inline auto xblockwise_reducer<CT, F, X, O>::chunk_shape() const -> const chunk_shape_type&
    +
    125 {
    +
    126 return m_result_chunk_shape;
    +
    127 }
    +
    128
    +
    129 template <class CT, class F, class X, class O>
    +
    130 template <class R>
    +
    131 inline void xblockwise_reducer<CT, F, X, O>::assign_to(R& result) const
    +
    132 {
    +
    133 auto result_chunked_view = as_chunked(result, m_result_chunk_shape);
    +
    134 for (auto chunk_iter = result_chunked_view.chunk_begin(); chunk_iter != result_chunked_view.chunk_end();
    +
    135 ++chunk_iter)
    +
    136 {
    +
    137 assign_to_chunk(chunk_iter);
    +
    138 }
    +
    139 }
    +
    140
    +
    141 template <class CT, class F, class X, class O>
    +
    142 auto xblockwise_reducer<CT, F, X, O>::get_input_chunk_iter(input_chunk_index_type input_chunk_index) const
    +
    143 -> input_const_chunked_iterator_type
    +
    144 {
    +
    145 std::size_t chunk_linear_index = 0;
    +
    146 for (std::size_t i = 0; i < m_e_chunked_view.dimension(); ++i)
    +
    147 {
    +
    148 chunk_linear_index += input_chunk_index[i] * m_input_grid_strides[i];
    +
    149 }
    +
    150 return input_const_chunked_iterator_type(m_e_chunked_view, std::move(input_chunk_index), chunk_linear_index);
    +
    151 }
    +
    152
    +
    153 template <class CT, class F, class X, class O>
    +
    154 template <class CI>
    +
    155 void xblockwise_reducer<CT, F, X, O>::assign_to_chunk(CI& result_chunk_iter) const
    +
    156 {
    +
    157 auto result_chunk_view = *result_chunk_iter;
    +
    158 auto reduction_variable = m_functor.reduction_variable(result_chunk_view);
    +
    159
    +
    160 // get the range of input chunks we need to compute the desired ouput chunk
    +
    161 auto range = compute_input_chunk_range(result_chunk_iter);
    +
    162
    +
    163 // iterate over input chunk (indics)
    +
    164 auto first = true;
    +
    165 // std::for_each(std::get<0>(range), std::get<1>(range), [&](auto && input_chunk_index)
    +
    166 auto iter = std::get<0>(range);
    +
    167 while (iter != std::get<1>(range))
    +
    168 {
    +
    169 const auto& input_chunk_index = *iter;
    +
    170 // get input chunk iterator from chunk index
    +
    171 auto chunked_input_iter = this->get_input_chunk_iter(input_chunk_index);
    +
    172 auto input_chunk_view = *chunked_input_iter;
    +
    173
    +
    174 // compute the per block result
    +
    175 auto block_res = m_functor.compute(input_chunk_view, m_axes, m_options);
    +
    176
    +
    177 // merge
    +
    178 m_functor.merge(block_res, first, result_chunk_view, reduction_variable);
    +
    179 first = false;
    +
    180 ++iter;
    +
    181 }
    +
    182
    +
    183 // finalize (ie smth like normalization)
    +
    184 m_functor.finalize(reduction_variable, result_chunk_view, *this);
    +
    185 }
    +
    186
    +
    187 template <class CT, class F, class X, class O>
    +
    188 template <class CI>
    +
    189 auto xblockwise_reducer<CT, F, X, O>::compute_input_chunk_range(CI& result_chunk_iter) const
    +
    190 -> input_chunk_range_type
    +
    191 {
    +
    192 auto input_chunks_begin = xtl::make_sequence<input_chunk_index_type>(m_e_chunked_view.dimension(), 0);
    +
    193 auto input_chunks_end = xtl::make_sequence<input_chunk_index_type>(m_e_chunked_view.dimension());
    +
    194
    +
    195 XTENSOR_ASSERT(input_chunks_begin.size() == m_e_chunked_view.dimension());
    +
    196 XTENSOR_ASSERT(input_chunks_end.size() == m_e_chunked_view.dimension());
    +
    197
    +
    198 std::copy(
    +
    199 m_e_chunked_view.grid_shape().begin(),
    +
    200 m_e_chunked_view.grid_shape().end(),
    +
    201 input_chunks_end.begin()
    +
    202 );
    +
    203
    +
    204 const auto& chunk_index = result_chunk_iter.chunk_index();
    +
    205 for (std::size_t result_ax_index = 0; result_ax_index < m_result_shape.size(); ++result_ax_index)
    +
    206 {
    +
    207 if (m_result_shape[result_ax_index] != 1)
    +
    208 {
    +
    209 const auto input_ax_index = m_mapping[result_ax_index];
    +
    210 input_chunks_begin[input_ax_index] = chunk_index[result_ax_index];
    +
    211 input_chunks_end[input_ax_index] = chunk_index[result_ax_index] + 1;
    +
    212 }
    +
    213 }
    +
    214 return input_chunk_range_type{
    +
    215 multiindex_iterator_begin<input_chunk_index_type>(input_chunks_begin, input_chunks_end),
    +
    216 multiindex_iterator_end<input_chunk_index_type>(input_chunks_begin, input_chunks_end)
    +
    217 };
    +
    218 }
    +
    219
    +
    220 template <class CT, class F, class X, class O>
    +
    221 void xblockwise_reducer<CT, F, X, O>::init_shapes()
    +
    222 {
    +
    223 const auto& shape = m_e.shape();
    +
    224 const auto dimension = m_e.dimension();
    +
    225 const auto& block_shape = m_e_chunked_view.chunk_shape();
    +
    226 if (xtl::mpl::contains<raw_options_type, xt::keep_dims_type>::value)
    +
    227 {
    +
    228 resize_container(m_result_shape, dimension);
    +
    229 resize_container(m_result_chunk_shape, dimension);
    +
    230 resize_container(m_mapping, dimension);
    +
    231 for (std::size_t i = 0; i < dimension; ++i)
    +
    232 {
    +
    233 m_mapping[i] = i;
    +
    234 if (std::find(m_axes.begin(), m_axes.end(), i) == m_axes.end())
    +
    235 {
    +
    236 // i not in m_axes!
    +
    237 m_result_shape[i] = shape[i];
    +
    238 m_result_chunk_shape[i] = block_shape[i];
    +
    239 }
    +
    240 else
    +
    241 {
    +
    242 m_result_shape[i] = 1;
    +
    243 m_result_chunk_shape[i] = 1;
    +
    244 }
    +
    245 }
    +
    246 }
    +
    247 else
    +
    248 {
    +
    249 const auto result_dim = dimension - m_axes.size();
    +
    250 resize_container(m_result_shape, result_dim);
    +
    251 resize_container(m_result_chunk_shape, result_dim);
    +
    252 resize_container(m_mapping, result_dim);
    +
    253
    +
    254 for (std::size_t i = 0, idx = 0; i < dimension; ++i)
    +
    255 {
    +
    256 if (std::find(m_axes.begin(), m_axes.end(), i) == m_axes.end())
    +
    257 {
    +
    258 // i not in axes!
    +
    259 m_result_shape[idx] = shape[i];
    +
    260 m_result_chunk_shape[idx] = block_shape[i];
    +
    261 m_mapping[idx] = i;
    +
    262 ++idx;
    +
    263 }
    +
    264 }
    +
    265 }
    +
    266 }
    +
    267
    +
    268 template <class E, class CS, class A, class O, class FF>
    +
    269 inline auto blockwise_reducer(E&& e, CS&& chunk_shape, A&& axes, O&& raw_options, FF&& functor)
    +
    270 {
    +
    271 using functor_type = std::decay_t<FF>;
    +
    272 using closure_type = xtl::const_closure_type_t<E>;
    +
    273 using axes_type = std::decay_t<A>;
    +
    274
    + +
    276 std::forward<E>(e),
    +
    277 std::forward<CS>(chunk_shape),
    +
    278 std::forward<A>(axes),
    +
    279 std::forward<O>(raw_options),
    +
    280 std::forward<FF>(functor)
    +
    281 );
    +
    282 }
    +
    283
    +
    284 namespace blockwise
    +
    285 {
    +
    286
    +
    287#define XTENSOR_BLOCKWISE_REDUCER_FUNC(FNAME, FUNCTOR) \
    +
    288 template < \
    +
    289 class T = void, \
    +
    290 class E, \
    +
    291 class BS, \
    +
    292 class X, \
    +
    293 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    294 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<std::decay_t<X>>>)> \
    +
    295 auto FNAME(E&& e, BS&& block_shape, X&& axes, O options = O()) \
    +
    296 { \
    +
    297 using input_expression_type = std::decay_t<E>; \
    +
    298 using functor_type = FUNCTOR<typename input_expression_type::value_type, T>; \
    +
    299 return blockwise_reducer( \
    +
    300 std::forward<E>(e), \
    +
    301 std::forward<BS>(block_shape), \
    +
    302 std::forward<X>(axes), \
    +
    303 std::forward<O>(options), \
    +
    304 functor_type() \
    +
    305 ); \
    +
    306 } \
    +
    307 template < \
    +
    308 class T = void, \
    +
    309 class E, \
    +
    310 class BS, \
    +
    311 class X, \
    +
    312 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    313 XTL_REQUIRES(xtl::is_integral<std::decay_t<X>>)> \
    +
    314 auto FNAME(E&& e, BS&& block_shape, X axis, O options = O()) \
    +
    315 { \
    +
    316 std::array<X, 1> axes{axis}; \
    +
    317 using input_expression_type = std::decay_t<E>; \
    +
    318 using functor_type = FUNCTOR<typename input_expression_type::value_type, T>; \
    +
    319 return blockwise_reducer( \
    +
    320 std::forward<E>(e), \
    +
    321 std::forward<BS>(block_shape), \
    +
    322 axes, \
    +
    323 std::forward<O>(options), \
    +
    324 functor_type() \
    +
    325 ); \
    +
    326 } \
    +
    327 template < \
    +
    328 class T = void, \
    +
    329 class E, \
    +
    330 class BS, \
    +
    331 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    332 XTL_REQUIRES(is_reducer_options<O>, std::negation<xtl::is_integral<std::decay_t<O>>>)> \
    +
    333 auto FNAME(E&& e, BS&& block_shape, O options = O()) \
    +
    334 { \
    +
    335 using input_expression_type = std::decay_t<E>; \
    +
    336 using axes_type = filter_fixed_shape_t<typename input_expression_type::shape_type>; \
    +
    337 axes_type axes = xtl::make_sequence<axes_type>(e.dimension()); \
    +
    338 XTENSOR_ASSERT(axes.size() == e.dimension()); \
    +
    339 std::iota(axes.begin(), axes.end(), 0); \
    +
    340 using functor_type = FUNCTOR<typename input_expression_type::value_type, T>; \
    +
    341 return blockwise_reducer( \
    +
    342 std::forward<E>(e), \
    +
    343 std::forward<BS>(block_shape), \
    +
    344 std::move(axes), \
    +
    345 std::forward<O>(options), \
    +
    346 functor_type() \
    +
    347 ); \
    +
    348 } \
    +
    349 template <class T = void, class E, class BS, class I, std::size_t N, class O = DEFAULT_STRATEGY_REDUCERS> \
    +
    350 auto FNAME(E&& e, BS&& block_shape, const I(&axes)[N], O options = O()) \
    +
    351 { \
    +
    352 using input_expression_type = std::decay_t<E>; \
    +
    353 using functor_type = FUNCTOR<typename input_expression_type::value_type, T>; \
    +
    354 using axes_type = std::array<std::size_t, N>; \
    +
    355 auto ax = xt::forward_normalize<axes_type>(e, axes); \
    +
    356 return blockwise_reducer( \
    +
    357 std::forward<E>(e), \
    +
    358 std::forward<BS>(block_shape), \
    +
    359 std::move(ax), \
    +
    360 std::forward<O>(options), \
    +
    361 functor_type() \
    +
    362 ); \
    +
    363 }
    +
    364 XTENSOR_BLOCKWISE_REDUCER_FUNC(sum, xt::detail::blockwise::sum_functor)
    +
    365 XTENSOR_BLOCKWISE_REDUCER_FUNC(prod, xt::detail::blockwise::prod_functor)
    +
    366 XTENSOR_BLOCKWISE_REDUCER_FUNC(amin, xt::detail::blockwise::amin_functor)
    +
    367 XTENSOR_BLOCKWISE_REDUCER_FUNC(amax, xt::detail::blockwise::amax_functor)
    +
    368 XTENSOR_BLOCKWISE_REDUCER_FUNC(mean, xt::detail::blockwise::mean_functor)
    +
    369 XTENSOR_BLOCKWISE_REDUCER_FUNC(variance, xt::detail::blockwise::variance_functor)
    +
    370 XTENSOR_BLOCKWISE_REDUCER_FUNC(stddev, xt::detail::blockwise::stddev_functor)
    +
    371
    +
    372#undef XTENSOR_BLOCKWISE_REDUCER_FUNC
    +
    373
    +
    374
    +
    375// norm reducers do *not* allow to to pass a template
    +
    376// parameter to specifiy the internal computation type
    +
    377#define XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(FNAME, FUNCTOR) \
    +
    378 template < \
    +
    379 class E, \
    +
    380 class BS, \
    +
    381 class X, \
    +
    382 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    383 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<std::decay_t<X>>>)> \
    +
    384 auto FNAME(E&& e, BS&& block_shape, X&& axes, O options = O()) \
    +
    385 { \
    +
    386 using input_expression_type = std::decay_t<E>; \
    +
    387 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    388 return blockwise_reducer( \
    +
    389 std::forward<E>(e), \
    +
    390 std::forward<BS>(block_shape), \
    +
    391 std::forward<X>(axes), \
    +
    392 std::forward<O>(options), \
    +
    393 functor_type() \
    +
    394 ); \
    +
    395 } \
    +
    396 template <class E, class BS, class X, class O = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(xtl::is_integral<std::decay_t<X>>)> \
    +
    397 auto FNAME(E&& e, BS&& block_shape, X axis, O options = O()) \
    +
    398 { \
    +
    399 std::array<X, 1> axes{axis}; \
    +
    400 using input_expression_type = std::decay_t<E>; \
    +
    401 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    402 return blockwise_reducer( \
    +
    403 std::forward<E>(e), \
    +
    404 std::forward<BS>(block_shape), \
    +
    405 axes, \
    +
    406 std::forward<O>(options), \
    +
    407 functor_type() \
    +
    408 ); \
    +
    409 } \
    +
    410 template < \
    +
    411 class E, \
    +
    412 class BS, \
    +
    413 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    414 XTL_REQUIRES(is_reducer_options<O>, std::negation<xtl::is_integral<std::decay_t<O>>>)> \
    +
    415 auto FNAME(E&& e, BS&& block_shape, O options = O()) \
    +
    416 { \
    +
    417 using input_expression_type = std::decay_t<E>; \
    +
    418 using axes_type = filter_fixed_shape_t<typename input_expression_type::shape_type>; \
    +
    419 axes_type axes = xtl::make_sequence<axes_type>(e.dimension()); \
    +
    420 XTENSOR_ASSERT(axes.size() == e.dimension()); \
    +
    421 std::iota(axes.begin(), axes.end(), 0); \
    +
    422 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    423 return blockwise_reducer( \
    +
    424 std::forward<E>(e), \
    +
    425 std::forward<BS>(block_shape), \
    +
    426 std::move(axes), \
    +
    427 std::forward<O>(options), \
    +
    428 functor_type() \
    +
    429 ); \
    +
    430 } \
    +
    431 template <class E, class BS, class I, std::size_t N, class O = DEFAULT_STRATEGY_REDUCERS> \
    +
    432 auto FNAME(E&& e, BS&& block_shape, const I(&axes)[N], O options = O()) \
    +
    433 { \
    +
    434 using input_expression_type = std::decay_t<E>; \
    +
    435 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    436 using axes_type = std::array<std::size_t, N>; \
    +
    437 auto ax = xt::forward_normalize<axes_type>(e, axes); \
    +
    438 return blockwise_reducer( \
    +
    439 std::forward<E>(e), \
    +
    440 std::forward<BS>(block_shape), \
    +
    441 std::move(ax), \
    +
    442 std::forward<O>(options), \
    +
    443 functor_type() \
    +
    444 ); \
    +
    445 }
    +
    446 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_l0, xt::detail::blockwise::norm_l0_functor)
    +
    447 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_l1, xt::detail::blockwise::norm_l1_functor)
    +
    448 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_l2, xt::detail::blockwise::norm_l2_functor)
    +
    449 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_sq, xt::detail::blockwise::norm_sq_functor)
    +
    450 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_linf, xt::detail::blockwise::norm_linf_functor)
    +
    451
    +
    452#undef XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC
    +
    453
    +
    454
    +
    455#define XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(FNAME, FUNCTOR) \
    +
    456 template < \
    +
    457 class E, \
    +
    458 class BS, \
    +
    459 class X, \
    +
    460 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    461 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<std::decay_t<X>>>)> \
    +
    462 auto FNAME(E&& e, BS&& block_shape, double p, X&& axes, O options = O()) \
    +
    463 { \
    +
    464 using input_expression_type = std::decay_t<E>; \
    +
    465 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    466 return blockwise_reducer( \
    +
    467 std::forward<E>(e), \
    +
    468 std::forward<BS>(block_shape), \
    +
    469 std::forward<X>(axes), \
    +
    470 std::forward<O>(options), \
    +
    471 functor_type(p) \
    +
    472 ); \
    +
    473 } \
    +
    474 template <class E, class BS, class X, class O = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(xtl::is_integral<std::decay_t<X>>)> \
    +
    475 auto FNAME(E&& e, BS&& block_shape, double p, X axis, O options = O()) \
    +
    476 { \
    +
    477 std::array<X, 1> axes{axis}; \
    +
    478 using input_expression_type = std::decay_t<E>; \
    +
    479 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    480 return blockwise_reducer( \
    +
    481 std::forward<E>(e), \
    +
    482 std::forward<BS>(block_shape), \
    +
    483 axes, \
    +
    484 std::forward<O>(options), \
    +
    485 functor_type(p) \
    +
    486 ); \
    +
    487 } \
    +
    488 template < \
    +
    489 class E, \
    +
    490 class BS, \
    +
    491 class O = DEFAULT_STRATEGY_REDUCERS, \
    +
    492 XTL_REQUIRES(is_reducer_options<O>, std::negation<xtl::is_integral<std::decay_t<O>>>)> \
    +
    493 auto FNAME(E&& e, BS&& block_shape, double p, O options = O()) \
    +
    494 { \
    +
    495 using input_expression_type = std::decay_t<E>; \
    +
    496 using axes_type = filter_fixed_shape_t<typename input_expression_type::shape_type>; \
    +
    497 axes_type axes = xtl::make_sequence<axes_type>(e.dimension()); \
    +
    498 XTENSOR_ASSERT(axes.size() == e.dimension()); \
    +
    499 std::iota(axes.begin(), axes.end(), 0); \
    +
    500 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    501 return blockwise_reducer( \
    +
    502 std::forward<E>(e), \
    +
    503 std::forward<BS>(block_shape), \
    +
    504 std::move(axes), \
    +
    505 std::forward<O>(options), \
    +
    506 functor_type(p) \
    +
    507 ); \
    +
    508 } \
    +
    509 template <class E, class BS, class I, std::size_t N, class O = DEFAULT_STRATEGY_REDUCERS> \
    +
    510 auto FNAME(E&& e, BS&& block_shape, double p, const I(&axes)[N], O options = O()) \
    +
    511 { \
    +
    512 using input_expression_type = std::decay_t<E>; \
    +
    513 using functor_type = FUNCTOR<typename input_expression_type::value_type>; \
    +
    514 using axes_type = std::array<std::size_t, N>; \
    +
    515 auto ax = xt::forward_normalize<axes_type>(e, axes); \
    +
    516 return blockwise_reducer( \
    +
    517 std::forward<E>(e), \
    +
    518 std::forward<BS>(block_shape), \
    +
    519 std::move(ax), \
    +
    520 std::forward<O>(options), \
    +
    521 functor_type(p) \
    +
    522 ); \
    +
    523 }
    +
    524
    +
    525 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_lp_to_p, xt::detail::blockwise::norm_lp_to_p_functor);
    +
    526 XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC(norm_lp, xt::detail::blockwise::norm_lp_functor);
    +
    527
    +
    528#undef XTENSOR_BLOCKWISE_NORM_REDUCER_FUNC
    +
    529 }
    +
    530
    +
    531}
    +
    532
    +
    533#endif
    + + +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    + +
    +
    + + + + diff --git a/xblockwise__reducer__functors_8hpp_source.html b/xblockwise__reducer__functors_8hpp_source.html new file mode 100644 index 000000000..4a6ab47cd --- /dev/null +++ b/xblockwise__reducer__functors_8hpp_source.html @@ -0,0 +1,640 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xblockwise_reducer_functors.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xblockwise_reducer_functors.hpp
    +
    +
    +
    1#ifndef XTENSOR_XBLOCKWISE_REDUCER_FUNCTORS_HPP
    +
    2#define XTENSOR_XBLOCKWISE_REDUCER_FUNCTORS_HPP
    +
    3
    +
    4
    +
    5#include <tuple>
    +
    6
    +
    7#include "../chunk/xchunked_array.hpp"
    +
    8#include "../chunk/xchunked_assign.hpp"
    +
    9#include "../chunk/xchunked_view.hpp"
    +
    10#include "../containers/xarray.hpp"
    +
    11#include "../core/xexpression.hpp"
    +
    12#include "../core/xmath.hpp"
    +
    13#include "../generators/xbuilder.hpp"
    +
    14#include "../reducers/xnorm.hpp"
    +
    15#include "../reducers/xreducer.hpp"
    +
    16#include "../utils/xutils.hpp"
    +
    17#include "xtl/xclosure.hpp"
    +
    18#include "xtl/xsequence.hpp"
    +
    19
    +
    20namespace xt
    +
    21{
    +
    22 namespace detail
    +
    23 {
    +
    24 namespace blockwise
    +
    25 {
    +
    26
    +
    27 struct empty_reduction_variable
    +
    28 {
    +
    29 };
    +
    30
    +
    31 struct simple_functor_base
    +
    32 {
    +
    33 template <class E>
    +
    34 auto reduction_variable(const E&) const
    +
    35 {
    +
    36 return empty_reduction_variable();
    +
    37 }
    +
    38
    +
    39 template <class MR, class E, class R>
    +
    40 void finalize(const MR&, E&, const R&) const
    +
    41 {
    +
    42 }
    +
    43 };
    +
    44
    +
    45 template <class T_E, class T_I = void>
    +
    46 struct sum_functor : public simple_functor_base
    +
    47 {
    +
    48 using value_type = typename std::decay_t<decltype(xt::sum<T_I>(std::declval<xarray<T_E>>()))>::value_type;
    +
    49
    +
    50 template <class E, class A, class O>
    +
    51 auto compute(const E& input, const A& axes, const O& options) const
    +
    52 {
    +
    53 return xt::sum<value_type>(input, axes, options);
    +
    54 }
    +
    55
    +
    56 template <class BR, class E, class MR>
    +
    57 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    58 {
    +
    59 if (first)
    +
    60 {
    +
    61 xt::noalias(result) = block_result;
    +
    62 }
    +
    63 else
    +
    64 {
    +
    65 xt::noalias(result) += block_result;
    +
    66 }
    +
    67 }
    +
    68 };
    +
    69
    +
    70 template <class T_E, class T_I = void>
    +
    71 struct prod_functor : public simple_functor_base
    +
    72 {
    +
    73 using value_type = typename std::decay_t<decltype(xt::sum<T_I>(std::declval<xarray<T_E>>()))>::value_type;
    +
    74
    +
    75 template <class E, class A, class O>
    +
    76 auto compute(const E& input, const A& axes, const O& options) const
    +
    77 {
    +
    78 return xt::prod<value_type>(input, axes, options);
    +
    79 }
    +
    80
    +
    81 template <class BR, class E, class MR>
    +
    82 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    83 {
    +
    84 if (first)
    +
    85 {
    +
    86 xt::noalias(result) = block_result;
    +
    87 }
    +
    88 else
    +
    89 {
    +
    90 xt::noalias(result) *= block_result;
    +
    91 }
    +
    92 }
    +
    93 };
    +
    94
    +
    95 template <class T_E, class T_I = void>
    +
    96 struct amin_functor : public simple_functor_base
    +
    97 {
    +
    98 using value_type = typename std::decay_t<decltype(xt::amin<T_I>(std::declval<xarray<T_E>>()))>::value_type;
    +
    99
    +
    100 template <class E, class A, class O>
    +
    101 auto compute(const E& input, const A& axes, const O& options) const
    +
    102 {
    +
    103 return xt::amin(input, axes, options);
    +
    104 }
    +
    105
    +
    106 template <class BR, class E, class MR>
    +
    107 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    108 {
    +
    109 if (first)
    +
    110 {
    +
    111 xt::noalias(result) = block_result;
    +
    112 }
    +
    113 else
    +
    114 {
    +
    115 xt::noalias(result) = xt::minimum(block_result, result);
    +
    116 }
    +
    117 }
    +
    118 };
    +
    119
    +
    120 template <class T_E, class T_I = void>
    +
    121 struct amax_functor : public simple_functor_base
    +
    122 {
    +
    123 using value_type = typename std::decay_t<decltype(xt::amax<T_I>(std::declval<xarray<T_E>>()))>::value_type;
    +
    124
    +
    125 template <class E, class A, class O>
    +
    126 auto compute(const E& input, const A& axes, const O& options) const
    +
    127 {
    +
    128 return xt::amax(input, axes, options);
    +
    129 }
    +
    130
    +
    131 template <class BR, class E, class MR>
    +
    132 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    133 {
    +
    134 if (first)
    +
    135 {
    +
    136 xt::noalias(result) = block_result;
    +
    137 }
    +
    138 else
    +
    139 {
    +
    140 xt::noalias(result) = xt::maximum(block_result, result);
    +
    141 }
    +
    142 }
    +
    143 };
    +
    144
    +
    145 template <class T_E, class T_I = void>
    +
    146 struct mean_functor
    +
    147 {
    +
    148 using value_type = typename std::decay_t<decltype(xt::mean<T_I>(std::declval<xarray<T_E>>()))>::value_type;
    +
    149
    +
    150 template <class E, class A, class O>
    +
    151 auto compute(const E& input, const A& axes, const O& options) const
    +
    152 {
    +
    153 return xt::sum<value_type>(input, axes, options);
    +
    154 }
    +
    155
    +
    156 template <class E>
    +
    157 auto reduction_variable(const E&) const
    +
    158 {
    +
    159 return empty_reduction_variable();
    +
    160 }
    +
    161
    +
    162 template <class BR, class E>
    +
    163 auto merge(const BR& block_result, bool first, E& result, empty_reduction_variable&) const
    +
    164 {
    +
    165 if (first)
    +
    166 {
    +
    167 xt::noalias(result) = block_result;
    +
    168 }
    +
    169 else
    +
    170 {
    +
    171 xt::noalias(result) += block_result;
    +
    172 }
    +
    173 }
    +
    174
    +
    175 template <class E, class R>
    +
    176 void finalize(const empty_reduction_variable&, E& results, const R& reducer) const
    +
    177 {
    +
    178 const auto& axes = reducer.axes();
    +
    179 std::decay_t<decltype(reducer.input_shape()[0])> factor = 1;
    +
    180 for (auto a : axes)
    +
    181 {
    +
    182 factor *= reducer.input_shape()[a];
    +
    183 }
    +
    184 xt::noalias(results) /= static_cast<typename E::value_type>(factor);
    +
    185 }
    +
    186 };
    +
    187
    +
    188 template <class T_E, class T_I = void>
    +
    189 struct variance_functor
    +
    190 {
    +
    191 using value_type = typename std::decay_t<decltype(xt::variance<T_I>(std::declval<xarray<T_E>>())
    +
    192 )>::value_type;
    +
    193
    +
    194 template <class E, class A, class O>
    +
    195 auto compute(const E& input, const A& axes, const O& options) const
    +
    196 {
    +
    197 double weight = 1.0;
    +
    198 for (auto a : axes)
    +
    199 {
    +
    200 weight *= static_cast<double>(input.shape()[a]);
    +
    201 }
    +
    202
    +
    203
    +
    204 return std::make_tuple(
    +
    205 xt::variance<value_type>(input, axes, options),
    +
    206 xt::mean<value_type>(input, axes, options),
    +
    207 weight
    +
    208 );
    +
    209 }
    +
    210
    +
    211 template <class E>
    +
    212 auto reduction_variable(const E&) const
    +
    213 {
    +
    214 return std::make_tuple(xarray<value_type>(), 0.0);
    +
    215 }
    +
    216
    +
    217 template <class BR, class E, class MR>
    +
    218 auto merge(const BR& block_result, bool first, E& variance_a, MR& mr) const
    +
    219 {
    +
    220 auto& mean_a = std::get<0>(mr);
    +
    221 auto& n_a = std::get<1>(mr);
    +
    222
    +
    223 const auto& variance_b = std::get<0>(block_result);
    +
    224 const auto& mean_b = std::get<1>(block_result);
    +
    225 const auto& n_b = std::get<2>(block_result);
    +
    226 if (first)
    +
    227 {
    +
    228 xt::noalias(variance_a) = variance_b;
    +
    229 xt::noalias(mean_a) = mean_b;
    +
    230 n_a += n_b;
    +
    231 }
    +
    232 else
    +
    233 {
    +
    234 auto new_mean = (n_a * mean_a + n_b * mean_b) / (n_a + n_b);
    +
    235 auto new_variance = (n_a * variance_a + n_b * variance_b
    +
    236 + n_a * xt::pow(mean_a - new_mean, 2)
    +
    237 + n_b * xt::pow(mean_b - new_mean, 2))
    +
    238 / (n_a + n_b);
    +
    239 xt::noalias(variance_a) = new_variance;
    +
    240 xt::noalias(mean_a) = new_mean;
    +
    241 n_a += n_b;
    +
    242 }
    +
    243 }
    +
    244
    +
    245 template <class MR, class E, class R>
    +
    246 void finalize(const MR&, E&, const R&) const
    +
    247 {
    +
    248 }
    +
    249 };
    +
    250
    +
    251 template <class T_E, class T_I = void>
    +
    252 struct stddev_functor : public variance_functor<T_E, T_I>
    +
    253 {
    +
    254 template <class MR, class E, class R>
    +
    255 void finalize(const MR&, E& results, const R&) const
    +
    256 {
    +
    257 xt::noalias(results) = xt::sqrt(results);
    +
    258 }
    +
    259 };
    +
    260
    +
    261 template <class T_E>
    +
    262 struct norm_l0_functor : public simple_functor_base
    +
    263 {
    +
    264 using value_type = typename std::decay_t<decltype(xt::norm_l0(std::declval<xarray<T_E>>()))>::value_type;
    +
    265
    +
    266 template <class E, class A, class O>
    +
    267 auto compute(const E& input, const A& axes, const O& options) const
    +
    268 {
    +
    269 return xt::sum<value_type>(xt::not_equal(input, xt::zeros<T_E>(input.shape())), axes, options);
    +
    270 }
    +
    271
    +
    272 template <class BR, class E, class MR>
    +
    273 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    274 {
    +
    275 if (first)
    +
    276 {
    +
    277 xt::noalias(result) = block_result;
    +
    278 }
    +
    279 else
    +
    280 {
    +
    281 xt::noalias(result) += block_result;
    +
    282 }
    +
    283 }
    +
    284 };
    +
    285
    +
    286 template <class T_E>
    +
    287 struct norm_l1_functor : public simple_functor_base
    +
    288 {
    +
    289 using value_type = typename std::decay_t<decltype(xt::norm_l1(std::declval<xarray<T_E>>()))>::value_type;
    +
    290
    +
    291 template <class E, class A, class O>
    +
    292 auto compute(const E& input, const A& axes, const O& options) const
    +
    293 {
    +
    294 return xt::sum<value_type>(xt::abs(input), axes, options);
    +
    295 }
    +
    296
    +
    297 template <class BR, class E, class MR>
    +
    298 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    299 {
    +
    300 if (first)
    +
    301 {
    +
    302 xt::noalias(result) = block_result;
    +
    303 }
    +
    304 else
    +
    305 {
    +
    306 xt::noalias(result) += block_result;
    +
    307 }
    +
    308 }
    +
    309 };
    +
    310
    +
    311 template <class T_E>
    +
    312 struct norm_l2_functor
    +
    313 {
    +
    314 using value_type = typename std::decay_t<decltype(xt::norm_l2(std::declval<xarray<T_E>>()))>::value_type;
    +
    315
    +
    316 template <class E, class A, class O>
    +
    317 auto compute(const E& input, const A& axes, const O& options) const
    +
    318 {
    +
    319 return xt::sum<value_type>(xt::square(input), axes, options);
    +
    320 }
    +
    321
    +
    322 template <class E>
    +
    323 auto reduction_variable(const E&) const
    +
    324 {
    +
    325 return empty_reduction_variable();
    +
    326 }
    +
    327
    +
    328 template <class BR, class E>
    +
    329 auto merge(const BR& block_result, bool first, E& result, empty_reduction_variable&) const
    +
    330 {
    +
    331 if (first)
    +
    332 {
    +
    333 xt::noalias(result) = block_result;
    +
    334 }
    +
    335 else
    +
    336 {
    +
    337 xt::noalias(result) += block_result;
    +
    338 }
    +
    339 }
    +
    340
    +
    341 template <class E, class R>
    +
    342 void finalize(const empty_reduction_variable&, E& results, const R&) const
    +
    343 {
    +
    344 xt::noalias(results) = xt::sqrt(results);
    +
    345 }
    +
    346 };
    +
    347
    +
    348 template <class T_E>
    +
    349 struct norm_sq_functor : public simple_functor_base
    +
    350 {
    +
    351 using value_type = typename std::decay_t<decltype(xt::norm_sq(std::declval<xarray<T_E>>()))>::value_type;
    +
    352
    +
    353 template <class E, class A, class O>
    +
    354 auto compute(const E& input, const A& axes, const O& options) const
    +
    355 {
    +
    356 return xt::sum<value_type>(xt::square(input), axes, options);
    +
    357 }
    +
    358
    +
    359 template <class BR, class E, class MR>
    +
    360 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    361 {
    +
    362 if (first)
    +
    363 {
    +
    364 xt::noalias(result) = block_result;
    +
    365 }
    +
    366 else
    +
    367 {
    +
    368 xt::noalias(result) += block_result;
    +
    369 }
    +
    370 }
    +
    371 };
    +
    372
    +
    373 template <class T_E>
    +
    374 struct norm_linf_functor : public simple_functor_base
    +
    375 {
    +
    376 using value_type = typename std::decay_t<decltype(xt::norm_linf(std::declval<xarray<T_E>>()))>::value_type;
    +
    377
    +
    378 template <class E, class A, class O>
    +
    379 auto compute(const E& input, const A& axes, const O& options) const
    +
    380 {
    +
    381 return xt::amax<value_type>(xt::abs(input), axes, options);
    +
    382 }
    +
    383
    +
    384 template <class BR, class E, class MR>
    +
    385 auto merge(const BR& block_result, bool first, E& result, MR&) const
    +
    386 {
    +
    387 if (first)
    +
    388 {
    +
    389 xt::noalias(result) = block_result;
    +
    390 }
    +
    391 else
    +
    392 {
    +
    393 xt::noalias(result) = xt::maximum(block_result, result);
    +
    394 }
    +
    395 }
    +
    396 };
    +
    397
    +
    398 template <class T_E>
    +
    399 class norm_lp_to_p_functor
    +
    400 {
    +
    401 public:
    +
    402
    +
    403 using value_type = typename std::decay_t<
    +
    404 decltype(xt::norm_lp_to_p(std::declval<xarray<T_E>>(), 1.0))>::value_type;
    +
    405
    +
    406 norm_lp_to_p_functor(double p)
    +
    407 : m_p(p)
    +
    408 {
    +
    409 }
    +
    410
    +
    411 template <class E, class A, class O>
    +
    412 auto compute(const E& input, const A& axes, const O& options) const
    +
    413 {
    +
    414 return xt::sum<value_type>(xt::pow(input, m_p), axes, options);
    +
    415 }
    +
    416
    +
    417 template <class E>
    +
    418 auto reduction_variable(const E&) const
    +
    419 {
    +
    420 return empty_reduction_variable();
    +
    421 }
    +
    422
    +
    423 template <class BR, class E>
    +
    424 auto merge(const BR& block_result, bool first, E& result, empty_reduction_variable&) const
    +
    425 {
    +
    426 if (first)
    +
    427 {
    +
    428 xt::noalias(result) = block_result;
    +
    429 }
    +
    430 else
    +
    431 {
    +
    432 xt::noalias(result) += block_result;
    +
    433 }
    +
    434 }
    +
    435
    +
    436 template <class E, class R>
    +
    437 void finalize(const empty_reduction_variable&, E&, const R&) const
    +
    438 {
    +
    439 }
    +
    440
    +
    441 private:
    +
    442
    +
    443 double m_p;
    +
    444 };
    +
    445
    +
    446 template <class T_E>
    +
    447 class norm_lp_functor
    +
    448 {
    +
    449 public:
    +
    450
    +
    451 norm_lp_functor(double p)
    +
    452 : m_p(p)
    +
    453 {
    +
    454 }
    +
    455
    +
    456 using value_type = typename std::decay_t<decltype(xt::norm_lp(std::declval<xarray<T_E>>(), 1.0)
    +
    457 )>::value_type;
    +
    458
    +
    459 template <class E, class A, class O>
    +
    460 auto compute(const E& input, const A& axes, const O& options) const
    +
    461 {
    +
    462 return xt::sum<value_type>(xt::pow(input, m_p), axes, options);
    +
    463 }
    +
    464
    +
    465 template <class E>
    +
    466 auto reduction_variable(const E&) const
    +
    467 {
    +
    468 return empty_reduction_variable();
    +
    469 }
    +
    470
    +
    471 template <class BR, class E>
    +
    472 auto merge(const BR& block_result, bool first, E& result, empty_reduction_variable&) const
    +
    473 {
    +
    474 if (first)
    +
    475 {
    +
    476 xt::noalias(result) = block_result;
    +
    477 }
    +
    478 else
    +
    479 {
    +
    480 xt::noalias(result) += block_result;
    +
    481 }
    +
    482 }
    +
    483
    +
    484 template <class E, class R>
    +
    485 void finalize(const empty_reduction_variable&, E& results, const R&) const
    +
    486 {
    +
    487 results = xt::pow(results, 1.0 / m_p);
    +
    488 }
    +
    489
    +
    490 private:
    +
    491
    +
    492 double m_p;
    +
    493 };
    +
    494
    +
    495
    +
    496 }
    +
    497 }
    +
    498}
    +
    499
    +
    500#endif
    +
    auto amax(E &&e, X &&axes, EVS es=EVS())
    Maximum element along given axis.
    Definition xmath.hpp:782
    +
    auto abs(E &&e) noexcept -> detail::xfunction_type_t< math::abs_fun, E >
    Absolute value function.
    Definition xmath.hpp:443
    +
    auto minimum(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::minimum< void >, E1, E2 >
    Elementwise minimum.
    Definition xmath.hpp:761
    +
    auto maximum(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::maximum< void >, E1, E2 >
    Elementwise maximum.
    Definition xmath.hpp:745
    +
    auto amin(E &&e, X &&axes, EVS es=EVS())
    Minimum element along given axis.
    Definition xmath.hpp:800
    +
    auto not_equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::not_equal_to, E1, E2 >
    Element-wise inequality.
    +
    auto sqrt(E &&e) noexcept -> detail::xfunction_type_t< math::sqrt_fun, E >
    Square root function.
    Definition xmath.hpp:1236
    +
    auto square(E1 &&e1) noexcept
    Square power function, equivalent to e1 * e1.
    Definition xmath.hpp:1126
    +
    auto pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
    Power function.
    Definition xmath.hpp:1015
    +
    auto sum(E &&e, X &&axes, EVS es=EVS())
    Sum of elements over given axes.
    Definition xmath.hpp:1838
    +
    auto norm_sq(E &&e, X &&axes, EVS es) noexcept
    Squared L2 norm of an array-like argument over given axes.
    +
    auto norm_lp(E &&e, double p, X &&axes, EVS es=EVS())
    Lp norm of an array-like argument over given axes.
    Definition xnorm.hpp:601
    +
    auto norm_l2(E &&e, EVS es=EVS()) noexcept
    L2 norm of a scalar or array-like argument.
    Definition xnorm.hpp:494
    +
    auto norm_l1(E &&e, X &&axes, EVS es) noexcept
    L1 norm of an array-like argument over given axes.
    +
    auto prod(E &&e, X &&axes, EVS es=EVS())
    Product of elements over given axes.
    Definition xmath.hpp:1858
    +
    auto norm_lp_to_p(E &&e, double p, X &&axes, EVS es=EVS()) noexcept
    p-th power of the Lp norm of an array-like argument over given axes.
    Definition xnorm.hpp:557
    +
    auto mean(E &&e, X &&axes, EVS es=EVS())
    Mean of elements over given axes.
    Definition xmath.hpp:1932
    +
    auto norm_l0(E &&e, X &&axes, EVS es) noexcept
    L0 (count) pseudo-norm of an array-like argument over given axes.
    +
    auto norm_linf(E &&e, X &&axes, EVS es) noexcept
    Infinity (maximum) norm of an array-like argument over given axes.
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    auto zeros(S shape) noexcept
    Returns an xexpression containing zeros of the specified shape.
    Definition xbuilder.hpp:66
    +
    +
    + + + + diff --git a/xbroadcast_8hpp_source.html b/xbroadcast_8hpp_source.html new file mode 100644 index 000000000..eaecebccd --- /dev/null +++ b/xbroadcast_8hpp_source.html @@ -0,0 +1,556 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xbroadcast.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xbroadcast.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_BROADCAST_HPP
    +
    11#define XTENSOR_BROADCAST_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <type_traits>
    +
    17#include <utility>
    +
    18
    +
    19#include <xtl/xsequence.hpp>
    +
    20
    +
    21#include "../containers/xscalar.hpp"
    +
    22#include "../core/xaccessible.hpp"
    +
    23#include "../core/xexpression.hpp"
    +
    24#include "../core/xiterable.hpp"
    +
    25#include "../core/xstrides.hpp"
    +
    26#include "../core/xtensor_config.hpp"
    +
    27#include "../utils/xutils.hpp"
    +
    28
    +
    29namespace xt
    +
    30{
    +
    31
    +
    32 /*************
    +
    33 * broadcast *
    +
    34 *************/
    +
    35
    +
    36 template <class E, class S>
    +
    37 auto broadcast(E&& e, const S& s);
    +
    38
    +
    39 template <class E, class I, std::size_t L>
    +
    40 auto broadcast(E&& e, const I (&s)[L]);
    +
    41
    +
    42 /*************************
    +
    43 * xbroadcast extensions *
    +
    44 *************************/
    +
    45
    +
    46 namespace extension
    +
    47 {
    +
    48 template <class Tag, class CT, class X>
    + +
    50
    +
    51 template <class CT, class X>
    +
    + +
    53 {
    +
    54 using type = xtensor_empty_base;
    +
    55 };
    +
    +
    56
    +
    57 template <class CT, class X>
    +
    +
    58 struct xbroadcast_base : xbroadcast_base_impl<xexpression_tag_t<CT>, CT, X>
    +
    59 {
    +
    60 };
    +
    +
    61
    +
    62 template <class CT, class X>
    +
    63 using xbroadcast_base_t = typename xbroadcast_base<CT, X>::type;
    +
    64 }
    +
    65
    +
    66 /**************
    +
    67 * xbroadcast *
    +
    68 **************/
    +
    69
    +
    70 template <class CT, class X>
    +
    71 class xbroadcast;
    +
    72
    +
    73 template <class E>
    + +
    75
    +
    76 template <class CT, class X>
    +
    + +
    78 {
    +
    79 using xexpression_type = std::decay_t<CT>;
    +
    80 using inner_shape_type = promote_shape_t<typename xexpression_type::shape_type, X>;
    +
    81 using const_stepper = typename xexpression_type::const_stepper;
    +
    82 using stepper = const_stepper;
    +
    83 };
    +
    +
    84
    +
    85 template <class CT, class X>
    +
    + +
    87 {
    +
    88 using xexpression_type = std::decay_t<CT>;
    +
    89 using reference = typename xexpression_type::const_reference;
    +
    90 using const_reference = typename xexpression_type::const_reference;
    +
    91 using size_type = typename xexpression_type::size_type;
    +
    92 };
    +
    +
    93
    +
    94 /*****************************
    +
    95 * linear_begin / linear_end *
    +
    96 *****************************/
    +
    97
    +
    98 template <class CT, class X>
    +
    99 XTENSOR_CONSTEXPR_RETURN auto linear_begin(xbroadcast<CT, X>& c) noexcept
    +
    100 {
    +
    101 return linear_begin(c.expression());
    +
    102 }
    +
    103
    +
    104 template <class CT, class X>
    +
    105 XTENSOR_CONSTEXPR_RETURN auto linear_end(xbroadcast<CT, X>& c) noexcept
    +
    106 {
    +
    107 return linear_end(c.expression());
    +
    108 }
    +
    109
    +
    110 template <class CT, class X>
    +
    111 XTENSOR_CONSTEXPR_RETURN auto linear_begin(const xbroadcast<CT, X>& c) noexcept
    +
    112 {
    +
    113 return linear_begin(c.expression());
    +
    114 }
    +
    115
    +
    116 template <class CT, class X>
    +
    117 XTENSOR_CONSTEXPR_RETURN auto linear_end(const xbroadcast<CT, X>& c) noexcept
    +
    118 {
    +
    119 return linear_end(c.expression());
    +
    120 }
    +
    121
    +
    122 /*************************************
    +
    123 * overlapping_memory_checker_traits *
    +
    124 *************************************/
    +
    125
    +
    126 template <xbroadcast_concept E>
    + + +
    129 {
    +
    130 static bool check_overlap(const E& expr, const memory_range& dst_range)
    +
    131 {
    +
    132 if (expr.size() == 0)
    +
    133 {
    +
    134 return false;
    +
    135 }
    +
    136 else
    +
    137 {
    +
    138 using ChildE = std::decay_t<decltype(expr.expression())>;
    +
    139 return overlapping_memory_checker_traits<ChildE>::check_overlap(expr.expression(), dst_range);
    +
    140 }
    +
    141 }
    +
    142 };
    +
    143
    +
    157 template <class CT, class X>
    +
    +
    158 class xbroadcast : public xsharable_expression<xbroadcast<CT, X>>,
    +
    159 public xconst_iterable<xbroadcast<CT, X>>,
    +
    160 public xconst_accessible<xbroadcast<CT, X>>,
    +
    161 public extension::xbroadcast_base_t<CT, X>
    +
    162 {
    +
    163 public:
    +
    164
    +
    165 using self_type = xbroadcast<CT, X>;
    +
    166 using xexpression_type = std::decay_t<CT>;
    +
    167 using accessible_base = xconst_accessible<self_type>;
    +
    168 using extension_base = extension::xbroadcast_base_t<CT, X>;
    +
    169 using expression_tag = typename extension_base::expression_tag;
    +
    170
    +
    171 using inner_types = xcontainer_inner_types<self_type>;
    +
    172 using value_type = typename xexpression_type::value_type;
    +
    173 using reference = typename inner_types::reference;
    +
    174 using const_reference = typename inner_types::const_reference;
    +
    175 using pointer = typename xexpression_type::const_pointer;
    +
    176 using const_pointer = typename xexpression_type::const_pointer;
    +
    177 using size_type = typename inner_types::size_type;
    +
    178 using difference_type = typename xexpression_type::difference_type;
    +
    179
    +
    180 using iterable_base = xconst_iterable<self_type>;
    +
    181 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    182 using shape_type = inner_shape_type;
    +
    183
    +
    184 using stepper = typename iterable_base::stepper;
    +
    185 using const_stepper = typename iterable_base::const_stepper;
    +
    186
    +
    187 using bool_load_type = typename xexpression_type::bool_load_type;
    +
    188
    +
    189 static constexpr layout_type static_layout = layout_type::dynamic;
    +
    190 static constexpr bool contiguous_layout = false;
    +
    191
    +
    192 template <class CTA, class S>
    +
    193 xbroadcast(CTA&& e, const S& s);
    +
    194
    +
    195 template <class CTA>
    +
    196 xbroadcast(CTA&& e, shape_type&& s);
    +
    197
    + +
    199 const inner_shape_type& shape() const noexcept;
    +
    200 layout_type layout() const noexcept;
    +
    201 bool is_contiguous() const noexcept;
    +
    202 using accessible_base::shape;
    +
    203
    +
    204 template <class... Args>
    +
    205 const_reference operator()(Args... args) const;
    +
    206
    +
    207 template <class... Args>
    +
    208 const_reference unchecked(Args... args) const;
    +
    209
    +
    210 template <class It>
    +
    211 const_reference element(It first, It last) const;
    +
    212
    +
    213 const xexpression_type& expression() const noexcept;
    +
    214
    +
    215 template <class S>
    +
    216 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    217
    +
    218 template <class S>
    +
    219 bool has_linear_assign(const S& strides) const noexcept;
    +
    220
    +
    221 template <class S>
    +
    222 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    223 template <class S>
    +
    224 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    225
    +
    226 template <class E, xscalar_concept XCT = CT>
    +
    227 void assign_to(xexpression<E>& e) const;
    +
    228
    +
    229 template <class E>
    +
    230 using rebind_t = xbroadcast<E, X>;
    +
    231
    +
    232 template <class E>
    +
    233 rebind_t<E> build_broadcast(E&& e) const;
    +
    234
    +
    235 private:
    +
    236
    +
    237 CT m_e;
    +
    238 inner_shape_type m_shape;
    +
    239 };
    +
    +
    240
    +
    241 /****************************
    +
    242 * broadcast implementation *
    +
    243 ****************************/
    +
    244
    +
    255 template <class E, class S>
    +
    +
    256 inline auto broadcast(E&& e, const S& s)
    +
    257 {
    +
    258 using shape_type = filter_fixed_shape_t<std::decay_t<S>>;
    +
    259 using broadcast_type = xbroadcast<const_xclosure_t<E>, shape_type>;
    +
    260 return broadcast_type(std::forward<E>(e), xtl::forward_sequence<shape_type, decltype(s)>(s));
    +
    261 }
    +
    +
    262
    +
    263 template <class E, class I, std::size_t L>
    +
    264 inline auto broadcast(E&& e, const I (&s)[L])
    +
    265 {
    +
    266 using broadcast_type = xbroadcast<const_xclosure_t<E>, std::array<std::size_t, L>>;
    +
    267 using shape_type = typename broadcast_type::shape_type;
    +
    268 return broadcast_type(std::forward<E>(e), xtl::forward_sequence<shape_type, decltype(s)>(s));
    +
    269 }
    +
    270
    +
    271 /*****************************
    +
    272 * xbroadcast implementation *
    +
    273 *****************************/
    +
    274
    +
    279
    +
    286 template <class CT, class X>
    +
    287 template <class CTA, class S>
    +
    +
    288 inline xbroadcast<CT, X>::xbroadcast(CTA&& e, const S& s)
    +
    289 : m_e(std::forward<CTA>(e))
    +
    290 {
    +
    291 if (s.size() < m_e.dimension())
    +
    292 {
    +
    293 XTENSOR_THROW(xt::broadcast_error, "Broadcast shape has fewer elements than original expression.");
    +
    294 }
    +
    295 xt::resize_container(m_shape, s.size());
    +
    296 std::copy(s.begin(), s.end(), m_shape.begin());
    +
    297 xt::broadcast_shape(m_e.shape(), m_shape);
    +
    298 }
    +
    +
    299
    +
    307 template <class CT, class X>
    +
    308 template <class CTA>
    +
    +
    309 inline xbroadcast<CT, X>::xbroadcast(CTA&& e, shape_type&& s)
    +
    310 : m_e(std::forward<CTA>(e))
    +
    311 , m_shape(std::move(s))
    +
    312 {
    +
    313 xt::broadcast_shape(m_e.shape(), m_shape);
    +
    314 }
    +
    +
    315
    +
    317
    +
    322
    +
    325 template <class CT, class X>
    +
    +
    326 inline auto xbroadcast<CT, X>::shape() const noexcept -> const inner_shape_type&
    +
    327 {
    +
    328 return m_shape;
    +
    329 }
    +
    +
    330
    +
    334 template <class CT, class X>
    +
    + +
    336 {
    +
    337 return m_e.layout();
    +
    338 }
    +
    +
    339
    +
    340 template <class CT, class X>
    +
    341 inline bool xbroadcast<CT, X>::is_contiguous() const noexcept
    +
    342 {
    +
    343 return false;
    +
    344 }
    +
    345
    +
    347
    +
    352
    +
    358 template <class CT, class X>
    +
    359 template <class... Args>
    +
    +
    360 inline auto xbroadcast<CT, X>::operator()(Args... args) const -> const_reference
    +
    361 {
    +
    362 return m_e(args...);
    +
    363 }
    +
    +
    364
    +
    384 template <class CT, class X>
    +
    385 template <class... Args>
    +
    +
    386 inline auto xbroadcast<CT, X>::unchecked(Args... args) const -> const_reference
    +
    387 {
    +
    388 return this->operator()(args...);
    +
    389 }
    +
    +
    390
    +
    398 template <class CT, class X>
    +
    399 template <class It>
    +
    +
    400 inline auto xbroadcast<CT, X>::element(It, It last) const -> const_reference
    +
    401 {
    +
    402 return m_e.element(last - this->dimension(), last);
    +
    403 }
    +
    +
    404
    +
    408 template <class CT, class X>
    +
    +
    409 inline auto xbroadcast<CT, X>::expression() const noexcept -> const xexpression_type&
    +
    410 {
    +
    411 return m_e;
    +
    412 }
    +
    +
    413
    +
    415
    +
    420
    +
    426 template <class CT, class X>
    +
    427 template <class S>
    +
    +
    428 inline bool xbroadcast<CT, X>::broadcast_shape(S& shape, bool) const
    +
    429 {
    +
    430 return xt::broadcast_shape(m_shape, shape);
    +
    431 }
    +
    +
    432
    +
    438 template <class CT, class X>
    +
    439 template <class S>
    +
    +
    440 inline bool xbroadcast<CT, X>::has_linear_assign(const S& strides) const noexcept
    +
    441 {
    +
    442 return this->dimension() == m_e.dimension()
    +
    443 && std::equal(m_shape.cbegin(), m_shape.cend(), m_e.shape().cbegin())
    +
    444 && m_e.has_linear_assign(strides);
    +
    445 }
    +
    +
    446
    +
    448
    +
    449 template <class CT, class X>
    +
    450 template <class S>
    +
    451 inline auto xbroadcast<CT, X>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    452 {
    +
    453 // Could check if (broadcastable(shape, m_shape)
    +
    454 return m_e.stepper_begin(shape);
    +
    455 }
    +
    456
    +
    457 template <class CT, class X>
    +
    458 template <class S>
    +
    459 inline auto xbroadcast<CT, X>::stepper_end(const S& shape, layout_type l) const noexcept -> const_stepper
    +
    460 {
    +
    461 // Could check if (broadcastable(shape, m_shape)
    +
    462 return m_e.stepper_end(shape, l);
    +
    463 }
    +
    464
    +
    465 template <class CT, class X>
    +
    466 template <class E, xscalar_concept XCT>
    +
    467 inline void xbroadcast<CT, X>::assign_to(xexpression<E>& e) const
    +
    468 {
    +
    469 auto& ed = e.derived_cast();
    +
    470 ed.resize(m_shape);
    +
    471 std::fill(ed.begin(), ed.end(), m_e());
    +
    472 }
    +
    473
    +
    474 template <class CT, class X>
    +
    475 template <class E>
    +
    476 inline auto xbroadcast<CT, X>::build_broadcast(E&& e) const -> rebind_t<E>
    +
    477 {
    +
    478 return rebind_t<E>(std::forward<E>(e), inner_shape_type(m_shape));
    +
    479 }
    +
    480}
    +
    481
    +
    482#endif
    +
    Broadcasted xexpression to a specified shape.
    +
    const xexpression_type & expression() const noexcept
    +
    const inner_shape_type & shape() const noexcept
    Returns the shape of the expression.
    +
    layout_type layout() const noexcept
    +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    +
    xbroadcast(CTA &&e, shape_type &&s)
    Constructs an xbroadcast expression broadcasting the specified xexpression to the given shape.
    +
    xbroadcast(CTA &&e, const S &s)
    Constructs an xbroadcast expression broadcasting the specified xexpression to the given shape.
    +
    bool has_linear_assign(const S &strides) const noexcept
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    +
    size_type dimension() const noexcept
    Returns the number of dimensions of the expression.
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    Base class for xexpressions.
    + + + +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto broadcast(E &&e, const S &s)
    Returns an xexpression broadcasting the given expression to a specified shape.
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + + +
    +
    + + + + diff --git a/xbuffer__adaptor_8hpp_source.html b/xbuffer__adaptor_8hpp_source.html new file mode 100644 index 000000000..3d509042d --- /dev/null +++ b/xbuffer__adaptor_8hpp_source.html @@ -0,0 +1,1442 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xbuffer_adaptor.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xbuffer_adaptor.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_BUFFER_ADAPTOR_HPP
    +
    11#define XTENSOR_BUFFER_ADAPTOR_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <functional>
    +
    15#include <iterator>
    +
    16#include <memory>
    +
    17#include <stdexcept>
    +
    18
    +
    19#include <xtl/xclosure.hpp>
    +
    20
    +
    21#include "../containers/xstorage.hpp"
    +
    22#include "../core/xtensor_config.hpp"
    +
    23
    +
    24namespace xt
    +
    25{
    +
    26
    +
    + +
    28 {
    +
    29 };
    +
    +
    30
    +
    31 using smart_ownership = no_ownership;
    +
    32
    +
    + +
    34 {
    +
    35 };
    +
    +
    36
    +
    37 template <class CP, class O = no_ownership, class A = std::allocator<std::remove_pointer_t<std::remove_reference_t<CP>>>>
    +
    38 class xbuffer_adaptor;
    +
    39
    +
    40 /********************
    +
    41 * buffer_storage_t *
    +
    42 ********************/
    +
    43
    +
    44 namespace detail
    +
    45 {
    +
    46 template <class CP, class A>
    +
    47 class xbuffer_storage
    +
    48 {
    +
    49 public:
    +
    50
    +
    51 using self_type = xbuffer_storage<CP, A>;
    +
    52 using allocator_type = A;
    +
    53 using destructor_type = allocator_type;
    +
    54 using allocator_traits = std::allocator_traits<allocator_type>;
    +
    55 using value_type = typename allocator_traits::value_type;
    +
    56 using reference = std::conditional_t<
    +
    57 std::is_const<std::remove_pointer_t<std::remove_reference_t<CP>>>::value,
    +
    58 const value_type&,
    +
    59 value_type&>;
    +
    60 using const_reference = const value_type&;
    +
    61 using pointer = std::conditional_t<
    +
    62 std::is_const<std::remove_pointer_t<std::remove_reference_t<CP>>>::value,
    +
    63 typename allocator_traits::const_pointer,
    +
    64 typename allocator_traits::pointer>;
    +
    65 using const_pointer = typename allocator_traits::const_pointer;
    +
    66 using size_type = typename allocator_traits::size_type;
    +
    67 using difference_type = typename allocator_traits::difference_type;
    +
    68
    +
    69 xbuffer_storage();
    +
    70
    +
    71 template <class P>
    +
    72 xbuffer_storage(P&& data, size_type size, const allocator_type& alloc = allocator_type());
    +
    73
    +
    74 size_type size() const noexcept;
    +
    75 void resize(size_type size);
    +
    76
    +
    77 pointer data() noexcept;
    +
    78 const_pointer data() const noexcept;
    +
    79
    +
    80 void swap(self_type& rhs) noexcept;
    +
    81
    +
    82 template <class P>
    +
    83 void reset_data(P&& data, size_type size) noexcept;
    +
    84
    +
    85 private:
    +
    86
    +
    87 pointer p_data;
    +
    88 size_type m_size;
    +
    89 };
    +
    90
    +
    91 template <class CP, class D>
    +
    92 class xbuffer_smart_pointer
    +
    93 {
    +
    94 public:
    +
    95
    +
    96 using self_type = xbuffer_storage<CP, D>;
    +
    97 using destructor_type = D;
    +
    98 using value_type = std::remove_const_t<std::remove_pointer_t<std::remove_reference_t<CP>>>;
    +
    99 using allocator_type = std::allocator<value_type>;
    +
    100 using allocator_traits = std::allocator_traits<allocator_type>;
    +
    101 using reference = std::conditional_t<
    +
    102 std::is_const<std::remove_pointer_t<std::remove_reference_t<CP>>>::value,
    +
    103 const value_type&,
    +
    104 value_type&>;
    +
    105 using const_reference = const value_type&;
    +
    106 using pointer = std::conditional_t<
    +
    107 std::is_const<std::remove_pointer_t<std::remove_reference_t<CP>>>::value,
    +
    108 typename allocator_traits::const_pointer,
    +
    109 typename allocator_traits::pointer>;
    +
    110 using const_pointer = typename allocator_traits::const_pointer;
    +
    111 using size_type = typename allocator_traits::size_type;
    +
    112 using difference_type = typename allocator_traits::difference_type;
    +
    113
    +
    114 xbuffer_smart_pointer();
    +
    115
    +
    116 template <class P, class DT>
    +
    117 xbuffer_smart_pointer(P&& data_ptr, size_type size, DT&& destruct);
    +
    118
    +
    119 size_type size() const noexcept;
    +
    120 void resize(size_type size);
    +
    121
    +
    122 pointer data() noexcept;
    +
    123 const_pointer data() const noexcept;
    +
    124
    +
    125 void swap(self_type& rhs) noexcept;
    +
    126
    +
    127 template <class P, class DT>
    +
    128 void reset_data(P&& data, size_type size, DT&& destruct) noexcept;
    +
    129
    +
    130 private:
    +
    131
    +
    132 pointer p_data;
    +
    133 size_type m_size;
    +
    134 destructor_type m_destruct;
    +
    135 };
    +
    136
    +
    137 template <class CP, class A>
    +
    138 class xbuffer_owner_storage
    +
    139 {
    +
    140 public:
    +
    141
    +
    142 using self_type = xbuffer_owner_storage<CP, A>;
    +
    143 using allocator_type = A;
    +
    144 using destructor_type = allocator_type;
    +
    145 using allocator_traits = std::allocator_traits<allocator_type>;
    +
    146 using value_type = typename allocator_traits::value_type;
    +
    147 using reference = std::conditional_t<
    +
    148 std::is_const<std::remove_pointer_t<std::remove_reference_t<CP>>>::value,
    +
    149 const value_type&,
    +
    150 value_type&>;
    +
    151 using const_reference = const value_type&;
    +
    152 using pointer = std::conditional_t<
    +
    153 std::is_const<std::remove_pointer_t<std::remove_reference_t<CP>>>::value,
    +
    154 typename allocator_traits::const_pointer,
    +
    155 typename allocator_traits::pointer>;
    +
    156 using const_pointer = typename allocator_traits::const_pointer;
    +
    157 using size_type = typename allocator_traits::size_type;
    +
    158 using difference_type = typename allocator_traits::difference_type;
    +
    159
    +
    160 xbuffer_owner_storage() = default;
    +
    161
    +
    162 template <class P>
    +
    163 xbuffer_owner_storage(P&& data, size_type size, const allocator_type& alloc = allocator_type());
    +
    164
    +
    165 ~xbuffer_owner_storage();
    +
    166
    +
    167 xbuffer_owner_storage(const self_type&) = delete;
    +
    168 self_type& operator=(const self_type&);
    +
    169
    +
    170 xbuffer_owner_storage(self_type&&);
    +
    171 self_type& operator=(self_type&&);
    +
    172
    +
    173 size_type size() const noexcept;
    +
    174 void resize(size_type size);
    +
    175
    +
    176 pointer data() noexcept;
    +
    177 const_pointer data() const noexcept;
    +
    178
    +
    179 allocator_type get_allocator() const noexcept;
    +
    180
    +
    181 void swap(self_type& rhs) noexcept;
    +
    182
    +
    183 template <class P>
    +
    184 void reset_data(P&& data, size_type size, const allocator_type& alloc = allocator_type()) noexcept;
    +
    185
    +
    186 private:
    +
    187
    +
    188 xtl::xclosure_wrapper<CP> m_data;
    +
    189 size_type m_size;
    +
    190 bool m_moved_from;
    +
    191 allocator_type m_allocator;
    +
    192 };
    +
    193
    +
    194 // Workaround for MSVC2015: using void_t results in some
    +
    195 // template instantiation caching that leads to wrong
    +
    196 // type deduction later in xfunction.
    +
    197 template <class T>
    +
    198 struct msvc2015_void
    +
    199 {
    +
    200 using type = void;
    +
    201 };
    +
    202
    +
    203 template <class T>
    +
    204 using msvc2015_void_t = typename msvc2015_void<T>::type;
    +
    205
    +
    206 template <class E, class = void>
    +
    207 struct is_lambda_type : std::false_type
    +
    208 {
    +
    209 };
    +
    210
    +
    211 // check if operator() is available
    +
    212 template <class E>
    +
    213 struct is_lambda_type<E, msvc2015_void_t<decltype(&E::operator())>> : std::true_type
    +
    214 {
    +
    215 };
    +
    216
    +
    217 template <class T>
    +
    218 struct self_type
    +
    219 {
    +
    220 using type = T;
    +
    221 };
    +
    222
    +
    223 template <class CP, class A, class O>
    +
    224 struct get_buffer_storage
    +
    225 {
    +
    226 using type = xtl::mpl::eval_if_t<
    +
    227 is_lambda_type<A>,
    +
    228 self_type<xbuffer_smart_pointer<CP, A>>,
    +
    229 self_type<xbuffer_storage<CP, A>>>;
    +
    230 };
    +
    231
    +
    232 template <class CP, class A>
    +
    233 struct get_buffer_storage<CP, A, acquire_ownership>
    +
    234 {
    +
    235 using type = xbuffer_owner_storage<CP, A>;
    +
    236 };
    +
    237
    +
    238 template <class CP, class T>
    +
    239 struct get_buffer_storage<CP, std::shared_ptr<T>, no_ownership>
    +
    240 {
    +
    241 using type = xbuffer_smart_pointer<CP, std::shared_ptr<T>>;
    +
    242 };
    +
    243
    +
    244 template <class CP, class T>
    +
    245 struct get_buffer_storage<CP, std::unique_ptr<T>, no_ownership>
    +
    246 {
    +
    247 using type = xbuffer_smart_pointer<CP, std::unique_ptr<T>>;
    +
    248 };
    +
    249
    +
    250 template <class CP, class A, class O>
    +
    251 using buffer_storage_t = typename get_buffer_storage<CP, A, O>::type;
    +
    252 }
    +
    253
    +
    254 /************************
    +
    255 * xbuffer_adaptor_base *
    +
    256 ************************/
    +
    257
    +
    258 template <class D>
    + +
    260
    +
    261 template <class D>
    +
    +
    262 class xbuffer_adaptor_base
    +
    263 {
    +
    264 public:
    +
    265
    +
    266 using self_type = xbuffer_adaptor_base<D>;
    +
    267 using derived_type = D;
    +
    268 using inner_types = buffer_inner_types<D>;
    +
    269 using value_type = typename inner_types::value_type;
    +
    270 using reference = typename inner_types::reference;
    +
    271 using const_reference = typename inner_types::const_reference;
    +
    272 using pointer = typename inner_types::pointer;
    +
    273 using const_pointer = typename inner_types::const_pointer;
    +
    274 using size_type = typename inner_types::size_type;
    +
    275 using difference_type = typename inner_types::difference_type;
    +
    276 using iterator = typename inner_types::iterator;
    +
    277 using const_iterator = typename inner_types::const_iterator;
    +
    278 using reverse_iterator = typename inner_types::reverse_iterator;
    +
    279 using const_reverse_iterator = typename inner_types::const_reverse_iterator;
    +
    280 using index_type = typename inner_types::index_type;
    +
    281
    +
    282 bool empty() const noexcept;
    +
    283
    +
    284 reference operator[](size_type i);
    +
    285 const_reference operator[](size_type i) const;
    +
    286
    +
    287 reference front();
    +
    288 const_reference front() const;
    +
    289
    +
    290 reference back();
    +
    291 const_reference back() const;
    +
    292
    +
    293 iterator begin() noexcept;
    +
    294 iterator end() noexcept;
    +
    295
    +
    296 const_iterator begin() const noexcept;
    +
    297 const_iterator end() const noexcept;
    +
    298 const_iterator cbegin() const noexcept;
    +
    299 const_iterator cend() const noexcept;
    +
    300
    +
    301 reverse_iterator rbegin() noexcept;
    +
    302 reverse_iterator rend() noexcept;
    +
    303
    +
    304 const_reverse_iterator rbegin() const noexcept;
    +
    305 const_reverse_iterator rend() const noexcept;
    +
    306 const_reverse_iterator crbegin() const noexcept;
    +
    307 const_reverse_iterator crend() const noexcept;
    +
    308
    +
    309 derived_type& derived_cast() noexcept;
    +
    310 const derived_type& derived_cast() const noexcept;
    +
    311
    +
    312 protected:
    +
    313
    +
    314 xbuffer_adaptor_base() = default;
    +
    315 ~xbuffer_adaptor_base() = default;
    +
    316
    +
    317 xbuffer_adaptor_base(const self_type&) = default;
    +
    318 self_type& operator=(const self_type&) = default;
    +
    319
    +
    320 xbuffer_adaptor_base(self_type&&) = default;
    +
    321 self_type& operator=(self_type&&) = default;
    +
    322 };
    +
    +
    323
    +
    324 template <class D>
    +
    325 bool operator==(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs);
    +
    326
    +
    327 template <class D>
    +
    328 bool operator!=(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs);
    +
    329
    +
    330 template <class D>
    +
    331 bool operator<(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs);
    +
    332
    +
    333 template <class D>
    +
    334 bool operator<=(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs);
    +
    335
    +
    336 template <class D>
    +
    337 bool operator>(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs);
    +
    338
    +
    339 template <class D>
    +
    340 bool operator>=(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs);
    +
    341
    +
    342 /*******************
    +
    343 * xbuffer_adaptor *
    +
    344 *******************/
    +
    345
    +
    346 template <class CP, class O, class A>
    +
    + +
    348 {
    +
    349 using base_type = detail::buffer_storage_t<CP, A, O>;
    +
    350 using value_type = typename base_type::value_type;
    +
    351 using reference = typename base_type::reference;
    +
    352 using const_reference = typename base_type::const_reference;
    +
    353 using pointer = typename base_type::pointer;
    +
    354 using const_pointer = typename base_type::const_pointer;
    +
    355 using size_type = typename base_type::size_type;
    +
    356 using difference_type = typename base_type::difference_type;
    +
    357 using iterator = pointer;
    +
    358 using const_iterator = const_pointer;
    +
    359 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    360 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    361 using index_type = size_type;
    +
    362 };
    +
    +
    363
    +
    364 template <class CP, class O, class A>
    +
    +
    365 class xbuffer_adaptor : private detail::buffer_storage_t<CP, A, O>,
    +
    366 public xbuffer_adaptor_base<xbuffer_adaptor<CP, O, A>>
    +
    367 {
    +
    368 public:
    +
    369
    +
    370 using self_type = xbuffer_adaptor<CP, O, A>;
    +
    371 using base_type = detail::buffer_storage_t<CP, A, O>;
    +
    372 using buffer_base_type = xbuffer_adaptor_base<self_type>;
    +
    373 using allocator_type = typename base_type::allocator_type;
    +
    374 using destructor_type = typename base_type::destructor_type;
    +
    375 using value_type = typename buffer_base_type::value_type;
    +
    376 using reference = typename buffer_base_type::reference;
    +
    377 using const_reference = typename buffer_base_type::const_reference;
    +
    378 using pointer = typename buffer_base_type::pointer;
    +
    379 using const_pointer = typename buffer_base_type::const_pointer;
    +
    380 using size_type = typename buffer_base_type::size_type;
    +
    381 using difference_type = typename buffer_base_type::difference_type;
    +
    382 using iterator = typename buffer_base_type::iterator;
    +
    383 using const_iterator = typename buffer_base_type::const_iterator;
    +
    384 using reverse_iterator = typename buffer_base_type::reverse_iterator;
    +
    385 using const_reverse_iterator = typename buffer_base_type::const_reverse_iterator;
    +
    386 using temporary_type = uvector<value_type, allocator_type>;
    +
    387
    +
    388 xbuffer_adaptor() = default;
    +
    389
    +
    390 using base_type::base_type;
    +
    391
    +
    392 ~xbuffer_adaptor() = default;
    +
    393
    +
    394 xbuffer_adaptor(const self_type&) = default;
    +
    395 self_type& operator=(const self_type&) = default;
    +
    396
    +
    397 xbuffer_adaptor(self_type&&) = default;
    +
    398 xbuffer_adaptor& operator=(self_type&&) = default;
    +
    399
    +
    400 self_type& operator=(temporary_type&&);
    +
    401
    +
    402 using base_type::data;
    +
    403 using base_type::reset_data;
    +
    404 using base_type::resize;
    +
    405 using base_type::size;
    +
    406 using base_type::swap;
    +
    407 };
    +
    +
    408
    +
    409 template <class CP, class O, class A>
    +
    410 void swap(xbuffer_adaptor<CP, O, A>& lhs, xbuffer_adaptor<CP, O, A>& rhs) noexcept;
    +
    411
    +
    412 /*********************
    +
    413 * xiterator_adaptor *
    +
    414 *********************/
    +
    415
    +
    416 template <class I, class CI>
    +
    417 class xiterator_adaptor;
    +
    418
    +
    419 template <class I, class CI>
    +
    + +
    421 {
    +
    422 using traits = std::iterator_traits<I>;
    +
    423 using const_traits = std::iterator_traits<CI>;
    +
    424
    +
    425 using value_type = std::common_type_t<typename traits::value_type, typename const_traits::value_type>;
    +
    426 using reference = typename traits::reference;
    +
    427 using const_reference = typename const_traits::reference;
    +
    428 using pointer = typename traits::pointer;
    +
    429 using const_pointer = typename const_traits::pointer;
    +
    430 using difference_type = std::common_type_t<typename traits::difference_type, typename const_traits::difference_type>;
    +
    431 using size_type = std::make_unsigned_t<difference_type>;
    +
    432
    +
    433 using iterator = I;
    +
    434 using const_iterator = CI;
    +
    435 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    436 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    437 using index_type = difference_type;
    +
    438 };
    +
    +
    439
    +
    440 template <class I, class CI>
    +
    +
    441 class xiterator_adaptor : public xbuffer_adaptor_base<xiterator_adaptor<I, CI>>
    +
    442 {
    +
    443 public:
    +
    444
    +
    445 using self_type = xiterator_adaptor<I, CI>;
    +
    446 using base_type = xbuffer_adaptor_base<self_type>;
    +
    447 using value_type = typename base_type::value_type;
    +
    448 using allocator_type = std::allocator<value_type>;
    +
    449 using size_type = typename base_type::size_type;
    +
    450 using iterator = typename base_type::iterator;
    +
    451 using const_iterator = typename base_type::const_iterator;
    +
    452 using temporary_type = uvector<value_type, allocator_type>;
    +
    453
    +
    454 xiterator_adaptor() = default;
    +
    455 xiterator_adaptor(I it, CI cit, size_type size);
    +
    456
    +
    457 ~xiterator_adaptor() = default;
    +
    458
    +
    459 xiterator_adaptor(const self_type&) = default;
    +
    460 xiterator_adaptor& operator=(const self_type&) = default;
    +
    461
    +
    462 xiterator_adaptor(self_type&&) = default;
    +
    463 xiterator_adaptor& operator=(self_type&&) = default;
    +
    464
    +
    465 xiterator_adaptor& operator=(const temporary_type& rhs);
    +
    466 xiterator_adaptor& operator=(temporary_type&& rhs);
    +
    467
    +
    468 size_type size() const noexcept;
    +
    469 void resize(size_type size);
    +
    470
    +
    471 iterator data() noexcept;
    +
    472 const_iterator data() const noexcept;
    +
    473
    +
    474 void swap(self_type& rhs) noexcept;
    +
    475
    +
    476 private:
    +
    477
    +
    478 I m_it;
    +
    479 CI m_cit;
    +
    480 size_type m_size;
    +
    481 };
    +
    +
    482
    +
    483 template <class I, class CI>
    +
    484 void swap(xiterator_adaptor<I, CI>& lhs, xiterator_adaptor<I, CI>& rhs) noexcept;
    +
    485
    +
    486 template <class I, class CI>
    + +
    490
    +
    491 /***************************
    +
    492 * xiterator_owner_adaptor *
    +
    493 ***************************/
    +
    494
    +
    495 template <class C, class IG>
    + +
    497
    +
    498 template <class C, class IG>
    +
    + +
    500 {
    +
    501 using iterator = typename IG::iterator;
    +
    502 using const_iterator = typename IG::const_iterator;
    +
    503 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    504 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    505
    +
    506 using traits = std::iterator_traits<iterator>;
    +
    507 using const_traits = std::iterator_traits<const_iterator>;
    +
    508
    +
    509 using value_type = std::common_type_t<typename traits::value_type, typename const_traits::value_type>;
    +
    510 using reference = typename traits::reference;
    +
    511 using const_reference = typename const_traits::reference;
    +
    512 using pointer = typename traits::pointer;
    +
    513 using const_pointer = typename const_traits::pointer;
    +
    514 using difference_type = std::common_type_t<typename traits::difference_type, typename const_traits::difference_type>;
    +
    515 using size_type = std::make_unsigned_t<difference_type>;
    +
    516 using index_type = difference_type;
    +
    517 };
    +
    +
    518
    +
    519 template <class C, class IG>
    +
    +
    520 class xiterator_owner_adaptor : public xbuffer_adaptor_base<xiterator_owner_adaptor<C, IG>>
    +
    521 {
    +
    522 public:
    +
    523
    +
    524 using self_type = xiterator_owner_adaptor<C, IG>;
    +
    525 using base_type = xbuffer_adaptor_base<self_type>;
    +
    526 using value_type = typename base_type::value_type;
    +
    527 using allocator_type = std::allocator<value_type>;
    +
    528 using size_type = typename base_type::size_type;
    +
    529 using iterator = typename base_type::iterator;
    +
    530 using const_iterator = typename base_type::const_iterator;
    +
    531 using temporary_type = uvector<value_type, allocator_type>;
    +
    532
    +
    533 xiterator_owner_adaptor(C&& c);
    +
    534
    +
    535 ~xiterator_owner_adaptor() = default;
    +
    536
    +
    537 xiterator_owner_adaptor(const self_type&);
    +
    538 xiterator_owner_adaptor& operator=(const self_type&);
    +
    539
    +
    540 xiterator_owner_adaptor(self_type&&);
    +
    541 xiterator_owner_adaptor& operator=(self_type&&);
    +
    542
    +
    543 xiterator_owner_adaptor& operator=(const temporary_type& rhs);
    +
    544 xiterator_owner_adaptor& operator=(temporary_type&& rhs);
    +
    545
    +
    546 size_type size() const noexcept;
    +
    547 void resize(size_type size);
    +
    548
    +
    549 iterator data() noexcept;
    +
    550 const_iterator data() const noexcept;
    +
    551
    +
    552 void swap(self_type& rhs) noexcept;
    +
    553
    +
    554 private:
    +
    555
    +
    556 void init_iterators();
    +
    557
    +
    558 C m_container;
    +
    559 iterator m_it;
    +
    560 const_iterator m_cit;
    +
    561 size_type m_size;
    +
    562 };
    +
    +
    563
    +
    564 template <class C, class IG>
    + +
    566
    +
    567 template <class C, class IG>
    +
    + +
    569 : is_contiguous_container<typename IG::iterator>
    +
    570 {
    +
    571 };
    +
    +
    572
    +
    573 /**************************
    +
    574 * make_xiterator_adaptor *
    +
    575 **************************/
    +
    576
    +
    577 template <class C, class IG>
    +
    578 auto make_xiterator_adaptor(C&& container, IG iterator_getter);
    +
    579
    +
    580 /************************************
    +
    581 * temporary_container metafunction *
    +
    582 ************************************/
    +
    583
    +
    584 template <class C>
    +
    + +
    586 {
    +
    587 using type = C;
    +
    588 };
    +
    +
    589
    +
    590 template <class CP, class O, class A>
    +
    + +
    592 {
    +
    593 using type = typename xbuffer_adaptor<CP, O, A>::temporary_type;
    +
    594 };
    +
    +
    595
    +
    596 template <class I, class CI>
    +
    + +
    598 {
    +
    599 using type = typename xiterator_adaptor<I, CI>::temporary_type;
    +
    600 };
    +
    +
    601
    +
    602 template <class C, class IG>
    +
    + +
    604 {
    +
    605 using type = typename xiterator_owner_adaptor<C, IG>::temporary_type;
    +
    606 };
    +
    +
    607
    +
    608 template <class C>
    +
    609 using temporary_container_t = typename temporary_container<C>::type;
    +
    610
    +
    611 /**********************************
    +
    612 * xbuffer_storage implementation *
    +
    613 **********************************/
    +
    614
    +
    615 namespace detail
    +
    616 {
    +
    617 template <class CP, class A>
    +
    618 inline xbuffer_storage<CP, A>::xbuffer_storage()
    +
    619 : p_data(nullptr)
    +
    620 , m_size(0)
    +
    621 {
    +
    622 }
    +
    623
    +
    624 template <class CP, class A>
    +
    625 template <class P>
    +
    626 inline xbuffer_storage<CP, A>::xbuffer_storage(P&& data, size_type size, const allocator_type&)
    +
    627 : p_data(std::forward<P>(data))
    +
    628 , m_size(size)
    +
    629 {
    +
    630 }
    +
    631
    +
    632 template <class CP, class A>
    +
    633 inline auto xbuffer_storage<CP, A>::size() const noexcept -> size_type
    +
    634 {
    +
    635 return m_size;
    +
    636 }
    +
    637
    +
    638 template <class CP, class A>
    +
    639 inline void xbuffer_storage<CP, A>::resize(size_type size)
    +
    640 {
    +
    641 if (size != m_size)
    +
    642 {
    +
    643 XTENSOR_THROW(std::runtime_error, "xbuffer_storage not resizable");
    +
    644 }
    +
    645 }
    +
    646
    +
    647 template <class CP, class A>
    +
    648 inline auto xbuffer_storage<CP, A>::data() noexcept -> pointer
    +
    649 {
    +
    650 return p_data;
    +
    651 }
    +
    652
    +
    653 template <class CP, class A>
    +
    654 inline auto xbuffer_storage<CP, A>::data() const noexcept -> const_pointer
    +
    655 {
    +
    656 return p_data;
    +
    657 }
    +
    658
    +
    659 template <class CP, class A>
    +
    660 inline void xbuffer_storage<CP, A>::swap(self_type& rhs) noexcept
    +
    661 {
    +
    662 using std::swap;
    +
    663 swap(p_data, rhs.p_data);
    +
    664 swap(m_size, rhs.m_size);
    +
    665 }
    +
    666
    +
    667 template <class CP, class A>
    +
    668 template <class P>
    +
    669 inline void xbuffer_storage<CP, A>::reset_data(P&& data, size_type size) noexcept
    +
    670 {
    +
    671 p_data = std::forward<P>(data);
    +
    672 m_size = size;
    +
    673 }
    +
    674 }
    +
    675
    +
    676 /****************************************
    +
    677 * xbuffer_owner_storage implementation *
    +
    678 ****************************************/
    +
    679
    +
    680 namespace detail
    +
    681 {
    +
    682 template <class CP, class A>
    +
    683 template <class P>
    +
    684 inline xbuffer_owner_storage<CP, A>::xbuffer_owner_storage(P&& data, size_type size, const allocator_type& alloc)
    +
    685 : m_data(std::forward<P>(data))
    +
    686 , m_size(size)
    +
    687 , m_moved_from(false)
    +
    688 , m_allocator(alloc)
    +
    689 {
    +
    690 }
    +
    691
    +
    692 template <class CP, class A>
    +
    693 inline xbuffer_owner_storage<CP, A>::~xbuffer_owner_storage()
    +
    694 {
    +
    695 if (!m_moved_from)
    +
    696 {
    +
    697 safe_destroy_deallocate(m_allocator, m_data.get(), m_size);
    +
    698 m_size = 0;
    +
    699 }
    +
    700 }
    +
    701
    +
    702 template <class CP, class A>
    +
    703 inline auto xbuffer_owner_storage<CP, A>::operator=(const self_type& rhs) -> self_type&
    +
    704 {
    +
    705 using std::swap;
    +
    706 if (this != &rhs)
    +
    707 {
    +
    708 allocator_type al = std::allocator_traits<allocator_type>::select_on_container_copy_construction(
    +
    709 rhs.get_allocator()
    +
    710 );
    +
    711 pointer tmp = safe_init_allocate(al, rhs.m_size);
    +
    712 if (xtrivially_default_constructible<value_type>::value)
    +
    713 {
    +
    714 std::uninitialized_copy(rhs.m_data.get(), rhs.m_data.get() + rhs.m_size, tmp);
    +
    715 }
    +
    716 else
    +
    717 {
    +
    718 std::copy(rhs.m_data.get(), rhs.m_data.get() + rhs.m_size, tmp);
    +
    719 }
    +
    720 swap(m_data.get(), tmp);
    +
    721 swap(m_allocator, al);
    +
    722 safe_destroy_deallocate(al, tmp, m_size);
    +
    723 m_size = rhs.m_size;
    +
    724 }
    +
    725 return *this;
    +
    726 }
    +
    727
    +
    728 template <class CP, class A>
    +
    729 inline xbuffer_owner_storage<CP, A>::xbuffer_owner_storage(self_type&& rhs)
    +
    730 : m_data(std::move(rhs.m_data))
    +
    731 , m_size(std::move(rhs.m_size))
    +
    732 , m_moved_from(std::move(rhs.m_moved_from))
    +
    733 , m_allocator(std::move(rhs.m_allocator))
    +
    734 {
    +
    735 rhs.m_moved_from = true;
    +
    736 rhs.m_size = 0;
    +
    737 }
    +
    738
    +
    739 template <class CP, class A>
    +
    740 inline auto xbuffer_owner_storage<CP, A>::operator=(self_type&& rhs) -> self_type&
    +
    741 {
    +
    742 swap(rhs);
    +
    743 return *this;
    +
    744 }
    +
    745
    +
    746 template <class CP, class A>
    +
    747 inline auto xbuffer_owner_storage<CP, A>::size() const noexcept -> size_type
    +
    748 {
    +
    749 return m_size;
    +
    750 }
    +
    751
    +
    752 template <class CP, class A>
    +
    753 void xbuffer_owner_storage<CP, A>::resize(size_type size)
    +
    754 {
    +
    755 using std::swap;
    +
    756 if (size != m_size)
    +
    757 {
    +
    758 pointer tmp = safe_init_allocate(m_allocator, size);
    +
    759 swap(m_data.get(), tmp);
    +
    760 swap(m_size, size);
    +
    761 safe_destroy_deallocate(m_allocator, tmp, size);
    +
    762 }
    +
    763 }
    +
    764
    +
    765 template <class CP, class A>
    +
    766 inline auto xbuffer_owner_storage<CP, A>::data() noexcept -> pointer
    +
    767 {
    +
    768 return m_data.get();
    +
    769 }
    +
    770
    +
    771 template <class CP, class A>
    +
    772 inline auto xbuffer_owner_storage<CP, A>::data() const noexcept -> const_pointer
    +
    773 {
    +
    774 return m_data.get();
    +
    775 }
    +
    776
    +
    777 template <class CP, class A>
    +
    778 inline auto xbuffer_owner_storage<CP, A>::get_allocator() const noexcept -> allocator_type
    +
    779 {
    +
    780 return allocator_type(m_allocator);
    +
    781 }
    +
    782
    +
    783 template <class CP, class A>
    +
    784 inline void xbuffer_owner_storage<CP, A>::swap(self_type& rhs) noexcept
    +
    785 {
    +
    786 using std::swap;
    +
    787 swap(m_data, rhs.m_data);
    +
    788 swap(m_size, rhs.m_size);
    +
    789 swap(m_allocator, rhs.m_allocator);
    +
    790 }
    +
    791
    +
    792 template <class CP, class A>
    +
    793 template <class P>
    +
    794 inline void
    +
    795 xbuffer_owner_storage<CP, A>::reset_data(P&& data, size_type size, const allocator_type& alloc) noexcept
    +
    796 {
    +
    797 xbuffer_owner_storage<CP, A> tmp(std::forward<P>(data), size, alloc);
    +
    798 this->swap(tmp);
    +
    799 }
    +
    800 }
    +
    801
    +
    802 /****************************************
    +
    803 * xbuffer_smart_pointer implementation *
    +
    804 ****************************************/
    +
    805
    +
    806 namespace detail
    +
    807 {
    +
    808 template <class CP, class D>
    +
    809 template <class P, class DT>
    +
    810 xbuffer_smart_pointer<CP, D>::xbuffer_smart_pointer(P&& data_ptr, size_type size, DT&& destruct)
    +
    811 : p_data(data_ptr)
    +
    812 , m_size(size)
    +
    813 , m_destruct(std::forward<DT>(destruct))
    +
    814 {
    +
    815 }
    +
    816
    +
    817 template <class CP, class D>
    +
    818 auto xbuffer_smart_pointer<CP, D>::size() const noexcept -> size_type
    +
    819 {
    +
    820 return m_size;
    +
    821 }
    +
    822
    +
    823 template <class CP, class D>
    +
    824 void xbuffer_smart_pointer<CP, D>::resize(size_type size)
    +
    825 {
    +
    826 if (m_size != size)
    +
    827 {
    +
    828 XTENSOR_THROW(std::runtime_error, "xbuffer_storage not resizeable");
    +
    829 }
    +
    830 }
    +
    831
    +
    832 template <class CP, class D>
    +
    833 auto xbuffer_smart_pointer<CP, D>::data() noexcept -> pointer
    +
    834 {
    +
    835 return p_data;
    +
    836 }
    +
    837
    +
    838 template <class CP, class D>
    +
    839 auto xbuffer_smart_pointer<CP, D>::data() const noexcept -> const_pointer
    +
    840 {
    +
    841 return p_data;
    +
    842 }
    +
    843
    +
    844 template <class CP, class D>
    +
    845 void xbuffer_smart_pointer<CP, D>::swap(self_type& rhs) noexcept
    +
    846 {
    +
    847 using std::swap;
    +
    848 swap(p_data, rhs.p_data);
    +
    849 swap(m_size, rhs.m_size);
    +
    850 swap(m_destruct, rhs.m_destruct);
    +
    851 }
    +
    852
    +
    853 template <class CP, class D>
    +
    854 template <class P, class DT>
    +
    855 void xbuffer_smart_pointer<CP, D>::reset_data(P&& data, size_type size, DT&& destruct) noexcept
    +
    856 {
    +
    857 p_data = std::forward<P>(data);
    +
    858 m_size = size;
    +
    859 m_destruct = destruct;
    +
    860 }
    +
    861 }
    +
    862
    +
    863 /***************************************
    +
    864 * xbuffer_adaptor_base implementation *
    +
    865 ***************************************/
    +
    866
    +
    867 template <class D>
    +
    868 inline bool xbuffer_adaptor_base<D>::empty() const noexcept
    +
    869 {
    +
    870 return derived_cast().size() == size_type(0);
    +
    871 }
    +
    872
    +
    873 template <class D>
    +
    874 inline auto xbuffer_adaptor_base<D>::operator[](size_type i) -> reference
    +
    875 {
    +
    876 return derived_cast().data()[static_cast<index_type>(i)];
    +
    877 }
    +
    878
    +
    879 template <class D>
    +
    880 inline auto xbuffer_adaptor_base<D>::operator[](size_type i) const -> const_reference
    +
    881 {
    +
    882 return derived_cast().data()[static_cast<index_type>(i)];
    +
    883 }
    +
    884
    +
    885 template <class D>
    +
    886 inline auto xbuffer_adaptor_base<D>::front() -> reference
    +
    887 {
    +
    888 return this->operator[](0);
    +
    889 }
    +
    890
    +
    891 template <class D>
    +
    892 inline auto xbuffer_adaptor_base<D>::front() const -> const_reference
    +
    893 {
    +
    894 return this->operator[](0);
    +
    895 }
    +
    896
    +
    897 template <class D>
    +
    898 inline auto xbuffer_adaptor_base<D>::back() -> reference
    +
    899 {
    +
    900 return this->operator[](derived_cast().size() - 1);
    +
    901 }
    +
    902
    +
    903 template <class D>
    +
    904 inline auto xbuffer_adaptor_base<D>::back() const -> const_reference
    +
    905 {
    +
    906 return this->operator[](derived_cast().size() - 1);
    +
    907 }
    +
    908
    +
    909 template <class D>
    +
    910 inline auto xbuffer_adaptor_base<D>::begin() noexcept -> iterator
    +
    911 {
    +
    912 return derived_cast().data();
    +
    913 }
    +
    914
    +
    915 template <class D>
    +
    916 inline auto xbuffer_adaptor_base<D>::end() noexcept -> iterator
    +
    917 {
    +
    918 return derived_cast().data() + static_cast<index_type>(derived_cast().size());
    +
    919 }
    +
    920
    +
    921 template <class D>
    +
    922 inline auto xbuffer_adaptor_base<D>::begin() const noexcept -> const_iterator
    +
    923 {
    +
    924 return derived_cast().data();
    +
    925 }
    +
    926
    +
    927 template <class D>
    +
    928 inline auto xbuffer_adaptor_base<D>::end() const noexcept -> const_iterator
    +
    929 {
    +
    930 return derived_cast().data() + static_cast<index_type>(derived_cast().size());
    +
    931 }
    +
    932
    +
    933 template <class D>
    +
    934 inline auto xbuffer_adaptor_base<D>::cbegin() const noexcept -> const_iterator
    +
    935 {
    +
    936 return begin();
    +
    937 }
    +
    938
    +
    939 template <class D>
    +
    940 inline auto xbuffer_adaptor_base<D>::cend() const noexcept -> const_iterator
    +
    941 {
    +
    942 return end();
    +
    943 }
    +
    944
    +
    945 template <class D>
    +
    946 inline auto xbuffer_adaptor_base<D>::rbegin() noexcept -> reverse_iterator
    +
    947 {
    +
    948 return reverse_iterator(end());
    +
    949 }
    +
    950
    +
    951 template <class D>
    +
    952 inline auto xbuffer_adaptor_base<D>::rend() noexcept -> reverse_iterator
    +
    953 {
    +
    954 return reverse_iterator(begin());
    +
    955 }
    +
    956
    +
    957 template <class D>
    +
    958 inline auto xbuffer_adaptor_base<D>::rbegin() const noexcept -> const_reverse_iterator
    +
    959 {
    +
    960 return const_reverse_iterator(end());
    +
    961 }
    +
    962
    +
    963 template <class D>
    +
    964 inline auto xbuffer_adaptor_base<D>::rend() const noexcept -> const_reverse_iterator
    +
    965 {
    +
    966 return const_reverse_iterator(begin());
    +
    967 }
    +
    968
    +
    969 template <class D>
    +
    970 inline auto xbuffer_adaptor_base<D>::crbegin() const noexcept -> const_reverse_iterator
    +
    971 {
    +
    972 return rbegin();
    +
    973 }
    +
    974
    +
    975 template <class D>
    +
    976 inline auto xbuffer_adaptor_base<D>::crend() const noexcept -> const_reverse_iterator
    +
    977 {
    +
    978 return rend();
    +
    979 }
    +
    980
    +
    981 template <class D>
    +
    982 inline auto xbuffer_adaptor_base<D>::derived_cast() noexcept -> derived_type&
    +
    983 {
    +
    984 return *static_cast<derived_type*>(this);
    +
    985 }
    +
    986
    +
    987 template <class D>
    +
    988 inline auto xbuffer_adaptor_base<D>::derived_cast() const noexcept -> const derived_type&
    +
    989 {
    +
    990 return *static_cast<const derived_type*>(this);
    +
    991 }
    +
    992
    +
    993 template <class D>
    +
    994 inline bool operator==(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs)
    +
    995 {
    +
    996 return lhs.derived_cast().size() == rhs.derived_cast().size()
    +
    997 && std::equal(lhs.begin(), lhs.end(), rhs.begin());
    +
    998 }
    +
    999
    +
    1000 template <class D>
    +
    1001 inline bool operator!=(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs)
    +
    1002 {
    +
    1003 return !(lhs == rhs);
    +
    1004 }
    +
    1005
    +
    1006 template <class D>
    +
    1007 inline bool operator<(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs)
    +
    1008 {
    +
    1009 return std::lexicographical_compare(
    +
    1010 lhs.begin(),
    +
    1011 lhs.end(),
    +
    1012 rhs.begin(),
    +
    1013 rhs.end(),
    +
    1014 std::less<typename D::value_type>()
    +
    1015 );
    +
    1016 }
    +
    1017
    +
    1018 template <class D>
    +
    1019 inline bool operator<=(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs)
    +
    1020 {
    +
    1021 return std::lexicographical_compare(
    +
    1022 lhs.begin(),
    +
    1023 lhs.end(),
    +
    1024 rhs.begin(),
    +
    1025 rhs.end(),
    +
    1026 std::less_equal<typename D::value_type>()
    +
    1027 );
    +
    1028 }
    +
    1029
    +
    1030 template <class D>
    +
    1031 inline bool operator>(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs)
    +
    1032 {
    +
    1033 return std::lexicographical_compare(
    +
    1034 lhs.begin(),
    +
    1035 lhs.end(),
    +
    1036 rhs.begin(),
    +
    1037 rhs.end(),
    +
    1038 std::greater<typename D::value_type>()
    +
    1039 );
    +
    1040 }
    +
    1041
    +
    1042 template <class D>
    +
    1043 inline bool operator>=(const xbuffer_adaptor_base<D>& lhs, const xbuffer_adaptor_base<D>& rhs)
    +
    1044 {
    +
    1045 return std::lexicographical_compare(
    +
    1046 lhs.begin(),
    +
    1047 lhs.end(),
    +
    1048 rhs.begin(),
    +
    1049 rhs.end(),
    +
    1050 std::greater_equal<typename D::value_type>()
    +
    1051 );
    +
    1052 }
    +
    1053
    +
    1054 /**********************************
    +
    1055 * xbuffer_adaptor implementation *
    +
    1056 **********************************/
    +
    1057
    +
    1058 template <class CP, class O, class A>
    +
    1059 inline auto xbuffer_adaptor<CP, O, A>::operator=(temporary_type&& tmp) -> self_type&
    +
    1060 {
    +
    1061 base_type::resize(tmp.size());
    +
    1062 std::copy(tmp.cbegin(), tmp.cend(), this->begin());
    +
    1063 return *this;
    +
    1064 }
    +
    1065
    +
    1066 template <class CP, class O, class A>
    +
    1067 inline void swap(xbuffer_adaptor<CP, O, A>& lhs, xbuffer_adaptor<CP, O, A>& rhs) noexcept
    +
    1068 {
    +
    1069 lhs.swap(rhs);
    +
    1070 }
    +
    1071
    +
    1072 /************************************
    +
    1073 * xiterator_adaptor implementation *
    +
    1074 ************************************/
    +
    1075
    +
    1076 template <class I, class CI>
    +
    1077 inline xiterator_adaptor<I, CI>::xiterator_adaptor(I it, CI cit, size_type size)
    +
    1078 : m_it(it)
    +
    1079 , m_cit(cit)
    +
    1080 , m_size(size)
    +
    1081 {
    +
    1082 }
    +
    1083
    +
    1084 template <class I, class CI>
    +
    1085 inline auto xiterator_adaptor<I, CI>::operator=(const temporary_type& rhs) -> self_type&
    +
    1086 {
    +
    1087 resize(rhs.size());
    +
    1088 std::copy(rhs.cbegin(), rhs.cend(), m_it);
    +
    1089 return *this;
    +
    1090 }
    +
    1091
    +
    1092 template <class I, class CI>
    +
    1093 inline auto xiterator_adaptor<I, CI>::operator=(temporary_type&& rhs) -> self_type&
    +
    1094 {
    +
    1095 return (*this = rhs);
    +
    1096 }
    +
    1097
    +
    1098 template <class I, class CI>
    +
    1099 inline auto xiterator_adaptor<I, CI>::size() const noexcept -> size_type
    +
    1100 {
    +
    1101 return m_size;
    +
    1102 }
    +
    1103
    +
    1104 template <class I, class CI>
    +
    1105 inline void xiterator_adaptor<I, CI>::resize(size_type size)
    +
    1106 {
    +
    1107 if (m_size != size)
    +
    1108 {
    +
    1109 XTENSOR_THROW(std::runtime_error, "xiterator_adaptor not resizeable");
    +
    1110 }
    +
    1111 }
    +
    1112
    +
    1113 template <class I, class CI>
    +
    1114 inline auto xiterator_adaptor<I, CI>::data() noexcept -> iterator
    +
    1115 {
    +
    1116 return m_it;
    +
    1117 }
    +
    1118
    +
    1119 template <class I, class CI>
    +
    1120 inline auto xiterator_adaptor<I, CI>::data() const noexcept -> const_iterator
    +
    1121 {
    +
    1122 return m_cit;
    +
    1123 }
    +
    1124
    +
    1125 template <class I, class CI>
    +
    1126 inline void xiterator_adaptor<I, CI>::swap(self_type& rhs) noexcept
    +
    1127 {
    +
    1128 using std::swap;
    +
    1129 swap(m_it, rhs.m_it);
    +
    1130 swap(m_cit, rhs.m_cit);
    +
    1131 swap(m_size, rhs.m_size);
    +
    1132 }
    +
    1133
    +
    1134 template <class I, class CI>
    +
    1135 inline void swap(xiterator_adaptor<I, CI>& lhs, xiterator_adaptor<I, CI>& rhs) noexcept
    +
    1136 {
    +
    1137 lhs.swap(rhs);
    +
    1138 }
    +
    1139
    +
    1140 /******************************************
    +
    1141 * xiterator_owner_adaptor implementation *
    +
    1142 ******************************************/
    +
    1143
    +
    1144 template <class C, class IG>
    +
    1145 inline xiterator_owner_adaptor<C, IG>::xiterator_owner_adaptor(C&& c)
    +
    1146 : m_container(std::move(c))
    +
    1147 {
    +
    1148 init_iterators();
    +
    1149 }
    +
    1150
    +
    1151 template <class C, class IG>
    +
    1152 inline xiterator_owner_adaptor<C, IG>::xiterator_owner_adaptor(const self_type& rhs)
    +
    1153 : m_container(rhs.m_container)
    +
    1154 {
    +
    1155 init_iterators();
    +
    1156 }
    +
    1157
    +
    1158 template <class C, class IG>
    +
    1159 inline xiterator_owner_adaptor<C, IG>& xiterator_owner_adaptor<C, IG>::operator=(const self_type& rhs)
    +
    1160 {
    +
    1161 m_container = rhs.m_container;
    +
    1162 init_iterators();
    +
    1163 }
    +
    1164
    +
    1165 template <class C, class IG>
    +
    1166 inline xiterator_owner_adaptor<C, IG>::xiterator_owner_adaptor(self_type&& rhs)
    +
    1167 : m_container(std::move(rhs.m_container))
    +
    1168 {
    +
    1169 init_iterators();
    +
    1170 }
    +
    1171
    +
    1172 template <class C, class IG>
    +
    1173 inline xiterator_owner_adaptor<C, IG>& xiterator_owner_adaptor<C, IG>::operator=(self_type&& rhs)
    +
    1174 {
    +
    1175 m_container = std::move(rhs.m_container);
    +
    1176 init_iterators();
    +
    1177 }
    +
    1178
    +
    1179 template <class C, class IG>
    +
    1180 inline xiterator_owner_adaptor<C, IG>& xiterator_owner_adaptor<C, IG>::operator=(const temporary_type& rhs)
    +
    1181 {
    +
    1182 resize(rhs.size());
    +
    1183 std::copy(rhs.cbegin(), rhs.cend(), m_it);
    +
    1184 return *this;
    +
    1185 }
    +
    1186
    +
    1187 template <class C, class IG>
    +
    1188 inline xiterator_owner_adaptor<C, IG>& xiterator_owner_adaptor<C, IG>::operator=(temporary_type&& rhs)
    +
    1189 {
    +
    1190 return (*this = rhs);
    +
    1191 }
    +
    1192
    +
    1193 template <class C, class IG>
    +
    1194 inline auto xiterator_owner_adaptor<C, IG>::size() const noexcept -> size_type
    +
    1195 {
    +
    1196 return m_size;
    +
    1197 }
    +
    1198
    +
    1199 template <class C, class IG>
    +
    1200 inline void xiterator_owner_adaptor<C, IG>::resize(size_type size)
    +
    1201 {
    +
    1202 if (m_size != size)
    +
    1203 {
    +
    1204 XTENSOR_THROW(std::runtime_error, "xiterator_owner_adaptor not resizeable");
    +
    1205 }
    +
    1206 }
    +
    1207
    +
    1208 template <class C, class IG>
    +
    1209 inline auto xiterator_owner_adaptor<C, IG>::data() noexcept -> iterator
    +
    1210 {
    +
    1211 return m_it;
    +
    1212 }
    +
    1213
    +
    1214 template <class C, class IG>
    +
    1215 inline auto xiterator_owner_adaptor<C, IG>::data() const noexcept -> const_iterator
    +
    1216 {
    +
    1217 return m_cit;
    +
    1218 }
    +
    1219
    +
    1220 template <class C, class IG>
    +
    1221 inline void xiterator_owner_adaptor<C, IG>::swap(self_type& rhs) noexcept
    +
    1222 {
    +
    1223 using std::swap;
    +
    1224 swap(m_container, rhs.m_container);
    +
    1225 init_iterators();
    +
    1226 rhs.init_iterators();
    +
    1227 }
    +
    1228
    +
    1229 template <class C, class IG>
    +
    1230 inline void xiterator_owner_adaptor<C, IG>::init_iterators()
    +
    1231 {
    +
    1232 m_it = IG::begin(m_container);
    +
    1233 m_cit = IG::cbegin(m_container);
    +
    1234 m_size = IG::size(m_container);
    +
    1235 }
    +
    1236
    +
    1237 template <class C, class IG>
    +
    1238 inline void swap(xiterator_owner_adaptor<C, IG>& lhs, xiterator_owner_adaptor<C, IG>& rhs) noexcept
    +
    1239 {
    +
    1240 lhs.swap(rhs);
    +
    1241 }
    +
    1242
    +
    1243 /*****************************************
    +
    1244 * make_xiterator_adaptor implementation *
    +
    1245 *****************************************/
    +
    1246
    +
    1247 namespace detail
    +
    1248 {
    +
    1249 template <class C, class IG, bool = std::is_lvalue_reference<C>::value>
    +
    1250 struct xiterator_adaptor_builder
    +
    1251 {
    +
    1252 using iterator = decltype(IG::begin(std::declval<C>()));
    +
    1253 using const_iterator = decltype(IG::cbegin(std::declval<C>()));
    +
    1254 using type = xiterator_adaptor<iterator, const_iterator>;
    +
    1255
    +
    1256 inline static type build(C& c)
    +
    1257 {
    +
    1258 return type(IG::begin(c), IG::cbegin(c), IG::size(c));
    +
    1259 }
    +
    1260 };
    +
    1261
    +
    1262 template <class C, class IG>
    +
    1263 struct xiterator_adaptor_builder<C, IG, false>
    +
    1264 {
    +
    1265 using type = xiterator_owner_adaptor<C, IG>;
    +
    1266
    +
    1267 inline static type build(C&& c)
    +
    1268 {
    +
    1269 return type(std::move(c));
    +
    1270 }
    +
    1271 };
    +
    1272 }
    +
    1273
    +
    1274 template <class C, class IG>
    +
    1275 inline auto make_xiterator_adaptor(C&& container, IG)
    +
    1276 {
    +
    1277 using builder_type = detail::xiterator_adaptor_builder<C, IG>;
    +
    1278 return builder_type::build(std::forward<C>(container));
    +
    1279 }
    +
    1280}
    +
    1281
    +
    1282#endif
    + + + + + +
    standard mathematical functions for xexpressions
    + + + + + + +
    +
    + + + + diff --git a/xbuilder_8hpp_source.html b/xbuilder_8hpp_source.html new file mode 100644 index 000000000..49f889297 --- /dev/null +++ b/xbuilder_8hpp_source.html @@ -0,0 +1,1235 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/generators/xbuilder.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xbuilder.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    13
    +
    14#ifndef XTENSOR_BUILDER_HPP
    +
    15#define XTENSOR_BUILDER_HPP
    +
    16
    +
    17#include <array>
    +
    18#include <chrono>
    +
    19#include <cmath>
    +
    20#include <cstddef>
    +
    21#include <functional>
    +
    22#include <utility>
    +
    23#include <vector>
    +
    24
    +
    25#include <xtl/xclosure.hpp>
    +
    26#include <xtl/xsequence.hpp>
    +
    27#include <xtl/xtype_traits.hpp>
    +
    28
    +
    29#include "../core/xfunction.hpp"
    +
    30#include "../core/xoperation.hpp"
    +
    31#include "../generators/xgenerator.hpp"
    +
    32#include "../views/xbroadcast.hpp"
    +
    33
    +
    34namespace xt
    +
    35{
    +
    36
    +
    37 /********
    +
    38 * ones *
    +
    39 ********/
    +
    40
    +
    45 template <class T, class S>
    +
    +
    46 inline auto ones(S shape) noexcept
    +
    47 {
    +
    48 return broadcast(T(1), std::forward<S>(shape));
    +
    49 }
    +
    +
    50
    +
    51 template <class T, class I, std::size_t L>
    +
    52 inline auto ones(const I (&shape)[L]) noexcept
    +
    53 {
    +
    54 return broadcast(T(1), shape);
    +
    55 }
    +
    56
    +
    57 /*********
    +
    58 * zeros *
    +
    59 *********/
    +
    60
    +
    65 template <class T, class S>
    +
    +
    66 inline auto zeros(S shape) noexcept
    +
    67 {
    +
    68 return broadcast(T(0), std::forward<S>(shape));
    +
    69 }
    +
    +
    70
    +
    71 template <class T, class I, std::size_t L>
    +
    72 inline auto zeros(const I (&shape)[L]) noexcept
    +
    73 {
    +
    74 return broadcast(T(0), shape);
    +
    75 }
    +
    76
    +
    88 template <class T, layout_type L = XTENSOR_DEFAULT_LAYOUT, class S>
    +
    +
    89 inline xarray<T, L> empty(const S& shape)
    +
    90 {
    +
    91 return xarray<T, L>::from_shape(shape);
    +
    92 }
    +
    +
    93
    +
    94 template <class T, layout_type L = XTENSOR_DEFAULT_LAYOUT, class ST, std::size_t N>
    +
    95 inline xtensor<T, N, L> empty(const std::array<ST, N>& shape)
    +
    96 {
    +
    97 using shape_type = typename xtensor<T, N>::shape_type;
    +
    98 return xtensor<T, N, L>(xtl::forward_sequence<shape_type, decltype(shape)>(shape));
    +
    99 }
    +
    100
    +
    101 template <class T, layout_type L = XTENSOR_DEFAULT_LAYOUT, class I, std::size_t N>
    +
    102 inline xtensor<T, N, L> empty(const I (&shape)[N])
    +
    103 {
    +
    104 using shape_type = typename xtensor<T, N>::shape_type;
    +
    105 return xtensor<T, N, L>(xtl::forward_sequence<shape_type, decltype(shape)>(shape));
    +
    106 }
    +
    107
    +
    108 template <class T, layout_type L = XTENSOR_DEFAULT_LAYOUT, std::size_t... N>
    +
    109 inline xtensor_fixed<T, fixed_shape<N...>, L> empty(const fixed_shape<N...>& /*shape*/)
    +
    110 {
    +
    111 return xtensor_fixed<T, fixed_shape<N...>, L>();
    +
    112 }
    +
    113
    +
    120 template <class E>
    +
    +
    121 inline auto empty_like(const xexpression<E>& e)
    +
    122 {
    +
    123 using xtype = temporary_type_t<E>;
    +
    124 auto res = xtype::from_shape(e.derived_cast().shape());
    +
    125 return res;
    +
    126 }
    +
    +
    127
    +
    135 template <class E>
    +
    +
    136 inline auto full_like(const xexpression<E>& e, typename E::value_type fill_value)
    +
    137 {
    +
    138 using xtype = temporary_type_t<E>;
    +
    139 auto res = xtype::from_shape(e.derived_cast().shape());
    +
    140 res.fill(fill_value);
    +
    141 return res;
    +
    142 }
    +
    +
    143
    +
    153 template <class E>
    +
    +
    154 inline auto zeros_like(const xexpression<E>& e)
    +
    155 {
    +
    156 return full_like(e, typename E::value_type(0));
    +
    157 }
    +
    +
    158
    +
    168 template <class E>
    +
    +
    169 inline auto ones_like(const xexpression<E>& e)
    +
    170 {
    +
    171 return full_like(e, typename E::value_type(1));
    +
    172 }
    +
    +
    173
    +
    174 namespace detail
    +
    175 {
    +
    176 template <class T, class S>
    +
    177 struct get_mult_type_impl
    +
    178 {
    +
    179 using type = T;
    +
    180 };
    +
    181
    +
    182 template <class T, class R, class P>
    +
    183 struct get_mult_type_impl<T, std::chrono::duration<R, P>>
    +
    184 {
    +
    185 using type = R;
    +
    186 };
    +
    187
    +
    188 template <class T, class S>
    +
    189 using get_mult_type = typename get_mult_type_impl<T, S>::type;
    +
    190
    +
    191 // These methods should be private methods of arange_generator, however thi leads
    +
    192 // to ICE on VS2015
    +
    193 template <class R, class E, class U, class X, XTL_REQUIRES(xtl::is_integral<X>)>
    +
    194 inline void arange_assign_to(xexpression<E>& e, U start, U, X step, bool) noexcept
    +
    195 {
    +
    196 auto& de = e.derived_cast();
    +
    197 U value = start;
    +
    198
    +
    199 for (auto&& el : de.storage())
    +
    200 {
    +
    201 el = static_cast<R>(value);
    +
    202 value += step;
    +
    203 }
    +
    204 }
    +
    205
    +
    206 template <class R, class E, class U, class X, XTL_REQUIRES(std::negation<xtl::is_integral<X>>)>
    +
    207 inline void arange_assign_to(xexpression<E>& e, U start, U stop, X step, bool endpoint) noexcept
    +
    208 {
    +
    209 auto& buf = e.derived_cast().storage();
    +
    210 using size_type = decltype(buf.size());
    +
    211 using mult_type = get_mult_type<U, X>;
    +
    212 size_type num = buf.size();
    +
    213 for (size_type i = 0; i < num; ++i)
    +
    214 {
    +
    215 buf[i] = static_cast<R>(start + step * mult_type(i));
    +
    216 }
    +
    217 if (endpoint && num > 1)
    +
    218 {
    +
    219 buf[num - 1] = static_cast<R>(stop);
    +
    220 }
    +
    221 }
    +
    222
    +
    223 template <class T, class R = T, class S = T>
    +
    224 class arange_generator
    +
    225 {
    +
    226 public:
    +
    227
    +
    228 using value_type = R;
    +
    229 using step_type = S;
    +
    230
    +
    231 arange_generator(T start, T stop, S step, size_t num_steps, bool endpoint = false)
    +
    232 : m_start(start)
    +
    233 , m_stop(stop)
    +
    234 , m_step(step)
    +
    235 , m_num_steps(num_steps)
    +
    236 , m_endpoint(endpoint)
    +
    237 {
    +
    238 }
    +
    239
    +
    240 template <class... Args>
    +
    241 inline R operator()(Args... args) const
    +
    242 {
    +
    243 return access_impl(args...);
    +
    244 }
    +
    245
    +
    246 template <class It>
    +
    247 inline R element(It first, It) const
    +
    248 {
    +
    249 return access_impl(*first);
    +
    250 }
    +
    251
    +
    252 template <class E>
    +
    253 inline void assign_to(xexpression<E>& e) const noexcept
    +
    254 {
    +
    255 arange_assign_to<R>(e, m_start, m_stop, m_step, m_endpoint);
    +
    256 }
    +
    257
    +
    258 private:
    +
    259
    +
    260 T m_start;
    +
    261 T m_stop;
    +
    262 step_type m_step;
    +
    263 size_t m_num_steps;
    +
    264 bool m_endpoint; // true for setting the last element to m_stop
    +
    265
    +
    266 template <class T1, class... Args>
    +
    267 inline R access_impl(T1 t, Args...) const
    +
    268 {
    +
    269 if (m_endpoint && m_num_steps > 1 && size_t(t) == m_num_steps - 1)
    +
    270 {
    +
    271 return static_cast<R>(m_stop);
    +
    272 }
    +
    273 // Avoids warning when T = char (because char + char => int!)
    +
    274 using mult_type = get_mult_type<T, S>;
    +
    275 return static_cast<R>(m_start + m_step * mult_type(t));
    +
    276 }
    +
    277
    +
    278 inline R access_impl() const
    +
    279 {
    +
    280 return static_cast<R>(m_start);
    +
    281 }
    +
    282 };
    +
    283
    +
    284 template <class T, class S>
    +
    285 using both_integer = std::conjunction<xtl::is_integral<T>, xtl::is_integral<S>>;
    +
    286
    +
    287 template <class T, class S>
    +
    288 using integer_with_signed_integer = std::conjunction<both_integer<T, S>, xtl::is_signed<S>>;
    +
    289
    +
    290 template <class T, class S>
    +
    291 using integer_with_unsigned_integer = std::conjunction<both_integer<T, S>, std::is_unsigned<S>>;
    +
    292
    +
    293 template <class T, class S = T, XTL_REQUIRES(std::negation<both_integer<T, S>>)>
    +
    294 inline auto arange_impl(T start, T stop, S step = 1) noexcept
    +
    295 {
    +
    296 std::size_t shape = static_cast<std::size_t>(std::ceil((stop - start) / step));
    +
    297 return detail::make_xgenerator(detail::arange_generator<T, T, S>(start, stop, step, shape), {shape});
    +
    298 }
    +
    299
    +
    300 template <class T, class S = T, XTL_REQUIRES(integer_with_signed_integer<T, S>)>
    +
    301 inline auto arange_impl(T start, T stop, S step = 1) noexcept
    +
    302 {
    +
    303 bool empty_cond = (stop - start) / step <= 0;
    +
    304 std::size_t shape = 0;
    +
    305 if (!empty_cond)
    +
    306 {
    +
    307 shape = stop > start ? static_cast<std::size_t>((stop - start + step - S(1)) / step)
    +
    308 : static_cast<std::size_t>((start - stop - step - S(1)) / -step);
    +
    309 }
    +
    310 return detail::make_xgenerator(detail::arange_generator<T, T, S>(start, stop, step, shape), {shape});
    +
    311 }
    +
    312
    +
    313 template <class T, class S = T, XTL_REQUIRES(integer_with_unsigned_integer<T, S>)>
    +
    314 inline auto arange_impl(T start, T stop, S step = 1) noexcept
    +
    315 {
    +
    316 bool empty_cond = stop <= start;
    +
    317 std::size_t shape = 0;
    +
    318 if (!empty_cond)
    +
    319 {
    +
    320 shape = static_cast<std::size_t>((stop - start + step - S(1)) / step);
    +
    321 }
    +
    322 return detail::make_xgenerator(detail::arange_generator<T, T, S>(start, stop, step, shape), {shape});
    +
    323 }
    +
    324
    +
    325 template <class F>
    +
    326 class fn_impl
    +
    327 {
    +
    328 public:
    +
    329
    +
    330 using value_type = typename F::value_type;
    +
    331 using size_type = std::size_t;
    +
    332
    +
    333 fn_impl(F&& f)
    +
    334 : m_ft(f)
    +
    335 {
    +
    336 }
    +
    337
    +
    338 inline value_type operator()() const
    +
    339 {
    +
    340 size_type idx[1] = {0ul};
    +
    341 return access_impl(std::begin(idx), std::end(idx));
    +
    342 }
    +
    343
    +
    344 template <class... Args>
    +
    345 inline value_type operator()(Args... args) const
    +
    346 {
    +
    347 size_type idx[sizeof...(Args)] = {static_cast<size_type>(args)...};
    +
    348 return access_impl(std::begin(idx), std::end(idx));
    +
    349 }
    +
    350
    +
    351 template <class It>
    +
    352 inline value_type element(It first, It last) const
    +
    353 {
    +
    354 return access_impl(first, last);
    +
    355 }
    +
    356
    +
    357 private:
    +
    358
    +
    359 F m_ft;
    +
    360
    +
    361 template <class It>
    +
    362 inline value_type access_impl(const It& begin, const It& end) const
    +
    363 {
    +
    364 return m_ft(begin, end);
    +
    365 }
    +
    366 };
    +
    367
    +
    368 template <class T>
    +
    369 class eye_fn
    +
    370 {
    +
    371 public:
    +
    372
    +
    373 using value_type = T;
    +
    374
    +
    375 eye_fn(int k)
    +
    376 : m_k(k)
    +
    377 {
    +
    378 }
    +
    379
    +
    380 template <class It>
    +
    381 inline T operator()(const It& /*begin*/, const It& end) const
    +
    382 {
    +
    383 using lvalue_type = typename std::iterator_traits<It>::value_type;
    +
    384 return *(end - 1) == *(end - 2) + static_cast<lvalue_type>(m_k) ? T(1) : T(0);
    +
    385 }
    +
    386
    +
    387 private:
    +
    388
    +
    389 std::ptrdiff_t m_k;
    +
    390 };
    +
    391 }
    +
    392
    +
    402 template <class T = bool>
    +
    +
    403 inline auto eye(const std::vector<std::size_t>& shape, int k = 0)
    +
    404 {
    +
    405 return detail::make_xgenerator(detail::fn_impl<detail::eye_fn<T>>(detail::eye_fn<T>(k)), shape);
    +
    406 }
    +
    +
    407
    +
    417 template <class T = bool>
    +
    +
    418 inline auto eye(std::size_t n, int k = 0)
    +
    419 {
    +
    420 return eye<T>({n, n}, k);
    +
    421 }
    +
    +
    422
    +
    431 template <class T, class S = T>
    +
    +
    432 inline auto arange(T start, T stop, S step = 1) noexcept
    +
    433 {
    +
    434 return detail::arange_impl(start, stop, step);
    +
    435 }
    +
    +
    436
    +
    444 template <class T>
    +
    +
    445 inline auto arange(T stop) noexcept
    +
    446 {
    +
    447 return arange<T>(T(0), stop, T(1));
    +
    448 }
    +
    +
    449
    +
    459 template <class T>
    +
    +
    460 inline auto linspace(T start, T stop, std::size_t num_samples = 50, bool endpoint = true) noexcept
    +
    461 {
    +
    462 using fp_type = std::common_type_t<T, double>;
    +
    463 fp_type step = fp_type(stop - start) / std::fmax(fp_type(1), fp_type(num_samples - (endpoint ? 1 : 0)));
    +
    464 return detail::make_xgenerator(
    +
    465 detail::arange_generator<fp_type, T>(fp_type(start), fp_type(stop), step, num_samples, endpoint),
    +
    466 {num_samples}
    +
    467 );
    +
    468 }
    +
    +
    469
    +
    480 template <class T>
    +
    +
    481 inline auto logspace(T start, T stop, std::size_t num_samples, T base = 10, bool endpoint = true) noexcept
    +
    482 {
    +
    483 return pow(std::move(base), linspace(start, stop, num_samples, endpoint));
    +
    484 }
    +
    +
    485
    +
    486 namespace detail
    +
    487 {
    +
    488 template <class... CT>
    +
    489 class concatenate_access
    +
    490 {
    +
    491 public:
    +
    492
    +
    493 using tuple_type = std::tuple<CT...>;
    +
    494 using size_type = std::size_t;
    +
    495 using value_type = xtl::promote_type_t<typename std::decay_t<CT>::value_type...>;
    +
    496
    +
    497 template <class It>
    +
    498 inline value_type access(const tuple_type& t, size_type axis, It first, It last) const
    +
    499 {
    +
    500 // trim off extra indices if provided to match behavior of containers
    +
    501 auto dim_offset = std::distance(first, last) - std::get<0>(t).dimension();
    +
    502 size_t axis_dim = *(first + axis + dim_offset);
    +
    503 auto match = [&](auto& arr)
    +
    504 {
    +
    505 if (axis_dim >= arr.shape()[axis])
    +
    506 {
    +
    507 axis_dim -= arr.shape()[axis];
    +
    508 return false;
    +
    509 }
    +
    510 return true;
    +
    511 };
    +
    512
    +
    513 auto get = [&](auto& arr)
    +
    514 {
    +
    515 size_t offset = 0;
    +
    516 const size_t end = arr.dimension();
    +
    517 for (size_t i = 0; i < end; i++)
    +
    518 {
    +
    519 const auto& shape = arr.shape();
    +
    520 const size_t stride = std::accumulate(
    +
    521 shape.begin() + i + 1,
    +
    522 shape.end(),
    +
    523 1,
    +
    524 std::multiplies<size_t>()
    +
    525 );
    +
    526 if (i == axis)
    +
    527 {
    +
    528 offset += axis_dim * stride;
    +
    529 }
    +
    530 else
    +
    531 {
    +
    532 const auto len = (*(first + i + dim_offset));
    +
    533 offset += len * stride;
    +
    534 }
    +
    535 }
    +
    536 const auto element = arr.begin() + offset;
    +
    537 return *element;
    +
    538 };
    +
    539
    +
    540 size_type i = 0;
    +
    541 for (; i < sizeof...(CT); ++i)
    +
    542 {
    +
    543 if (apply<bool>(i, match, t))
    +
    544 {
    +
    545 break;
    +
    546 }
    +
    547 }
    +
    548 return apply<value_type>(i, get, t);
    +
    549 }
    +
    550 };
    +
    551
    +
    552 template <class... CT>
    +
    553 class stack_access
    +
    554 {
    +
    555 public:
    +
    556
    +
    557 using tuple_type = std::tuple<CT...>;
    +
    558 using size_type = std::size_t;
    +
    559 using value_type = xtl::promote_type_t<typename std::decay_t<CT>::value_type...>;
    +
    560
    +
    561 template <class It>
    +
    562 inline value_type access(const tuple_type& t, size_type axis, It first, It) const
    +
    563 {
    +
    564 auto get_item = [&](auto& arr)
    +
    565 {
    +
    566 size_t offset = 0;
    +
    567 const size_t end = arr.dimension();
    +
    568 size_t after_axis = 0;
    +
    569 for (size_t i = 0; i < end; i++)
    +
    570 {
    +
    571 if (i == axis)
    +
    572 {
    +
    573 after_axis = 1;
    +
    574 }
    +
    575 const auto& shape = arr.shape();
    +
    576 const size_t stride = std::accumulate(
    +
    577 shape.begin() + i + 1,
    +
    578 shape.end(),
    +
    579 1,
    +
    580 std::multiplies<size_t>()
    +
    581 );
    +
    582 const auto len = (*(first + i + after_axis));
    +
    583 offset += len * stride;
    +
    584 }
    +
    585 const auto element = arr.begin() + offset;
    +
    586 return *element;
    +
    587 };
    +
    588 size_type i = *(first + axis);
    +
    589 return apply<value_type>(i, get_item, t);
    +
    590 }
    +
    591 };
    +
    592
    +
    593 template <class... CT>
    +
    594 class vstack_access
    +
    595 {
    +
    596 public:
    +
    597
    +
    598 using tuple_type = std::tuple<CT...>;
    +
    599 using size_type = std::size_t;
    +
    600 using value_type = xtl::promote_type_t<typename std::decay_t<CT>::value_type...>;
    +
    601
    +
    602 template <class It>
    +
    603 inline value_type access(const tuple_type& t, size_type axis, It first, It last) const
    +
    604 {
    +
    605 if (std::get<0>(t).dimension() == 1)
    +
    606 {
    +
    607 return stack.access(t, axis, first, last);
    +
    608 }
    +
    609 else
    +
    610 {
    +
    611 return concatonate.access(t, axis, first, last);
    +
    612 }
    +
    613 }
    +
    614
    +
    615 private:
    +
    616
    +
    617 concatenate_access<CT...> concatonate;
    +
    618 stack_access<CT...> stack;
    +
    619 };
    +
    620
    +
    621 template <template <class...> class F, class... CT>
    +
    622 class concatenate_invoker
    +
    623 {
    +
    624 public:
    +
    625
    +
    626 using tuple_type = std::tuple<CT...>;
    +
    627 using size_type = std::size_t;
    +
    628 using value_type = xtl::promote_type_t<typename std::decay_t<CT>::value_type...>;
    +
    629
    +
    630 inline concatenate_invoker(tuple_type&& t, size_type axis)
    +
    631 : m_t(std::move(t))
    +
    632 , m_axis(axis)
    +
    633 {
    +
    634 }
    +
    635
    +
    636 template <class... Args>
    +
    637 inline value_type operator()(Args... args) const
    +
    638 {
    +
    639 // TODO: avoid memory allocation
    +
    640 xindex index({static_cast<size_type>(args)...});
    +
    641 return access_method.access(m_t, m_axis, index.begin(), index.end());
    +
    642 }
    +
    643
    +
    644 template <class It>
    +
    645 inline value_type element(It first, It last) const
    +
    646 {
    +
    647 return access_method.access(m_t, m_axis, first, last);
    +
    648 }
    +
    649
    +
    650 private:
    +
    651
    +
    652 F<CT...> access_method;
    +
    653 tuple_type m_t;
    +
    654 size_type m_axis;
    +
    655 };
    +
    656
    +
    657 template <class... CT>
    +
    658 using concatenate_impl = concatenate_invoker<concatenate_access, CT...>;
    +
    659
    +
    660 template <class... CT>
    +
    661 using stack_impl = concatenate_invoker<stack_access, CT...>;
    +
    662
    +
    663 template <class... CT>
    +
    664 using vstack_impl = concatenate_invoker<vstack_access, CT...>;
    +
    665
    +
    666 template <class CT>
    +
    667 class repeat_impl
    +
    668 {
    +
    669 public:
    +
    670
    +
    671 using xexpression_type = std::decay_t<CT>;
    +
    672 using size_type = typename xexpression_type::size_type;
    +
    673 using value_type = typename xexpression_type::value_type;
    +
    674
    +
    675 template <class CTA>
    +
    676 repeat_impl(CTA&& source, size_type axis)
    +
    677 : m_source(std::forward<CTA>(source))
    +
    678 , m_axis(axis)
    +
    679 {
    +
    680 }
    +
    681
    +
    682 template <class... Args>
    +
    683 value_type operator()(Args... args) const
    +
    684 {
    +
    685 std::array<size_type, sizeof...(Args)> args_arr = {static_cast<size_type>(args)...};
    +
    686 return m_source(args_arr[m_axis]);
    +
    687 }
    +
    688
    +
    689 template <class It>
    +
    690 inline value_type element(It first, It) const
    +
    691 {
    +
    692 return m_source(*(first + static_cast<std::ptrdiff_t>(m_axis)));
    +
    693 }
    +
    694
    +
    695 private:
    +
    696
    +
    697 CT m_source;
    +
    698 size_type m_axis;
    +
    699 };
    +
    700 }
    +
    701
    +
    706 template <class... Types>
    +
    +
    707 inline auto xtuple(Types&&... args)
    +
    708 {
    +
    709 return std::tuple<xtl::const_closure_type_t<Types>...>(std::forward<Types>(args)...);
    +
    710 }
    +
    +
    711
    +
    712 namespace detail
    +
    713 {
    +
    714 template <bool... values>
    +
    715 using all_true = std::conjunction<std::integral_constant<bool, values>...>;
    +
    716
    +
    717 template <class X, class Y, std::size_t axis, class AxesSequence>
    +
    718 struct concat_fixed_shape_impl;
    +
    719
    +
    720 template <class X, class Y, std::size_t axis, std::size_t... Is>
    +
    721 struct concat_fixed_shape_impl<X, Y, axis, std::index_sequence<Is...>>
    +
    722 {
    +
    723 static_assert(X::size() == Y::size(), "Concatenation requires equisized shapes");
    +
    724 static_assert(axis < X::size(), "Concatenation requires a valid axis");
    +
    725 static_assert(
    +
    726 all_true<(axis == Is || X::template get<Is>() == Y::template get<Is>())...>::value,
    +
    727 "Concatenation requires compatible shapes and axis"
    +
    728 );
    +
    729
    +
    730 using type = fixed_shape<
    +
    731 (axis == Is ? X::template get<Is>() + Y::template get<Is>() : X::template get<Is>())...>;
    +
    732 };
    +
    733
    +
    734 template <std::size_t axis, class X, class Y, class... Rest>
    +
    735 struct concat_fixed_shape;
    +
    736
    +
    737 template <std::size_t axis, class X, class Y>
    +
    738 struct concat_fixed_shape<axis, X, Y>
    +
    739 {
    +
    740 using type = typename concat_fixed_shape_impl<X, Y, axis, std::make_index_sequence<X::size()>>::type;
    +
    741 };
    +
    742
    +
    743 template <std::size_t axis, class X, class Y, class... Rest>
    +
    744 struct concat_fixed_shape
    +
    745 {
    +
    746 using type = typename concat_fixed_shape<axis, X, typename concat_fixed_shape<axis, Y, Rest...>::type>::type;
    +
    747 };
    +
    748
    +
    749 template <std::size_t axis, class... Args>
    +
    750 using concat_fixed_shape_t = typename concat_fixed_shape<axis, Args...>::type;
    +
    751
    +
    752 template <class... CT>
    +
    753 using all_fixed_shapes = detail::all_fixed<typename std::decay_t<CT>::shape_type...>;
    +
    754
    +
    755 struct concat_shape_builder_t
    +
    756 {
    +
    757 template <class Shape, bool = detail::is_fixed<Shape>::value>
    +
    758 struct concat_shape;
    +
    759
    +
    760 template <class Shape>
    +
    761 struct concat_shape<Shape, true>
    +
    762 {
    +
    763 // Convert `fixed_shape` to `static_shape` to allow runtime dimension calculation.
    +
    764 using type = static_shape<typename Shape::value_type, Shape::size()>;
    +
    765 };
    +
    766
    +
    767 template <class Shape>
    +
    768 struct concat_shape<Shape, false>
    +
    769 {
    +
    770 using type = Shape;
    +
    771 };
    +
    772
    +
    773 template <class... Args>
    +
    774 static auto build(const std::tuple<Args...>& t, std::size_t axis)
    +
    775 {
    +
    776 using shape_type = promote_shape_t<
    +
    777 typename concat_shape<typename std::decay_t<Args>::shape_type>::type...>;
    +
    778 using source_shape_type = decltype(std::get<0>(t).shape());
    +
    779 shape_type new_shape = xtl::forward_sequence<shape_type, source_shape_type>(
    +
    780 std::get<0>(t).shape()
    +
    781 );
    +
    782
    +
    783 auto check_shape = [&axis, &new_shape](auto& arr)
    +
    784 {
    +
    785 std::size_t s = new_shape.size();
    +
    786 bool res = s == arr.dimension();
    +
    787 for (std::size_t i = 0; i < s; ++i)
    +
    788 {
    +
    789 res = res && (i == axis || new_shape[i] == arr.shape(i));
    +
    790 }
    +
    791 if (!res)
    +
    792 {
    +
    793 throw_concatenate_error(new_shape, arr.shape());
    +
    794 }
    +
    795 };
    +
    796 for_each(check_shape, t);
    +
    797
    +
    798 auto shape_at_axis = [&axis](std::size_t prev, auto& arr) -> std::size_t
    +
    799 {
    +
    800 return prev + arr.shape()[axis];
    +
    801 };
    +
    802 new_shape[axis] += accumulate(shape_at_axis, std::size_t(0), t) - new_shape[axis];
    +
    803
    +
    804 return new_shape;
    +
    805 }
    +
    806 };
    +
    807
    +
    808 } // namespace detail
    +
    809
    +
    810 /***************
    +
    811 * concatenate *
    +
    812 ***************/
    +
    813
    +
    829 template <class... CT>
    +
    +
    830 inline auto concatenate(std::tuple<CT...>&& t, std::size_t axis = 0)
    +
    831 {
    +
    832 const auto shape = detail::concat_shape_builder_t::build(t, axis);
    +
    833 return detail::make_xgenerator(detail::concatenate_impl<CT...>(std::move(t), axis), shape);
    +
    834 }
    +
    +
    835
    +
    836 template <std::size_t axis, fixed_shape_container_concept... CT>
    +
    837 inline auto concatenate(std::tuple<CT...>&& t)
    +
    838 {
    +
    839 using shape_type = detail::concat_fixed_shape_t<axis, typename std::decay_t<CT>::shape_type...>;
    +
    840 return detail::make_xgenerator(detail::concatenate_impl<CT...>(std::move(t), axis), shape_type{});
    +
    841 }
    +
    842
    +
    843 namespace detail
    +
    844 {
    +
    845 template <class T, std::size_t N>
    +
    846 inline std::array<T, N + 1> add_axis(std::array<T, N> arr, std::size_t axis, std::size_t value)
    +
    847 {
    +
    848 std::array<T, N + 1> temp;
    +
    849 std::copy(arr.begin(), arr.begin() + axis, temp.begin());
    +
    850 temp[axis] = value;
    +
    851 std::copy(arr.begin() + axis, arr.end(), temp.begin() + axis + 1);
    +
    852 return temp;
    +
    853 }
    +
    854
    +
    855 template <class T>
    +
    856 inline T add_axis(T arr, std::size_t axis, std::size_t value)
    +
    857 {
    +
    858 T temp(arr);
    +
    859 temp.insert(temp.begin() + std::ptrdiff_t(axis), value);
    +
    860 return temp;
    +
    861 }
    +
    862 }
    +
    863
    +
    882 template <class... CT>
    +
    +
    883 inline auto stack(std::tuple<CT...>&& t, std::size_t axis = 0)
    +
    884 {
    +
    885 using shape_type = promote_shape_t<typename std::decay_t<CT>::shape_type...>;
    +
    886 using source_shape_type = decltype(std::get<0>(t).shape());
    +
    887 auto new_shape = detail::add_axis(
    +
    888 xtl::forward_sequence<shape_type, source_shape_type>(std::get<0>(t).shape()),
    +
    889 axis,
    +
    890 sizeof...(CT)
    +
    891 );
    +
    892 return detail::make_xgenerator(detail::stack_impl<CT...>(std::move(t), axis), new_shape);
    +
    893 }
    +
    +
    894
    +
    903 template <class... CT>
    +
    +
    904 inline auto hstack(std::tuple<CT...>&& t)
    +
    905 {
    +
    906 auto dim = std::get<0>(t).dimension();
    +
    907 std::size_t axis = dim > std::size_t(1) ? 1 : 0;
    +
    908 return concatenate(std::move(t), axis);
    +
    909 }
    +
    +
    910
    +
    911 namespace detail
    +
    912 {
    +
    913 template <class S, class... CT>
    +
    914 inline auto vstack_shape(std::tuple<CT...>& t, const S& shape)
    +
    915 {
    +
    916 using size_type = typename S::value_type;
    +
    917 auto res = shape.size() == size_type(1)
    +
    918 ? S({sizeof...(CT), shape[0]})
    +
    919 : concat_shape_builder_t::build(std::move(t), size_type(0));
    +
    920 return res;
    +
    921 }
    +
    922
    +
    923 template <class T, class... CT>
    +
    924 inline auto vstack_shape(const std::tuple<CT...>&, std::array<T, 1> shape)
    +
    925 {
    +
    926 std::array<T, 2> res = {sizeof...(CT), shape[0]};
    +
    927 return res;
    +
    928 }
    +
    929 }
    +
    930
    +
    939 template <class... CT>
    +
    +
    940 inline auto vstack(std::tuple<CT...>&& t)
    +
    941 {
    +
    942 using shape_type = promote_shape_t<typename std::decay_t<CT>::shape_type...>;
    +
    943 using source_shape_type = decltype(std::get<0>(t).shape());
    +
    944 auto new_shape = detail::vstack_shape(
    +
    945 t,
    +
    946 xtl::forward_sequence<shape_type, source_shape_type>(std::get<0>(t).shape())
    +
    947 );
    +
    948 return detail::make_xgenerator(detail::vstack_impl<CT...>(std::move(t), size_t(0)), new_shape);
    +
    949 }
    +
    +
    950
    +
    951 namespace detail
    +
    952 {
    +
    953
    +
    954 template <std::size_t... I, class... E>
    +
    955 inline auto meshgrid_impl(std::index_sequence<I...>, E&&... e) noexcept
    +
    956 {
    +
    957#if defined _MSC_VER
    +
    958 const std::array<std::size_t, sizeof...(E)> shape = {e.shape()[0]...};
    +
    959 return std::make_tuple(
    +
    960 detail::make_xgenerator(detail::repeat_impl<xclosure_t<E>>(std::forward<E>(e), I), shape)...
    +
    961 );
    +
    962#else
    +
    963 return std::make_tuple(detail::make_xgenerator(
    +
    964 detail::repeat_impl<xclosure_t<E>>(std::forward<E>(e), I),
    +
    965 {e.shape()[0]...}
    +
    966 )...);
    +
    967#endif
    +
    968 }
    +
    969 }
    +
    970
    +
    979 template <class... E>
    +
    +
    980 inline auto meshgrid(E&&... e) noexcept
    +
    981 {
    +
    982 return detail::meshgrid_impl(std::make_index_sequence<sizeof...(E)>(), std::forward<E>(e)...);
    +
    983 }
    +
    +
    984
    +
    985 namespace detail
    +
    986 {
    +
    987 template <class CT>
    +
    988 class diagonal_fn
    +
    989 {
    +
    990 public:
    +
    991
    +
    992 using xexpression_type = std::decay_t<CT>;
    +
    993 using value_type = typename xexpression_type::value_type;
    +
    994
    +
    995 template <class CTA>
    +
    996 diagonal_fn(CTA&& source, int offset, std::size_t axis_1, std::size_t axis_2)
    +
    997 : m_source(std::forward<CTA>(source))
    +
    998 , m_offset(offset)
    +
    999 , m_axis_1(axis_1)
    +
    1000 , m_axis_2(axis_2)
    +
    1001 {
    +
    1002 }
    +
    1003
    +
    1004 template <class It>
    +
    1005 inline value_type operator()(It begin, It) const
    +
    1006 {
    +
    1007 xindex idx(m_source.shape().size());
    +
    1008
    +
    1009 for (std::size_t i = 0; i < idx.size(); i++)
    +
    1010 {
    +
    1011 if (i != m_axis_1 && i != m_axis_2)
    +
    1012 {
    +
    1013 idx[i] = static_cast<std::size_t>(*begin++);
    +
    1014 }
    +
    1015 }
    +
    1016 using it_vtype = typename std::iterator_traits<It>::value_type;
    +
    1017 it_vtype uoffset = static_cast<it_vtype>(m_offset);
    +
    1018 if (m_offset >= 0)
    +
    1019 {
    +
    1020 idx[m_axis_1] = static_cast<std::size_t>(*(begin));
    +
    1021 idx[m_axis_2] = static_cast<std::size_t>(*(begin) + uoffset);
    +
    1022 }
    +
    1023 else
    +
    1024 {
    +
    1025 idx[m_axis_1] = static_cast<std::size_t>(*(begin) -uoffset);
    +
    1026 idx[m_axis_2] = static_cast<std::size_t>(*(begin));
    +
    1027 }
    +
    1028 return m_source[idx];
    +
    1029 }
    +
    1030
    +
    1031 private:
    +
    1032
    +
    1033 CT m_source;
    +
    1034 const int m_offset;
    +
    1035 const std::size_t m_axis_1;
    +
    1036 const std::size_t m_axis_2;
    +
    1037 };
    +
    1038
    +
    1039 template <class CT>
    +
    1040 class diag_fn
    +
    1041 {
    +
    1042 public:
    +
    1043
    +
    1044 using xexpression_type = std::decay_t<CT>;
    +
    1045 using value_type = typename xexpression_type::value_type;
    +
    1046
    +
    1047 template <class CTA>
    +
    1048 diag_fn(CTA&& source, int k)
    +
    1049 : m_source(std::forward<CTA>(source))
    +
    1050 , m_k(k)
    +
    1051 {
    +
    1052 }
    +
    1053
    +
    1054 template <class It>
    +
    1055 inline value_type operator()(It begin, It) const
    +
    1056 {
    +
    1057 using it_vtype = typename std::iterator_traits<It>::value_type;
    +
    1058 it_vtype umk = static_cast<it_vtype>(m_k);
    +
    1059 if (m_k > 0)
    +
    1060 {
    +
    1061 return *begin + umk == *(begin + 1) ? m_source(*begin) : value_type(0);
    +
    1062 }
    +
    1063 else
    +
    1064 {
    +
    1065 return *begin + umk == *(begin + 1) ? m_source(*begin + umk) : value_type(0);
    +
    1066 }
    +
    1067 }
    +
    1068
    +
    1069 private:
    +
    1070
    +
    1071 CT m_source;
    +
    1072 const int m_k;
    +
    1073 };
    +
    1074
    +
    1075 template <class CT, class Comp>
    +
    1076 class trilu_fn
    +
    1077 {
    +
    1078 public:
    +
    1079
    +
    1080 using xexpression_type = std::decay_t<CT>;
    +
    1081 using value_type = typename xexpression_type::value_type;
    +
    1082 using signed_idx_type = long int;
    +
    1083
    +
    1084 template <class CTA>
    +
    1085 trilu_fn(CTA&& source, int k, Comp comp)
    +
    1086 : m_source(std::forward<CTA>(source))
    +
    1087 , m_k(k)
    +
    1088 , m_comp(comp)
    +
    1089 {
    +
    1090 }
    +
    1091
    +
    1092 template <class It>
    +
    1093 inline value_type operator()(It begin, It end) const
    +
    1094 {
    +
    1095 // have to cast to signed int otherwise -1 can lead to overflow
    +
    1096 return m_comp(signed_idx_type(*begin) + m_k, signed_idx_type(*(begin + 1)))
    +
    1097 ? m_source.element(begin, end)
    +
    1098 : value_type(0);
    +
    1099 }
    +
    1100
    +
    1101 private:
    +
    1102
    +
    1103 CT m_source;
    +
    1104 const signed_idx_type m_k;
    +
    1105 const Comp m_comp;
    +
    1106 };
    +
    1107 }
    +
    1108
    +
    1109 namespace detail
    +
    1110 {
    +
    1111 // meta-function returning the shape type for a diagonal
    +
    1112 template <class ST, class... S>
    +
    1113 struct diagonal_shape_type
    +
    1114 {
    +
    1115 using type = ST;
    +
    1116 };
    +
    1117
    +
    1118 template <class I, std::size_t L>
    +
    1119 struct diagonal_shape_type<std::array<I, L>>
    +
    1120 {
    +
    1121 using type = std::array<I, L - 1>;
    +
    1122 };
    +
    1123 }
    +
    1124
    +
    1149 template <class E>
    +
    +
    1150 inline auto diagonal(E&& arr, int offset = 0, std::size_t axis_1 = 0, std::size_t axis_2 = 1)
    +
    1151 {
    +
    1152 using CT = xclosure_t<E>;
    +
    1153 using shape_type = typename detail::diagonal_shape_type<typename std::decay_t<E>::shape_type>::type;
    +
    1154
    +
    1155 auto shape = arr.shape();
    +
    1156 auto dimension = arr.dimension();
    +
    1157
    +
    1158 // The following shape calculation code is an almost verbatim adaptation of NumPy:
    +
    1159 // https://github.com/numpy/numpy/blob/2aabeafb97bea4e1bfa29d946fbf31e1104e7ae0/numpy/core/src/multiarray/item_selection.c#L1799
    +
    1160 auto ret_shape = xtl::make_sequence<shape_type>(dimension - 1, 0);
    +
    1161 int dim_1 = static_cast<int>(shape[axis_1]);
    +
    1162 int dim_2 = static_cast<int>(shape[axis_2]);
    +
    1163
    +
    1164 offset >= 0 ? dim_2 -= offset : dim_1 += offset;
    +
    1165
    +
    1166 auto diag_size = std::size_t(dim_2 < dim_1 ? dim_2 : dim_1);
    +
    1167
    +
    1168 std::size_t i = 0;
    +
    1169 for (std::size_t idim = 0; idim < dimension; ++idim)
    +
    1170 {
    +
    1171 if (idim != axis_1 && idim != axis_2)
    +
    1172 {
    +
    1173 ret_shape[i++] = shape[idim];
    +
    1174 }
    +
    1175 }
    +
    1176
    +
    1177 ret_shape.back() = diag_size;
    +
    1178
    +
    1179 return detail::make_xgenerator(
    +
    1180 detail::fn_impl<detail::diagonal_fn<CT>>(
    +
    1181 detail::diagonal_fn<CT>(std::forward<E>(arr), offset, axis_1, axis_2)
    +
    1182 ),
    +
    1183 ret_shape
    +
    1184 );
    +
    1185 }
    +
    +
    1186
    +
    1201 template <class E>
    +
    +
    1202 inline auto diag(E&& arr, int k = 0)
    +
    1203 {
    +
    1204 using CT = xclosure_t<E>;
    +
    1205 std::size_t sk = std::size_t(std::abs(k));
    +
    1206 std::size_t s = arr.shape()[0] + sk;
    +
    1207 return detail::make_xgenerator(
    +
    1208 detail::fn_impl<detail::diag_fn<CT>>(detail::diag_fn<CT>(std::forward<E>(arr), k)),
    +
    1209 {s, s}
    +
    1210 );
    +
    1211 }
    +
    +
    1212
    +
    1222 template <class E>
    +
    +
    1223 inline auto tril(E&& arr, int k = 0)
    +
    1224 {
    +
    1225 using CT = xclosure_t<E>;
    +
    1226 auto shape = arr.shape();
    +
    1227 return detail::make_xgenerator(
    +
    1228 detail::fn_impl<detail::trilu_fn<CT, std::greater_equal<long int>>>(
    +
    1229 detail::trilu_fn<CT, std::greater_equal<long int>>(
    +
    1230 std::forward<E>(arr),
    +
    1231 k,
    +
    1232 std::greater_equal<long int>()
    +
    1233 )
    +
    1234 ),
    +
    1235 shape
    +
    1236 );
    +
    1237 }
    +
    +
    1238
    +
    1248 template <class E>
    +
    +
    1249 inline auto triu(E&& arr, int k = 0)
    +
    1250 {
    +
    1251 using CT = xclosure_t<E>;
    +
    1252 auto shape = arr.shape();
    +
    1253 return detail::make_xgenerator(
    +
    1254 detail::fn_impl<detail::trilu_fn<CT, std::less_equal<long int>>>(
    +
    1255 detail::trilu_fn<CT, std::less_equal<long int>>(std::forward<E>(arr), k, std::less_equal<long int>())
    +
    1256 ),
    +
    1257 shape
    +
    1258 );
    +
    1259 }
    +
    +
    1260}
    +
    1261#endif
    +
    Fixed shape implementation for compile time defined arrays.
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    auto pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
    Power function.
    Definition xmath.hpp:1015
    +
    standard mathematical functions for xexpressions
    +
    auto broadcast(E &&e, const S &s)
    Returns an xexpression broadcasting the given expression to a specified shape.
    +
    auto stack(std::tuple< CT... > &&t, std::size_t axis=0)
    Stack xexpressions along axis.
    Definition xbuilder.hpp:883
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    auto concatenate(std::tuple< CT... > &&t, std::size_t axis=0)
    Concatenates xexpressions along axis.
    Definition xbuilder.hpp:830
    +
    auto eye(const std::vector< std::size_t > &shape, int k=0)
    Generates an array with ones on the diagonal.
    Definition xbuilder.hpp:403
    +
    auto ones_like(const xexpression< E > &e)
    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with ones and of the same shape,...
    Definition xbuilder.hpp:169
    +
    auto ones(S shape) noexcept
    Returns an xexpression containing ones of the specified shape.
    Definition xbuilder.hpp:46
    +
    auto meshgrid(E &&... e) noexcept
    Return coordinate tensors from coordinate vectors.
    Definition xbuilder.hpp:980
    +
    layout_type
    Definition xlayout.hpp:24
    +
    auto triu(E &&arr, int k=0)
    Extract upper triangular matrix from xexpression.
    +
    xfixed_container< T, FSH, L, Sharable > xtensor_fixed
    Alias template on xfixed_container with default parameters for layout type.
    +
    auto full_like(const xexpression< E > &e, typename E::value_type fill_value)
    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with fill_value and of the same shape,...
    Definition xbuilder.hpp:136
    +
    auto zeros_like(const xexpression< E > &e)
    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with zeros and of the same shape,...
    Definition xbuilder.hpp:154
    +
    auto zeros(S shape) noexcept
    Returns an xexpression containing zeros of the specified shape.
    Definition xbuilder.hpp:66
    +
    auto accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())
    Accumulate and flatten array NOTE This function is not lazy!
    +
    auto linspace(T start, T stop, std::size_t num_samples=50, bool endpoint=true) noexcept
    Generates num_samples evenly spaced numbers over given interval.
    Definition xbuilder.hpp:460
    +
    auto vstack(std::tuple< CT... > &&t)
    Stack xexpressions in sequence vertically (row wise).
    Definition xbuilder.hpp:940
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    auto diagonal(E &&arr, int offset=0, std::size_t axis_1=0, std::size_t axis_2=1)
    Returns the elements on the diagonal of arr If arr has more than two dimensions, then the axes specif...
    +
    auto hstack(std::tuple< CT... > &&t)
    Stack xexpressions in sequence horizontally (column wise).
    Definition xbuilder.hpp:904
    +
    auto tril(E &&arr, int k=0)
    Extract lower triangular matrix from xexpression.
    +
    auto empty_like(const xexpression< E > &e)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of the same shape,...
    Definition xbuilder.hpp:121
    +
    auto diag(E &&arr, int k=0)
    xexpression with values of arr on the diagonal, zeroes otherwise
    +
    auto xtuple(Types &&... args)
    Creates tuples from arguments for concatenate and stack.
    Definition xbuilder.hpp:707
    +
    auto logspace(T start, T stop, std::size_t num_samples, T base=10, bool endpoint=true) noexcept
    Generates num_samples numbers evenly spaced on a log scale over given interval.
    Definition xbuilder.hpp:481
    +
    xarray< T, L > empty(const S &shape)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of with value_type T...
    Definition xbuilder.hpp:89
    +
    +
    + + + + diff --git a/xchunked__array_8hpp_source.html b/xchunked__array_8hpp_source.html new file mode 100644 index 000000000..5d990dd8c --- /dev/null +++ b/xchunked__array_8hpp_source.html @@ -0,0 +1,779 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/chunk/xchunked_array.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xchunked_array.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CHUNKED_ARRAY_HPP
    +
    11#define XTENSOR_CHUNKED_ARRAY_HPP
    +
    12
    +
    13#include <array>
    +
    14#include <vector>
    +
    15
    +
    16#include "../chunk/xchunked_assign.hpp"
    +
    17#include "../containers/xarray.hpp"
    +
    18
    +
    +
    19namespace xt
    +
    20{
    +
    27
    +
    28 /******************************
    +
    29 * xchunked_array declaration *
    +
    30 ******************************/
    +
    31
    +
    32 template <class chunk_storage>
    +
    33 class xchunked_array;
    +
    34
    +
    35 template <class chunk_storage>
    +
    + +
    37 {
    +
    38 using chunk_type = typename chunk_storage::value_type;
    +
    39 using const_reference = typename chunk_type::const_reference;
    +
    40 using reference = typename chunk_type::reference;
    +
    41 using size_type = std::size_t;
    +
    42 using storage_type = chunk_type;
    +
    43 using temporary_type = xchunked_array<chunk_storage>;
    +
    44 };
    +
    +
    45
    +
    46 template <class chunk_storage>
    +
    + +
    48 {
    +
    49 using chunk_type = typename chunk_storage::value_type;
    +
    50 using inner_shape_type = typename chunk_type::shape_type;
    +
    51 using const_stepper = xindexed_stepper<xchunked_array<chunk_storage>, true>;
    + +
    53 };
    +
    +
    54
    +
    55 template <class chunk_storage>
    +
    +
    56 class xchunked_array : public xaccessible<xchunked_array<chunk_storage>>,
    +
    57 public xiterable<xchunked_array<chunk_storage>>,
    +
    58 public xchunked_semantic<xchunked_array<chunk_storage>>
    +
    59 {
    +
    60 public:
    +
    61
    +
    62 using chunk_storage_type = chunk_storage;
    +
    63 using chunk_type = typename chunk_storage::value_type;
    +
    64 using grid_shape_type = typename chunk_storage::shape_type;
    +
    65 using const_reference = typename chunk_type::const_reference;
    +
    66 using reference = typename chunk_type::reference;
    +
    67 using self_type = xchunked_array<chunk_storage>;
    +
    68 using semantic_base = xchunked_semantic<self_type>;
    +
    69 using iterable_base = xconst_iterable<self_type>;
    +
    70 using const_stepper = typename iterable_base::const_stepper;
    +
    71 using stepper = typename iterable_base::stepper;
    +
    72 using inner_types = xcontainer_inner_types<self_type>;
    +
    73 using size_type = typename inner_types::size_type;
    +
    74 using storage_type = typename inner_types::storage_type;
    +
    75 using value_type = typename storage_type::value_type;
    +
    76 using pointer = value_type*;
    +
    77 using const_pointer = const value_type*;
    +
    78 using difference_type = std::ptrdiff_t;
    +
    79 using shape_type = typename chunk_type::shape_type;
    +
    80 using temporary_type = typename inner_types::temporary_type;
    +
    81 using bool_load_type = xt::bool_load_type<value_type>;
    +
    82 static constexpr layout_type static_layout = layout_type::dynamic;
    +
    83 static constexpr bool contiguous_layout = false;
    +
    84 using chunk_iterator = xchunk_iterator<self_type>;
    +
    85 using const_chunk_iterator = xchunk_iterator<const self_type>;
    +
    86
    +
    87 template <class S>
    +
    88 xchunked_array(
    +
    89 chunk_storage_type&& chunks,
    +
    90 S&& shape,
    +
    91 S&& chunk_shape,
    +
    92 layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT
    +
    93 );
    +
    94 ~xchunked_array() = default;
    +
    95
    +
    96 xchunked_array(const xchunked_array&) = default;
    +
    97 xchunked_array& operator=(const xchunked_array&) = default;
    +
    98
    +
    99 xchunked_array(xchunked_array&&) = default;
    +
    100 xchunked_array& operator=(xchunked_array&&) = default;
    +
    101
    +
    102 template <class E>
    +
    103 xchunked_array(
    +
    104 const xexpression<E>& e,
    +
    105 chunk_storage_type&& chunks,
    +
    106 layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT
    +
    107 );
    +
    108
    +
    109 template <class E, class S>
    +
    110 xchunked_array(
    +
    111 const xexpression<E>& e,
    +
    112 chunk_storage_type&& chunks,
    +
    113 S&& chunk_shape,
    +
    114 layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT
    +
    115 );
    +
    116
    +
    117 template <class E>
    +
    118 xchunked_array& operator=(const xexpression<E>& e);
    +
    119
    +
    120 size_type dimension() const noexcept;
    +
    121 const shape_type& shape() const noexcept;
    +
    122 layout_type layout() const noexcept;
    +
    123 bool is_contiguous() const noexcept;
    +
    124
    +
    125 template <class... Idxs>
    +
    126 reference operator()(Idxs... idxs);
    +
    127
    +
    128 template <class... Idxs>
    +
    129 const_reference operator()(Idxs... idxs) const;
    +
    130
    +
    131 template <class It>
    +
    132 reference element(It first, It last);
    +
    133
    +
    134 template <class It>
    +
    135 const_reference element(It first, It last) const;
    +
    136
    +
    137 template <class S>
    +
    138 bool broadcast_shape(S& s, bool reuse_cache = false) const;
    +
    139
    +
    140 template <class S>
    +
    141 bool has_linear_assign(const S& strides) const noexcept;
    +
    142
    +
    143 template <class S>
    +
    144 stepper stepper_begin(const S& shape) noexcept;
    +
    145 template <class S>
    +
    146 stepper stepper_end(const S& shape, layout_type) noexcept;
    +
    147
    +
    148 template <class S>
    +
    149 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    150 template <class S>
    +
    151 const_stepper stepper_end(const S& shape, layout_type) const noexcept;
    +
    152
    +
    153 const shape_type& chunk_shape() const noexcept;
    +
    154 size_type grid_size() const noexcept;
    +
    155 const grid_shape_type& grid_shape() const noexcept;
    +
    156
    +
    157 chunk_storage_type& chunks();
    +
    158 const chunk_storage_type& chunks() const;
    +
    159
    +
    160 chunk_iterator chunk_begin();
    +
    161 chunk_iterator chunk_end();
    +
    162
    +
    163 const_chunk_iterator chunk_begin() const;
    +
    164 const_chunk_iterator chunk_end() const;
    +
    165 const_chunk_iterator chunk_cbegin() const;
    +
    166 const_chunk_iterator chunk_cend() const;
    +
    167
    +
    168 private:
    +
    169
    +
    170 template <class... Idxs>
    +
    171 using indexes_type = std::
    +
    172 pair<std::array<std::size_t, sizeof...(Idxs)>, std::array<std::size_t, sizeof...(Idxs)>>;
    +
    173
    +
    174 template <class... Idxs>
    +
    175 using chunk_indexes_type = std::array<std::pair<std::size_t, std::size_t>, sizeof...(Idxs)>;
    +
    176
    +
    177 template <std::size_t N>
    +
    178 using static_indexes_type = std::pair<std::array<std::size_t, N>, std::array<std::size_t, N>>;
    +
    179
    +
    180 using dynamic_indexes_type = std::pair<std::vector<std::size_t>, std::vector<std::size_t>>;
    +
    181
    +
    182 template <class S1, class S2>
    +
    183 void resize(S1&& shape, S2&& chunk_shape, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT);
    +
    184
    +
    185 template <class... Idxs>
    +
    186 indexes_type<Idxs...> get_indexes(Idxs... idxs) const;
    +
    187
    +
    188 template <class Idx>
    +
    189 std::pair<std::size_t, std::size_t> get_chunk_indexes_in_dimension(std::size_t dim, Idx idx) const;
    +
    190
    +
    191 template <std::size_t... dims, class... Idxs>
    +
    192 chunk_indexes_type<Idxs...> get_chunk_indexes(std::index_sequence<dims...>, Idxs... idxs) const;
    +
    193
    +
    194 template <class T, std::size_t N>
    +
    195 static_indexes_type<N> unpack(const std::array<T, N>& arr) const;
    +
    196
    +
    197 template <class It>
    +
    198 dynamic_indexes_type get_indexes_dynamic(It first, It last) const;
    +
    199
    +
    200 shape_type m_shape;
    +
    201 shape_type m_chunk_shape;
    +
    202 chunk_storage_type m_chunks;
    +
    203 };
    +
    +
    204
    +
    205 template <class E>
    +
    206 constexpr bool is_chunked(const xexpression<E>& e);
    +
    207
    +
    208 template <class E>
    +
    209 constexpr bool is_chunked();
    +
    210
    +
    228 template <class T, layout_type L = XTENSOR_DEFAULT_LAYOUT, class S>
    + +
    230 chunked_array(S&& shape, S&& chunk_shape, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT);
    +
    231
    +
    232 template <class T, layout_type L = XTENSOR_DEFAULT_LAYOUT, class S>
    + +
    234 std::initializer_list<S> shape,
    +
    235 std::initializer_list<S> chunk_shape,
    +
    236 layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT
    +
    237 );
    +
    238
    +
    255 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class E, class S>
    + +
    257 chunked_array(const xexpression<E>& e, S&& chunk_shape, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT);
    +
    258
    +
    274 template <layout_type L = XTENSOR_DEFAULT_LAYOUT, class E>
    + +
    276 chunked_array(const xexpression<E>& e, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT);
    +
    277
    +
    278 /*******************************
    +
    279 * chunk_helper implementation *
    +
    280 *******************************/
    +
    281
    +
    282 namespace detail
    +
    283 {
    +
    284 // Workaround for VS2015
    +
    285 template <class E>
    +
    286 using try_chunk_shape = decltype(std::declval<E>().chunk_shape());
    +
    287
    +
    288 template <class E, template <class> class OP, class = void>
    +
    289 struct chunk_helper_impl
    +
    290 {
    +
    291 using is_chunked = std::false_type;
    +
    292
    +
    293 static const auto& chunk_shape(const xexpression<E>& e)
    +
    294 {
    +
    295 return e.derived_cast().shape();
    +
    296 }
    +
    297
    +
    298 template <class S1, class S2>
    +
    299 static void
    +
    300 resize(E& chunks, const S1& container_shape, const S2& chunk_shape, layout_type chunk_memory_layout)
    +
    301 {
    +
    302 chunks.resize(container_shape);
    +
    303 for (auto& c : chunks)
    +
    304 {
    +
    305 c.resize(chunk_shape, chunk_memory_layout);
    +
    306 }
    +
    307 }
    +
    308 };
    +
    309
    +
    310 template <class E, template <class> class OP>
    +
    311 struct chunk_helper_impl<E, OP, void_t<OP<E>>>
    +
    312 {
    +
    313 using is_chunked = std::true_type;
    +
    314
    +
    315 static const auto& chunk_shape(const xexpression<E>& e)
    +
    316 {
    +
    317 return e.derived_cast().chunk_shape();
    +
    318 }
    +
    319
    +
    320 template <class S1, class S2>
    +
    321 static void
    +
    322 resize(E& chunks, const S1& container_shape, const S2& /*chunk_shape*/, layout_type /*chunk_memory_layout*/)
    +
    323 {
    +
    324 chunks.resize(container_shape);
    +
    325 }
    +
    326 };
    +
    327
    +
    328 template <class E>
    +
    329 using chunk_helper = chunk_helper_impl<E, try_chunk_shape>;
    +
    330 }
    +
    331
    +
    332 template <class E>
    +
    333 constexpr bool is_chunked(const xexpression<E>&)
    +
    334 {
    +
    335 return is_chunked<E>();
    +
    336 }
    +
    337
    +
    338 template <class E>
    +
    339 constexpr bool is_chunked()
    +
    340 {
    +
    341 using return_type = typename detail::chunk_helper<E>::is_chunked;
    +
    342 return return_type::value;
    +
    343 }
    +
    344
    +
    345 template <class T, layout_type L, class S>
    + +
    +
    347 chunked_array(S&& shape, S&& chunk_shape, layout_type chunk_memory_layout)
    +
    348 {
    +
    349 using chunk_storage = xarray<xarray<T, L>>;
    + +
    351 chunk_storage(),
    +
    352 std::forward<S>(shape),
    +
    353 std::forward<S>(chunk_shape),
    +
    354 chunk_memory_layout
    +
    355 );
    +
    356 }
    +
    +
    357
    +
    358 template <class T, layout_type L, class S>
    +
    359 xchunked_array<xarray<xarray<T>>>
    +
    360 chunked_array(std::initializer_list<S> shape, std::initializer_list<S> chunk_shape, layout_type chunk_memory_layout)
    +
    361 {
    +
    362 using sh_type = std::vector<std::size_t>;
    +
    363 auto sh = xtl::forward_sequence<sh_type, std::initializer_list<S>>(shape);
    +
    364 auto ch_sh = xtl::forward_sequence<sh_type, std::initializer_list<S>>(chunk_shape);
    +
    365 return chunked_array<T, L, sh_type>(std::move(sh), std::move(ch_sh), chunk_memory_layout);
    +
    366 }
    +
    367
    +
    368 template <layout_type L, class E, class S>
    + +
    +
    370 chunked_array(const xexpression<E>& e, S&& chunk_shape, layout_type chunk_memory_layout)
    +
    371 {
    +
    372 using chunk_storage = xarray<xarray<typename E::value_type, L>>;
    +
    373 return xchunked_array<chunk_storage>(e, chunk_storage(), std::forward<S>(chunk_shape), chunk_memory_layout);
    +
    374 }
    +
    +
    375
    +
    376 template <layout_type L, class E>
    +
    377 inline xchunked_array<xarray<xarray<typename E::value_type>>>
    +
    +
    378 chunked_array(const xexpression<E>& e, layout_type chunk_memory_layout)
    +
    379 {
    +
    380 using chunk_storage = xarray<xarray<typename E::value_type, L>>;
    +
    381 return xchunked_array<chunk_storage>(e, chunk_storage(), chunk_memory_layout);
    +
    382 }
    +
    +
    383
    +
    384 /*********************************
    +
    385 * xchunked_array implementation *
    +
    386 *********************************/
    +
    387
    +
    388 template <class CS>
    +
    389 template <class S>
    +
    390 inline xchunked_array<CS>::xchunked_array(CS&& chunks, S&& shape, S&& chunk_shape, layout_type chunk_memory_layout)
    +
    391 : m_chunks(std::move(chunks))
    +
    392 {
    +
    393 resize(std::forward<S>(shape), std::forward<S>(chunk_shape), chunk_memory_layout);
    +
    394 }
    +
    395
    +
    396 template <class CS>
    +
    397 template <class E>
    +
    398 inline xchunked_array<CS>::xchunked_array(const xexpression<E>& e, CS&& chunks, layout_type chunk_memory_layout)
    +
    399 : xchunked_array(e, std::move(chunks), detail::chunk_helper<E>::chunk_shape(e), chunk_memory_layout)
    +
    400 {
    +
    401 }
    +
    402
    +
    403 template <class CS>
    +
    404 template <class E, class S>
    +
    405 inline xchunked_array<CS>::xchunked_array(
    +
    406 const xexpression<E>& e,
    +
    407 CS&& chunks,
    +
    408 S&& chunk_shape,
    +
    409 layout_type chunk_memory_layout
    +
    410 )
    +
    411 : m_chunks(std::move(chunks))
    +
    412 {
    +
    413 resize(e.derived_cast().shape(), std::forward<S>(chunk_shape), chunk_memory_layout);
    +
    414 semantic_base::assign_xexpression(e);
    +
    415 }
    +
    416
    +
    417 template <class CS>
    +
    418 template <class E>
    +
    419 inline auto xchunked_array<CS>::operator=(const xexpression<E>& e) -> self_type&
    +
    420 {
    +
    421 return semantic_base::operator=(e);
    +
    422 }
    +
    423
    +
    424 template <class CS>
    +
    425 inline auto xchunked_array<CS>::dimension() const noexcept -> size_type
    +
    426 {
    +
    427 return m_shape.size();
    +
    428 }
    +
    429
    +
    430 template <class CS>
    +
    431 inline auto xchunked_array<CS>::shape() const noexcept -> const shape_type&
    +
    432 {
    +
    433 return m_shape;
    +
    434 }
    +
    435
    +
    436 template <class CS>
    +
    437 inline auto xchunked_array<CS>::layout() const noexcept -> layout_type
    +
    438 {
    +
    439 return static_layout;
    +
    440 }
    +
    441
    +
    442 template <class CS>
    +
    443 inline bool xchunked_array<CS>::is_contiguous() const noexcept
    +
    444 {
    +
    445 return false;
    +
    446 }
    +
    447
    +
    448 template <class CS>
    +
    449 template <class... Idxs>
    +
    450 inline auto xchunked_array<CS>::operator()(Idxs... idxs) -> reference
    +
    451 {
    +
    452 auto ii = get_indexes(idxs...);
    +
    453 auto& chunk = m_chunks.element(ii.first.cbegin(), ii.first.cend());
    +
    454 return chunk.element(ii.second.cbegin(), ii.second.cend());
    +
    455 }
    +
    456
    +
    457 template <class CS>
    +
    458 template <class... Idxs>
    +
    459 inline auto xchunked_array<CS>::operator()(Idxs... idxs) const -> const_reference
    +
    460 {
    +
    461 auto ii = get_indexes(idxs...);
    +
    462 auto& chunk = m_chunks.element(ii.first.cbegin(), ii.first.cend());
    +
    463 return chunk.element(ii.second.cbegin(), ii.second.cend());
    +
    464 }
    +
    465
    +
    466 template <class CS>
    +
    467 template <class It>
    +
    468 inline auto xchunked_array<CS>::element(It first, It last) -> reference
    +
    469 {
    +
    470 auto ii = get_indexes_dynamic(first, last);
    +
    471 auto& chunk = m_chunks.element(ii.first.begin(), ii.first.end());
    +
    472 return chunk.element(ii.second.begin(), ii.second.end());
    +
    473 }
    +
    474
    +
    475 template <class CS>
    +
    476 template <class It>
    +
    477 inline auto xchunked_array<CS>::element(It first, It last) const -> const_reference
    +
    478 {
    +
    479 auto ii = get_indexes_dynamic(first, last);
    +
    480 auto& chunk = m_chunks.element(ii.first.begin(), ii.first.end());
    +
    481 return chunk.element(ii.second.begin(), ii.second.end());
    +
    482 }
    +
    483
    +
    484 template <class CS>
    +
    485 template <class S>
    +
    486 inline bool xchunked_array<CS>::broadcast_shape(S& s, bool) const
    +
    487 {
    +
    488 return xt::broadcast_shape(shape(), s);
    +
    489 }
    +
    490
    +
    491 template <class CS>
    +
    492 template <class S>
    +
    493 inline bool xchunked_array<CS>::has_linear_assign(const S&) const noexcept
    +
    494 {
    +
    495 return false;
    +
    496 }
    +
    497
    +
    498 template <class CS>
    +
    499 template <class S>
    +
    500 inline auto xchunked_array<CS>::stepper_begin(const S& shape) noexcept -> stepper
    +
    501 {
    +
    502 size_type offset = shape.size() - this->dimension();
    +
    503 return stepper(this, offset);
    +
    504 }
    +
    505
    +
    506 template <class CS>
    +
    507 template <class S>
    +
    508 inline auto xchunked_array<CS>::stepper_end(const S& shape, layout_type) noexcept -> stepper
    +
    509 {
    +
    510 size_type offset = shape.size() - this->dimension();
    +
    511 return stepper(this, offset, true);
    +
    512 }
    +
    513
    +
    514 template <class CS>
    +
    515 template <class S>
    +
    516 inline auto xchunked_array<CS>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    517 {
    +
    518 size_type offset = shape.size() - this->dimension();
    +
    519 return const_stepper(this, offset);
    +
    520 }
    +
    521
    +
    522 template <class CS>
    +
    523 template <class S>
    +
    524 inline auto xchunked_array<CS>::stepper_end(const S& shape, layout_type) const noexcept -> const_stepper
    +
    525 {
    +
    526 size_type offset = shape.size() - this->dimension();
    +
    527 return const_stepper(this, offset, true);
    +
    528 }
    +
    529
    +
    530 template <class CS>
    +
    531 inline auto xchunked_array<CS>::chunk_shape() const noexcept -> const shape_type&
    +
    532 {
    +
    533 return m_chunk_shape;
    +
    534 }
    +
    535
    +
    536 template <class CS>
    +
    537 inline auto xchunked_array<CS>::grid_size() const noexcept -> size_type
    +
    538 {
    +
    539 return m_chunks.size();
    +
    540 }
    +
    541
    +
    542 template <class CS>
    +
    543 inline auto xchunked_array<CS>::grid_shape() const noexcept -> const grid_shape_type&
    +
    544 {
    +
    545 return m_chunks.shape();
    +
    546 }
    +
    547
    +
    548 template <class CS>
    +
    549 inline auto xchunked_array<CS>::chunks() -> chunk_storage_type&
    +
    550 {
    +
    551 return m_chunks;
    +
    552 }
    +
    553
    +
    554 template <class CS>
    +
    555 inline auto xchunked_array<CS>::chunks() const -> const chunk_storage_type&
    +
    556 {
    +
    557 return m_chunks;
    +
    558 }
    +
    559
    +
    560 template <class CS>
    +
    561 inline auto xchunked_array<CS>::chunk_begin() -> chunk_iterator
    +
    562 {
    +
    563 shape_type chunk_index(m_shape.size(), size_type(0));
    +
    564 return chunk_iterator(*this, std::move(chunk_index), 0u);
    +
    565 }
    +
    566
    +
    567 template <class CS>
    +
    568 inline auto xchunked_array<CS>::chunk_end() -> chunk_iterator
    +
    569 {
    +
    570 shape_type sh = xtl::forward_sequence<shape_type, const grid_shape_type>(grid_shape());
    +
    571 return chunk_iterator(*this, std::move(sh), grid_size());
    +
    572 }
    +
    573
    +
    574 template <class CS>
    +
    575 inline auto xchunked_array<CS>::chunk_begin() const -> const_chunk_iterator
    +
    576 {
    +
    577 shape_type chunk_index(m_shape.size(), size_type(0));
    +
    578 return const_chunk_iterator(*this, std::move(chunk_index), 0u);
    +
    579 }
    +
    580
    +
    581 template <class CS>
    +
    582 inline auto xchunked_array<CS>::chunk_end() const -> const_chunk_iterator
    +
    583 {
    +
    584 shape_type sh = xtl::forward_sequence<shape_type, const grid_shape_type>(grid_shape());
    +
    585 return const_chunk_iterator(*this, std::move(sh), grid_size());
    +
    586 }
    +
    587
    +
    588 template <class CS>
    +
    589 inline auto xchunked_array<CS>::chunk_cbegin() const -> const_chunk_iterator
    +
    590 {
    +
    591 return chunk_begin();
    +
    592 }
    +
    593
    +
    594 template <class CS>
    +
    595 inline auto xchunked_array<CS>::chunk_cend() const -> const_chunk_iterator
    +
    596 {
    +
    597 return chunk_end();
    +
    598 }
    +
    599
    +
    600 template <class CS>
    +
    601 template <class S1, class S2>
    +
    602 inline void xchunked_array<CS>::resize(S1&& shape, S2&& chunk_shape, layout_type chunk_memory_layout)
    +
    603 {
    +
    604 // compute chunk number in each dimension (shape_of_chunks)
    +
    605 std::vector<std::size_t> shape_of_chunks(shape.size());
    +
    606 std::transform(
    +
    607 shape.cbegin(),
    +
    608 shape.cend(),
    +
    609 chunk_shape.cbegin(),
    +
    610 shape_of_chunks.begin(),
    +
    611 [](auto s, auto cs)
    +
    612 {
    +
    613 std::size_t cn = s / cs;
    +
    614 if (s % cs > 0)
    +
    615 {
    +
    616 cn += std::size_t(1); // edge_chunk
    +
    617 }
    +
    618 return cn;
    +
    619 }
    +
    620 );
    +
    621
    +
    622 detail::chunk_helper<CS>::resize(m_chunks, shape_of_chunks, chunk_shape, chunk_memory_layout);
    +
    623
    +
    624 m_shape = xtl::forward_sequence<shape_type, S1>(shape);
    +
    625 m_chunk_shape = xtl::forward_sequence<shape_type, S2>(chunk_shape);
    +
    626 }
    +
    627
    +
    628 template <class CS>
    +
    629 template <class... Idxs>
    +
    630 inline auto xchunked_array<CS>::get_indexes(Idxs... idxs) const -> indexes_type<Idxs...>
    +
    631 {
    +
    632 auto chunk_indexes_packed = get_chunk_indexes(std::make_index_sequence<sizeof...(Idxs)>(), idxs...);
    +
    633 return unpack(chunk_indexes_packed);
    +
    634 }
    +
    635
    +
    636 template <class CS>
    +
    637 template <class Idx>
    +
    638 inline std::pair<std::size_t, std::size_t>
    +
    639 xchunked_array<CS>::get_chunk_indexes_in_dimension(std::size_t dim, Idx idx) const
    +
    640 {
    +
    641 std::size_t index_of_chunk = static_cast<size_t>(idx) / m_chunk_shape[dim];
    +
    642 std::size_t index_in_chunk = static_cast<size_t>(idx) - index_of_chunk * m_chunk_shape[dim];
    +
    643 return std::make_pair(index_of_chunk, index_in_chunk);
    +
    644 }
    +
    645
    +
    646 template <class CS>
    +
    647 template <std::size_t... dims, class... Idxs>
    +
    648 inline auto xchunked_array<CS>::get_chunk_indexes(std::index_sequence<dims...>, Idxs... idxs) const
    +
    649 -> chunk_indexes_type<Idxs...>
    +
    650 {
    +
    651 chunk_indexes_type<Idxs...> chunk_indexes = {{get_chunk_indexes_in_dimension(dims, idxs)...}};
    +
    652 return chunk_indexes;
    +
    653 }
    +
    654
    +
    655 template <class CS>
    +
    656 template <class T, std::size_t N>
    +
    657 inline auto xchunked_array<CS>::unpack(const std::array<T, N>& arr) const -> static_indexes_type<N>
    +
    658 {
    +
    659 std::array<std::size_t, N> arr0;
    +
    660 std::array<std::size_t, N> arr1;
    +
    661 for (std::size_t i = 0; i < N; ++i)
    +
    662 {
    +
    663 arr0[i] = std::get<0>(arr[i]);
    +
    664 arr1[i] = std::get<1>(arr[i]);
    +
    665 }
    +
    666 return std::make_pair(arr0, arr1);
    +
    667 }
    +
    668
    +
    669 template <class CS>
    +
    670 template <class It>
    +
    671 inline auto xchunked_array<CS>::get_indexes_dynamic(It first, It last) const -> dynamic_indexes_type
    +
    672 {
    +
    673 auto size = static_cast<std::size_t>(std::distance(first, last));
    +
    674 std::vector<std::size_t> indexes_of_chunk(size);
    +
    675 std::vector<std::size_t> indexes_in_chunk(size);
    +
    676 for (std::size_t dim = 0; dim < size; ++dim)
    +
    677 {
    +
    678 auto chunk_index = get_chunk_indexes_in_dimension(dim, *first++);
    +
    679 indexes_of_chunk[dim] = chunk_index.first;
    +
    680 indexes_in_chunk[dim] = chunk_index.second;
    +
    681 }
    +
    682 return std::make_pair(indexes_of_chunk, indexes_in_chunk);
    +
    683 }
    +
    684}
    +
    +
    685
    +
    686#endif
    + + +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    + +
    Base class for multidimensional iterable expressions.
    +
    xchunked_array< xarray< xarray< T > > > chunked_array(S &&shape, S &&chunk_shape, layout_type chunk_memory_layout=::xt::layout_type::row_major)
    Creates an in-memory chunked array.
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    +
    + + + + diff --git a/xchunked__assign_8hpp_source.html b/xchunked__assign_8hpp_source.html new file mode 100644 index 000000000..db06d7089 --- /dev/null +++ b/xchunked__assign_8hpp_source.html @@ -0,0 +1,514 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/chunk/xchunked_assign.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xchunked_assign.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CHUNKED_ASSIGN_HPP
    +
    11#define XTENSOR_CHUNKED_ASSIGN_HPP
    +
    12
    +
    13#include "../core/xnoalias.hpp"
    +
    14#include "../views/xstrided_view.hpp"
    +
    15
    +
    16namespace xt
    +
    17{
    +
    18
    +
    19 /*******************
    +
    20 * xchunk_assigner *
    +
    21 *******************/
    +
    22
    +
    23 template <class T, class chunk_storage>
    +
    + +
    25 {
    +
    26 public:
    +
    27
    +
    28 using temporary_type = T;
    +
    29
    +
    30 template <class E, class DST>
    +
    31 void build_and_assign_temporary(const xexpression<E>& e, DST& dst);
    +
    32 };
    +
    +
    33
    +
    34 /*********************************
    +
    35 * xchunked_semantic declaration *
    +
    36 *********************************/
    +
    37
    +
    38 template <class D>
    +
    +
    39 class xchunked_semantic : public xsemantic_base<D>
    +
    40 {
    +
    41 public:
    +
    42
    +
    43 using base_type = xsemantic_base<D>;
    +
    44 using derived_type = D;
    +
    45 using temporary_type = typename base_type::temporary_type;
    +
    46
    +
    47 template <class E>
    +
    48 derived_type& assign_xexpression(const xexpression<E>& e);
    +
    49
    +
    50 template <class E>
    +
    51 derived_type& computed_assign(const xexpression<E>& e);
    +
    52
    +
    53 template <class E, class F>
    +
    54 derived_type& scalar_computed_assign(const E& e, F&& f);
    +
    55
    +
    56 protected:
    +
    57
    +
    58 xchunked_semantic() = default;
    +
    59 ~xchunked_semantic() = default;
    +
    60
    +
    61 xchunked_semantic(const xchunked_semantic&) = default;
    +
    62 xchunked_semantic& operator=(const xchunked_semantic&) = default;
    +
    63
    +
    64 xchunked_semantic(xchunked_semantic&&) = default;
    +
    65 xchunked_semantic& operator=(xchunked_semantic&&) = default;
    +
    66
    +
    67 template <class E>
    +
    68 derived_type& operator=(const xexpression<E>& e);
    +
    69
    +
    70 private:
    +
    71
    +
    72 template <class CS>
    +
    73 xchunked_assigner<temporary_type, CS> get_assigner(const CS&) const;
    +
    74 };
    +
    +
    75
    +
    76 /*******************
    +
    77 * xchunk_iterator *
    +
    78 *******************/
    +
    79
    +
    80 template <class CS>
    +
    81 class xchunked_array;
    +
    82
    +
    83 template <class E>
    +
    84 class xchunked_view;
    +
    85
    +
    86 namespace detail
    +
    87 {
    +
    88 template <class T>
    +
    89 struct is_xchunked_array : std::false_type
    +
    90 {
    +
    91 };
    +
    92
    +
    93 template <class CS>
    +
    94 struct is_xchunked_array<xchunked_array<CS>> : std::true_type
    +
    95 {
    +
    96 };
    +
    97
    +
    98 template <class T>
    +
    99 struct is_xchunked_view : std::false_type
    +
    100 {
    +
    101 };
    +
    102
    +
    103 template <class E>
    +
    104 struct is_xchunked_view<xchunked_view<E>> : std::true_type
    +
    105 {
    +
    106 };
    +
    107
    +
    108 struct invalid_chunk_iterator
    +
    109 {
    +
    110 };
    +
    111
    +
    112 template <class A>
    +
    113 struct xchunk_iterator_array
    +
    114 {
    +
    115 using reference = decltype(*(std::declval<A>().chunks().begin()));
    +
    116
    +
    117 inline decltype(auto) get_chunk(A& arr, typename A::size_type i, const xstrided_slice_vector&) const
    +
    118 {
    +
    119 using difference_type = typename A::difference_type;
    +
    120 return *(arr.chunks().begin() + static_cast<difference_type>(i));
    +
    121 }
    +
    122 };
    +
    123
    +
    124 template <class V>
    +
    125 struct xchunk_iterator_view
    +
    126 {
    +
    127 using reference = decltype(xt::strided_view(
    +
    128 std::declval<V>().expression(),
    +
    129 std::declval<xstrided_slice_vector>()
    +
    130 ));
    +
    131
    +
    132 inline auto get_chunk(V& view, typename V::size_type, const xstrided_slice_vector& sv) const
    +
    133 {
    +
    134 return xt::strided_view(view.expression(), sv);
    +
    135 }
    +
    136 };
    +
    137
    +
    138 template <class T>
    +
    139 struct xchunk_iterator_base
    +
    140 : std::conditional_t<
    +
    141 is_xchunked_array<std::decay_t<T>>::value,
    +
    142 xchunk_iterator_array<T>,
    +
    143 std::conditional_t<is_xchunked_view<std::decay_t<T>>::value, xchunk_iterator_view<T>, invalid_chunk_iterator>>
    +
    144 {
    +
    145 };
    +
    146 }
    +
    147
    +
    148 template <class E>
    +
    +
    149 class xchunk_iterator : private detail::xchunk_iterator_base<E>
    +
    150 {
    +
    151 public:
    +
    152
    +
    153 using base_type = detail::xchunk_iterator_base<E>;
    +
    154 using self_type = xchunk_iterator<E>;
    +
    155 using size_type = typename E::size_type;
    +
    156 using shape_type = typename E::shape_type;
    +
    157 using slice_vector = xstrided_slice_vector;
    +
    158
    +
    159 using reference = typename base_type::reference;
    +
    160 using value_type = std::remove_reference_t<reference>;
    +
    161 using pointer = value_type*;
    +
    162 using difference_type = typename E::difference_type;
    +
    163 using iterator_category = std::forward_iterator_tag;
    +
    164
    +
    165
    +
    166 xchunk_iterator() = default;
    +
    167 xchunk_iterator(E& chunked_expression, shape_type&& chunk_index, size_type chunk_linear_index);
    +
    168
    +
    169 self_type& operator++();
    +
    170 self_type operator++(int);
    +
    171 decltype(auto) operator*() const;
    +
    172
    +
    173 bool operator==(const self_type& rhs) const;
    +
    174 bool operator!=(const self_type& rhs) const;
    +
    175
    +
    176 const shape_type& chunk_index() const;
    +
    177
    +
    178 const slice_vector& get_slice_vector() const;
    +
    179 slice_vector get_chunk_slice_vector() const;
    +
    180
    +
    181 private:
    +
    182
    +
    183 void fill_slice_vector(size_type index);
    +
    184
    +
    185 E* p_chunked_expression;
    +
    186 shape_type m_chunk_index;
    +
    187 size_type m_chunk_linear_index;
    +
    188 xstrided_slice_vector m_slice_vector;
    +
    189 };
    +
    +
    190
    +
    191 /************************************
    +
    192 * xchunked_semantic implementation *
    +
    193 ************************************/
    +
    194
    +
    195 template <class T, class CS>
    +
    196 template <class E, class DST>
    +
    197 inline void xchunked_assigner<T, CS>::build_and_assign_temporary(const xexpression<E>& e, DST& dst)
    +
    198 {
    +
    199 temporary_type tmp(e, CS(), dst.chunk_shape());
    +
    200 dst = std::move(tmp);
    +
    201 }
    +
    202
    +
    203 template <class D>
    +
    204 template <class E>
    +
    205 inline auto xchunked_semantic<D>::assign_xexpression(const xexpression<E>& e) -> derived_type&
    +
    206 {
    +
    207 auto& d = this->derived_cast();
    +
    208 const auto& chunk_shape = d.chunk_shape();
    +
    209 size_t i = 0;
    +
    210 auto it_end = d.chunk_end();
    +
    211 for (auto it = d.chunk_begin(); it != it_end; ++it, ++i)
    +
    212 {
    +
    213 auto rhs = strided_view(e.derived_cast(), it.get_slice_vector());
    +
    214 if (rhs.shape() != chunk_shape)
    +
    215 {
    +
    216 noalias(strided_view(*it, it.get_chunk_slice_vector())) = rhs;
    +
    217 }
    +
    218 else
    +
    219 {
    +
    220 noalias(*it) = rhs;
    +
    221 }
    +
    222 }
    +
    223
    +
    224 return this->derived_cast();
    +
    225 }
    +
    226
    +
    227 template <class D>
    +
    228 template <class E>
    +
    229 inline auto xchunked_semantic<D>::computed_assign(const xexpression<E>& e) -> derived_type&
    +
    230 {
    +
    231 D& d = this->derived_cast();
    +
    232 if (e.derived_cast().dimension() > d.dimension() || e.derived_cast().shape() > d.shape())
    +
    233 {
    +
    234 return operator=(e);
    +
    235 }
    +
    236 else
    +
    237 {
    +
    238 return assign_xexpression(e);
    +
    239 }
    +
    240 }
    +
    241
    +
    242 template <class D>
    +
    243 template <class E, class F>
    +
    244 inline auto xchunked_semantic<D>::scalar_computed_assign(const E& e, F&& f) -> derived_type&
    +
    245 {
    +
    246 for (auto& c : this->derived_cast().chunks())
    +
    247 {
    +
    248 c.scalar_computed_assign(e, f);
    +
    249 }
    +
    250 return this->derived_cast();
    +
    251 }
    +
    252
    +
    253 template <class D>
    +
    254 template <class E>
    +
    255 inline auto xchunked_semantic<D>::operator=(const xexpression<E>& e) -> derived_type&
    +
    256 {
    +
    257 D& d = this->derived_cast();
    +
    258 get_assigner(d.chunks()).build_and_assign_temporary(e, d);
    +
    259 return d;
    +
    260 }
    +
    261
    +
    262 template <class D>
    +
    263 template <class CS>
    +
    264 inline auto xchunked_semantic<D>::get_assigner(const CS&) const -> xchunked_assigner<temporary_type, CS>
    +
    265 {
    + +
    267 }
    +
    268
    +
    269 /**********************************
    +
    270 * xchunk_iterator implementation *
    +
    271 **********************************/
    +
    272
    +
    273 template <class E>
    +
    274 inline xchunk_iterator<E>::xchunk_iterator(E& expression, shape_type&& chunk_index, size_type chunk_linear_index)
    +
    275 : p_chunked_expression(&expression)
    +
    276 , m_chunk_index(std::move(chunk_index))
    +
    277 , m_chunk_linear_index(chunk_linear_index)
    +
    278 , m_slice_vector(m_chunk_index.size())
    +
    279 {
    +
    280 for (size_type i = 0; i < m_chunk_index.size(); ++i)
    +
    281 {
    +
    282 fill_slice_vector(i);
    +
    283 }
    +
    284 }
    +
    285
    +
    286 template <class E>
    +
    287 inline xchunk_iterator<E>& xchunk_iterator<E>::operator++()
    +
    288 {
    +
    289 if (m_chunk_linear_index + 1u != p_chunked_expression->grid_size())
    +
    290 {
    +
    291 size_type i = p_chunked_expression->dimension();
    +
    292 while (i != 0)
    +
    293 {
    +
    294 --i;
    +
    295 if (m_chunk_index[i] + 1u == p_chunked_expression->grid_shape()[i])
    +
    296 {
    +
    297 m_chunk_index[i] = 0;
    +
    298 fill_slice_vector(i);
    +
    299 }
    +
    300 else
    +
    301 {
    +
    302 m_chunk_index[i] += 1;
    +
    303 fill_slice_vector(i);
    +
    304 break;
    +
    305 }
    +
    306 }
    +
    307 }
    +
    308 m_chunk_linear_index++;
    +
    309 return *this;
    +
    310 }
    +
    311
    +
    312 template <class E>
    +
    313 inline xchunk_iterator<E> xchunk_iterator<E>::operator++(int)
    +
    314 {
    +
    315 xchunk_iterator<E> it = *this;
    +
    316 ++(*this);
    +
    317 return it;
    +
    318 }
    +
    319
    +
    320 template <class E>
    +
    321 inline decltype(auto) xchunk_iterator<E>::operator*() const
    +
    322 {
    +
    323 return base_type::get_chunk(*p_chunked_expression, m_chunk_linear_index, m_slice_vector);
    +
    324 }
    +
    325
    +
    326 template <class E>
    +
    327 inline bool xchunk_iterator<E>::operator==(const xchunk_iterator& other) const
    +
    328 {
    +
    329 return m_chunk_linear_index == other.m_chunk_linear_index;
    +
    330 }
    +
    331
    +
    332 template <class E>
    +
    333 inline bool xchunk_iterator<E>::operator!=(const xchunk_iterator& other) const
    +
    334 {
    +
    335 return !(*this == other);
    +
    336 }
    +
    337
    +
    338 template <class E>
    +
    339 inline auto xchunk_iterator<E>::get_slice_vector() const -> const slice_vector&
    +
    340 {
    +
    341 return m_slice_vector;
    +
    342 }
    +
    343
    +
    344 template <class E>
    +
    345 auto xchunk_iterator<E>::chunk_index() const -> const shape_type&
    +
    346 {
    +
    347 return m_chunk_index;
    +
    348 }
    +
    349
    +
    350 template <class E>
    +
    351 inline auto xchunk_iterator<E>::get_chunk_slice_vector() const -> slice_vector
    +
    352 {
    +
    353 slice_vector slices(m_chunk_index.size());
    +
    354 for (size_type i = 0; i < m_chunk_index.size(); ++i)
    +
    355 {
    +
    356 size_type chunk_shape = p_chunked_expression->chunk_shape()[i];
    +
    357 size_type end = std::min(
    +
    358 chunk_shape,
    +
    359 p_chunked_expression->shape()[i] - m_chunk_index[i] * chunk_shape
    +
    360 );
    +
    361 slices[i] = range(0u, end);
    +
    362 }
    +
    363 return slices;
    +
    364 }
    +
    365
    +
    366 template <class E>
    +
    367 inline void xchunk_iterator<E>::fill_slice_vector(size_type i)
    +
    368 {
    +
    369 size_type range_start = m_chunk_index[i] * p_chunked_expression->chunk_shape()[i];
    +
    370 size_type range_end = std::min(
    +
    371 (m_chunk_index[i] + 1) * p_chunked_expression->chunk_shape()[i],
    +
    372 p_chunked_expression->shape()[i]
    +
    373 );
    +
    374 m_slice_vector[i] = range(range_start, range_end);
    +
    375 }
    +
    376}
    +
    377
    +
    378#endif
    + + + + +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    + +
    +
    + + + + diff --git a/xchunked__view_8hpp_source.html b/xchunked__view_8hpp_source.html new file mode 100644 index 000000000..f958abdaa --- /dev/null +++ b/xchunked__view_8hpp_source.html @@ -0,0 +1,424 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/chunk/xchunked_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xchunked_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CHUNKED_VIEW_HPP
    +
    11#define XTENSOR_CHUNKED_VIEW_HPP
    +
    12
    +
    13#include <xtl/xsequence.hpp>
    +
    14
    +
    15#include "../chunk/xchunked_array.hpp"
    +
    16#include "../containers/xstorage.hpp"
    +
    17#include "../core/xnoalias.hpp"
    +
    18#include "../views/xstrided_view.hpp"
    +
    19
    +
    20namespace xt
    +
    21{
    +
    22
    +
    23 template <class E>
    +
    +
    24 struct is_chunked_t : detail::chunk_helper<E>::is_chunked
    +
    25 {
    +
    26 };
    +
    +
    27
    +
    28 /*****************
    +
    29 * xchunked_view *
    +
    30 *****************/
    +
    31
    +
    32 template <class E>
    +
    33 class xchunk_iterator;
    +
    34
    +
    35 template <class E>
    +
    +
    36 class xchunked_view
    +
    37 {
    +
    38 public:
    +
    39
    +
    40 using self_type = xchunked_view<E>;
    +
    41 using expression_type = std::decay_t<E>;
    +
    42 using value_type = typename expression_type::value_type;
    +
    43 using reference = typename expression_type::reference;
    +
    44 using const_reference = typename expression_type::const_reference;
    +
    45 using pointer = typename expression_type::pointer;
    +
    46 using const_pointer = typename expression_type::const_pointer;
    +
    47 using size_type = typename expression_type::size_type;
    +
    48 using difference_type = typename expression_type::difference_type;
    +
    49 using shape_type = svector<size_type>;
    +
    50 using chunk_iterator = xchunk_iterator<self_type>;
    +
    51 using const_chunk_iterator = xchunk_iterator<const self_type>;
    +
    52
    +
    53 template <class OE, class S>
    +
    54 xchunked_view(OE&& e, S&& chunk_shape);
    +
    55
    +
    56 template <class OE>
    +
    57 xchunked_view(OE&& e);
    +
    58
    +
    59 void init();
    +
    60
    +
    61 template <class OE>
    +
    62 typename std::enable_if_t<!is_chunked_t<OE>::value, xchunked_view<E>&> operator=(const OE& e);
    +
    63
    +
    64 template <class OE>
    +
    65 typename std::enable_if_t<is_chunked_t<OE>::value, xchunked_view<E>&> operator=(const OE& e);
    +
    66
    +
    67 size_type dimension() const noexcept;
    +
    68 const shape_type& shape() const noexcept;
    +
    69 const shape_type& chunk_shape() const noexcept;
    +
    70 size_type grid_size() const noexcept;
    +
    71 const shape_type& grid_shape() const noexcept;
    +
    72
    +
    73 expression_type& expression() noexcept;
    +
    74 const expression_type& expression() const noexcept;
    +
    75
    +
    76 chunk_iterator chunk_begin();
    +
    77 chunk_iterator chunk_end();
    +
    78
    +
    79 const_chunk_iterator chunk_begin() const;
    +
    80 const_chunk_iterator chunk_end() const;
    +
    81 const_chunk_iterator chunk_cbegin() const;
    +
    82 const_chunk_iterator chunk_cend() const;
    +
    83
    +
    84 private:
    +
    85
    +
    86 E m_expression;
    +
    87 shape_type m_shape;
    +
    88 shape_type m_chunk_shape;
    +
    89 shape_type m_grid_shape;
    +
    90 size_type m_chunk_nb;
    +
    91 };
    +
    +
    92
    +
    93 template <class E, class S>
    +
    94 xchunked_view<E> as_chunked(E&& e, S&& chunk_shape);
    +
    95
    +
    96 /********************************
    +
    97 * xchunked_view implementation *
    +
    98 ********************************/
    +
    99
    +
    100 template <class E>
    +
    101 template <class OE, class S>
    +
    102 inline xchunked_view<E>::xchunked_view(OE&& e, S&& chunk_shape)
    +
    103 : m_expression(std::forward<OE>(e))
    +
    104 , m_chunk_shape(xtl::forward_sequence<shape_type, S>(chunk_shape))
    +
    105 {
    +
    106 m_shape.resize(e.dimension());
    +
    107 const auto& s = e.shape();
    +
    108 std::copy(s.cbegin(), s.cend(), m_shape.begin());
    +
    109 init();
    +
    110 }
    +
    111
    +
    112 template <class E>
    +
    113 template <class OE>
    +
    114 inline xchunked_view<E>::xchunked_view(OE&& e)
    +
    115 : m_expression(std::forward<OE>(e))
    +
    116 {
    +
    117 m_shape.resize(e.dimension());
    +
    118 const auto& s = e.shape();
    +
    119 std::copy(s.cbegin(), s.cend(), m_shape.begin());
    +
    120 }
    +
    121
    +
    122 template <class E>
    +
    123 void xchunked_view<E>::init()
    +
    124 {
    +
    125 // compute chunk number in each dimension
    +
    126 m_grid_shape.resize(m_shape.size());
    +
    127 std::transform(
    +
    128 m_shape.cbegin(),
    +
    129 m_shape.cend(),
    +
    130 m_chunk_shape.cbegin(),
    +
    131 m_grid_shape.begin(),
    +
    132 [](auto s, auto cs)
    +
    133 {
    +
    134 std::size_t cn = s / cs;
    +
    135 if (s % cs > 0)
    +
    136 {
    +
    137 cn++; // edge_chunk
    +
    138 }
    +
    139 return cn;
    +
    140 }
    +
    141 );
    +
    142 m_chunk_nb = std::accumulate(
    +
    143 std::begin(m_grid_shape),
    +
    144 std::end(m_grid_shape),
    +
    145 std::size_t(1),
    +
    146 std::multiplies<>()
    +
    147 );
    +
    148 }
    +
    149
    +
    150 template <class E>
    +
    151 template <class OE>
    +
    152 typename std::enable_if_t<!is_chunked_t<OE>::value, xchunked_view<E>&>
    +
    153 xchunked_view<E>::operator=(const OE& e)
    +
    154 {
    +
    155 auto end = chunk_end();
    +
    156 for (auto it = chunk_begin(); it != end; ++it)
    +
    157 {
    +
    158 auto el = *it;
    +
    159 noalias(el) = strided_view(e, it.get_slice_vector());
    +
    160 }
    +
    161 return *this;
    +
    162 }
    +
    163
    +
    164 template <class E>
    +
    165 template <class OE>
    +
    166 typename std::enable_if_t<is_chunked_t<OE>::value, xchunked_view<E>&>
    +
    167 xchunked_view<E>::operator=(const OE& e)
    +
    168 {
    +
    169 m_chunk_shape.resize(e.dimension());
    +
    170 const auto& cs = e.chunk_shape();
    +
    171 std::copy(cs.cbegin(), cs.cend(), m_chunk_shape.begin());
    +
    172 init();
    +
    173 auto it2 = e.chunks().begin();
    +
    174 auto end1 = chunk_end();
    +
    175 for (auto it1 = chunk_begin(); it1 != end1; ++it1, ++it2)
    +
    176 {
    +
    177 auto el1 = *it1;
    +
    178 auto el2 = *it2;
    +
    179 auto lhs_shape = el1.shape();
    +
    180 if (lhs_shape != el2.shape())
    +
    181 {
    +
    182 xstrided_slice_vector esv(el2.dimension()); // element slice in edge chunk
    +
    183 std::transform(
    +
    184 lhs_shape.begin(),
    +
    185 lhs_shape.end(),
    +
    186 esv.begin(),
    +
    187 [](auto size)
    +
    188 {
    +
    189 return range(0, size);
    +
    190 }
    +
    191 );
    +
    192 noalias(el1) = strided_view(el2, esv);
    +
    193 }
    +
    194 else
    +
    195 {
    +
    196 noalias(el1) = el2;
    +
    197 }
    +
    198 }
    +
    199 return *this;
    +
    200 }
    +
    201
    +
    202 template <class E>
    +
    203 inline auto xchunked_view<E>::dimension() const noexcept -> size_type
    +
    204 {
    +
    205 return m_shape.size();
    +
    206 }
    +
    207
    +
    208 template <class E>
    +
    209 inline auto xchunked_view<E>::shape() const noexcept -> const shape_type&
    +
    210 {
    +
    211 return m_shape;
    +
    212 }
    +
    213
    +
    214 template <class E>
    +
    215 inline auto xchunked_view<E>::chunk_shape() const noexcept -> const shape_type&
    +
    216 {
    +
    217 return m_chunk_shape;
    +
    218 }
    +
    219
    +
    220 template <class E>
    +
    221 inline auto xchunked_view<E>::grid_size() const noexcept -> size_type
    +
    222 {
    +
    223 return m_chunk_nb;
    +
    224 }
    +
    225
    +
    226 template <class E>
    +
    227 inline auto xchunked_view<E>::grid_shape() const noexcept -> const shape_type&
    +
    228 {
    +
    229 return m_grid_shape;
    +
    230 }
    +
    231
    +
    232 template <class E>
    +
    233 inline auto xchunked_view<E>::expression() noexcept -> expression_type&
    +
    234 {
    +
    235 return m_expression;
    +
    236 }
    +
    237
    +
    238 template <class E>
    +
    239 inline auto xchunked_view<E>::expression() const noexcept -> const expression_type&
    +
    240 {
    +
    241 return m_expression;
    +
    242 }
    +
    243
    +
    244 template <class E>
    +
    245 inline auto xchunked_view<E>::chunk_begin() -> chunk_iterator
    +
    246 {
    +
    247 shape_type chunk_index(m_shape.size(), size_type(0));
    +
    248 return chunk_iterator(*this, std::move(chunk_index), 0u);
    +
    249 }
    +
    250
    +
    251 template <class E>
    +
    252 inline auto xchunked_view<E>::chunk_end() -> chunk_iterator
    +
    253 {
    +
    254 return chunk_iterator(*this, shape_type(grid_shape()), grid_size());
    +
    255 }
    +
    256
    +
    257 template <class E>
    +
    258 inline auto xchunked_view<E>::chunk_begin() const -> const_chunk_iterator
    +
    259 {
    +
    260 shape_type chunk_index(m_shape.size(), size_type(0));
    +
    261 return const_chunk_iterator(*this, std::move(chunk_index), 0u);
    +
    262 }
    +
    263
    +
    264 template <class E>
    +
    265 inline auto xchunked_view<E>::chunk_end() const -> const_chunk_iterator
    +
    266 {
    +
    267 return const_chunk_iterator(*this, shape_type(grid_shape()), grid_size());
    +
    268 }
    +
    269
    +
    270 template <class E>
    +
    271 inline auto xchunked_view<E>::chunk_cbegin() const -> const_chunk_iterator
    +
    272 {
    +
    273 return chunk_begin();
    +
    274 }
    +
    275
    +
    276 template <class E>
    +
    277 inline auto xchunked_view<E>::chunk_cend() const -> const_chunk_iterator
    +
    278 {
    +
    279 return chunk_end();
    +
    280 }
    +
    281
    +
    282 template <class E, class S>
    +
    283 inline xchunked_view<E> as_chunked(E&& e, S&& chunk_shape)
    +
    284 {
    +
    285 return xchunked_view<E>(std::forward<E>(e), std::forward<S>(chunk_shape));
    +
    286 }
    +
    287
    +
    288 template <class E>
    +
    289 inline xchunked_view<E> as_chunked(E&& e)
    +
    290 {
    +
    291 return xchunked_view<E>(std::forward<E>(e));
    +
    292 }
    +
    293}
    +
    294
    +
    295#endif
    + + + +
    standard mathematical functions for xexpressions
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    + +
    +
    + + + + diff --git a/xcomplex_8hpp_source.html b/xcomplex_8hpp_source.html new file mode 100644 index 000000000..4bf71a31b --- /dev/null +++ b/xcomplex_8hpp_source.html @@ -0,0 +1,354 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xcomplex.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xcomplex.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_COMPLEX_HPP
    +
    11#define XTENSOR_COMPLEX_HPP
    +
    12
    +
    13#include <type_traits>
    +
    14#include <utility>
    +
    15
    +
    16#include <xtl/xcomplex.hpp>
    +
    17
    +
    18#include "../core/xexpression.hpp"
    +
    19#include "../generators/xbuilder.hpp"
    +
    20#include "../views/xoffset_view.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24
    +
    30
    +
    31 /******************************
    +
    32 * real and imag declarations *
    +
    33 ******************************/
    +
    34
    +
    35 template <class E>
    +
    36 decltype(auto) real(E&& e) noexcept;
    +
    37
    +
    38 template <class E>
    +
    39 decltype(auto) imag(E&& e) noexcept;
    +
    40
    +
    41 /********************************
    +
    42 * real and imag implementation *
    +
    43 ********************************/
    +
    44
    +
    45 namespace detail
    +
    46 {
    +
    47 template <bool iscomplex = true>
    +
    48 struct complex_helper
    +
    49 {
    +
    50 template <class E>
    +
    51 inline static auto real(E&& e) noexcept
    +
    52 {
    +
    53 using real_type = typename std::decay_t<E>::value_type::value_type;
    +
    54 return xoffset_view<xclosure_t<E>, real_type, 0>(std::forward<E>(e));
    +
    55 }
    +
    56
    +
    57 template <class E>
    +
    58 inline static auto imag(E&& e) noexcept
    +
    59 {
    +
    60 using real_type = typename std::decay_t<E>::value_type::value_type;
    +
    61 return xoffset_view<xclosure_t<E>, real_type, sizeof(real_type)>(std::forward<E>(e));
    +
    62 }
    +
    63 };
    +
    64
    +
    65 template <>
    +
    66 struct complex_helper<false>
    +
    67 {
    +
    68 template <class E>
    +
    69 inline static decltype(auto) real(E&& e) noexcept
    +
    70 {
    +
    71 return std::forward<E>(e);
    +
    72 }
    +
    73
    +
    74 template <class E>
    +
    75 inline static auto imag(E&& e) noexcept
    +
    76 {
    +
    77 return zeros<typename std::decay_t<E>::value_type>(e.shape());
    +
    78 }
    +
    79 };
    +
    80
    +
    81 template <bool isexpression = true>
    +
    82 struct complex_expression_helper
    +
    83 {
    +
    84 template <class E>
    +
    85 inline static decltype(auto) real(E&& e) noexcept
    +
    86 {
    +
    87 return detail::complex_helper<xtl::is_complex<typename std::decay_t<E>::value_type>::value>::real(
    +
    88 std::forward<E>(e)
    +
    89 );
    +
    90 }
    +
    91
    +
    92 template <class E>
    +
    93 inline static decltype(auto) imag(E&& e) noexcept
    +
    94 {
    +
    95 return detail::complex_helper<xtl::is_complex<typename std::decay_t<E>::value_type>::value>::imag(
    +
    96 std::forward<E>(e)
    +
    97 );
    +
    98 }
    +
    99 };
    +
    100
    +
    101 template <>
    +
    102 struct complex_expression_helper<false>
    +
    103 {
    +
    104 template <class E>
    +
    105 inline static decltype(auto) real(E&& e) noexcept
    +
    106 {
    +
    107 return xtl::forward_real(std::forward<E>(e));
    +
    108 }
    +
    109
    +
    110 template <class E>
    +
    111 inline static decltype(auto) imag(E&& e) noexcept
    +
    112 {
    +
    113 return xtl::forward_imag(std::forward<E>(e));
    +
    114 }
    +
    115 };
    +
    116 }
    +
    117
    +
    127 template <class E>
    +
    +
    128 inline decltype(auto) real(E&& e) noexcept
    +
    129 {
    +
    130 return detail::complex_expression_helper<is_xexpression<std::decay_t<E>>::value>::real(std::forward<E>(e
    +
    131 ));
    +
    132 }
    +
    +
    133
    +
    143 template <class E>
    +
    +
    144 inline decltype(auto) imag(E&& e) noexcept
    +
    145 {
    +
    146 return detail::complex_expression_helper<is_xexpression<std::decay_t<E>>::value>::imag(std::forward<E>(e
    +
    147 ));
    +
    148 }
    +
    +
    149
    +
    150#define UNARY_COMPLEX_FUNCTOR(NS, NAME) \
    +
    151 struct NAME##_fun \
    +
    152 { \
    +
    153 template <class T> \
    +
    154 constexpr auto operator()(const T& t) const \
    +
    155 { \
    +
    156 using NS::NAME; \
    +
    157 return NAME(t); \
    +
    158 } \
    +
    159 \
    +
    160 template <class B> \
    +
    161 constexpr auto simd_apply(const B& t) const \
    +
    162 { \
    +
    163 using NS::NAME; \
    +
    164 return NAME(t); \
    +
    165 } \
    +
    166 }
    +
    167
    +
    168 namespace math
    +
    169 {
    +
    170 namespace detail
    +
    171 {
    +
    172 template <class T>
    +
    173 constexpr std::complex<T> conj_impl(const std::complex<T>& c)
    +
    174 {
    +
    175 return std::complex<T>(c.real(), -c.imag());
    +
    176 }
    +
    177
    +
    178 template <class T>
    +
    179 constexpr std::complex<T> conj_impl(const T& real)
    +
    180 {
    +
    181 return std::complex<T>(real, 0);
    +
    182 }
    +
    183
    +
    184#ifdef XTENSOR_USE_XSIMD
    +
    185 template <class T, class A>
    +
    186 xsimd::complex_batch_type_t<xsimd::batch<T, A>> conj_impl(const xsimd::batch<T, A>& z)
    +
    187 {
    +
    188 return xsimd::conj(z);
    +
    189 }
    +
    190#endif
    +
    191 }
    +
    192
    +
    193 UNARY_COMPLEX_FUNCTOR(std, norm);
    +
    194 UNARY_COMPLEX_FUNCTOR(std, arg);
    +
    195 UNARY_COMPLEX_FUNCTOR(detail, conj_impl);
    +
    196 }
    +
    197
    +
    198#undef UNARY_COMPLEX_FUNCTOR
    +
    199
    +
    206 template <class E>
    +
    +
    207 inline auto conj(E&& e) noexcept
    +
    208 {
    +
    209 using functor = math::conj_impl_fun;
    + +
    211 return type(functor(), std::forward<E>(e));
    +
    212 }
    +
    +
    213
    +
    220 template <class E>
    +
    +
    221 inline auto arg(E&& e) noexcept
    +
    222 {
    +
    223 using functor = math::arg_fun;
    + +
    225 return type(functor(), std::forward<E>(e));
    +
    226 }
    +
    +
    227
    +
    237 template <class E>
    +
    +
    238 inline auto angle(E&& e, bool deg = false) noexcept
    +
    239 {
    +
    240 using value_type = xtl::complex_value_type_t<typename std::decay_t<E>::value_type>;
    +
    241 value_type multiplier = 1.0;
    +
    242 if (deg)
    +
    243 {
    +
    244 multiplier = value_type(180) / numeric_constants<value_type>::PI;
    +
    245 }
    +
    246 return arg(std::forward<E>(e)) * std::move(multiplier);
    +
    247 }
    +
    +
    248
    +
    256 template <class E>
    +
    +
    257 inline auto norm(E&& e) noexcept
    +
    258 {
    +
    259 using functor = math::norm_fun;
    + +
    261 return type(functor(), std::forward<E>(e));
    +
    262 }
    +
    +
    263}
    +
    264#endif
    +
    Multidimensional function operating on xtensor expressions.
    +
    decltype(auto) imag(E &&e) noexcept
    Return an xt::xexpression representing the imaginary part of the given expression.
    Definition xcomplex.hpp:144
    +
    decltype(auto) real(E &&e) noexcept
    Return an xt::xexpression representing the real part of the given expression.
    Definition xcomplex.hpp:128
    +
    auto conj(E &&e) noexcept
    Return an xt::xfunction evaluating to the complex conjugate of the given expression.
    Definition xcomplex.hpp:207
    +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    auto angle(E &&e, bool deg=false) noexcept
    Calculates the phase angle elementwise for the complex numbers in e.
    Definition xcomplex.hpp:238
    +
    auto norm(E &&e) noexcept
    Calculates the squared magnitude elementwise for the complex numbers in e.
    Definition xcomplex.hpp:257
    +
    standard mathematical functions for xexpressions
    + + + +
    +
    + + + + diff --git a/xcontainer_8hpp_source.html b/xcontainer_8hpp_source.html new file mode 100644 index 000000000..1d0fad306 --- /dev/null +++ b/xcontainer_8hpp_source.html @@ -0,0 +1,1199 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xcontainer.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xcontainer.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CONTAINER_HPP
    +
    11#define XTENSOR_CONTAINER_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <memory>
    +
    15#include <stdexcept>
    +
    16
    +
    17#include <xtl/xmeta_utils.hpp>
    +
    18#include <xtl/xsequence.hpp>
    +
    19
    +
    20#include "../core/xaccessible.hpp"
    +
    21#include "../core/xiterable.hpp"
    +
    22#include "../core/xiterator.hpp"
    +
    23#include "../core/xmath.hpp"
    +
    24#include "../core/xoperation.hpp"
    +
    25#include "../core/xstrides.hpp"
    +
    26#include "../core/xtensor_config.hpp"
    +
    27#include "../core/xtensor_forward.hpp"
    +
    28
    +
    29namespace xt
    +
    30{
    +
    31 template <class D>
    +
    + +
    33 {
    +
    34 using inner_shape_type = typename xcontainer_inner_types<D>::inner_shape_type;
    +
    35 using stepper = xstepper<D>;
    +
    36 using const_stepper = xstepper<const D>;
    +
    37 };
    +
    +
    38
    +
    39 namespace detail
    +
    40 {
    +
    41 template <class T>
    +
    42 struct allocator_type_impl
    +
    43 {
    +
    44 using type = typename T::allocator_type;
    +
    45 };
    +
    46
    +
    47 template <class T, std::size_t N>
    +
    48 struct allocator_type_impl<std::array<T, N>>
    +
    49 {
    +
    50 using type = std::allocator<T>; // fake allocator for testing
    +
    51 };
    +
    52 }
    +
    53
    +
    54 template <class T>
    +
    55 using allocator_type_t = typename detail::allocator_type_impl<T>::type;
    +
    56
    +
    68 template <class D>
    +
    +
    69 class xcontainer : public xcontiguous_iterable<D>,
    +
    70 private xaccessible<D>
    +
    71 {
    +
    72 public:
    +
    73
    +
    74 using derived_type = D;
    +
    75
    +
    76 using inner_types = xcontainer_inner_types<D>;
    +
    77 using storage_type = typename inner_types::storage_type;
    +
    78 using allocator_type = allocator_type_t<std::decay_t<storage_type>>;
    +
    79 using value_type = typename storage_type::value_type;
    +
    80 using reference = typename inner_types::reference;
    +
    81 using const_reference = typename inner_types::const_reference;
    +
    82 using pointer = typename storage_type::pointer;
    +
    83 using const_pointer = typename storage_type::const_pointer;
    +
    84 using size_type = typename inner_types::size_type;
    +
    85 using difference_type = typename storage_type::difference_type;
    +
    86 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    87 using bool_load_type = xt::bool_load_type<value_type>;
    +
    88
    +
    89 using shape_type = typename inner_types::shape_type;
    +
    90 using strides_type = typename inner_types::strides_type;
    +
    91 using backstrides_type = typename inner_types::backstrides_type;
    +
    92
    +
    93 using inner_shape_type = typename inner_types::inner_shape_type;
    +
    94 using inner_strides_type = typename inner_types::inner_strides_type;
    +
    95 using inner_backstrides_type = typename inner_types::inner_backstrides_type;
    +
    96
    +
    97 using iterable_base = xcontiguous_iterable<D>;
    +
    98 using stepper = typename iterable_base::stepper;
    +
    99 using const_stepper = typename iterable_base::const_stepper;
    +
    100
    +
    101 using accessible_base = xaccessible<D>;
    +
    102
    +
    103 static constexpr layout_type static_layout = inner_types::layout;
    +
    104 static constexpr bool contiguous_layout = static_layout != layout_type::dynamic;
    +
    105 using data_alignment = xt_simd::container_alignment_t<storage_type>;
    +
    106 using simd_type = xt_simd::simd_type<value_type>;
    +
    107
    +
    108 using linear_iterator = typename iterable_base::linear_iterator;
    +
    109 using const_linear_iterator = typename iterable_base::const_linear_iterator;
    +
    110 using reverse_linear_iterator = typename iterable_base::reverse_linear_iterator;
    +
    111 using const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator;
    +
    112
    +
    113 static_assert(static_layout != layout_type::any, "Container layout can never be layout_type::any!");
    +
    114
    +
    115 size_type size() const noexcept;
    +
    116
    +
    117 XTENSOR_CONSTEXPR_RETURN size_type dimension() const noexcept;
    +
    118
    +
    119 XTENSOR_CONSTEXPR_RETURN const inner_shape_type& shape() const noexcept;
    +
    120 XTENSOR_CONSTEXPR_RETURN const inner_strides_type& strides() const noexcept;
    +
    121 XTENSOR_CONSTEXPR_RETURN const inner_backstrides_type& backstrides() const noexcept;
    +
    122
    +
    123 template <class T>
    +
    124 void fill(const T& value);
    +
    125
    +
    126 template <class... Args>
    +
    127 reference operator()(Args... args);
    +
    128
    +
    129 template <class... Args>
    +
    130 const_reference operator()(Args... args) const;
    +
    131
    +
    132 template <class... Args>
    +
    133 reference unchecked(Args... args);
    +
    134
    +
    135 template <class... Args>
    +
    136 const_reference unchecked(Args... args) const;
    +
    137
    +
    138 using accessible_base::at;
    +
    139 using accessible_base::shape;
    +
    140 using accessible_base::operator[];
    +
    141 using accessible_base::back;
    +
    142 using accessible_base::front;
    +
    143 using accessible_base::in_bounds;
    +
    144 using accessible_base::periodic;
    +
    145
    +
    146 template <class It>
    +
    147 reference element(It first, It last);
    +
    148 template <class It>
    +
    149 const_reference element(It first, It last) const;
    +
    150
    +
    151 storage_type& storage() noexcept;
    +
    152 const storage_type& storage() const noexcept;
    +
    153
    +
    154 pointer data() noexcept;
    +
    155 const_pointer data() const noexcept;
    +
    156 const size_type data_offset() const noexcept;
    +
    157
    +
    158 template <class S>
    +
    159 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    160
    +
    161 template <class S>
    +
    162 bool has_linear_assign(const S& strides) const noexcept;
    +
    163 template <class S>
    +
    164 stepper stepper_begin(const S& shape) noexcept;
    +
    165 template <class S>
    +
    166 stepper stepper_end(const S& shape, layout_type l) noexcept;
    +
    167
    +
    168 template <class S>
    +
    169 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    170 template <class S>
    +
    171 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    172
    +
    173 reference data_element(size_type i);
    +
    174 const_reference data_element(size_type i) const;
    +
    175
    +
    176 reference flat(size_type i);
    +
    177 const_reference flat(size_type i) const;
    +
    178
    +
    179 template <class requested_type>
    +
    180 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    181
    +
    182 template <class align, class simd>
    +
    183 void store_simd(size_type i, const simd& e);
    +
    184 template <class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    +
    185 container_simd_return_type_t<storage_type, value_type, requested_type>
    +
    186 /*simd_return_type<requested_type>*/ load_simd(size_type i) const;
    +
    187
    +
    188 linear_iterator linear_begin() noexcept;
    +
    189 linear_iterator linear_end() noexcept;
    +
    190
    +
    191 const_linear_iterator linear_begin() const noexcept;
    +
    192 const_linear_iterator linear_end() const noexcept;
    +
    193 const_linear_iterator linear_cbegin() const noexcept;
    +
    194 const_linear_iterator linear_cend() const noexcept;
    +
    195
    +
    196 reverse_linear_iterator linear_rbegin() noexcept;
    +
    197 reverse_linear_iterator linear_rend() noexcept;
    +
    198
    +
    199 const_reverse_linear_iterator linear_rbegin() const noexcept;
    +
    200 const_reverse_linear_iterator linear_rend() const noexcept;
    +
    201 const_reverse_linear_iterator linear_crbegin() const noexcept;
    +
    202 const_reverse_linear_iterator linear_crend() const noexcept;
    +
    203
    +
    204 using container_iterator = linear_iterator;
    +
    205 using const_container_iterator = const_linear_iterator;
    +
    206
    +
    207 protected:
    +
    208
    +
    209 xcontainer() = default;
    +
    210 ~xcontainer() = default;
    +
    211
    +
    212 xcontainer(const xcontainer&) = default;
    +
    213 xcontainer& operator=(const xcontainer&) = default;
    +
    214
    +
    215 xcontainer(xcontainer&&) = default;
    +
    216 xcontainer& operator=(xcontainer&&) = default;
    +
    217
    +
    218 container_iterator data_xbegin() noexcept;
    +
    219 const_container_iterator data_xbegin() const noexcept;
    +
    220 container_iterator data_xend(layout_type l, size_type offset) noexcept;
    +
    221 const_container_iterator data_xend(layout_type l, size_type offset) const noexcept;
    +
    222
    +
    223 protected:
    +
    224
    +
    225 derived_type& derived_cast() & noexcept;
    +
    226 const derived_type& derived_cast() const& noexcept;
    +
    227 derived_type derived_cast() && noexcept;
    +
    228
    +
    229 private:
    +
    230
    +
    231 template <class It>
    +
    232 It data_xend_impl(It begin, layout_type l, size_type offset) const noexcept;
    +
    233
    +
    234 inner_shape_type& mutable_shape();
    +
    235 inner_strides_type& mutable_strides();
    +
    236 inner_backstrides_type& mutable_backstrides();
    +
    237
    +
    238 template <class C>
    +
    239 friend class xstepper;
    +
    240
    +
    241 friend class xaccessible<D>;
    +
    242 friend class xconst_accessible<D>;
    +
    243 };
    +
    +
    244
    +
    257 template <class D>
    +
    +
    258 class xstrided_container : public xcontainer<D>
    +
    259 {
    +
    260 public:
    +
    261
    +
    262 using base_type = xcontainer<D>;
    +
    263 using storage_type = typename base_type::storage_type;
    +
    264 using value_type = typename base_type::value_type;
    +
    265 using reference = typename base_type::reference;
    +
    266 using const_reference = typename base_type::const_reference;
    +
    267 using pointer = typename base_type::pointer;
    +
    268 using const_pointer = typename base_type::const_pointer;
    +
    269 using size_type = typename base_type::size_type;
    +
    270 using shape_type = typename base_type::shape_type;
    +
    271 using strides_type = typename base_type::strides_type;
    +
    272 using inner_shape_type = typename base_type::inner_shape_type;
    +
    273 using inner_strides_type = typename base_type::inner_strides_type;
    +
    274 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    275
    +
    276 template <class S = shape_type>
    +
    277 void resize(S&& shape, bool force = false);
    +
    278 template <class S = shape_type>
    + +
    280 template <class S = shape_type>
    +
    281 void resize(S&& shape, const strides_type& strides);
    +
    282
    +
    283 template <class S = shape_type>
    +
    284 auto& reshape(S&& shape, layout_type layout = base_type::static_layout) &;
    +
    285
    +
    286 template <class T>
    +
    287 auto& reshape(std::initializer_list<T> shape, layout_type layout = base_type::static_layout) &;
    +
    288
    +
    289 layout_type layout() const noexcept;
    +
    290 bool is_contiguous() const noexcept;
    +
    291
    +
    292 protected:
    +
    293
    +
    294 xstrided_container() noexcept;
    +
    295 ~xstrided_container() = default;
    +
    296
    +
    297 xstrided_container(const xstrided_container&) = default;
    +
    298 xstrided_container& operator=(const xstrided_container&) = default;
    +
    299
    +
    300 xstrided_container(xstrided_container&&) = default;
    +
    301 xstrided_container& operator=(xstrided_container&&) = default;
    +
    302
    +
    303 explicit xstrided_container(inner_shape_type&&, inner_strides_type&&) noexcept;
    +
    304 explicit xstrided_container(inner_shape_type&&, inner_strides_type&&, inner_backstrides_type&&, layout_type&&) noexcept;
    +
    305
    +
    306 inner_shape_type& shape_impl() noexcept;
    +
    307 const inner_shape_type& shape_impl() const noexcept;
    +
    308
    +
    309 inner_strides_type& strides_impl() noexcept;
    +
    310 const inner_strides_type& strides_impl() const noexcept;
    +
    311
    +
    312 inner_backstrides_type& backstrides_impl() noexcept;
    +
    313 const inner_backstrides_type& backstrides_impl() const noexcept;
    +
    314
    +
    315 template <class S = shape_type>
    +
    316 void reshape_impl(S&& shape, std::true_type, layout_type layout = base_type::static_layout);
    +
    317 template <class S = shape_type>
    +
    318 void reshape_impl(S&& shape, std::false_type, layout_type layout = base_type::static_layout);
    +
    319
    +
    320 layout_type& mutable_layout() noexcept;
    +
    321
    +
    322 private:
    +
    323
    +
    324 inner_shape_type m_shape;
    +
    325 inner_strides_type m_strides;
    +
    326 inner_backstrides_type m_backstrides;
    +
    327 layout_type m_layout = base_type::static_layout;
    +
    328 };
    +
    +
    329
    +
    330 /******************************
    +
    331 * xcontainer implementation *
    +
    332 ******************************/
    +
    333
    +
    334 template <class D>
    +
    335 template <class It>
    +
    336 inline It xcontainer<D>::data_xend_impl(It begin, layout_type l, size_type offset) const noexcept
    +
    337 {
    +
    338 return strided_data_end(*this, begin, l, offset);
    +
    339 }
    +
    340
    +
    341 template <class D>
    +
    342 inline auto xcontainer<D>::mutable_shape() -> inner_shape_type&
    +
    343 {
    +
    344 return derived_cast().shape_impl();
    +
    345 }
    +
    346
    +
    347 template <class D>
    +
    348 inline auto xcontainer<D>::mutable_strides() -> inner_strides_type&
    +
    349 {
    +
    350 return derived_cast().strides_impl();
    +
    351 }
    +
    352
    +
    353 template <class D>
    +
    354 inline auto xcontainer<D>::mutable_backstrides() -> inner_backstrides_type&
    +
    355 {
    +
    356 return derived_cast().backstrides_impl();
    +
    357 }
    +
    358
    +
    363
    +
    366 template <class D>
    +
    +
    367 inline auto xcontainer<D>::size() const noexcept -> size_type
    +
    368 {
    +
    369 return contiguous_layout ? storage().size() : compute_size(shape());
    +
    370 }
    +
    +
    371
    +
    375 template <class D>
    +
    +
    376 XTENSOR_CONSTEXPR_RETURN auto xcontainer<D>::dimension() const noexcept -> size_type
    +
    377 {
    +
    378 return shape().size();
    +
    379 }
    +
    +
    380
    +
    384 template <class D>
    +
    +
    385 XTENSOR_CONSTEXPR_RETURN auto xcontainer<D>::shape() const noexcept -> const inner_shape_type&
    +
    386 {
    +
    387 return derived_cast().shape_impl();
    +
    388 }
    +
    +
    389
    +
    393 template <class D>
    +
    +
    394 XTENSOR_CONSTEXPR_RETURN auto xcontainer<D>::strides() const noexcept -> const inner_strides_type&
    +
    395 {
    +
    396 return derived_cast().strides_impl();
    +
    397 }
    +
    +
    398
    +
    402 template <class D>
    +
    +
    403 XTENSOR_CONSTEXPR_RETURN auto xcontainer<D>::backstrides() const noexcept -> const inner_backstrides_type&
    +
    404 {
    +
    405 return derived_cast().backstrides_impl();
    +
    406 }
    +
    +
    407
    +
    409
    +
    414
    +
    419 template <class D>
    +
    420 template <class T>
    +
    +
    421 inline void xcontainer<D>::fill(const T& value)
    +
    422 {
    +
    423 if (contiguous_layout)
    +
    424 {
    +
    425 std::fill(this->linear_begin(), this->linear_end(), value);
    +
    426 }
    +
    427 else
    +
    428 {
    +
    429 std::fill(this->begin(), this->end(), value);
    +
    430 }
    +
    431 }
    +
    +
    432
    +
    439 template <class D>
    +
    440 template <class... Args>
    +
    +
    441 inline auto xcontainer<D>::operator()(Args... args) -> reference
    +
    442 {
    +
    443 XTENSOR_TRY(check_index(shape(), args...));
    +
    444 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    445 size_type index = xt::data_offset<size_type>(strides(), args...);
    +
    446 return storage()[index];
    +
    447 }
    +
    +
    448
    +
    455 template <class D>
    +
    456 template <class... Args>
    +
    +
    457 inline auto xcontainer<D>::operator()(Args... args) const -> const_reference
    +
    458 {
    +
    459 XTENSOR_TRY(check_index(shape(), args...));
    +
    460 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    461 size_type index = xt::data_offset<size_type>(strides(), args...);
    +
    462 return storage()[index];
    +
    463 }
    +
    +
    464
    +
    484 template <class D>
    +
    485 template <class... Args>
    +
    +
    486 inline auto xcontainer<D>::unchecked(Args... args) -> reference
    +
    487 {
    +
    488 size_type index = xt::unchecked_data_offset<size_type, static_layout>(
    +
    489 strides(),
    +
    490 static_cast<std::ptrdiff_t>(args)...
    +
    491 );
    +
    492 return storage()[index];
    +
    493 }
    +
    +
    494
    +
    514 template <class D>
    +
    515 template <class... Args>
    +
    +
    516 inline auto xcontainer<D>::unchecked(Args... args) const -> const_reference
    +
    517 {
    +
    518 size_type index = xt::unchecked_data_offset<size_type, static_layout>(
    +
    519 strides(),
    +
    520 static_cast<std::ptrdiff_t>(args)...
    +
    521 );
    +
    522 return storage()[index];
    +
    523 }
    +
    +
    524
    +
    532 template <class D>
    +
    533 template <class It>
    +
    +
    534 inline auto xcontainer<D>::element(It first, It last) -> reference
    +
    535 {
    +
    536 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    537 return storage()[element_offset<size_type>(strides(), first, last)];
    +
    538 }
    +
    +
    539
    +
    547 template <class D>
    +
    548 template <class It>
    +
    +
    549 inline auto xcontainer<D>::element(It first, It last) const -> const_reference
    +
    550 {
    +
    551 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    552 return storage()[element_offset<size_type>(strides(), first, last)];
    +
    553 }
    +
    +
    554
    +
    558 template <class D>
    +
    +
    559 inline auto xcontainer<D>::storage() noexcept -> storage_type&
    +
    560 {
    +
    561 return derived_cast().storage_impl();
    +
    562 }
    +
    +
    563
    +
    568 template <class D>
    +
    +
    569 inline auto xcontainer<D>::storage() const noexcept -> const storage_type&
    +
    570 {
    +
    571 return derived_cast().storage_impl();
    +
    572 }
    +
    +
    573
    +
    579 template <class D>
    +
    +
    580 inline auto xcontainer<D>::data() noexcept -> pointer
    +
    581 {
    +
    582 return storage().data();
    +
    583 }
    +
    +
    584
    +
    590 template <class D>
    +
    +
    591 inline auto xcontainer<D>::data() const noexcept -> const_pointer
    +
    592 {
    +
    593 return storage().data();
    +
    594 }
    +
    +
    595
    +
    599 template <class D>
    +
    +
    600 inline auto xcontainer<D>::data_offset() const noexcept -> const size_type
    +
    601 {
    +
    602 return size_type(0);
    +
    603 }
    +
    +
    604
    +
    606
    +
    611
    +
    617 template <class D>
    +
    618 template <class S>
    +
    +
    619 inline bool xcontainer<D>::broadcast_shape(S& shape, bool) const
    +
    620 {
    +
    621 return xt::broadcast_shape(this->shape(), shape);
    +
    622 }
    +
    +
    623
    +
    629 template <class D>
    +
    630 template <class S>
    +
    +
    631 inline bool xcontainer<D>::has_linear_assign(const S& str) const noexcept
    +
    632 {
    +
    633 return str.size() == strides().size() && std::equal(str.cbegin(), str.cend(), strides().begin());
    +
    634 }
    +
    +
    635
    +
    637
    +
    638 template <class D>
    +
    639 inline auto xcontainer<D>::derived_cast() const& noexcept -> const derived_type&
    +
    640 {
    +
    641 return *static_cast<const derived_type*>(this);
    +
    642 }
    +
    643
    +
    644 template <class D>
    +
    645 inline auto xcontainer<D>::derived_cast() && noexcept -> derived_type
    +
    646 {
    +
    647 return *static_cast<derived_type*>(this);
    +
    648 }
    +
    649
    +
    650 template <class D>
    +
    651 inline auto xcontainer<D>::data_element(size_type i) -> reference
    +
    652 {
    +
    653 return storage()[i];
    +
    654 }
    +
    655
    +
    656 template <class D>
    +
    657 inline auto xcontainer<D>::data_element(size_type i) const -> const_reference
    +
    658 {
    +
    659 return storage()[i];
    +
    660 }
    +
    661
    +
    668 template <class D>
    +
    +
    669 inline auto xcontainer<D>::flat(size_type i) -> reference
    +
    670 {
    +
    671 XTENSOR_ASSERT(i < size());
    +
    672 return storage()[i];
    +
    673 }
    +
    +
    674
    +
    681 template <class D>
    +
    +
    682 inline auto xcontainer<D>::flat(size_type i) const -> const_reference
    +
    683 {
    +
    684 XTENSOR_ASSERT(i < size());
    +
    685 return storage()[i];
    +
    686 }
    +
    +
    687
    +
    688 /***************
    +
    689 * stepper api *
    +
    690 ***************/
    +
    691
    +
    692 template <class D>
    +
    693 template <class S>
    +
    694 inline auto xcontainer<D>::stepper_begin(const S& shape) noexcept -> stepper
    +
    695 {
    +
    696 size_type offset = shape.size() - dimension();
    +
    697 return stepper(static_cast<derived_type*>(this), data_xbegin(), offset);
    +
    698 }
    +
    699
    +
    700 template <class D>
    +
    701 template <class S>
    +
    702 inline auto xcontainer<D>::stepper_end(const S& shape, layout_type l) noexcept -> stepper
    +
    703 {
    +
    704 size_type offset = shape.size() - dimension();
    +
    705 return stepper(static_cast<derived_type*>(this), data_xend(l, offset), offset);
    +
    706 }
    +
    707
    +
    708 template <class D>
    +
    709 template <class S>
    +
    710 inline auto xcontainer<D>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    711 {
    +
    712 size_type offset = shape.size() - dimension();
    +
    713 return const_stepper(static_cast<const derived_type*>(this), data_xbegin(), offset);
    +
    714 }
    +
    715
    +
    716 template <class D>
    +
    717 template <class S>
    +
    718 inline auto xcontainer<D>::stepper_end(const S& shape, layout_type l) const noexcept -> const_stepper
    +
    719 {
    +
    720 size_type offset = shape.size() - dimension();
    +
    721 return const_stepper(static_cast<const derived_type*>(this), data_xend(l, offset), offset);
    +
    722 }
    +
    723
    +
    724 template <class D>
    +
    725 inline auto xcontainer<D>::data_xbegin() noexcept -> container_iterator
    +
    726 {
    +
    727 return storage().begin();
    +
    728 }
    +
    729
    +
    730 template <class D>
    +
    731 inline auto xcontainer<D>::data_xbegin() const noexcept -> const_container_iterator
    +
    732 {
    +
    733 return storage().cbegin();
    +
    734 }
    +
    735
    +
    736 template <class D>
    +
    737 inline auto xcontainer<D>::data_xend(layout_type l, size_type offset) noexcept -> container_iterator
    +
    738 {
    +
    739 return data_xend_impl(storage().begin(), l, offset);
    +
    740 }
    +
    741
    +
    742 template <class D>
    +
    743 inline auto xcontainer<D>::data_xend(layout_type l, size_type offset) const noexcept
    +
    744 -> const_container_iterator
    +
    745 {
    +
    746 return data_xend_impl(storage().cbegin(), l, offset);
    +
    747 }
    +
    748
    +
    749 template <class D>
    +
    750 template <class alignment, class simd>
    +
    751 inline void xcontainer<D>::store_simd(size_type i, const simd& e)
    +
    752 {
    +
    753 using align_mode = driven_align_mode_t<alignment, data_alignment>;
    +
    754 xt_simd::store_as(std::addressof(storage()[i]), e, align_mode());
    +
    755 }
    +
    756
    +
    757 template <class D>
    +
    758 template <class alignment, class requested_type, std::size_t N>
    +
    759 inline auto xcontainer<D>::load_simd(size_type i) const
    +
    760 -> container_simd_return_type_t<storage_type, value_type, requested_type>
    +
    761 {
    +
    762 using align_mode = driven_align_mode_t<alignment, data_alignment>;
    +
    763 return xt_simd::load_as<requested_type>(std::addressof(storage()[i]), align_mode());
    +
    764 }
    +
    765
    +
    766 template <class D>
    +
    767 inline auto xcontainer<D>::linear_begin() noexcept -> linear_iterator
    +
    768 {
    +
    769 return storage().begin();
    +
    770 }
    +
    771
    +
    772 template <class D>
    +
    773 inline auto xcontainer<D>::linear_end() noexcept -> linear_iterator
    +
    774 {
    +
    775 return storage().end();
    +
    776 }
    +
    777
    +
    778 template <class D>
    +
    779 inline auto xcontainer<D>::linear_begin() const noexcept -> const_linear_iterator
    +
    780 {
    +
    781 return storage().begin();
    +
    782 }
    +
    783
    +
    784 template <class D>
    +
    785 inline auto xcontainer<D>::linear_end() const noexcept -> const_linear_iterator
    +
    786 {
    +
    787 return storage().cend();
    +
    788 }
    +
    789
    +
    790 template <class D>
    +
    791 inline auto xcontainer<D>::linear_cbegin() const noexcept -> const_linear_iterator
    +
    792 {
    +
    793 return storage().cbegin();
    +
    794 }
    +
    795
    +
    796 template <class D>
    +
    797 inline auto xcontainer<D>::linear_cend() const noexcept -> const_linear_iterator
    +
    798 {
    +
    799 return storage().cend();
    +
    800 }
    +
    801
    +
    802 template <class D>
    +
    803 inline auto xcontainer<D>::linear_rbegin() noexcept -> reverse_linear_iterator
    +
    804 {
    +
    805 return storage().rbegin();
    +
    806 }
    +
    807
    +
    808 template <class D>
    +
    809 inline auto xcontainer<D>::linear_rend() noexcept -> reverse_linear_iterator
    +
    810 {
    +
    811 return storage().rend();
    +
    812 }
    +
    813
    +
    814 template <class D>
    +
    815 inline auto xcontainer<D>::linear_rbegin() const noexcept -> const_reverse_linear_iterator
    +
    816 {
    +
    817 return storage().rbegin();
    +
    818 }
    +
    819
    +
    820 template <class D>
    +
    821 inline auto xcontainer<D>::linear_rend() const noexcept -> const_reverse_linear_iterator
    +
    822 {
    +
    823 return storage().rend();
    +
    824 }
    +
    825
    +
    826 template <class D>
    +
    827 inline auto xcontainer<D>::linear_crbegin() const noexcept -> const_reverse_linear_iterator
    +
    828 {
    +
    829 return storage().crbegin();
    +
    830 }
    +
    831
    +
    832 template <class D>
    +
    833 inline auto xcontainer<D>::linear_crend() const noexcept -> const_reverse_linear_iterator
    +
    834 {
    +
    835 return storage().crend();
    +
    836 }
    +
    837
    +
    838 template <class D>
    +
    839 inline auto xcontainer<D>::derived_cast() & noexcept -> derived_type&
    +
    840 {
    +
    841 return *static_cast<derived_type*>(this);
    +
    842 }
    +
    843
    +
    844 /*************************************
    +
    845 * xstrided_container implementation *
    +
    846 *************************************/
    +
    847
    +
    848 template <class D>
    +
    849 inline xstrided_container<D>::xstrided_container() noexcept
    +
    850 : base_type()
    +
    851 {
    +
    852 m_shape = xtl::make_sequence<inner_shape_type>(base_type::dimension(), 0);
    +
    853 m_strides = xtl::make_sequence<inner_strides_type>(base_type::dimension(), 0);
    +
    854 m_backstrides = xtl::make_sequence<inner_backstrides_type>(base_type::dimension(), 0);
    +
    855 }
    +
    856
    +
    857 template <class D>
    +
    858 inline xstrided_container<D>::xstrided_container(inner_shape_type&& shape, inner_strides_type&& strides) noexcept
    +
    859 : base_type()
    +
    860 , m_shape(std::move(shape))
    +
    861 , m_strides(std::move(strides))
    +
    862 {
    +
    863 m_backstrides = xtl::make_sequence<inner_backstrides_type>(m_shape.size(), 0);
    +
    864 adapt_strides(m_shape, m_strides, m_backstrides);
    +
    865 }
    +
    866
    +
    867 template <class D>
    +
    868 inline xstrided_container<D>::xstrided_container(
    +
    869 inner_shape_type&& shape,
    +
    870 inner_strides_type&& strides,
    +
    871 inner_backstrides_type&& backstrides,
    +
    872 layout_type&& layout
    +
    873 ) noexcept
    +
    874 : base_type()
    +
    875 , m_shape(std::move(shape))
    +
    876 , m_strides(std::move(strides))
    +
    877 , m_backstrides(std::move(backstrides))
    +
    878 , m_layout(std::move(layout))
    +
    879 {
    +
    880 }
    +
    881
    +
    882 template <class D>
    +
    883 inline auto xstrided_container<D>::shape_impl() noexcept -> inner_shape_type&
    +
    884 {
    +
    885 return m_shape;
    +
    886 }
    +
    887
    +
    888 template <class D>
    +
    889 inline auto xstrided_container<D>::shape_impl() const noexcept -> const inner_shape_type&
    +
    890 {
    +
    891 return m_shape;
    +
    892 }
    +
    893
    +
    894 template <class D>
    +
    895 inline auto xstrided_container<D>::strides_impl() noexcept -> inner_strides_type&
    +
    896 {
    +
    897 return m_strides;
    +
    898 }
    +
    899
    +
    900 template <class D>
    +
    901 inline auto xstrided_container<D>::strides_impl() const noexcept -> const inner_strides_type&
    +
    902 {
    +
    903 return m_strides;
    +
    904 }
    +
    905
    +
    906 template <class D>
    +
    907 inline auto xstrided_container<D>::backstrides_impl() noexcept -> inner_backstrides_type&
    +
    908 {
    +
    909 return m_backstrides;
    +
    910 }
    +
    911
    +
    912 template <class D>
    +
    913 inline auto xstrided_container<D>::backstrides_impl() const noexcept -> const inner_backstrides_type&
    +
    914 {
    +
    915 return m_backstrides;
    +
    916 }
    +
    917
    +
    922 template <class D>
    +
    + +
    924 {
    +
    925 return m_layout;
    +
    926 }
    +
    +
    927
    +
    928 template <class D>
    +
    929 inline bool xstrided_container<D>::is_contiguous() const noexcept
    +
    930 {
    +
    931 using str_type = typename inner_strides_type::value_type;
    +
    932 auto is_zero = [](auto i)
    +
    933 {
    +
    934 return i == 0;
    +
    935 };
    +
    936 if (!is_contiguous_container<storage_type>::value)
    +
    937 {
    +
    938 return false;
    +
    939 }
    +
    940 // We need to make sure the inner-most non-zero stride is one.
    +
    941 // Trailing zero strides are ignored because they indicate bradcasted dimensions.
    +
    942 if (m_layout == layout_type::row_major)
    +
    943 {
    +
    944 auto it = std::find_if_not(m_strides.rbegin(), m_strides.rend(), is_zero);
    +
    945 // If the array has strides of zero, it is a constant, and therefore contiguous.
    +
    946 return it == m_strides.rend() || *it == str_type(1);
    +
    947 }
    +
    948 else if (m_layout == layout_type::column_major)
    +
    949 {
    +
    950 auto it = std::find_if_not(m_strides.begin(), m_strides.end(), is_zero);
    +
    951 // If the array has strides of zero, it is a constant, and therefore contiguous.
    +
    952 return it == m_strides.end() || *it == str_type(1);
    +
    953 }
    +
    954 else
    +
    955 {
    +
    956 return m_strides.empty();
    +
    957 }
    +
    958 }
    +
    959
    +
    960 namespace detail
    +
    961 {
    +
    962 template <class C, class S>
    +
    963 inline void resize_data_container(C& c, S size)
    +
    964 {
    +
    965 xt::resize_container(c, size);
    +
    966 }
    +
    967
    +
    968 template <class C, class S>
    +
    969 inline void resize_data_container(const C& c, S size)
    +
    970 {
    +
    971 (void) c; // remove unused parameter warning
    +
    972 (void) size;
    +
    973 XTENSOR_ASSERT_MSG(c.size() == size, "Trying to resize const data container with wrong size.");
    +
    974 }
    +
    975
    +
    976 template <class S, class T>
    +
    977 constexpr bool check_resize_dimension(const S&, const T&)
    +
    978 {
    +
    979 return true;
    +
    980 }
    +
    981
    +
    982 template <class T, size_t N, class S>
    +
    983 constexpr bool check_resize_dimension(const std::array<T, N>&, const S& s)
    +
    984 {
    +
    985 return N == s.size();
    +
    986 }
    +
    987 }
    +
    988
    +
    996 template <class D>
    +
    997 template <class S>
    +
    +
    998 inline void xstrided_container<D>::resize(S&& shape, bool force)
    +
    999 {
    +
    1000 XTENSOR_ASSERT_MSG(
    +
    1001 detail::check_resize_dimension(m_shape, shape),
    +
    1002 "cannot change the number of dimensions of xtensor"
    +
    1003 )
    +
    1004 std::size_t dim = shape.size();
    +
    1005 if (m_shape.size() != dim || !std::equal(std::begin(shape), std::end(shape), std::begin(m_shape))
    +
    1006 || force)
    +
    1007 {
    +
    1008 if (D::static_layout == layout_type::dynamic && m_layout == layout_type::dynamic)
    +
    1009 {
    +
    1010 m_layout = XTENSOR_DEFAULT_LAYOUT; // fall back to default layout
    +
    1011 }
    +
    1012 m_shape = xtl::forward_sequence<shape_type, S>(shape);
    +
    1013
    +
    1014 resize_container(m_strides, dim);
    +
    1015 resize_container(m_backstrides, dim);
    +
    1016 size_type data_size = compute_strides<D::static_layout>(m_shape, m_layout, m_strides, m_backstrides);
    +
    1017 detail::resize_data_container(this->storage(), data_size);
    +
    1018 }
    +
    1019 }
    +
    +
    1020
    +
    1028 template <class D>
    +
    1029 template <class S>
    +
    + +
    1031 {
    +
    1032 XTENSOR_ASSERT_MSG(
    +
    1033 detail::check_resize_dimension(m_shape, shape),
    +
    1034 "cannot change the number of dimensions of xtensor"
    +
    1035 )
    +
    1036 if (base_type::static_layout != layout_type::dynamic && l != base_type::static_layout)
    +
    1037 {
    +
    1038 XTENSOR_THROW(
    +
    1039 std::runtime_error,
    +
    1040 "Cannot change layout_type if template parameter not layout_type::dynamic."
    +
    1041 );
    +
    1042 }
    +
    1043 m_layout = l;
    +
    1044 resize(std::forward<S>(shape), true);
    +
    1045 }
    +
    +
    1046
    +
    1054 template <class D>
    +
    1055 template <class S>
    +
    +
    1056 inline void xstrided_container<D>::resize(S&& shape, const strides_type& strides)
    +
    1057 {
    +
    1058 XTENSOR_ASSERT_MSG(
    +
    1059 detail::check_resize_dimension(m_shape, shape),
    +
    1060 "cannot change the number of dimensions of xtensor"
    +
    1061 )
    +
    1062 if (base_type::static_layout != layout_type::dynamic)
    +
    1063 {
    +
    1064 XTENSOR_THROW(
    +
    1065 std::runtime_error,
    +
    1066 "Cannot resize with custom strides when layout() is != layout_type::dynamic."
    +
    1067 );
    +
    1068 }
    +
    1069 m_shape = xtl::forward_sequence<shape_type, S>(shape);
    +
    1070 m_strides = strides;
    +
    1071 resize_container(m_backstrides, m_strides.size());
    +
    1072 adapt_strides(m_shape, m_strides, m_backstrides);
    +
    1073 m_layout = layout_type::dynamic;
    +
    1074 detail::resize_data_container(this->storage(), compute_size(m_shape));
    +
    1075 }
    +
    +
    1076
    +
    1090 template <class D>
    +
    1091 template <class S>
    +
    + +
    1093 {
    +
    1094 reshape_impl(
    +
    1095 std::forward<S>(shape),
    +
    1096 xtl::is_signed<std::decay_t<typename std::decay_t<S>::value_type>>(),
    +
    1097 std::forward<layout_type>(layout)
    +
    1098 );
    +
    1099 return this->derived_cast();
    +
    1100 }
    +
    +
    1101
    +
    1102 template <class D>
    +
    1103 template <class T>
    +
    1104 inline auto& xstrided_container<D>::reshape(std::initializer_list<T> shape, layout_type layout) &
    +
    1105 {
    +
    1106 using sh_type = rebind_container_t<T, shape_type>;
    +
    1107 sh_type sh = xtl::make_sequence<sh_type>(shape.size());
    +
    1108 std::copy(shape.begin(), shape.end(), sh.begin());
    +
    1109 reshape_impl(std::move(sh), xtl::is_signed<T>(), std::forward<layout_type>(layout));
    +
    1110 return this->derived_cast();
    +
    1111 }
    +
    1112
    +
    1113 template <class D>
    +
    1114 template <class S>
    +
    1115 inline void
    +
    1116 xstrided_container<D>::reshape_impl(S&& shape, std::false_type /* is unsigned */, layout_type layout)
    +
    1117 {
    +
    1118 if (compute_size(shape) != this->size())
    +
    1119 {
    +
    1120 XTENSOR_THROW(
    +
    1121 std::runtime_error,
    +
    1122 "Cannot reshape with incorrect number of elements. Do you mean to resize?"
    +
    1123 );
    +
    1124 }
    +
    1125 if (D::static_layout == layout_type::dynamic && layout == layout_type::dynamic)
    +
    1126 {
    +
    1127 layout = XTENSOR_DEFAULT_LAYOUT; // fall back to default layout
    +
    1128 }
    +
    1129 if (D::static_layout != layout_type::dynamic && layout != D::static_layout)
    +
    1130 {
    +
    1131 XTENSOR_THROW(std::runtime_error, "Cannot reshape with different layout if static layout != dynamic.");
    +
    1132 }
    +
    1133 m_layout = layout;
    +
    1134 m_shape = xtl::forward_sequence<shape_type, S>(shape);
    +
    1135 resize_container(m_strides, m_shape.size());
    +
    1136 resize_container(m_backstrides, m_shape.size());
    +
    1137 compute_strides<D::static_layout>(m_shape, m_layout, m_strides, m_backstrides);
    +
    1138 }
    +
    1139
    +
    1140 template <class D>
    +
    1141 template <class S>
    +
    1142 inline void
    +
    1143 xstrided_container<D>::reshape_impl(S&& _shape, std::true_type /* is signed */, layout_type layout)
    +
    1144 {
    +
    1145 using tmp_value_type = typename std::decay_t<S>::value_type;
    +
    1146 auto new_size = compute_size(_shape);
    +
    1147 if (this->size() % new_size)
    +
    1148 {
    +
    1149 XTENSOR_THROW(std::runtime_error, "Negative axis size cannot be inferred. Shape mismatch.");
    +
    1150 }
    +
    1151 std::decay_t<S> shape = _shape;
    +
    1152 tmp_value_type accumulator = 1;
    +
    1153 std::size_t neg_idx = 0;
    +
    1154 std::size_t i = 0;
    +
    1155 for (auto it = shape.begin(); it != shape.end(); ++it, i++)
    +
    1156 {
    +
    1157 auto&& dim = *it;
    +
    1158 if (dim < 0)
    +
    1159 {
    +
    1160 XTENSOR_ASSERT(dim == -1 && !neg_idx);
    +
    1161 neg_idx = i;
    +
    1162 }
    +
    1163 accumulator *= dim;
    +
    1164 }
    +
    1165 if (accumulator < 0)
    +
    1166 {
    +
    1167 shape[neg_idx] = static_cast<tmp_value_type>(this->size()) / std::abs(accumulator);
    +
    1168 }
    +
    1169 else if (this->size() != new_size)
    +
    1170 {
    +
    1171 XTENSOR_THROW(
    +
    1172 std::runtime_error,
    +
    1173 "Cannot reshape with incorrect number of elements. Do you mean to resize?"
    +
    1174 );
    +
    1175 }
    +
    1176 m_layout = layout;
    +
    1177 m_shape = xtl::forward_sequence<shape_type, S>(shape);
    +
    1178 resize_container(m_strides, m_shape.size());
    +
    1179 resize_container(m_backstrides, m_shape.size());
    +
    1180 compute_strides<D::static_layout>(m_shape, m_layout, m_strides, m_backstrides);
    +
    1181 }
    +
    1182
    +
    1183 template <class D>
    +
    1184 inline auto xstrided_container<D>::mutable_layout() noexcept -> layout_type&
    +
    1185 {
    +
    1186 return m_layout;
    +
    1187 }
    +
    1188}
    +
    1189
    +
    1190#endif
    +
    Base class for implementation of common expression constant access methods.
    +
    size_type dimension() const noexcept
    Returns the number of dimensions of the expression.
    +
    bool in_bounds(Args... args) const
    +
    storage_type & storage() noexcept
    +
    size_type size() const noexcept
    Returns the number of element in the container.
    +
    constexpr const inner_backstrides_type & backstrides() const noexcept
    +
    constexpr size_type dimension() const noexcept
    +
    reference flat(size_type i)
    +
    constexpr const inner_strides_type & strides() const noexcept
    +
    bool has_linear_assign(const S &strides) const noexcept
    +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    +
    constexpr const inner_shape_type & shape() const noexcept
    +
    pointer data() noexcept
    +
    const size_type data_offset() const noexcept
    + + +
    void fill(const T &value)
    +
    Base class for multidimensional iterable expressions with contiguous storage.
    + +
    layout_type layout() const noexcept
    +
    void resize(S &&shape, const strides_type &strides)
    Resizes the container.
    +
    void resize(S &&shape, layout_type l)
    Resizes the container.
    +
    auto & reshape(S &&shape, layout_type layout=base_type::static_layout) &
    Reshapes the container and keeps old elements.
    +
    void resize(S &&shape, bool force=false)
    Resizes the container.
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + +
    +
    + + + + diff --git a/xcsv_8hpp_source.html b/xcsv_8hpp_source.html new file mode 100644 index 000000000..be3cc177c --- /dev/null +++ b/xcsv_8hpp_source.html @@ -0,0 +1,402 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io/xcsv.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xcsv.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CSV_HPP
    +
    11#define XTENSOR_CSV_HPP
    +
    12
    +
    13#include <istream>
    +
    14#include <iterator>
    +
    15#include <sstream>
    +
    16#include <string>
    +
    17#include <utility>
    +
    18
    +
    19#include "../containers/xtensor.hpp"
    +
    20#include "../core/xtensor_config.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24
    +
    25 /**************************************
    +
    26 * load_csv and dump_csv declarations *
    +
    27 **************************************/
    +
    28
    +
    29 template <class T, class A = std::allocator<T>>
    + +
    31
    +
    32 template <class T, class A = std::allocator<T>>
    +
    33 xcsv_tensor<T, A> load_csv(
    +
    34 std::istream& stream,
    +
    35 const char delimiter = ',',
    +
    36 const std::size_t skip_rows = 0,
    +
    37 const std::ptrdiff_t max_rows = -1,
    +
    38 const std::string comments = "#"
    +
    39 );
    +
    40
    +
    41 template <class E>
    +
    42 void dump_csv(std::ostream& stream, const xexpression<E>& e);
    +
    43
    +
    44 /*****************************************
    +
    45 * load_csv and dump_csv implementations *
    +
    46 *****************************************/
    +
    47
    +
    48 namespace detail
    +
    49 {
    +
    50 template <class T>
    +
    51 inline T lexical_cast(const std::string& cell)
    +
    52 {
    +
    53 T res;
    +
    54 std::istringstream iss(cell);
    +
    55 iss >> res;
    +
    56 return res;
    +
    57 }
    +
    58
    +
    59 template <>
    +
    60 inline std::string lexical_cast(const std::string& cell)
    +
    61 {
    +
    62 size_t first = cell.find_first_not_of(' ');
    +
    63 if (first == std::string::npos)
    +
    64 {
    +
    65 return cell;
    +
    66 }
    +
    67
    +
    68 size_t last = cell.find_last_not_of(' ');
    +
    69 return cell.substr(first, last == std::string::npos ? cell.size() : last + 1);
    +
    70 }
    +
    71
    +
    72 template <>
    +
    73 inline float lexical_cast<float>(const std::string& cell)
    +
    74 {
    +
    75 return std::stof(cell);
    +
    76 }
    +
    77
    +
    78 template <>
    +
    79 inline double lexical_cast<double>(const std::string& cell)
    +
    80 {
    +
    81 return std::stod(cell);
    +
    82 }
    +
    83
    +
    84 template <>
    +
    85 inline long double lexical_cast<long double>(const std::string& cell)
    +
    86 {
    +
    87 return std::stold(cell);
    +
    88 }
    +
    89
    +
    90 template <>
    +
    91 inline int lexical_cast<int>(const std::string& cell)
    +
    92 {
    +
    93 return std::stoi(cell);
    +
    94 }
    +
    95
    +
    96 template <>
    +
    97 inline long lexical_cast<long>(const std::string& cell)
    +
    98 {
    +
    99 return std::stol(cell);
    +
    100 }
    +
    101
    +
    102 template <>
    +
    103 inline long long lexical_cast<long long>(const std::string& cell)
    +
    104 {
    +
    105 return std::stoll(cell);
    +
    106 }
    +
    107
    +
    108 template <>
    +
    109 inline unsigned int lexical_cast<unsigned int>(const std::string& cell)
    +
    110 {
    +
    111 return static_cast<unsigned int>(std::stoul(cell));
    +
    112 }
    +
    113
    +
    114 template <>
    +
    115 inline unsigned long lexical_cast<unsigned long>(const std::string& cell)
    +
    116 {
    +
    117 return std::stoul(cell);
    +
    118 }
    +
    119
    +
    120 template <>
    +
    121 inline unsigned long long lexical_cast<unsigned long long>(const std::string& cell)
    +
    122 {
    +
    123 return std::stoull(cell);
    +
    124 }
    +
    125
    +
    126 template <class ST, class T, class OI>
    +
    127 ST load_csv_row(std::istream& row_stream, OI output, std::string cell, const char delimiter = ',')
    +
    128 {
    +
    129 ST length = 0;
    +
    130 while (std::getline(row_stream, cell, delimiter))
    +
    131 {
    +
    132 *output++ = lexical_cast<T>(cell);
    +
    133 ++length;
    +
    134 }
    +
    135 return length;
    +
    136 }
    +
    137 }
    +
    138
    +
    150 template <class T, class A>
    +
    +
    151 xcsv_tensor<T, A> load_csv(
    +
    152 std::istream& stream,
    +
    153 const char delimiter,
    +
    154 const std::size_t skip_rows,
    +
    155 const std::ptrdiff_t max_rows,
    +
    156 const std::string comments
    +
    157 )
    +
    158 {
    +
    159 using tensor_type = xcsv_tensor<T, A>;
    +
    160 using storage_type = typename tensor_type::storage_type;
    +
    161 using size_type = typename tensor_type::size_type;
    +
    162 using inner_shape_type = typename tensor_type::inner_shape_type;
    +
    163 using inner_strides_type = typename tensor_type::inner_strides_type;
    +
    164 using output_iterator = std::back_insert_iterator<storage_type>;
    +
    165
    +
    166 storage_type data;
    +
    167 size_type nbrow = 0, nbcol = 0, nhead = 0;
    +
    168 {
    +
    169 output_iterator output(data);
    +
    170 std::string row, cell;
    +
    171 while (std::getline(stream, row))
    +
    172 {
    +
    173 if (nhead < skip_rows)
    +
    174 {
    +
    175 ++nhead;
    +
    176 continue;
    +
    177 }
    +
    178 if (std::equal(comments.begin(), comments.end(), row.begin()))
    +
    179 {
    +
    180 continue;
    +
    181 }
    +
    182 if (0 < max_rows && max_rows <= static_cast<const long long>(nbrow))
    +
    183 {
    +
    184 break;
    +
    185 }
    +
    186 std::stringstream row_stream(row);
    +
    187 nbcol = detail::load_csv_row<size_type, T, output_iterator>(row_stream, output, cell, delimiter);
    +
    188 ++nbrow;
    +
    189 }
    +
    190 }
    +
    191 inner_shape_type shape = {nbrow, nbcol};
    +
    192 inner_strides_type strides; // no need for initializer list for stack-allocated strides_type
    +
    193 size_type data_size = compute_strides(shape, layout_type::row_major, strides);
    +
    194 // Sanity check for data size.
    +
    195 if (data.size() != data_size)
    +
    196 {
    +
    197 XTENSOR_THROW(std::runtime_error, "Inconsistent row lengths in CSV");
    +
    198 }
    +
    199 return tensor_type(std::move(data), std::move(shape), std::move(strides));
    +
    200 }
    +
    +
    201
    +
    208 template <class E>
    +
    +
    209 void dump_csv(std::ostream& stream, const xexpression<E>& e)
    +
    210 {
    +
    211 using size_type = typename E::size_type;
    +
    212 const E& ex = e.derived_cast();
    +
    213 if (ex.dimension() == 1)
    +
    214 {
    +
    215 const size_type n = ex.shape()[0];
    +
    216 for (size_type i = 0; i != n; ++i)
    +
    217 {
    +
    218 stream << ex(i);
    +
    219 if (i != n - 1)
    +
    220 {
    +
    221 stream << ',';
    +
    222 }
    +
    223 }
    +
    224 stream << std::endl;
    +
    225 }
    +
    226 else if (ex.dimension() == 2)
    +
    227 {
    +
    228 const size_type nbrows = ex.shape()[0];
    +
    229 const size_type nbcols = ex.shape()[1];
    +
    230 for (size_type r = 0; r != nbrows; ++r)
    +
    231 {
    +
    232 for (size_type c = 0; c != nbcols; ++c)
    +
    233 {
    +
    234 stream << ex(r, c);
    +
    235 if (c != nbcols - 1)
    +
    236 {
    +
    237 stream << ',';
    +
    238 }
    +
    239 }
    +
    240 stream << std::endl;
    +
    241 }
    +
    242 }
    +
    243 else
    +
    244 {
    +
    245 XTENSOR_THROW(std::runtime_error, "Only 1-D and 2-D expressions can be serialized to CSV");
    +
    246 }
    +
    247 }
    +
    +
    248
    +
    +
    249 struct xcsv_config
    +
    250 {
    +
    251 char delimiter;
    +
    252 std::size_t skip_rows;
    +
    253 std::ptrdiff_t max_rows;
    +
    254 std::string comments;
    +
    255
    +
    256 xcsv_config()
    +
    257 : delimiter(',')
    +
    258 , skip_rows(0)
    +
    259 , max_rows(-1)
    +
    260 , comments("#")
    +
    261 {
    +
    262 }
    +
    263 };
    +
    +
    264
    +
    265 template <class E>
    +
    266 void load_file(std::istream& stream, xexpression<E>& e, const xcsv_config& config)
    +
    267 {
    + +
    269 stream,
    +
    270 config.delimiter,
    +
    271 config.skip_rows,
    +
    272 config.max_rows,
    +
    273 config.comments
    +
    274 );
    +
    275 }
    +
    276
    +
    277 template <class E>
    +
    278 void dump_file(std::ostream& stream, const xexpression<E>& e, const xcsv_config&)
    +
    279 {
    +
    280 dump_csv(stream, e);
    +
    281 }
    +
    282}
    +
    283
    +
    284#endif
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    xcsv_tensor< T, A > load_csv(std::istream &stream, const char delimiter=',', const std::size_t skip_rows=0, const std::ptrdiff_t max_rows=-1, const std::string comments="#")
    Load tensor from CSV.
    Definition xcsv.hpp:151
    +
    auto row(E &&e, std::ptrdiff_t index)
    Constructs and returns a row (sliced view) on the specified expression.
    Definition xview.hpp:1911
    + +
    void dump_csv(std::ostream &stream, const xexpression< E > &e)
    Dump tensor to CSV.
    Definition xcsv.hpp:209
    + +
    +
    + + + + diff --git a/xdynamic__view_8hpp_source.html b/xdynamic__view_8hpp_source.html new file mode 100644 index 000000000..c53e34388 --- /dev/null +++ b/xdynamic__view_8hpp_source.html @@ -0,0 +1,978 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xdynamic_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xdynamic_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) 2016, Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * *
    +
    4 * Distributed under the terms of the BSD 3-Clause License. *
    +
    5 * *
    +
    6 * The full license is in the file LICENSE, distributed with this software. *
    +
    7 ****************************************************************************/
    +
    8
    +
    9#ifndef XTENSOR_DYNAMIC_VIEW_HPP
    +
    10#define XTENSOR_DYNAMIC_VIEW_HPP
    +
    11
    +
    12#include <variant>
    +
    13
    +
    14#include <xtl/xsequence.hpp>
    +
    15
    +
    16#include "../core/xexpression.hpp"
    +
    17#include "../core/xiterable.hpp"
    +
    18#include "../core/xlayout.hpp"
    +
    19#include "../core/xsemantic.hpp"
    +
    20#include "../views/xstrided_view_base.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24
    +
    25 template <class CT, class S, layout_type L, class FST>
    +
    26 class xdynamic_view;
    +
    27
    +
    28 template <class CT, class S, layout_type L, class FST>
    +
    + +
    30 {
    +
    31 using xexpression_type = std::decay_t<CT>;
    +
    32 using undecay_expression = CT;
    +
    33 using reference = inner_reference_t<undecay_expression>;
    +
    34 using const_reference = typename xexpression_type::const_reference;
    +
    35 using size_type = typename xexpression_type::size_type;
    +
    36 using shape_type = std::decay_t<S>;
    +
    37 using undecay_shape = S;
    +
    38 using storage_getter = FST;
    +
    39 using inner_storage_type = typename storage_getter::type;
    +
    40 using temporary_type = xarray<std::decay_t<typename xexpression_type::value_type>, xexpression_type::static_layout>;
    +
    41 static constexpr layout_type layout = L;
    +
    42 };
    +
    +
    43
    +
    44 template <class CT, class S, layout_type L, class FST>
    +
    +
    45 struct xiterable_inner_types<xdynamic_view<CT, S, L, FST>>
    +
    46 {
    +
    47 using inner_shape_type = S;
    +
    48 using inner_strides_type = inner_shape_type;
    +
    49 using inner_backstrides_type = inner_shape_type;
    +
    50
    +
    51#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ == 8
    +
    52 static constexpr auto
    +
    53 random_instantiation_var_for_gcc8_data_iface = has_data_interface<xdynamic_view<CT, S, L, FST>>::value;
    +
    54 static constexpr auto
    +
    55 random_instantiation_var_for_gcc8_has_strides = has_strides<xdynamic_view<CT, S, L, FST>>::value;
    +
    56#endif
    +
    57
    +
    58 // TODO: implement efficient stepper specific to the dynamic_view
    +
    59 using const_stepper = xindexed_stepper<const xdynamic_view<CT, S, L, FST>, true>;
    + +
    61 };
    +
    +
    62
    +
    63 /****************************
    +
    64 * xdynamic_view extensions *
    +
    65 ****************************/
    +
    66
    +
    67 namespace extension
    +
    68 {
    +
    69 template <class Tag, class CT, class S, layout_type L, class FST>
    + +
    71
    +
    72 template <class CT, class S, layout_type L, class FST>
    +
    + +
    74 {
    +
    75 using type = xtensor_empty_base;
    +
    76 };
    +
    +
    77
    +
    78 template <class CT, class S, layout_type L, class FST>
    +
    +
    79 struct xdynamic_view_base : xdynamic_view_base_impl<xexpression_tag_t<CT>, CT, S, L, FST>
    +
    80 {
    +
    81 };
    +
    +
    82
    +
    83 template <class CT, class S, layout_type L, class FST>
    +
    84 using xdynamic_view_base_t = typename xdynamic_view_base<CT, S, L, FST>::type;
    +
    85 }
    +
    86
    +
    87 /*****************
    +
    88 * xdynamic_view *
    +
    89 *****************/
    +
    90
    +
    91 namespace detail
    +
    92 {
    +
    93 template <class T>
    +
    94 class xfake_slice;
    +
    95 }
    +
    96
    +
    97 template <class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, XTENSOR_DEFAULT_TRAVERSAL>>
    +
    +
    98 class xdynamic_view : public xview_semantic<xdynamic_view<CT, S, L, FST>>,
    +
    99 public xiterable<xdynamic_view<CT, S, L, FST>>,
    +
    100 public extension::xdynamic_view_base_t<CT, S, L, FST>,
    +
    101 private xstrided_view_base<xdynamic_view<CT, S, L, FST>>
    +
    102 {
    +
    103 public:
    +
    104
    +
    105 using self_type = xdynamic_view<CT, S, L, FST>;
    +
    106 using base_type = xstrided_view_base<self_type>;
    +
    107 using semantic_base = xview_semantic<self_type>;
    +
    108 using extension_base = extension::xdynamic_view_base_t<CT, S, L, FST>;
    +
    109 using expression_tag = typename extension_base::expression_tag;
    +
    110
    +
    111 using xexpression_type = typename base_type::xexpression_type;
    +
    112 using base_type::is_const;
    +
    113
    +
    114 using value_type = typename base_type::value_type;
    +
    115 using reference = typename base_type::reference;
    +
    116 using const_reference = typename base_type::const_reference;
    +
    117 using pointer = typename base_type::pointer;
    +
    118 using const_pointer = typename base_type::const_pointer;
    +
    119 using size_type = typename base_type::size_type;
    +
    120 using difference_type = typename base_type::difference_type;
    +
    121
    +
    122 using inner_storage_type = typename base_type::inner_storage_type;
    +
    123 using storage_type = typename base_type::storage_type;
    +
    124
    +
    125 using iterable_base = xiterable<self_type>;
    +
    126 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    127 using inner_strides_type = typename base_type::inner_strides_type;
    +
    128 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    129
    +
    130 using shape_type = typename base_type::shape_type;
    +
    131 using strides_type = typename base_type::strides_type;
    +
    132 using backstrides_type = typename base_type::backstrides_type;
    +
    133
    +
    134 using stepper = typename iterable_base::stepper;
    +
    135 using const_stepper = typename iterable_base::const_stepper;
    +
    136
    +
    137 using base_type::contiguous_layout;
    +
    138 using base_type::static_layout;
    +
    139
    +
    140 using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type;
    +
    141 using base_index_type = xindex_type_t<shape_type>;
    +
    142
    +
    143 using simd_value_type = typename base_type::simd_value_type;
    +
    144 using bool_load_type = typename base_type::bool_load_type;
    +
    145
    +
    146 using strides_vt = typename strides_type::value_type;
    +
    147 using slice_type = std::variant<detail::xfake_slice<strides_vt>, xkeep_slice<strides_vt>, xdrop_slice<strides_vt>>;
    +
    148 using slice_vector_type = std::vector<slice_type>;
    +
    149
    +
    150 template <class CTA, class SA>
    +
    151 xdynamic_view(
    +
    152 CTA&& e,
    +
    153 SA&& shape,
    +
    154 get_strides_t<S>&& strides,
    +
    155 std::size_t offset,
    + +
    157 slice_vector_type&& slices,
    +
    158 get_strides_t<S>&& adj_strides
    +
    159 ) noexcept;
    +
    160
    +
    161 template <class E>
    +
    162 self_type& operator=(const xexpression<E>& e);
    +
    163
    +
    164 template <class E>
    +
    165 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    166
    + +
    168 using base_type::is_contiguous;
    +
    169 using base_type::layout;
    +
    170 using base_type::shape;
    +
    171 using base_type::size;
    +
    172
    +
    173 // Explicitly deleting strides method to avoid compilers complaining
    +
    174 // about not being able to call the strides method from xstrided_view_base
    +
    175 // private base
    +
    176 const inner_strides_type& strides() const noexcept = delete;
    +
    177
    +
    178 reference operator()();
    +
    179 const_reference operator()() const;
    +
    180
    +
    181 template <class... Args>
    +
    182 reference operator()(Args... args);
    +
    183
    +
    184 template <class... Args>
    +
    185 const_reference operator()(Args... args) const;
    +
    186
    +
    187 template <class... Args>
    +
    188 reference unchecked(Args... args);
    +
    189
    +
    190 template <class... Args>
    +
    191 const_reference unchecked(Args... args) const;
    +
    192
    +
    193 reference flat(size_type index);
    +
    194 const_reference flat(size_type index) const;
    +
    195
    +
    196 using base_type::operator[];
    +
    197 using base_type::at;
    +
    198 using base_type::back;
    +
    199 using base_type::front;
    + +
    201 using base_type::periodic;
    +
    202
    +
    203 template <class It>
    +
    204 reference element(It first, It last);
    +
    205
    +
    206 template <class It>
    +
    207 const_reference element(It first, It last) const;
    +
    208
    +
    209 size_type data_offset() const noexcept;
    +
    210
    +
    211 // Explicitly deleting data methods so has_data_interface results
    +
    212 // to false instead of having compilers complaining about not being
    +
    213 // able to call the methods from the private base
    +
    214 value_type* data() noexcept = delete;
    +
    215 const value_type* data() const noexcept = delete;
    +
    216
    + + +
    219 using base_type::storage;
    +
    220
    +
    221 template <class O>
    +
    222 bool has_linear_assign(const O& str) const noexcept;
    +
    223
    +
    224 template <class T>
    +
    225 void fill(const T& value);
    +
    226
    +
    227 template <class ST>
    +
    228 stepper stepper_begin(const ST& shape);
    +
    229 template <class ST>
    +
    230 stepper stepper_end(const ST& shape, layout_type l);
    +
    231
    +
    232 template <class ST>
    +
    233 const_stepper stepper_begin(const ST& shape) const;
    +
    234 template <class ST>
    +
    235 const_stepper stepper_end(const ST& shape, layout_type l) const;
    +
    236
    +
    237 using container_iterator = std::
    +
    238 conditional_t<is_const, typename storage_type::const_iterator, typename storage_type::iterator>;
    +
    239 using const_container_iterator = typename storage_type::const_iterator;
    +
    240
    +
    241 template <class E>
    +
    242 using rebind_t = xdynamic_view<E, S, L, typename FST::template rebind_t<E>>;
    +
    243
    +
    244 template <class E>
    +
    245 rebind_t<E> build_view(E&& e) const;
    +
    246
    +
    247 private:
    +
    248
    +
    249 using offset_type = typename base_type::offset_type;
    +
    250
    +
    251 slice_vector_type m_slices;
    +
    252 inner_strides_type m_adj_strides;
    +
    253
    +
    254 container_iterator data_xbegin() noexcept;
    +
    255 const_container_iterator data_xbegin() const noexcept;
    +
    256 container_iterator data_xend(layout_type l, size_type offset) noexcept;
    +
    257 const_container_iterator data_xend(layout_type l, size_type offset) const noexcept;
    +
    258
    +
    259 template <class It>
    +
    260 It data_xbegin_impl(It begin) const noexcept;
    +
    261
    +
    262 template <class It>
    +
    263 It data_xend_impl(It end, layout_type l, size_type offset) const noexcept;
    +
    264
    +
    265 void assign_temporary_impl(temporary_type&& tmp);
    +
    266
    +
    267 template <class T, class... Args>
    +
    268 offset_type adjust_offset(offset_type offset, T idx, Args... args) const noexcept;
    +
    269 offset_type adjust_offset(offset_type offset) const noexcept;
    +
    270
    +
    271 template <class T, class... Args>
    +
    272 offset_type
    +
    273 adjust_offset_impl(offset_type offset, size_type idx_offset, T idx, Args... args) const noexcept;
    +
    274 offset_type adjust_offset_impl(offset_type offset, size_type idx_offset) const noexcept;
    +
    275
    +
    276 template <class It>
    +
    277 offset_type adjust_element_offset(offset_type offset, It first, It last) const noexcept;
    +
    278
    +
    279 template <class C>
    +
    280 friend class xstepper;
    +
    281 friend class xview_semantic<self_type>;
    +
    282 friend class xaccessible<self_type>;
    +
    283 friend class xconst_accessible<self_type>;
    +
    284 };
    +
    +
    285
    +
    286 /**************************
    +
    287 * xdynamic_view builders *
    +
    288 **************************/
    +
    289
    +
    290 template <class T>
    +
    291 using xdynamic_slice = std::variant<
    +
    292 T,
    +
    293
    + + + +
    297
    + + + +
    301
    + + +
    304
    +
    305 xrange<T>,
    + +
    307
    + + +
    310
    +
    311 xall_tag,
    + + +
    314
    +
    315 using xdynamic_slice_vector = std::vector<xdynamic_slice<std::ptrdiff_t>>;
    +
    316
    +
    317 template <class E>
    +
    318 auto dynamic_view(E&& e, const xdynamic_slice_vector& slices);
    +
    319
    +
    320 /******************************
    +
    321 * xfake_slice implementation *
    +
    322 ******************************/
    +
    323
    +
    324 namespace detail
    +
    325 {
    +
    326 template <class T>
    +
    327 class xfake_slice : public xslice<xfake_slice<T>>
    +
    328 {
    +
    329 public:
    +
    330
    +
    331 using size_type = T;
    +
    332 using self_type = xfake_slice<T>;
    +
    333
    +
    334 xfake_slice() = default;
    +
    335
    +
    336 size_type operator()(size_type /*i*/) const noexcept
    +
    337 {
    +
    338 return size_type(0);
    +
    339 }
    +
    340
    +
    341 size_type size() const noexcept
    +
    342 {
    +
    343 return size_type(1);
    +
    344 }
    +
    345
    +
    346 size_type step_size() const noexcept
    +
    347 {
    +
    348 return size_type(0);
    +
    349 }
    +
    350
    +
    351 size_type step_size(std::size_t /*i*/, std::size_t /*n*/ = 1) const noexcept
    +
    352 {
    +
    353 return size_type(0);
    +
    354 }
    +
    355
    +
    356 size_type revert_index(std::size_t i) const noexcept
    +
    357 {
    +
    358 return i;
    +
    359 }
    +
    360
    +
    361 bool contains(size_type /*i*/) const noexcept
    +
    362 {
    +
    363 return true;
    +
    364 }
    +
    365
    +
    366 bool operator==(const self_type& /*rhs*/) const noexcept
    +
    367 {
    +
    368 return true;
    +
    369 }
    +
    370
    +
    371 bool operator!=(const self_type& /*rhs*/) const noexcept
    +
    372 {
    +
    373 return false;
    +
    374 }
    +
    375 };
    +
    376 }
    +
    377
    +
    378 /********************************
    +
    379 * xdynamic_view implementation *
    +
    380 ********************************/
    +
    381
    +
    382 template <class CT, class S, layout_type L, class FST>
    +
    383 template <class CTA, class SA>
    +
    384 inline xdynamic_view<CT, S, L, FST>::xdynamic_view(
    +
    385 CTA&& e,
    +
    386 SA&& shape,
    +
    387 get_strides_t<S>&& strides,
    +
    388 std::size_t offset,
    +
    389 layout_type layout,
    +
    390 slice_vector_type&& slices,
    +
    391 get_strides_t<S>&& adj_strides
    +
    392 ) noexcept
    +
    393 : base_type(std::forward<CTA>(e), std::forward<SA>(shape), std::move(strides), offset, layout)
    +
    394 , m_slices(std::move(slices))
    +
    395 , m_adj_strides(std::move(adj_strides))
    +
    396 {
    +
    397 }
    +
    398
    +
    399 template <class CT, class S, layout_type L, class FST>
    +
    400 template <class E>
    +
    401 inline auto xdynamic_view<CT, S, L, FST>::operator=(const xexpression<E>& e) -> self_type&
    +
    402 {
    +
    403 return semantic_base::operator=(e);
    +
    404 }
    +
    405
    +
    406 template <class CT, class S, layout_type L, class FST>
    +
    407 template <class E>
    +
    408 inline auto xdynamic_view<CT, S, L, FST>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    409 {
    +
    410 std::fill(this->begin(), this->end(), e);
    +
    411 return *this;
    +
    412 }
    +
    413
    +
    414 template <class CT, class S, layout_type L, class FST>
    +
    415 inline auto xdynamic_view<CT, S, L, FST>::operator()() -> reference
    +
    416 {
    +
    417 return base_type::storage()[data_offset()];
    +
    418 }
    +
    419
    +
    420 template <class CT, class S, layout_type L, class FST>
    +
    421 inline auto xdynamic_view<CT, S, L, FST>::operator()() const -> const_reference
    +
    422 {
    +
    423 return base_type::storage()[data_offset()];
    +
    424 }
    +
    425
    +
    426 template <class CT, class S, layout_type L, class FST>
    +
    427 template <class... Args>
    +
    428 inline auto xdynamic_view<CT, S, L, FST>::operator()(Args... args) -> reference
    +
    429 {
    +
    430 XTENSOR_TRY(check_index(base_type::shape(), args...));
    +
    431 XTENSOR_CHECK_DIMENSION(base_type::shape(), args...);
    +
    432 offset_type offset = base_type::compute_index(args...);
    +
    433 offset = adjust_offset(offset, args...);
    +
    434 return base_type::storage()[static_cast<size_type>(offset)];
    +
    435 }
    +
    436
    +
    437 template <class CT, class S, layout_type L, class FST>
    +
    438 template <class... Args>
    +
    439 inline auto xdynamic_view<CT, S, L, FST>::operator()(Args... args) const -> const_reference
    +
    440 {
    +
    441 XTENSOR_TRY(check_index(base_type::shape(), args...));
    +
    442 XTENSOR_CHECK_DIMENSION(base_type::shape(), args...);
    +
    443 offset_type offset = base_type::compute_index(args...);
    +
    444 offset = adjust_offset(offset, args...);
    +
    445 return base_type::storage()[static_cast<size_type>(offset)];
    +
    446 }
    +
    447
    +
    448 template <class CT, class S, layout_type L, class FST>
    +
    449 template <class O>
    +
    450 inline bool xdynamic_view<CT, S, L, FST>::has_linear_assign(const O&) const noexcept
    +
    451 {
    +
    452 return false;
    +
    453 }
    +
    454
    +
    455 template <class CT, class S, layout_type L, class FST>
    +
    456 template <class... Args>
    +
    457 inline auto xdynamic_view<CT, S, L, FST>::unchecked(Args... args) -> reference
    +
    458 {
    +
    459 offset_type offset = base_type::compute_unchecked_index(args...);
    +
    460 offset = adjust_offset(args...);
    +
    461 return base_type::storage()[static_cast<size_type>(offset)];
    +
    462 }
    +
    463
    +
    464 template <class CT, class S, layout_type L, class FST>
    +
    465 template <class... Args>
    +
    466 inline auto xdynamic_view<CT, S, L, FST>::unchecked(Args... args) const -> const_reference
    +
    467 {
    +
    468 offset_type offset = base_type::compute_unchecked_index(args...);
    +
    469 offset = adjust_offset(args...);
    +
    470 return base_type::storage()[static_cast<size_type>(offset)];
    +
    471 }
    +
    472
    +
    473 template <class CT, class S, layout_type L, class FST>
    +
    474 inline auto xdynamic_view<CT, S, L, FST>::flat(size_type i) -> reference
    +
    475 {
    +
    476 return base_type::storage()[data_offset() + i];
    +
    477 }
    +
    478
    +
    479 template <class CT, class S, layout_type L, class FST>
    +
    480 inline auto xdynamic_view<CT, S, L, FST>::flat(size_type i) const -> const_reference
    +
    481 {
    +
    482 return base_type::storage()[data_offset() + i];
    +
    483 }
    +
    484
    +
    485 template <class CT, class S, layout_type L, class FST>
    +
    486 template <class It>
    +
    487 inline auto xdynamic_view<CT, S, L, FST>::element(It first, It last) -> reference
    +
    488 {
    +
    489 XTENSOR_TRY(check_element_index(base_type::shape(), first, last));
    +
    490 offset_type offset = base_type::compute_element_index(first, last);
    +
    491 offset = adjust_element_offset(offset, first, last);
    +
    492 return base_type::storage()[static_cast<size_type>(offset)];
    +
    493 }
    +
    494
    +
    495 template <class CT, class S, layout_type L, class FST>
    +
    496 template <class It>
    +
    497 inline auto xdynamic_view<CT, S, L, FST>::element(It first, It last) const -> const_reference
    +
    498 {
    +
    499 XTENSOR_TRY(check_element_index(base_type::shape(), first, last));
    +
    500 offset_type offset = base_type::compute_element_index(first, last);
    +
    501 offset = adjust_element_offset(offset, first, last);
    +
    502 return base_type::storage()[static_cast<size_type>(offset)];
    +
    503 }
    +
    504
    +
    505 template <class CT, class S, layout_type L, class FST>
    +
    506 inline auto xdynamic_view<CT, S, L, FST>::data_offset() const noexcept -> size_type
    +
    507 {
    +
    508 size_type offset = base_type::data_offset();
    +
    509 size_type sl_offset = std::visit(
    +
    510 [](const auto& sl)
    +
    511 {
    +
    512 return sl(size_type(0));
    +
    513 },
    +
    514 m_slices[0]
    +
    515 );
    +
    516 return offset + sl_offset * m_adj_strides[0];
    +
    517 }
    +
    518
    +
    519 template <class CT, class S, layout_type L, class FST>
    +
    520 template <class T>
    +
    521 inline void xdynamic_view<CT, S, L, FST>::fill(const T& value)
    +
    522 {
    +
    523 return std::fill(this->linear_begin(), this->linear_end(), value);
    +
    524 }
    +
    525
    +
    526 template <class CT, class S, layout_type L, class FST>
    +
    527 template <class ST>
    +
    528 inline auto xdynamic_view<CT, S, L, FST>::stepper_begin(const ST& shape) -> stepper
    +
    529 {
    +
    530 size_type offset = shape.size() - dimension();
    +
    531 return stepper(this, offset);
    +
    532 }
    +
    533
    +
    534 template <class CT, class S, layout_type L, class FST>
    +
    535 template <class ST>
    +
    536 inline auto xdynamic_view<CT, S, L, FST>::stepper_end(const ST& shape, layout_type /*l*/) -> stepper
    +
    537 {
    +
    538 size_type offset = shape.size() - dimension();
    +
    539 return stepper(this, offset, true);
    +
    540 }
    +
    541
    +
    542 template <class CT, class S, layout_type L, class FST>
    +
    543 template <class ST>
    +
    544 inline auto xdynamic_view<CT, S, L, FST>::stepper_begin(const ST& shape) const -> const_stepper
    +
    545 {
    +
    546 size_type offset = shape.size() - dimension();
    +
    547 return const_stepper(this, offset);
    +
    548 }
    +
    549
    +
    550 template <class CT, class S, layout_type L, class FST>
    +
    551 template <class ST>
    +
    552 inline auto xdynamic_view<CT, S, L, FST>::stepper_end(const ST& shape, layout_type /*l*/) const
    +
    553 -> const_stepper
    +
    554 {
    +
    555 size_type offset = shape.size() - dimension();
    +
    556 return const_stepper(this, offset, true);
    +
    557 }
    +
    558
    +
    559 template <class CT, class S, layout_type L, class FST>
    +
    560 template <class E>
    +
    561 inline auto xdynamic_view<CT, S, L, FST>::build_view(E&& e) const -> rebind_t<E>
    +
    562 {
    +
    563 inner_shape_type sh(this->shape());
    +
    564 inner_strides_type str(base_type::strides());
    +
    565 slice_vector_type svt(m_slices);
    +
    566 inner_strides_type adj_str(m_adj_strides);
    +
    567 return rebind_t<E>(
    +
    568 std::forward<E>(e),
    +
    569 std::move(sh),
    +
    570 std::move(str),
    +
    571 base_type::data_offset(),
    +
    572 this->layout(),
    +
    573 std::move(svt),
    +
    574 std::move(adj_str)
    +
    575 );
    +
    576 }
    +
    577
    +
    578 template <class CT, class S, layout_type L, class FST>
    +
    579 inline auto xdynamic_view<CT, S, L, FST>::data_xbegin() noexcept -> container_iterator
    +
    580 {
    +
    581 return data_xbegin_impl(this->storage().begin());
    +
    582 }
    +
    583
    +
    584 template <class CT, class S, layout_type L, class FST>
    +
    585 inline auto xdynamic_view<CT, S, L, FST>::data_xbegin() const noexcept -> const_container_iterator
    +
    586 {
    +
    587 return data_xbegin_impl(this->storage().cbegin());
    +
    588 }
    +
    589
    +
    590 template <class CT, class S, layout_type L, class FST>
    +
    591 inline auto xdynamic_view<CT, S, L, FST>::data_xend(layout_type l, size_type offset) noexcept
    +
    592 -> container_iterator
    +
    593 {
    +
    594 return data_xend_impl(this->storage().begin(), l, offset);
    +
    595 }
    +
    596
    +
    597 template <class CT, class S, layout_type L, class FST>
    +
    598 inline auto xdynamic_view<CT, S, L, FST>::data_xend(layout_type l, size_type offset) const noexcept
    +
    599 -> const_container_iterator
    +
    600 {
    +
    601 return data_xend_impl(this->storage().cbegin(), l, offset);
    +
    602 }
    +
    603
    +
    604 template <class CT, class S, layout_type L, class FST>
    +
    605 template <class It>
    +
    606 inline It xdynamic_view<CT, S, L, FST>::data_xbegin_impl(It begin) const noexcept
    +
    607 {
    +
    608 return begin + static_cast<std::ptrdiff_t>(data_offset());
    +
    609 }
    +
    610
    +
    611 // TODO: fix the data_xend implementation and assign_temporary_impl
    +
    612
    +
    613 template <class CT, class S, layout_type L, class FST>
    +
    614 template <class It>
    +
    615 inline It
    +
    616 xdynamic_view<CT, S, L, FST>::data_xend_impl(It begin, layout_type l, size_type offset) const noexcept
    +
    617 {
    +
    618 return strided_data_end(*this, begin + std::ptrdiff_t(data_offset()), l, offset);
    +
    619 }
    +
    620
    +
    621 template <class CT, class S, layout_type L, class FST>
    +
    622 inline void xdynamic_view<CT, S, L, FST>::assign_temporary_impl(temporary_type&& tmp)
    +
    623 {
    +
    624 std::copy(tmp.cbegin(), tmp.cend(), this->begin());
    +
    625 }
    +
    626
    +
    627 template <class CT, class S, layout_type L, class FST>
    +
    628 template <class T, class... Args>
    +
    629 inline auto
    +
    630 xdynamic_view<CT, S, L, FST>::adjust_offset(offset_type offset, T idx, Args... args) const noexcept
    +
    631 -> offset_type
    +
    632 {
    +
    633 constexpr size_type nb_args = sizeof...(Args) + 1;
    +
    634 size_type dim = base_type::dimension();
    +
    635 offset_type res = nb_args > dim ? adjust_offset(offset, args...)
    +
    636 : adjust_offset_impl(offset, dim - nb_args, idx, args...);
    +
    637 return res;
    +
    638 }
    +
    639
    +
    640 template <class CT, class S, layout_type L, class FST>
    +
    641 inline auto xdynamic_view<CT, S, L, FST>::adjust_offset(offset_type offset) const noexcept -> offset_type
    +
    642 {
    +
    643 return offset;
    +
    644 }
    +
    645
    +
    646 template <class CT, class S, layout_type L, class FST>
    +
    647 template <class T, class... Args>
    +
    648 inline auto
    +
    649 xdynamic_view<CT, S, L, FST>::adjust_offset_impl(offset_type offset, size_type idx_offset, T idx, Args... args)
    +
    650 const noexcept -> offset_type
    +
    651 {
    +
    652 offset_type sl_offset = std::visit(
    +
    653 [idx](const auto& sl)
    +
    654 {
    +
    655 using type = typename std::decay_t<decltype(sl)>::size_type;
    +
    656 return sl(type(idx));
    +
    657 },
    +
    658 m_slices[idx_offset]
    +
    659 );
    +
    660 offset_type res = offset + sl_offset * m_adj_strides[idx_offset];
    +
    661 return adjust_offset_impl(res, idx_offset + 1, args...);
    +
    662 }
    +
    663
    +
    664 template <class CT, class S, layout_type L, class FST>
    +
    665 inline auto xdynamic_view<CT, S, L, FST>::adjust_offset_impl(offset_type offset, size_type) const noexcept
    +
    666 -> offset_type
    +
    667 {
    +
    668 return offset;
    +
    669 }
    +
    670
    +
    671 template <class CT, class S, layout_type L, class FST>
    +
    672 template <class It>
    +
    673 inline auto
    +
    674 xdynamic_view<CT, S, L, FST>::adjust_element_offset(offset_type offset, It first, It last) const noexcept
    +
    675 -> offset_type
    +
    676 {
    +
    677 auto dst = std::distance(first, last);
    +
    678 offset_type dim = static_cast<offset_type>(dimension());
    +
    679 offset_type loop_offset = dst < dim ? dim - dst : offset_type(0);
    +
    680 offset_type idx_offset = dim < dst ? dst - dim : offset_type(0);
    +
    681 offset_type res = offset;
    +
    682 for (offset_type i = loop_offset; i < dim; ++i, ++first)
    +
    683 {
    +
    684 offset_type j = static_cast<offset_type>(first[idx_offset]);
    +
    685 offset_type sl_offset = std::visit(
    +
    686 [j](const auto& sl)
    +
    687 {
    +
    688 return static_cast<offset_type>(sl(j));
    +
    689 },
    +
    690 m_slices[static_cast<std::size_t>(i)]
    +
    691 );
    +
    692 res += sl_offset * m_adj_strides[static_cast<std::size_t>(i)];
    +
    693 }
    +
    694 return res;
    +
    695 }
    +
    696
    +
    697 /*****************************************
    +
    698 * xdynamic_view builders implementation *
    +
    699 *****************************************/
    +
    700
    +
    701 namespace detail
    +
    702 {
    +
    703 template <class V>
    +
    704 struct adj_strides_policy
    +
    705 {
    +
    706 using slice_vector = V;
    +
    707 using strides_type = dynamic_shape<std::ptrdiff_t>;
    +
    708
    +
    709 slice_vector new_slices;
    +
    710 strides_type new_adj_strides;
    +
    711
    +
    712 protected:
    +
    713
    +
    714 inline void resize(std::size_t size)
    +
    715 {
    +
    716 new_slices.resize(size);
    +
    717 new_adj_strides.resize(size);
    +
    718 }
    +
    719
    +
    720 inline void set_fake_slice(std::size_t idx)
    +
    721 {
    +
    722 new_slices[idx] = xfake_slice<std::ptrdiff_t>();
    +
    723 new_adj_strides[idx] = std::ptrdiff_t(0);
    +
    724 }
    +
    725
    +
    726 template <class ST, class S>
    +
    727 bool fill_args(
    +
    728 const xdynamic_slice_vector& slices,
    +
    729 std::size_t sl_idx,
    +
    730 std::size_t i,
    +
    731 std::size_t old_shape,
    +
    732 const ST& old_stride,
    +
    733 S& shape,
    +
    734 get_strides_t<S>& strides
    +
    735 )
    +
    736 {
    +
    737 return fill_args_impl<xkeep_slice<std::ptrdiff_t>>(
    +
    738 slices,
    +
    739 sl_idx,
    +
    740 i,
    +
    741 old_shape,
    +
    742 old_stride,
    +
    743 shape,
    +
    744 strides
    +
    745 )
    +
    746 || fill_args_impl<xdrop_slice<std::ptrdiff_t>>(
    +
    747 slices,
    +
    748 sl_idx,
    +
    749 i,
    +
    750 old_shape,
    +
    751 old_stride,
    +
    752 shape,
    +
    753 strides
    +
    754 );
    +
    755 }
    +
    756
    +
    757 template <class SL, class ST, class S>
    +
    758 bool fill_args_impl(
    +
    759 const xdynamic_slice_vector& slices,
    +
    760 std::size_t sl_idx,
    +
    761 std::size_t i,
    +
    762 std::size_t old_shape,
    +
    763 const ST& old_stride,
    +
    764 S& shape,
    +
    765 get_strides_t<S>& strides
    +
    766 )
    +
    767 {
    +
    768 auto* sl = std::get_if<SL>(&slices[sl_idx]);
    +
    769 if (sl != nullptr)
    +
    770 {
    +
    771 new_slices[i] = *sl;
    +
    772 auto& ns = std::get<SL>(new_slices[i]);
    +
    773 ns.normalize(old_shape);
    +
    774 shape[i] = static_cast<std::size_t>(ns.size());
    +
    775 strides[i] = std::ptrdiff_t(0);
    +
    776 new_adj_strides[i] = static_cast<std::ptrdiff_t>(old_stride);
    +
    777 }
    +
    778 return sl != nullptr;
    +
    779 }
    +
    780 };
    +
    781 }
    +
    782
    +
    783 template <class E>
    +
    784 inline auto dynamic_view(E&& e, const xdynamic_slice_vector& slices)
    +
    785 {
    +
    786 using view_type = xdynamic_view<xclosure_t<E>, dynamic_shape<std::size_t>>;
    +
    787 using slice_vector = typename view_type::slice_vector_type;
    +
    788 using policy = detail::adj_strides_policy<slice_vector>;
    +
    789 detail::strided_view_args<policy> args;
    +
    790 args.fill_args(
    +
    791 e.shape(),
    +
    792 detail::get_strides<XTENSOR_DEFAULT_TRAVERSAL>(e),
    +
    793 detail::get_offset<XTENSOR_DEFAULT_TRAVERSAL>(e),
    +
    794 e.layout(),
    +
    795 slices
    +
    796 );
    +
    797 return view_type(
    +
    798 std::forward<E>(e),
    +
    799 std::move(args.new_shape),
    +
    800 std::move(args.new_strides),
    +
    801 args.new_offset,
    +
    802 args.new_layout,
    +
    803 std::move(args.new_slices),
    +
    804 std::move(args.new_adj_strides)
    +
    805 );
    +
    806 }
    +
    807}
    +
    808
    +
    809#endif
    +
    Base class for implementation of common expression access methods.
    +
    Base class for implementation of common expression constant access methods.
    +
    const_reference front() const
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    +
    size_type dimension() const noexcept
    +
    bool in_bounds(Args... args) const
    +
    const_reference back() const
    + + +
    const inner_shape_type & shape() const noexcept
    Returns the shape of the xtrided_view_base.
    +
    layout_type layout() const noexcept
    Returns the layout of the xtrided_view_base.
    +
    Base class for xexpressions.
    + +
    Base class for multidimensional iterable expressions.
    + + + + +
    layout_type layout() const noexcept
    +
    xstrided_view_base(CTA &&e, SA &&shape, strides_type &&strides, size_type offset, layout_type layout) noexcept
    Constructs an xstrided_view_base.
    +
    bool broadcast_shape(O &shape, bool reuse_cache=false) const
    +
    const inner_shape_type & shape() const noexcept
    +
    storage_type & storage() noexcept
    +
    xexpression_type & expression() noexcept
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xeval_8hpp_source.html b/xeval_8hpp_source.html new file mode 100644 index 000000000..8c03bf6f9 --- /dev/null +++ b/xeval_8hpp_source.html @@ -0,0 +1,254 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xeval.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xeval.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_EVAL_HPP
    +
    11#define XTENSOR_EVAL_HPP
    +
    12
    +
    13#include "../core/xexpression_traits.hpp"
    +
    14#include "../core/xshape.hpp"
    +
    15#include "../core/xtensor_forward.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19
    +
    26
    +
    27 namespace detail
    +
    28 {
    +
    29 template <class T>
    +
    30 using is_container = std::is_base_of<xcontainer<std::remove_const_t<T>>, T>;
    +
    31 }
    +
    32
    +
    45 template <class T>
    +
    +
    46 inline auto eval(T&& t) -> std::enable_if_t<detail::is_container<std::decay_t<T>>::value, T&&>
    +
    47 {
    +
    48 return std::forward<T>(t);
    +
    49 }
    +
    +
    50
    +
    52 template <class T>
    +
    53 inline auto eval(T&& t)
    +
    54 -> std::enable_if_t<!detail::is_container<std::decay_t<T>>::value, temporary_type_t<T>>
    +
    55 {
    +
    56 return std::forward<T>(t);
    +
    57 }
    +
    58
    +
    60
    +
    61 namespace detail
    +
    62 {
    +
    63 /**********************************
    +
    64 * has_same_layout implementation *
    +
    65 **********************************/
    +
    66
    +
    67 template <layout_type L = layout_type::any, class E>
    +
    68 constexpr bool has_same_layout()
    +
    69 {
    +
    70 return (std::decay_t<E>::static_layout == L) || (L == layout_type::any);
    +
    71 }
    +
    72
    +
    73 template <layout_type L = layout_type::any, class E>
    +
    74 constexpr bool has_same_layout(E&&)
    +
    75 {
    +
    76 return has_same_layout<L, E>();
    +
    77 }
    +
    78
    +
    79 template <class E1, class E2>
    +
    80 constexpr bool has_same_layout(E1&&, E2&&)
    +
    81 {
    +
    82 return has_same_layout<std::decay_t<E1>::static_layout, E2>();
    +
    83 }
    +
    84
    +
    85 /*********************************
    +
    86 * has_fixed_dims implementation *
    +
    87 *********************************/
    +
    88
    +
    89 template <class E>
    +
    90 constexpr bool has_fixed_dims()
    +
    91 {
    +
    92 return detail::is_array<typename std::decay_t<E>::shape_type>::value;
    +
    93 }
    +
    94
    +
    95 template <class E>
    +
    96 constexpr bool has_fixed_dims(E&&)
    +
    97 {
    +
    98 return has_fixed_dims<E>();
    +
    99 }
    +
    100
    +
    101 /****************************************
    +
    102 * as_xarray_container_t implementation *
    +
    103 ****************************************/
    +
    104
    +
    105 template <class E, layout_type L>
    +
    106 using as_xarray_container_t = xarray<typename std::decay_t<E>::value_type, layout_remove_any(L)>;
    +
    107
    +
    108 /*****************************************
    +
    109 * as_xtensor_container_t implementation *
    +
    110 *****************************************/
    +
    111
    +
    112 template <class E, layout_type L>
    +
    113 using as_xtensor_container_t = xtensor<
    +
    114 typename std::decay_t<E>::value_type,
    +
    115 std::tuple_size<typename std::decay_t<E>::shape_type>::value,
    +
    116 layout_remove_any(L)>;
    +
    117 }
    +
    118
    +
    148 template <layout_type L = layout_type::any, class E>
    +
    +
    149 inline auto as_strided(E&& e)
    +
    150 -> std::enable_if_t<has_data_interface<std::decay_t<E>>::value && detail::has_same_layout<L, E>(), E&&>
    +
    151 {
    +
    152 return std::forward<E>(e);
    +
    153 }
    +
    +
    154
    +
    156 template <layout_type L = layout_type::any, class E>
    +
    157 inline auto as_strided(E&& e) -> std::enable_if_t<
    +
    158 (!(has_data_interface<std::decay_t<E>>::value && detail::has_same_layout<L, E>()))
    +
    159 && detail::has_fixed_dims<E>(),
    +
    160 detail::as_xtensor_container_t<E, L>>
    +
    161 {
    +
    162 return e;
    +
    163 }
    +
    164
    +
    165 template <layout_type L = layout_type::any, class E>
    +
    166 inline auto as_strided(E&& e) -> std::enable_if_t<
    +
    167 (!(has_data_interface<std::decay_t<E>>::value && detail::has_same_layout<L, E>()))
    +
    168 && (!detail::has_fixed_dims<E>()),
    +
    169 detail::as_xarray_container_t<E, L>>
    +
    170 {
    +
    171 return e;
    +
    172 }
    +
    173
    +
    175}
    +
    176
    +
    177#endif
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    auto as_strided(E &&e) -> std::enable_if_t< has_data_interface< std::decay_t< E > >::value &&detail::has_same_layout< L, E >(), E && >
    Force evaluation of xexpression not providing a data interface and convert to the required layout.
    Definition xeval.hpp:149
    +
    standard mathematical functions for xexpressions
    + +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    + +
    +
    + + + + diff --git a/xexception_8hpp_source.html b/xexception_8hpp_source.html new file mode 100644 index 000000000..a9d9587c6 --- /dev/null +++ b/xexception_8hpp_source.html @@ -0,0 +1,503 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/utils/xexception.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xexception.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_EXCEPTION_HPP
    +
    11#define XTENSOR_EXCEPTION_HPP
    +
    12
    +
    13#include <iterator>
    +
    14#include <sstream>
    +
    15#include <stdexcept>
    +
    16#include <string>
    +
    17#include <type_traits>
    +
    18
    +
    19#include <xtl/xcompare.hpp>
    +
    20#include <xtl/xsequence.hpp>
    +
    21#include <xtl/xspan_impl.hpp>
    +
    22
    +
    23#include "../core/xtensor_config.hpp"
    +
    24
    +
    25#ifdef __GNUC__
    +
    26#define XTENSOR_UNUSED_VARIABLE __attribute__((unused))
    +
    27#else
    +
    28#define XTENSOR_UNUSED_VARIABLE
    +
    29#endif
    +
    30
    +
    31namespace xt
    +
    32{
    +
    + +
    34 {
    +
    35 };
    +
    +
    36
    +
    37 namespace
    +
    38 {
    +
    39 missing_type XTENSOR_UNUSED_VARIABLE missing;
    +
    40 }
    +
    41
    +
    42 namespace detail
    +
    43 {
    +
    44 template <class... Args>
    +
    45 struct last_type_is_missing_impl
    +
    46 : std::is_same<missing_type, xtl::mpl::back_t<xtl::mpl::vector<Args...>>>
    +
    47 {
    +
    48 };
    +
    49
    +
    50 template <>
    +
    51 struct last_type_is_missing_impl<> : std::false_type
    +
    52 {
    +
    53 };
    +
    54
    +
    55 template <class... Args>
    +
    56 constexpr bool last_type_is_missing = last_type_is_missing_impl<Args...>::value;
    +
    57 }
    +
    58
    +
    59 /*******************
    +
    60 * broadcast_error *
    +
    61 *******************/
    +
    62
    +
    +
    63 class broadcast_error : public std::runtime_error
    +
    64 {
    +
    65 public:
    +
    66
    +
    67 explicit broadcast_error(const char* msg)
    +
    68 : std::runtime_error(msg)
    +
    69 {
    +
    70 }
    +
    71 };
    +
    +
    72
    +
    73 template <class S1, class S2>
    +
    74 [[noreturn]] void throw_broadcast_error(const S1& lhs, const S2& rhs);
    +
    75
    +
    76 /*********************
    +
    77 * concatenate_error *
    +
    78 *********************/
    +
    79
    +
    +
    80 class concatenate_error : public std::runtime_error
    +
    81 {
    +
    82 public:
    +
    83
    +
    84 explicit concatenate_error(const char* msg)
    +
    85 : std::runtime_error(msg)
    +
    86 {
    +
    87 }
    +
    88 };
    +
    +
    89
    +
    90 template <class S1, class S2>
    +
    91 [[noreturn]] void throw_concatenate_error(const S1& lhs, const S2& rhs);
    +
    92
    +
    93 /**********************************
    +
    94 * broadcast_error implementation *
    +
    95 **********************************/
    +
    96
    +
    97 namespace detail
    +
    98 {
    +
    99 template <class S1, class S2>
    +
    100 inline std::string shape_error_message(const S1& lhs, const S2& rhs)
    +
    101 {
    +
    102 std::ostringstream buf("Incompatible dimension of arrays:", std::ios_base::ate);
    +
    103
    +
    104 buf << "\n LHS shape = (";
    +
    105 using size_type1 = typename S1::value_type;
    +
    106 std::ostream_iterator<size_type1> iter1(buf, ", ");
    +
    107 std::copy(lhs.cbegin(), lhs.cend(), iter1);
    +
    108
    +
    109 buf << ")\n RHS shape = (";
    +
    110 using size_type2 = typename S2::value_type;
    +
    111 std::ostream_iterator<size_type2> iter2(buf, ", ");
    +
    112 std::copy(rhs.cbegin(), rhs.cend(), iter2);
    +
    113 buf << ")";
    +
    114
    +
    115 return buf.str();
    +
    116 }
    +
    117 }
    +
    118
    +
    119#ifdef NDEBUG
    +
    120 // Do not inline this function
    +
    121 template <class S1, class S2>
    +
    122 [[noreturn]] void throw_broadcast_error(const S1&, const S2&)
    +
    123 {
    +
    124 XTENSOR_THROW(broadcast_error, "Incompatible dimension of arrays, compile in DEBUG for more info");
    +
    125 }
    +
    126#else
    +
    127 template <class S1, class S2>
    +
    128 [[noreturn]] void throw_broadcast_error(const S1& lhs, const S2& rhs)
    +
    129 {
    +
    130 std::string msg = detail::shape_error_message(lhs, rhs);
    +
    131 XTENSOR_THROW(broadcast_error, msg.c_str());
    +
    132 }
    +
    133#endif
    +
    134
    +
    135 /************************************
    +
    136 * concatenate_error implementation *
    +
    137 ************************************/
    +
    138
    +
    139#ifdef NDEBUG
    +
    140 // Do not inline this function
    +
    141 template <class S1, class S2>
    +
    142 [[noreturn]] void throw_concatenate_error(const S1&, const S2&)
    +
    143 {
    +
    144 XTENSOR_THROW(concatenate_error, "Incompatible dimension of arrays, compile in DEBUG for more info");
    +
    145 }
    +
    146#else
    +
    147 template <class S1, class S2>
    +
    148 [[noreturn]] void throw_concatenate_error(const S1& lhs, const S2& rhs)
    +
    149 {
    +
    150 std::string msg = detail::shape_error_message(lhs, rhs);
    +
    151 XTENSOR_THROW(concatenate_error, msg.c_str());
    +
    152 }
    +
    153#endif
    +
    154
    +
    155 /*******************
    +
    156 * transpose_error *
    +
    157 *******************/
    +
    158
    +
    +
    159 class transpose_error : public std::runtime_error
    +
    160 {
    +
    161 public:
    +
    162
    +
    163 explicit transpose_error(const char* msg)
    +
    164 : std::runtime_error(msg)
    +
    165 {
    +
    166 }
    +
    167 };
    +
    +
    168
    +
    169 /***************
    +
    170 * check_index *
    +
    171 ***************/
    +
    172
    +
    173 template <class S, class... Args>
    +
    174 void check_index(const S& shape, Args... args);
    +
    175
    +
    176 template <class S, class It>
    +
    177 void check_element_index(const S& shape, It first, It last);
    +
    178
    +
    179 namespace detail
    +
    180 {
    +
    181 template <class S, std::size_t dim>
    +
    182 inline void check_index_impl(const S&)
    +
    183 {
    +
    184 }
    +
    185
    +
    186 template <class S, std::size_t dim>
    +
    187 inline void check_index_impl(const S&, missing_type)
    +
    188 {
    +
    189 }
    +
    190
    +
    191 template <class S, std::size_t dim, class T, class... Args>
    +
    192 inline void check_index_impl(const S& shape, T arg, Args... args)
    +
    193 {
    +
    194 if (std::size_t(arg) >= std::size_t(shape[dim]) && shape[dim] != 1)
    +
    195 {
    +
    196 XTENSOR_THROW(
    +
    197 std::out_of_range,
    +
    198 "index " + std::to_string(arg) + " is out of bounds for axis " + std::to_string(dim)
    +
    199 + " with size " + std::to_string(shape[dim])
    +
    200 );
    +
    201 }
    +
    202 check_index_impl<S, dim + 1>(shape, args...);
    +
    203 }
    +
    204 }
    +
    205
    +
    206 template <class S>
    +
    207 inline void check_index(const S&)
    +
    208 {
    +
    209 }
    +
    210
    +
    211 template <class S>
    +
    212 inline void check_index(const S&, missing_type)
    +
    213 {
    +
    214 }
    +
    215
    +
    216 template <class S, class Arg, class... Args>
    +
    217 inline void check_index(const S& shape, Arg arg, Args... args)
    +
    218 {
    +
    219 constexpr std::size_t nargs = sizeof...(Args) + 1;
    +
    220 if (nargs == shape.size())
    +
    221 {
    +
    222 detail::check_index_impl<S, 0>(shape, arg, args...);
    +
    223 }
    +
    224 else if (nargs > shape.size())
    +
    225 {
    +
    226 // Too many arguments: drop the first
    +
    227 check_index(shape, args...);
    +
    228 }
    +
    229 else if (detail::last_type_is_missing<Args...>)
    +
    230 {
    +
    231 // Too few arguments & last argument xt::missing: postfix index with zeros
    +
    232 detail::check_index_impl<S, 0>(shape, arg, args...);
    +
    233 }
    +
    234 else
    +
    235 {
    +
    236 // Too few arguments: ignore the beginning of the shape
    +
    237 auto it = shape.end() - nargs;
    +
    238 detail::check_index_impl<decltype(it), 0>(it, arg, args...);
    +
    239 }
    +
    240 }
    +
    241
    +
    242 template <class S, class It>
    +
    243 inline void check_element_index(const S& shape, It first, It last)
    +
    244 {
    +
    245 using value_type = typename std::iterator_traits<It>::value_type;
    +
    246 using size_type = typename S::size_type;
    +
    247 auto dst = static_cast<size_type>(last - first);
    +
    248 It efirst = last - static_cast<std::ptrdiff_t>((std::min)(shape.size(), dst));
    +
    249 std::size_t axis = 0;
    +
    250
    +
    251 while (efirst != last)
    +
    252 {
    +
    253 if (*efirst >= value_type(shape[axis]) && shape[axis] != 1)
    +
    254 {
    +
    255 XTENSOR_THROW(
    +
    256 std::out_of_range,
    +
    257 "index " + std::to_string(*efirst) + " is out of bounds for axis " + std::to_string(axis)
    +
    258 + " with size " + std::to_string(shape[axis])
    +
    259 );
    +
    260 }
    +
    261 ++efirst, ++axis;
    +
    262 }
    +
    263 }
    +
    264
    +
    265 /*******************
    +
    266 * check_dimension *
    +
    267 *******************/
    +
    268
    +
    269 template <class S, class... Args>
    +
    270 inline void check_dimension(const S& shape, Args...)
    +
    271 {
    +
    272 if (sizeof...(Args) > shape.size())
    +
    273 {
    +
    274 XTENSOR_THROW(
    +
    275 std::out_of_range,
    +
    276 "Number of arguments (" + std::to_string(sizeof...(Args))
    +
    277 + ") is greater than the number of dimensions (" + std::to_string(shape.size()) + ")"
    +
    278 );
    +
    279 }
    +
    280 }
    +
    281
    +
    282 /*******************************
    +
    283 * check_axis implementation *
    +
    284 *******************************/
    +
    285
    +
    286 template <class A, class D>
    +
    287 inline void check_axis_in_dim(A axis, D dim, const char* subject = "Axis")
    +
    288 {
    +
    289 const auto sdim = static_cast<std::make_signed_t<D>>(dim);
    +
    290 if (xtl::cmp_greater_equal(axis, dim) || xtl::cmp_less(axis, -sdim))
    +
    291 {
    +
    292 XTENSOR_THROW(
    +
    293 std::out_of_range,
    +
    294 std::string(subject) + " (" + std::to_string(axis)
    +
    295 + ") is not within the number of dimensions (" + std::to_string(dim) + ')'
    +
    296 );
    +
    297 }
    +
    298 }
    +
    299
    +
    300 /****************
    +
    301 * check_access *
    +
    302 ****************/
    +
    303
    +
    304 template <class S, class... Args>
    +
    305 inline void check_access(const S& shape, Args... args)
    +
    306 {
    +
    307 check_dimension(shape, args...);
    +
    308 check_index(shape, args...);
    +
    309 }
    +
    310
    +
    311#if (defined(XTENSOR_ENABLE_ASSERT) && !defined(XTENSOR_DISABLE_EXCEPTIONS))
    +
    312#define XTENSOR_TRY(expr) XTENSOR_TRY_IMPL(expr, __FILE__, __LINE__)
    +
    313#define XTENSOR_TRY_IMPL(expr, file, line) \
    +
    314 try \
    +
    315 { \
    +
    316 expr; \
    +
    317 } \
    +
    318 catch (std::exception & e) \
    +
    319 { \
    +
    320 XTENSOR_THROW( \
    +
    321 std::runtime_error, \
    +
    322 std::string(file) + ':' + std::to_string(line) + ": check failed\n\t" + std::string(e.what()) \
    +
    323 ); \
    +
    324 }
    +
    325#else
    +
    326#define XTENSOR_TRY(expr)
    +
    327#endif
    +
    328
    +
    329#ifdef XTENSOR_ENABLE_ASSERT
    +
    330#define XTENSOR_ASSERT(expr) XTENSOR_ASSERT_IMPL(expr, __FILE__, __LINE__)
    +
    331#define XTENSOR_ASSERT_IMPL(expr, file, line) \
    +
    332 if (!(expr)) \
    +
    333 { \
    +
    334 XTENSOR_THROW( \
    +
    335 std::runtime_error, \
    +
    336 std::string(file) + ':' + std::to_string(line) + ": assertion failed (" #expr ") \n\t" \
    +
    337 ); \
    +
    338 }
    +
    339#else
    +
    340#define XTENSOR_ASSERT(expr)
    +
    341#endif
    +
    342
    +
    343#ifdef XTENSOR_ENABLE_CHECK_DIMENSION
    +
    344#define XTENSOR_CHECK_DIMENSION(S, ARGS) XTENSOR_TRY(check_dimension(S, ARGS))
    +
    345#else
    +
    346#define XTENSOR_CHECK_DIMENSION(S, ARGS)
    +
    347#endif
    +
    348
    +
    349#ifdef XTENSOR_ENABLE_ASSERT
    +
    350#define XTENSOR_ASSERT_MSG(expr, msg) \
    +
    351 if (!(expr)) \
    +
    352 { \
    +
    353 XTENSOR_THROW( \
    +
    354 std::runtime_error, \
    +
    355 std::string("Assertion error!\n") + msg + "\n " + __FILE__ + '(' + std::to_string(__LINE__) + ")\n" \
    +
    356 ); \
    +
    357 }
    +
    358#else
    +
    359#define XTENSOR_ASSERT_MSG(expr, msg)
    +
    360#endif
    +
    361
    +
    362#define XTENSOR_PRECONDITION(expr, msg) \
    +
    363 if (!(expr)) \
    +
    364 { \
    +
    365 XTENSOR_THROW( \
    +
    366 std::runtime_error, \
    +
    367 std::string("Precondition violation!\n") + msg + "\n " + __FILE__ + '(' \
    +
    368 + std::to_string(__LINE__) + ")\n" \
    +
    369 ); \
    +
    370 }
    +
    371}
    +
    372#endif // XEXCEPTION_HPP
    + + +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    standard mathematical functions for xexpressions
    + +
    +
    + + + + diff --git a/xexpression_8hpp_source.html b/xexpression_8hpp_source.html new file mode 100644 index 000000000..d507532a7 --- /dev/null +++ b/xexpression_8hpp_source.html @@ -0,0 +1,906 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xexpression.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xexpression.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_EXPRESSION_HPP
    +
    11#define XTENSOR_EXPRESSION_HPP
    +
    12
    +
    13#include <type_traits>
    +
    14
    +
    15#include <xtl/xclosure.hpp>
    +
    16#include <xtl/xmeta_utils.hpp>
    +
    17#include <xtl/xtype_traits.hpp>
    +
    18
    +
    19#include "../core/xlayout.hpp"
    +
    20#include "../core/xshape.hpp"
    +
    21#include "../core/xtensor_forward.hpp"
    +
    22#include "../utils/xutils.hpp"
    +
    23
    +
    24namespace xt
    +
    25{
    +
    26
    +
    27 /***************************
    +
    28 * xexpression declaration *
    +
    29 ***************************/
    +
    30
    +
    43 template <class D>
    +
    +
    44 class xexpression
    +
    45 {
    +
    46 public:
    +
    47
    +
    48 using derived_type = D;
    +
    49
    +
    50 derived_type& derived_cast() & noexcept;
    +
    51 const derived_type& derived_cast() const& noexcept;
    +
    52 derived_type derived_cast() && noexcept;
    +
    53
    +
    54 protected:
    +
    55
    +
    56 xexpression() = default;
    +
    57 ~xexpression() = default;
    +
    58
    +
    59 xexpression(const xexpression&) = default;
    +
    60 xexpression& operator=(const xexpression&) = default;
    +
    61
    +
    62 xexpression(xexpression&&) = default;
    +
    63 xexpression& operator=(xexpression&&) = default;
    +
    64 };
    +
    +
    65
    +
    66 /************************************
    +
    67 * xsharable_expression declaration *
    +
    68 ************************************/
    +
    69
    +
    70 template <class E>
    + +
    72
    +
    73 template <class E>
    + +
    75
    +
    76 namespace detail
    +
    77 {
    +
    78 template <class E>
    + +
    80 }
    +
    81
    +
    82 template <class D>
    +
    +
    83 class xsharable_expression : public xexpression<D>
    +
    84 {
    +
    85 protected:
    +
    86
    +
    87 xsharable_expression();
    +
    88 ~xsharable_expression() = default;
    +
    89
    +
    90 xsharable_expression(const xsharable_expression&) = default;
    +
    91 xsharable_expression& operator=(const xsharable_expression&) = default;
    +
    92
    +
    93 xsharable_expression(xsharable_expression&&) = default;
    +
    94 xsharable_expression& operator=(xsharable_expression&&) = default;
    +
    95
    +
    96 private:
    +
    97
    +
    98 std::shared_ptr<D> p_shared;
    +
    99
    +
    100 friend xshared_expression<D> detail::make_xshared_impl<D>(xsharable_expression<D>&&);
    +
    101 };
    +
    +
    102
    +
    103 /******************************
    +
    104 * xexpression implementation *
    +
    105 ******************************/
    +
    106
    +
    111
    +
    114 template <class D>
    +
    +
    115 inline auto xexpression<D>::derived_cast() & noexcept -> derived_type&
    +
    116 {
    +
    117 return *static_cast<derived_type*>(this);
    +
    118 }
    +
    +
    119
    +
    123 template <class D>
    +
    +
    124 inline auto xexpression<D>::derived_cast() const& noexcept -> const derived_type&
    +
    125 {
    +
    126 return *static_cast<const derived_type*>(this);
    +
    127 }
    +
    +
    128
    +
    132 template <class D>
    +
    +
    133 inline auto xexpression<D>::derived_cast() && noexcept -> derived_type
    +
    134 {
    +
    135 return *static_cast<derived_type*>(this);
    +
    136 }
    +
    +
    137
    +
    139
    +
    140 /***************************************
    +
    141 * xsharable_expression implementation *
    +
    142 ***************************************/
    +
    143
    +
    144 template <class D>
    +
    145 inline xsharable_expression<D>::xsharable_expression()
    +
    146 : p_shared(nullptr)
    +
    147 {
    +
    148 }
    +
    149
    +
    159
    +
    160 namespace detail
    +
    161 {
    +
    162 template <template <class> class B, class E>
    +
    163 struct is_crtp_base_of_impl : std::is_base_of<B<E>, E>
    +
    164 {
    +
    165 };
    +
    166
    +
    167 template <template <class> class B, class E, template <class> class F>
    +
    168 struct is_crtp_base_of_impl<B, F<E>>
    +
    169 : std::disjunction<std::is_base_of<B<E>, F<E>>, std::is_base_of<B<F<E>>, F<E>>>
    +
    170 {
    +
    171 };
    +
    172 }
    +
    173
    +
    174 template <template <class> class B, class E>
    +
    175 using is_crtp_base_of = detail::is_crtp_base_of_impl<B, std::decay_t<E>>;
    +
    176
    +
    177 template <class E>
    +
    178 using is_xexpression = is_crtp_base_of<xexpression, E>;
    +
    179
    +
    180 template <class E>
    +
    181 concept xexpression_concept = is_xexpression<E>::value;
    +
    182
    +
    183 template <class E, class R = void>
    +
    184 using enable_xexpression = typename std::enable_if<is_xexpression<E>::value, R>::type;
    +
    185
    +
    186 template <class E, class R = void>
    +
    187 using disable_xexpression = typename std::enable_if<!is_xexpression<E>::value, R>::type;
    +
    188
    +
    189 template <class... E>
    +
    190 using has_xexpression = std::disjunction<is_xexpression<E>...>;
    +
    191
    +
    192 template <class E>
    +
    193 using is_xsharable_expression = is_crtp_base_of<xsharable_expression, E>;
    +
    194
    +
    195 template <class E, class R = void>
    +
    196 using enable_xsharable_expression = typename std::enable_if<is_xsharable_expression<E>::value, R>::type;
    +
    197
    +
    198 template <class E, class R = void>
    +
    199 using disable_xsharable_expression = typename std::enable_if<!is_xsharable_expression<E>::value, R>::type;
    +
    200
    +
    201 template <class LHS, class RHS>
    +
    +
    202 struct can_assign : std::is_assignable<LHS, RHS>
    +
    203 {
    +
    204 };
    +
    +
    205
    +
    206 template <class LHS, class RHS, class R = void>
    +
    207 using enable_assignable_expression = typename std::enable_if<can_assign<LHS, RHS>::value, R>::type;
    +
    208
    +
    209 template <class LHS, class RHS, class R = void>
    +
    210 using enable_not_assignable_expression = typename std::enable_if<!can_assign<LHS, RHS>::value, R>::type;
    +
    211
    +
    212 /***********************
    +
    213 * evaluation_strategy *
    +
    214 ***********************/
    +
    215
    +
    216 namespace detail
    +
    217 {
    +
    218 struct option_base
    +
    219 {
    +
    220 };
    +
    221 }
    +
    222
    +
    223 namespace evaluation_strategy
    +
    224 {
    +
    225
    +
    +
    226 struct immediate_type : xt::detail::option_base
    +
    227 {
    +
    228 };
    +
    +
    229
    +
    230 constexpr auto immediate = std::tuple<immediate_type>{};
    +
    231
    +
    +
    232 struct lazy_type : xt::detail::option_base
    +
    233 {
    +
    234 };
    +
    +
    235
    +
    236 constexpr auto lazy = std::tuple<lazy_type>{};
    +
    237
    +
    238 /*
    +
    239 struct cached {};
    +
    240 */
    +
    241 }
    +
    242
    +
    243 template <class T>
    +
    +
    244 struct is_evaluation_strategy : std::is_base_of<detail::option_base, std::decay_t<T>>
    +
    245 {
    +
    246 };
    +
    +
    247
    +
    248 /************
    +
    249 * xclosure *
    +
    250 ************/
    +
    251
    +
    252 template <class T>
    +
    253 class xscalar;
    +
    254
    +
    255 template <class E, class EN = void>
    +
    +
    256 struct xclosure
    +
    257 {
    +
    258 using type = xtl::closure_type_t<E>;
    +
    259 };
    +
    +
    260
    +
    261 template <class E>
    +
    +
    262 struct xclosure<xshared_expression<E>, std::enable_if_t<true>>
    +
    263 {
    +
    264 using type = xshared_expression<E>; // force copy
    +
    265 };
    +
    +
    266
    +
    267 template <class E>
    +
    +
    268 struct xclosure<E, disable_xexpression<std::decay_t<E>>>
    +
    269 {
    +
    270 using type = xscalar<xtl::closure_type_t<E>>;
    +
    271 };
    +
    +
    272
    +
    273 template <class E>
    +
    274 using xclosure_t = typename xclosure<E>::type;
    +
    275
    +
    276 template <class E, class EN = void>
    +
    + +
    278 {
    +
    279 using type = xtl::const_closure_type_t<E>;
    +
    280 };
    +
    +
    281
    +
    282 template <class E>
    +
    +
    283 struct const_xclosure<E, disable_xexpression<std::decay_t<E>>>
    +
    284 {
    + +
    286 };
    +
    +
    287
    +
    288 template <class E>
    +
    +
    289 struct const_xclosure<xshared_expression<E>&, std::enable_if_t<true>>
    +
    290 {
    +
    291 using type = xshared_expression<E>; // force copy
    +
    292 };
    +
    +
    293
    +
    294 template <class E>
    +
    295 using const_xclosure_t = typename const_xclosure<E>::type;
    +
    296
    +
    297 /*************************
    +
    298 * expression tag system *
    +
    299 *************************/
    +
    300
    +
    + +
    302 {
    +
    303 };
    +
    +
    304
    +
    + +
    306 {
    +
    307 };
    +
    +
    308
    +
    309 namespace extension
    +
    310 {
    +
    311 template <class E, class = void_t<int>>
    +
    + +
    313 {
    +
    314 using type = xtensor_expression_tag;
    +
    315 };
    +
    +
    316
    +
    317 template <class E>
    +
    +
    318 struct get_expression_tag_impl<E, void_t<typename std::decay_t<E>::expression_tag>>
    +
    319 {
    +
    320 using type = typename std::decay_t<E>::expression_tag;
    +
    321 };
    +
    +
    322
    +
    323 template <class E>
    +
    + +
    325 {
    +
    326 };
    +
    +
    327
    +
    328 template <class E>
    +
    329 using get_expression_tag_t = typename get_expression_tag<E>::type;
    +
    330
    +
    331 template <class... T>
    + +
    333
    +
    334 template <>
    +
    + +
    336 {
    +
    337 using type = xtensor_expression_tag;
    +
    338 };
    +
    +
    339
    +
    340 template <class T>
    +
    + +
    342 {
    +
    343 using type = T;
    +
    344 };
    +
    +
    345
    +
    346 template <class T>
    +
    + +
    348 {
    +
    349 using type = T;
    +
    350 };
    +
    +
    351
    +
    352 template <class T>
    +
    + +
    354 {
    +
    355 using type = T;
    +
    356 };
    +
    +
    357
    +
    358 template <class T>
    +
    +
    359 struct expression_tag_and<T, xtensor_expression_tag> : expression_tag_and<xtensor_expression_tag, T>
    +
    360 {
    +
    361 };
    +
    +
    362
    +
    363 template <>
    + +
    368
    +
    369 template <class T1, class... T>
    +
    +
    370 struct expression_tag_and<T1, T...> : expression_tag_and<T1, typename expression_tag_and<T...>::type>
    +
    371 {
    +
    372 };
    +
    +
    373
    +
    374 template <class... T>
    +
    375 using expression_tag_and_t = typename expression_tag_and<T...>::type;
    +
    376
    +
    + +
    378 {
    +
    379 using expression_tag = xtensor_expression_tag;
    +
    380 };
    +
    +
    381 }
    +
    382
    +
    383 template <class... T>
    +
    + +
    385 {
    +
    386 using type = extension::expression_tag_and_t<
    +
    387 extension::get_expression_tag_t<std::decay_t<const_xclosure_t<T>>>...>;
    +
    388 };
    +
    +
    389
    +
    390 template <class... T>
    +
    391 using xexpression_tag_t = typename xexpression_tag<T...>::type;
    +
    392
    +
    393 template <class E>
    +
    +
    394 struct is_xtensor_expression : std::is_same<xexpression_tag_t<E>, xtensor_expression_tag>
    +
    395 {
    +
    396 };
    +
    +
    397
    +
    398 template <class E>
    +
    +
    399 struct is_xoptional_expression : std::is_same<xexpression_tag_t<E>, xoptional_expression_tag>
    +
    400 {
    +
    401 };
    +
    +
    402
    +
    403 /********************************
    +
    404 * xoptional_comparable concept *
    +
    405 ********************************/
    +
    406
    +
    407 template <class... E>
    +
    + +
    409 : std::conjunction<std::disjunction<is_xtensor_expression<E>, is_xoptional_expression<E>>...>
    +
    410 {
    +
    411 };
    +
    +
    412
    +
    413#define XTENSOR_FORWARD_CONST_METHOD(name) \
    +
    414 auto name() const -> decltype(std::declval<xtl::constify_t<E>>().name()) \
    +
    415 { \
    +
    416 return m_ptr->name(); \
    +
    417 }
    +
    418
    +
    419#define XTENSOR_FORWARD_METHOD(name) \
    +
    420 auto name() -> decltype(std::declval<E>().name()) \
    +
    421 { \
    +
    422 return m_ptr->name(); \
    +
    423 }
    +
    424
    +
    425#define XTENSOR_FORWARD_CONST_ITERATOR_METHOD(name) \
    +
    426 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL> \
    +
    427 auto name() const noexcept -> decltype(std::declval<xtl::constify_t<E>>().template name<L>()) \
    +
    428 { \
    +
    429 return m_ptr->template name<L>(); \
    +
    430 } \
    +
    431 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S> \
    +
    432 auto name(const S& shape) const noexcept \
    +
    433 -> decltype(std::declval<xtl::constify_t<E>>().template name<L>(shape)) \
    +
    434 { \
    +
    435 return m_ptr->template name<L>(); \
    +
    436 }
    +
    437
    +
    438#define XTENSOR_FORWARD_ITERATOR_METHOD(name) \
    +
    439 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S> \
    +
    440 auto name(const S& shape) noexcept -> decltype(std::declval<E>().template name<L>(shape)) \
    +
    441 { \
    +
    442 return m_ptr->template name<L>(); \
    +
    443 } \
    +
    444 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL> \
    +
    445 auto name() noexcept -> decltype(std::declval<E>().template name<L>()) \
    +
    446 { \
    +
    447 return m_ptr->template name<L>(); \
    +
    448 }
    +
    449
    +
    450 namespace detail
    +
    451 {
    +
    452 template <class E>
    +
    453 struct expr_strides_type
    +
    454 {
    +
    455 using type = typename E::strides_type;
    +
    456 };
    +
    457
    +
    458 template <class E>
    +
    459 struct expr_inner_strides_type
    +
    460 {
    +
    461 using type = typename E::inner_strides_type;
    +
    462 };
    +
    463
    +
    464 template <class E>
    +
    465 struct expr_backstrides_type
    +
    466 {
    +
    467 using type = typename E::backstrides_type;
    +
    468 };
    +
    469
    +
    470 template <class E>
    +
    471 struct expr_inner_backstrides_type
    +
    472 {
    +
    473 using type = typename E::inner_backstrides_type;
    +
    474 };
    +
    475
    +
    476 template <class E>
    +
    477 struct expr_storage_type
    +
    478 {
    +
    479 using type = typename E::storage_type;
    +
    480 };
    +
    481 }
    +
    482
    +
    508 template <class E>
    +
    +
    509 class xshared_expression : public xexpression<xshared_expression<E>>
    +
    510 {
    +
    511 public:
    +
    512
    +
    513 using base_class = xexpression<xshared_expression<E>>;
    +
    514
    +
    515 using value_type = typename E::value_type;
    +
    516 using reference = typename E::reference;
    +
    517 using const_reference = typename E::const_reference;
    +
    518 using pointer = typename E::pointer;
    +
    519 using const_pointer = typename E::const_pointer;
    +
    520 using size_type = typename E::size_type;
    +
    521 using difference_type = typename E::difference_type;
    +
    522
    +
    523 using inner_shape_type = typename E::inner_shape_type;
    +
    524 using shape_type = typename E::shape_type;
    +
    525
    +
    526 using strides_type = xtl::mpl::
    +
    527 eval_if_t<has_strides<E>, detail::expr_strides_type<E>, get_strides_type<shape_type>>;
    +
    528 using backstrides_type = xtl::mpl::
    +
    529 eval_if_t<has_strides<E>, detail::expr_backstrides_type<E>, get_strides_type<shape_type>>;
    +
    530 using inner_strides_type = xtl::mpl::
    +
    531 eval_if_t<has_strides<E>, detail::expr_inner_strides_type<E>, get_strides_type<shape_type>>;
    +
    532 using inner_backstrides_type = xtl::mpl::
    +
    533 eval_if_t<has_strides<E>, detail::expr_inner_backstrides_type<E>, get_strides_type<shape_type>>;
    +
    534 using storage_type = xtl::mpl::eval_if_t<has_storage_type<E>, detail::expr_storage_type<E>, make_invalid_type<>>;
    +
    535
    +
    536 using stepper = typename E::stepper;
    +
    537 using const_stepper = typename E::const_stepper;
    +
    538
    +
    539 using linear_iterator = typename E::linear_iterator;
    +
    540 using const_linear_iterator = typename E::const_linear_iterator;
    +
    541
    +
    542 using bool_load_type = typename E::bool_load_type;
    +
    543
    +
    544 static constexpr layout_type static_layout = E::static_layout;
    +
    545 static constexpr bool contiguous_layout = static_layout != layout_type::dynamic;
    +
    546
    +
    547 explicit xshared_expression(const std::shared_ptr<E>& ptr);
    +
    548 long use_count() const noexcept;
    +
    549
    +
    550 template <class... Args>
    +
    551 auto operator()(Args... args) -> decltype(std::declval<E>()(args...))
    +
    552 {
    +
    553 return m_ptr->operator()(args...);
    +
    554 }
    +
    555
    +
    556 XTENSOR_FORWARD_CONST_METHOD(shape)
    +
    557 XTENSOR_FORWARD_CONST_METHOD(dimension)
    +
    558 XTENSOR_FORWARD_CONST_METHOD(size)
    +
    559 XTENSOR_FORWARD_CONST_METHOD(layout)
    +
    560 XTENSOR_FORWARD_CONST_METHOD(is_contiguous)
    +
    561
    +
    562 XTENSOR_FORWARD_ITERATOR_METHOD(begin)
    +
    563 XTENSOR_FORWARD_ITERATOR_METHOD(end)
    +
    564 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(begin)
    +
    565 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(end)
    +
    566 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(cbegin)
    +
    567 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(cend)
    +
    568
    +
    569 XTENSOR_FORWARD_ITERATOR_METHOD(rbegin)
    +
    570 XTENSOR_FORWARD_ITERATOR_METHOD(rend)
    +
    571 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(rbegin)
    +
    572 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(rend)
    +
    573 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(crbegin)
    +
    574 XTENSOR_FORWARD_CONST_ITERATOR_METHOD(crend)
    +
    575
    +
    576 XTENSOR_FORWARD_METHOD(linear_begin)
    +
    577 XTENSOR_FORWARD_METHOD(linear_end)
    +
    578 XTENSOR_FORWARD_CONST_METHOD(linear_begin)
    +
    579 XTENSOR_FORWARD_CONST_METHOD(linear_end)
    +
    580 XTENSOR_FORWARD_CONST_METHOD(linear_cbegin)
    +
    581 XTENSOR_FORWARD_CONST_METHOD(linear_cend)
    +
    582
    +
    583 XTENSOR_FORWARD_METHOD(linear_rbegin)
    +
    584 XTENSOR_FORWARD_METHOD(linear_rend)
    +
    585 XTENSOR_FORWARD_CONST_METHOD(linear_rbegin)
    +
    586 XTENSOR_FORWARD_CONST_METHOD(linear_rend)
    +
    587 XTENSOR_FORWARD_CONST_METHOD(linear_crbegin)
    +
    588 XTENSOR_FORWARD_CONST_METHOD(linear_crend)
    +
    589
    +
    590 template <class T = E>
    +
    591 std::enable_if_t<has_strides<T>::value, const inner_strides_type&> strides() const
    +
    592 {
    +
    593 return m_ptr->strides();
    +
    594 }
    +
    595
    +
    596 template <class T = E>
    +
    597 std::enable_if_t<has_strides<T>::value, const inner_strides_type&> backstrides() const
    +
    598 {
    +
    599 return m_ptr->backstrides();
    +
    600 }
    +
    601
    +
    602 template <class T = E>
    +
    603 std::enable_if_t<has_data_interface<T>::value, pointer> data() noexcept
    +
    604 {
    +
    605 return m_ptr->data();
    +
    606 }
    +
    607
    +
    608 template <class T = E>
    +
    609 std::enable_if_t<has_data_interface<T>::value, pointer> data() const noexcept
    +
    610 {
    +
    611 return m_ptr->data();
    +
    612 }
    +
    613
    +
    614 template <class T = E>
    +
    615 std::enable_if_t<has_data_interface<T>::value, size_type> data_offset() const noexcept
    +
    616 {
    +
    617 return m_ptr->data_offset();
    +
    618 }
    +
    619
    +
    620 template <class T = E>
    +
    621 std::enable_if_t<has_data_interface<T>::value, typename T::storage_type&> storage() noexcept
    +
    622 {
    +
    623 return m_ptr->storage();
    +
    624 }
    +
    625
    +
    626 template <class T = E>
    +
    627 std::enable_if_t<has_data_interface<T>::value, const typename T::storage_type&> storage() const noexcept
    +
    628 {
    +
    629 return m_ptr->storage();
    +
    630 }
    +
    631
    +
    632 template <class It>
    +
    633 reference element(It first, It last)
    +
    634 {
    +
    635 return m_ptr->element(first, last);
    +
    636 }
    +
    637
    +
    638 template <class It>
    +
    639 const_reference element(It first, It last) const
    +
    640 {
    +
    641 return m_ptr->element(first, last);
    +
    642 }
    +
    643
    +
    644 template <class S>
    +
    645 bool broadcast_shape(S& shape, bool reuse_cache = false) const
    +
    646 {
    +
    647 return m_ptr->broadcast_shape(shape, reuse_cache);
    +
    648 }
    +
    649
    +
    650 template <class S>
    +
    651 bool has_linear_assign(const S& strides) const noexcept
    +
    652 {
    +
    653 return m_ptr->has_linear_assign(strides);
    +
    654 }
    +
    655
    +
    656 template <class S>
    +
    657 auto stepper_begin(const S& shape) noexcept -> decltype(std::declval<E>().stepper_begin(shape))
    +
    658 {
    +
    659 return m_ptr->stepper_begin(shape);
    +
    660 }
    +
    661
    +
    662 template <class S>
    +
    663 auto stepper_end(const S& shape, layout_type l) noexcept
    +
    664 -> decltype(std::declval<E>().stepper_end(shape, l))
    +
    665 {
    +
    666 return m_ptr->stepper_end(shape, l);
    +
    667 }
    +
    668
    +
    669 template <class S>
    +
    670 auto stepper_begin(const S& shape) const noexcept
    +
    671 -> decltype(std::declval<const E>().stepper_begin(shape))
    +
    672 {
    +
    673 return static_cast<const E*>(m_ptr.get())->stepper_begin(shape);
    +
    674 }
    +
    675
    +
    676 template <class S>
    +
    677 auto stepper_end(const S& shape, layout_type l) const noexcept
    +
    678 -> decltype(std::declval<const E>().stepper_end(shape, l))
    +
    679 {
    +
    680 return static_cast<const E*>(m_ptr.get())->stepper_end(shape, l);
    +
    681 }
    +
    682
    +
    683 private:
    +
    684
    +
    685 std::shared_ptr<E> m_ptr;
    +
    686 };
    +
    +
    687
    +
    695 template <class E>
    +
    +
    696 inline xshared_expression<E>::xshared_expression(const std::shared_ptr<E>& ptr)
    +
    697 : m_ptr(ptr)
    +
    698 {
    +
    699 }
    +
    +
    700
    +
    705 template <class E>
    +
    +
    706 inline long xshared_expression<E>::use_count() const noexcept
    +
    707 {
    +
    708 return m_ptr.use_count();
    +
    709 }
    +
    +
    710
    +
    711 namespace detail
    +
    712 {
    +
    713 template <class E>
    +
    714 inline xshared_expression<E> make_xshared_impl(xsharable_expression<E>&& expr)
    +
    715 {
    +
    716 if (expr.p_shared == nullptr)
    +
    717 {
    +
    718 expr.p_shared = std::make_shared<E>(std::move(expr).derived_cast());
    +
    719 }
    +
    720 return xshared_expression<E>(expr.p_shared);
    +
    721 }
    +
    722 }
    +
    723
    +
    730 template <class E>
    +
    + +
    732 {
    +
    733 static_assert(
    +
    734 is_xsharable_expression<E>::value,
    +
    735 "make_shared requires E to inherit from xsharable_expression"
    +
    736 );
    +
    737 return detail::make_xshared_impl(std::move(expr.derived_cast()));
    +
    738 }
    +
    +
    739
    +
    747 template <class E>
    +
    +
    748 inline auto share(xexpression<E>& expr)
    +
    749 {
    +
    750 return make_xshared(std::move(expr));
    +
    751 }
    +
    +
    752
    +
    760 template <class E>
    +
    +
    761 inline auto share(xexpression<E>&& expr)
    +
    762 {
    +
    763 return make_xshared(std::move(expr));
    +
    764 }
    +
    +
    765
    +
    766#undef XTENSOR_FORWARD_METHOD
    +
    767
    +
    768}
    +
    769
    +
    770#endif
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    const derived_type & derived_cast() const &noexcept
    Returns a constant reference to the actual derived type of the xexpression.
    + + +
    Shared xexpressions.
    +
    xshared_expression(const std::shared_ptr< E > &ptr)
    Constructor for xshared expression (note: usually the free function make_xshared is recommended).
    +
    long use_count() const noexcept
    Return the number of times this expression is referenced.
    + +
    standard mathematical functions for xexpressions
    +
    auto share(xexpression< E > &expr)
    Helper function to create shared expression from any xexpression.
    +
    layout_type
    Definition xlayout.hpp:24
    + +
    xshared_expression< E > make_xshared(xexpression< E > &&expr)
    Helper function to create shared expression from any xexpression.
    + + + + + + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xexpression__holder_8hpp_source.html b/xexpression__holder_8hpp_source.html new file mode 100644 index 000000000..da6def754 --- /dev/null +++ b/xexpression__holder_8hpp_source.html @@ -0,0 +1,393 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xexpression_holder.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xexpression_holder.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_XEXPRESSION_HOLDER_HPP
    +
    11#define XTENSOR_XEXPRESSION_HOLDER_HPP
    +
    12
    +
    13#include <memory>
    +
    14
    +
    15#include <nlohmann/json.hpp>
    +
    16
    +
    17#include "../containers/xarray.hpp"
    +
    18#include "../core/xtensor_config.hpp"
    +
    19#include "../io/xjson.hpp"
    +
    20
    +
    21namespace xt
    +
    22{
    +
    23
    +
    24 namespace detail
    +
    25 {
    +
    26 class xexpression_holder_impl;
    +
    27
    +
    28 template <class CTE>
    +
    29 class xexpression_wrapper;
    +
    30 }
    +
    31
    +
    +
    32 class xexpression_holder // Value semantic
    +
    33 {
    +
    34 public:
    +
    35
    +
    36 using implementation_type = detail::xexpression_holder_impl;
    +
    37
    +
    38 xexpression_holder() = default;
    +
    39
    +
    40 template <class E>
    +
    41 xexpression_holder(E&& expr);
    +
    42
    +
    43 xexpression_holder(implementation_type* holder);
    +
    44 xexpression_holder(const xexpression_holder& holder);
    +
    45 xexpression_holder(xexpression_holder&& holder);
    +
    46
    +
    47 xexpression_holder& operator=(const xexpression_holder&);
    +
    48 xexpression_holder& operator=(xexpression_holder&&);
    +
    49
    +
    50 void swap(xexpression_holder&);
    +
    51
    +
    52 void to_json(nlohmann::json&) const;
    +
    53 void from_json(const nlohmann::json&);
    +
    54
    +
    55 private:
    +
    56
    +
    57 void init_pointer_from_json(const nlohmann::json&);
    +
    58 void check_holder() const;
    +
    59
    +
    60 std::unique_ptr<implementation_type> p_holder;
    +
    61 };
    +
    +
    62
    +
    63 /*************************************
    +
    64 * to_json and from_json declaration *
    +
    65 *************************************/
    +
    66
    +
    68 void to_json(nlohmann::json& j, const xexpression_holder& o);
    +
    69 void from_json(const nlohmann::json& j, xexpression_holder& o);
    +
    70
    +
    72
    +
    73 namespace detail
    +
    74 {
    +
    75 class xexpression_holder_impl // Entity semantic
    +
    76 {
    +
    77 public:
    +
    78
    +
    79 xexpression_holder_impl(xexpression_holder_impl&&) = delete;
    +
    80
    +
    81 xexpression_holder_impl& operator=(const xexpression_holder_impl&) = delete;
    +
    82 xexpression_holder_impl& operator=(xexpression_holder_impl&&) = delete;
    +
    83
    +
    84 virtual xexpression_holder_impl* clone() const = 0;
    +
    85 virtual void to_json(nlohmann::json&) const = 0;
    +
    86 virtual void from_json(const nlohmann::json&) = 0;
    +
    87 virtual ~xexpression_holder_impl() = default;
    +
    88
    +
    89 protected:
    +
    90
    +
    91 xexpression_holder_impl() = default;
    +
    92 xexpression_holder_impl(const xexpression_holder_impl&) = default;
    +
    93 };
    +
    94
    +
    95 template <class CTE>
    +
    96 class xexpression_wrapper : public xexpression_holder_impl
    +
    97 {
    +
    98 public:
    +
    99
    +
    100 template <class E>
    +
    101 xexpression_wrapper(E&& expr);
    +
    102
    +
    103 xexpression_wrapper* clone() const;
    +
    104
    +
    105 void to_json(nlohmann::json&) const;
    +
    106 void from_json(const nlohmann::json&);
    +
    107
    +
    108 ~xexpression_wrapper() = default;
    +
    109
    +
    110 protected:
    +
    111
    +
    112 xexpression_wrapper(const xexpression_wrapper&);
    +
    113
    +
    114 private:
    +
    115
    +
    116 CTE m_expression;
    +
    117 };
    +
    118 }
    +
    119
    +
    120 template <class E>
    +
    121 inline xexpression_holder::xexpression_holder(E&& expr)
    +
    122 : p_holder(new detail::xexpression_wrapper<E>(std::forward<E>(expr)))
    +
    123 {
    +
    124 }
    +
    125
    +
    126 inline xexpression_holder::xexpression_holder(implementation_type* holder)
    +
    127 : p_holder(holder)
    +
    128 {
    +
    129 }
    +
    130
    +
    131 inline xexpression_holder::xexpression_holder(const xexpression_holder& holder)
    +
    132 : p_holder(holder.p_holder->clone())
    +
    133 {
    +
    134 }
    +
    135
    +
    136 inline xexpression_holder::xexpression_holder(xexpression_holder&& holder)
    +
    137 : p_holder(std::move(holder.p_holder))
    +
    138 {
    +
    139 }
    +
    140
    +
    141 inline xexpression_holder& xexpression_holder::operator=(const xexpression_holder& holder)
    +
    142 {
    +
    143 xexpression_holder tmp(holder);
    +
    144 swap(tmp);
    +
    145 return *this;
    +
    146 }
    +
    147
    +
    148 inline xexpression_holder& xexpression_holder::operator=(xexpression_holder&& holder)
    +
    149 {
    +
    150 swap(holder);
    +
    151 return *this;
    +
    152 }
    +
    153
    +
    154 inline void xexpression_holder::swap(xexpression_holder& holder)
    +
    155 {
    +
    156 std::swap(p_holder, holder.p_holder);
    +
    157 }
    +
    158
    +
    159 inline void xexpression_holder::to_json(nlohmann::json& j) const
    +
    160 {
    +
    161 if (p_holder == nullptr)
    +
    162 {
    +
    163 return;
    +
    164 }
    +
    165 p_holder->to_json(j);
    +
    166 }
    +
    167
    +
    168 inline void xexpression_holder::from_json(const nlohmann::json& j)
    +
    169 {
    +
    170 if (!j.is_array())
    +
    171 {
    +
    172 XTENSOR_THROW(std::runtime_error, "Received a JSON that does not contain a tensor");
    +
    173 }
    +
    174
    +
    175 if (p_holder == nullptr)
    +
    176 {
    +
    177 init_pointer_from_json(j);
    +
    178 }
    +
    179 p_holder->from_json(j);
    +
    180 }
    +
    181
    +
    182 inline void xexpression_holder::init_pointer_from_json(const nlohmann::json& j)
    +
    183 {
    +
    184 if (j.is_array())
    +
    185 {
    +
    186 return init_pointer_from_json(j[0]);
    +
    187 }
    +
    188
    +
    189 if (j.is_number())
    +
    190 {
    +
    191 xt::xarray<double> empty_arr;
    +
    192 p_holder.reset(new detail::xexpression_wrapper<xt::xarray<double>>(std::move(empty_arr)));
    +
    193 }
    +
    194
    +
    195 if (j.is_boolean())
    +
    196 {
    +
    197 xt::xarray<bool> empty_arr;
    +
    198 p_holder.reset(new detail::xexpression_wrapper<xt::xarray<bool>>(std::move(empty_arr)));
    +
    199 }
    +
    200
    +
    201 if (j.is_string())
    +
    202 {
    +
    203 xt::xarray<std::string> empty_arr;
    +
    204 p_holder.reset(new detail::xexpression_wrapper<xt::xarray<std::string>>(std::move(empty_arr)));
    +
    205 }
    +
    206
    +
    207 XTENSOR_THROW(std::runtime_error, "Received a JSON with a tensor that contains unsupported data type");
    +
    208 }
    +
    209
    +
    210 inline void xexpression_holder::check_holder() const
    +
    211 {
    +
    212 if (p_holder == nullptr)
    +
    213 {
    +
    214 XTENSOR_THROW(std::runtime_error, "The holder does not contain an expression");
    +
    215 }
    +
    216 }
    +
    217
    +
    218 /****************************************
    +
    219 * to_json and from_json implementation *
    +
    220 ****************************************/
    +
    221
    +
    223 inline void to_json(nlohmann::json& j, const xexpression_holder& o)
    +
    224 {
    +
    225 o.to_json(j);
    +
    226 }
    +
    227
    +
    228 inline void from_json(const nlohmann::json& j, xexpression_holder& o)
    +
    229 {
    +
    230 o.from_json(j);
    +
    231 }
    +
    232
    +
    234
    +
    235 namespace detail
    +
    236 {
    +
    237 template <class CTE>
    +
    238 template <class E>
    +
    239 inline xexpression_wrapper<CTE>::xexpression_wrapper(E&& expr)
    +
    240 : xexpression_holder_impl()
    +
    241 , m_expression(std::forward<E>(expr))
    +
    242 {
    +
    243 }
    +
    244
    +
    245 template <class CTE>
    +
    246 inline xexpression_wrapper<CTE>* xexpression_wrapper<CTE>::clone() const
    +
    247 {
    +
    248 return new xexpression_wrapper<CTE>(*this);
    +
    249 }
    +
    250
    +
    251 template <class CTE>
    +
    252 inline void xexpression_wrapper<CTE>::to_json(nlohmann::json& j) const
    +
    253 {
    +
    254 ::xt::to_json(j, m_expression);
    +
    255 }
    +
    256
    +
    257 template <class CTE>
    +
    258 inline void xexpression_wrapper<CTE>::from_json(const nlohmann::json& j)
    +
    259 {
    +
    260 ::xt::from_json(j, m_expression);
    +
    261 }
    +
    262
    +
    263 template <class CTE>
    +
    264 inline xexpression_wrapper<CTE>::xexpression_wrapper(const xexpression_wrapper& wrapper)
    +
    265 : xexpression_holder_impl()
    +
    266 , m_expression(wrapper.m_expression)
    +
    267 {
    +
    268 }
    +
    269 }
    +
    270}
    +
    271
    +
    272#endif
    + +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    enable_xcontainer_semantics< E > from_json(const nlohmann::basic_json< M > &, E &)
    JSON deserialization of a xtensor expression with a container or a view semantics.
    Definition xjson.hpp:156
    +
    enable_xexpression< E > to_json(nlohmann::basic_json< M > &, const E &)
    JSON serialization of an xtensor expression.
    Definition xjson.hpp:133
    +
    +
    + + + + diff --git a/xexpression__traits_8hpp_source.html b/xexpression__traits_8hpp_source.html new file mode 100644 index 000000000..0a02222d9 --- /dev/null +++ b/xexpression__traits_8hpp_source.html @@ -0,0 +1,350 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xexpression_traits.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xexpression_traits.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_EXPRESSION_TRAITS_HPP
    +
    11#define XTENSOR_EXPRESSION_TRAITS_HPP
    +
    12
    +
    13#include "../core/xexpression.hpp"
    +
    14
    +
    15namespace xt
    +
    16{
    +
    17 /***************
    +
    18 * xvalue_type *
    +
    19 ***************/
    +
    20
    +
    21 namespace detail
    +
    22 {
    +
    23 template <class E, class enable = void>
    +
    24 struct xvalue_type_impl
    +
    25 {
    +
    26 using type = E;
    +
    27 };
    +
    28
    +
    29 template <class E>
    +
    30 struct xvalue_type_impl<E, std::enable_if_t<is_xexpression<E>::value>>
    +
    31 {
    +
    32 using type = typename E::value_type;
    +
    33 };
    +
    34 }
    +
    35
    +
    36 template <class E>
    +
    37 using xvalue_type = detail::xvalue_type_impl<E>;
    +
    38
    +
    39 template <class E>
    +
    40 using xvalue_type_t = typename xvalue_type<E>::type;
    +
    41
    +
    42 /*********************
    +
    43 * common_value_type *
    +
    44 *********************/
    +
    45
    +
    46 template <class... C>
    +
    + +
    48 {
    +
    49 using type = std::common_type_t<typename std::decay_t<C>::value_type...>;
    +
    50 };
    +
    +
    51
    +
    52 template <class... C>
    +
    53 using common_value_type_t = typename common_value_type<C...>::type;
    +
    54
    +
    55 /********************
    +
    56 * common_size_type *
    +
    57 ********************/
    +
    58
    +
    59 template <class... Args>
    +
    + +
    61 {
    +
    62 using type = std::common_type_t<typename Args::size_type...>;
    +
    63 };
    +
    +
    64
    +
    65 template <>
    +
    + +
    67 {
    +
    68 using type = std::size_t;
    +
    69 };
    +
    +
    70
    +
    71 template <class... Args>
    +
    72 using common_size_type_t = typename common_size_type<Args...>::type;
    +
    73
    +
    74 /**************************
    +
    75 * common_difference type *
    +
    76 **************************/
    +
    77
    +
    78 template <class... Args>
    +
    + +
    80 {
    +
    81 using type = std::common_type_t<typename Args::difference_type...>;
    +
    82 };
    +
    +
    83
    +
    84 template <>
    +
    + +
    86 {
    +
    87 using type = std::ptrdiff_t;
    +
    88 };
    +
    +
    89
    +
    90 template <class... Args>
    +
    91 using common_difference_type_t = typename common_difference_type<Args...>::type;
    +
    92
    +
    93 /******************
    +
    94 * temporary_type *
    +
    95 ******************/
    +
    96
    +
    97 namespace detail
    +
    98 {
    +
    99 template <class S>
    +
    100 struct xtype_for_shape
    +
    101 {
    +
    102 template <class T, layout_type L>
    +
    103 using type = xarray<T, L>;
    +
    104 };
    +
    105
    +
    106// Workaround for rebind_container problems when C++17 feature is enabled
    +
    107#ifdef __cpp_template_template_args
    +
    108 template <template <class, std::size_t, class, bool> class S, class X, std::size_t N, class A, bool Init>
    +
    109 struct xtype_for_shape<S<X, N, A, Init>>
    +
    110 {
    +
    111 template <class T, layout_type L>
    +
    112 using type = xarray<T, L>;
    +
    113 };
    +
    114#endif // __cpp_template_template_args
    +
    115
    +
    116 template <template <class, std::size_t> class S, class X, std::size_t N>
    +
    117 struct xtype_for_shape<S<X, N>>
    +
    118 {
    +
    119 template <class T, layout_type L>
    +
    120 using type = xtensor<T, N, L>;
    +
    121 };
    +
    122
    +
    123 template <template <std::size_t...> class S, std::size_t... X>
    +
    124 struct xtype_for_shape<S<X...>>
    +
    125 {
    +
    126 template <class T, layout_type L>
    +
    127 using type = xtensor_fixed<T, xshape<X...>, L>;
    +
    128 };
    +
    129 }
    +
    130
    +
    131 template <class Tag, class T>
    + +
    133
    +
    134 template <class T>
    +
    + +
    136 {
    +
    137 using I = std::decay_t<T>;
    +
    138 using shape_type = typename I::shape_type;
    +
    139 using value_type = typename I::value_type;
    +
    140 static constexpr layout_type static_layout = XTENSOR_DEFAULT_LAYOUT;
    +
    141 using type = typename detail::xtype_for_shape<shape_type>::template type<value_type, static_layout>;
    +
    142 };
    +
    +
    143
    +
    144 template <class T, class = void>
    +
    + +
    146 {
    +
    147 using type = typename temporary_type_from_tag<xexpression_tag_t<T>, T>::type;
    +
    148 };
    +
    +
    149
    +
    150 template <class T>
    +
    +
    151 struct temporary_type<T, void_t<typename std::decay_t<T>::temporary_type>>
    +
    152 {
    +
    153 using type = typename std::decay_t<T>::temporary_type;
    +
    154 };
    +
    +
    155
    +
    156 template <class T>
    +
    157 using temporary_type_t = typename temporary_type<T>::type;
    +
    158
    +
    159 /**********************
    +
    160 * common_tensor_type *
    +
    161 **********************/
    +
    162
    +
    163 namespace detail
    +
    164 {
    +
    165 template <class... C>
    +
    166 struct common_tensor_type_impl
    +
    167 {
    +
    168 static constexpr layout_type static_layout = compute_layout(std::decay_t<C>::static_layout...);
    +
    169 using value_type = common_value_type_t<C...>;
    +
    170 using shape_type = promote_shape_t<typename C::shape_type...>;
    +
    171 using type = typename xtype_for_shape<shape_type>::template type<value_type, static_layout>;
    +
    172 };
    +
    173 }
    +
    174
    +
    175 template <class... C>
    +
    +
    176 struct common_tensor_type : detail::common_tensor_type_impl<std::decay_t<C>...>
    +
    177 {
    +
    178 };
    +
    +
    179
    +
    180 template <class... C>
    +
    181 using common_tensor_type_t = typename common_tensor_type<C...>::type;
    +
    182
    +
    183 /**************************
    +
    184 * big_promote_value_type *
    +
    185 **************************/
    +
    186
    +
    187 template <class E>
    +
    + +
    189 {
    +
    190 using type = xtl::big_promote_type_t<typename std::decay_t<E>::value_type>;
    +
    191 };
    +
    +
    192
    +
    193 template <class E>
    +
    194 using big_promote_value_type_t = typename big_promote_value_type<E>::type;
    +
    195}
    +
    196
    +
    197#endif
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    constexpr layout_type compute_layout(Args... args) noexcept
    Implementation of the following logical table:
    Definition xlayout.hpp:88
    +
    layout_type
    Definition xlayout.hpp:24
    +
    xfixed_container< T, FSH, L, Sharable > xtensor_fixed
    Alias template on xfixed_container with default parameters for layout type.
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    fixed_shape< N... > xshape
    Alias template for fixed_shape allows for a shorter template shape definition in xtensor_fixed.
    + + + + + + + + +
    +
    + + + + diff --git a/xfft_8hpp_source.html b/xfft_8hpp_source.html new file mode 100644 index 000000000..81c9ed074 --- /dev/null +++ b/xfft_8hpp_source.html @@ -0,0 +1,355 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xfft.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xfft.hpp
    +
    +
    +
    1#ifdef XTENSOR_USE_TBB
    +
    2#include <oneapi/tbb.h>
    +
    3#endif
    +
    4#include <stdexcept>
    +
    5
    +
    6#include <xtl/xcomplex.hpp>
    +
    7
    +
    8#include "../containers/xarray.hpp"
    +
    9#include "../core/xmath.hpp"
    +
    10#include "../core/xnoalias.hpp"
    +
    11#include "../generators/xbuilder.hpp"
    +
    12#include "../misc/xcomplex.hpp"
    +
    13#include "../views/xaxis_slice_iterator.hpp"
    +
    14#include "../views/xview.hpp"
    +
    15#include "./xtl_concepts.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19 namespace fft
    +
    20 {
    +
    21 namespace detail
    +
    22 {
    +
    23 template <xtl::complex_concept E>
    +
    24 inline auto radix2(E&& e)
    +
    25 {
    +
    26 using namespace xt::placeholders;
    +
    27 using namespace std::complex_literals;
    +
    28 using value_type = typename std::decay_t<E>::value_type;
    +
    29 using precision = typename value_type::value_type;
    +
    30 auto N = e.size();
    +
    31 const bool powerOfTwo = !(N == 0) && !(N & (N - 1));
    +
    32 // check for power of 2
    +
    33 if (!powerOfTwo || N == 0)
    +
    34 {
    +
    35 // TODO: Replace implementation with dft
    +
    36 XTENSOR_THROW(std::runtime_error, "FFT Implementation requires power of 2");
    +
    37 }
    +
    38 auto pi = xt::numeric_constants<precision>::PI;
    + +
    40 if (N <= 1)
    +
    41 {
    +
    42 return ev;
    +
    43 }
    +
    44 else
    +
    45 {
    +
    46#ifdef XTENSOR_USE_TBB
    + + +
    49 oneapi::tbb::parallel_invoke(
    +
    50 [&]
    +
    51 {
    +
    52 even = radix2(xt::view(ev, xt::range(0, _, 2)));
    +
    53 },
    +
    54 [&]
    +
    55 {
    +
    56 odd = radix2(xt::view(ev, xt::range(1, _, 2)));
    +
    57 }
    +
    58 );
    +
    59#else
    +
    60 auto even = radix2(xt::view(ev, xt::range(0, _, 2)));
    +
    61 auto odd = radix2(xt::view(ev, xt::range(1, _, 2)));
    +
    62#endif
    +
    63
    +
    64 auto range = xt::arange<double>(N / 2);
    +
    65 auto exp = xt::exp(static_cast<value_type>(-2i) * pi * range / N);
    +
    66 auto t = exp * odd;
    +
    67 auto first_half = even + t;
    +
    68 auto second_half = even - t;
    +
    69 // TODO: should be a call to stack if performance was improved
    +
    70 auto spectrum = xt::xtensor<value_type, 1>::from_shape({N});
    +
    71 xt::view(spectrum, xt::range(0, N / 2)) = first_half;
    +
    72 xt::view(spectrum, xt::range(N / 2, N)) = second_half;
    +
    73 return spectrum;
    +
    74 }
    +
    75 }
    +
    76
    +
    77 template <typename E>
    +
    78 auto transform_bluestein(E&& data)
    +
    79 {
    +
    80 using value_type = typename std::decay_t<E>::value_type;
    +
    81 using precision = typename value_type::value_type;
    +
    82
    +
    83 // Find a power-of-2 convolution length m such that m >= n * 2 + 1
    +
    84 const std::size_t n = data.size();
    +
    85 size_t m = std::ceil(std::log2(n * 2 + 1));
    +
    86 m = std::pow(2, m);
    +
    87
    +
    88 // Trignometric table
    +
    89 auto exp_table = xt::xtensor<std::complex<precision>, 1>::from_shape({n});
    +
    90 xt::xtensor<std::size_t, 1> i = xt::pow(xt::linspace<std::size_t>(0, n - 1, n), 2);
    +
    91 i %= (n * 2);
    +
    92
    +
    93 auto angles = xt::eval(precision{3.141592653589793238463} * i / n);
    +
    94 auto j = std::complex<precision>(0, 1);
    +
    95 exp_table = xt::exp(-angles * j);
    +
    96
    +
    97 // Temporary vectors and preprocessing
    + +
    99 xt::view(av, xt::range(0, n)) = data * exp_table;
    +
    100
    +
    101
    +
    102 auto bv = xt::empty<std::complex<precision>>({m});
    +
    103 xt::view(bv, xt::range(0, n)) = ::xt::conj(exp_table);
    +
    104 xt::view(bv, xt::range(-n + 1, xt::placeholders::_)) = xt::view(
    +
    105 ::xt::conj(xt::flip(exp_table)),
    +
    106 xt::range(xt::placeholders::_, -1)
    +
    107 );
    +
    108
    +
    109 // Convolution
    +
    110 auto xv = radix2(av);
    +
    111 auto yv = radix2(bv);
    +
    112 auto spectrum_k = xv * yv;
    +
    113 auto complex_args = xt::conj(spectrum_k);
    +
    114 auto fft_res = radix2(complex_args);
    +
    115 auto cv = xt::conj(fft_res) / m;
    +
    116
    +
    117 return xt::eval(xt::view(cv, xt::range(0, n)) * exp_table);
    +
    118 }
    +
    119 } // namespace detail
    +
    120
    +
    127 template <class E>
    +
    128 inline auto fft(E&& e, std::ptrdiff_t axis = -1)
    +
    129 {
    +
    130 using value_type = typename std::decay<E>::type::value_type;
    +
    131 if constexpr (xtl::is_complex<typename std::decay<E>::type::value_type>::value)
    +
    132 {
    +
    133 using precision = typename value_type::value_type;
    +
    134 const auto saxis = xt::normalize_axis(e.dimension(), axis);
    +
    135 const size_t N = e.shape(saxis);
    +
    136 const bool powerOfTwo = !(N == 0) && !(N & (N - 1));
    + +
    138 auto begin = xt::axis_slice_begin(out, saxis);
    +
    139 auto end = xt::axis_slice_end(out, saxis);
    +
    140 for (auto iter = begin; iter != end; iter++)
    +
    141 {
    +
    142 if (powerOfTwo)
    +
    143 {
    +
    144 xt::noalias(*iter) = detail::radix2(*iter);
    +
    145 }
    +
    146 else
    +
    147 {
    +
    148 xt::noalias(*iter) = detail::transform_bluestein(*iter);
    +
    149 }
    +
    150 }
    +
    151 return out;
    +
    152 }
    +
    153 else
    +
    154 {
    +
    155 return fft(xt::cast<std::complex<value_type>>(e), axis);
    +
    156 }
    +
    157 }
    +
    158
    +
    159 template <class E>
    +
    160 inline auto ifft(E&& e, std::ptrdiff_t axis = -1)
    +
    161 {
    +
    162 if constexpr (xtl::is_complex<typename std::decay<E>::type::value_type>::value)
    +
    163 {
    +
    164 // check the length of the data on that axis
    +
    165 const std::size_t n = e.shape(axis);
    +
    166 if (n == 0)
    +
    167 {
    +
    168 XTENSOR_THROW(std::runtime_error, "Cannot take the iFFT along an empty dimention");
    +
    169 }
    +
    170 auto complex_args = xt::conj(e);
    +
    171 auto fft_res = xt::fft::fft(complex_args, axis);
    +
    172 fft_res = xt::conj(fft_res);
    +
    173 return fft_res;
    +
    174 }
    +
    175 else
    +
    176 {
    +
    177 using value_type = typename std::decay<E>::type::value_type;
    +
    178 return ifft(xt::cast<std::complex<value_type>>(e), axis);
    +
    179 }
    +
    180 }
    +
    181
    +
    182 /*
    +
    183 * @brief performs a circular fft convolution xvec and yvec must
    +
    184 * be the same shape.
    +
    185 * @param xvec first array of the convolution
    +
    186 * @param yvec second array of the convolution
    +
    187 * @param axis axis along which to perform the convolution
    +
    188 */
    +
    189 template <typename E1, typename E2>
    +
    190 auto convolve(E1&& xvec, E2&& yvec, std::ptrdiff_t axis = -1)
    +
    191 {
    +
    192 // we could broadcast but that could get complicated???
    +
    193 if (xvec.dimension() != yvec.dimension())
    +
    194 {
    +
    195 XTENSOR_THROW(std::runtime_error, "Mismatched dimentions");
    +
    196 }
    +
    197
    +
    198 auto saxis = xt::normalize_axis(xvec.dimension(), axis);
    +
    199 if (xvec.shape(saxis) != yvec.shape(saxis))
    +
    200 {
    +
    201 XTENSOR_THROW(std::runtime_error, "Mismatched lengths along slice axis");
    +
    202 }
    +
    203
    +
    204 const std::size_t n = xvec.shape(saxis);
    +
    205
    +
    206 auto xv = fft(xvec, axis);
    +
    207 auto yv = fft(yvec, axis);
    +
    208
    +
    209 auto begin_x = xt::axis_slice_begin(xv, saxis);
    +
    210 auto end_x = xt::axis_slice_end(xv, saxis);
    +
    211 auto iter_y = xt::axis_slice_begin(yv, saxis);
    +
    212
    +
    213 for (auto iter = begin_x; iter != end_x; iter++)
    +
    214 {
    +
    215 (*iter) = (*iter_y++) * (*iter);
    +
    216 }
    +
    217
    +
    218 auto outvec = ifft(xv, axis);
    +
    219
    +
    220 // Scaling (because this FFT implementation omits it)
    +
    221 outvec = outvec / n;
    +
    222
    +
    223 return outvec;
    +
    224 }
    +
    225
    +
    226 }
    +
    227} // namespace xt::fft
    +
    size_type size() const noexcept
    Returns the number of element in the container.
    +
    auto cast(E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
    Element-wise static_cast.
    +
    auto exp(E &&e) noexcept -> detail::xfunction_type_t< math::exp_fun, E >
    Natural exponential function.
    Definition xmath.hpp:900
    +
    auto pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
    Power function.
    Definition xmath.hpp:1015
    +
    auto conj(E &&e) noexcept
    Return an xt::xfunction evaluating to the complex conjugate of the given expression.
    Definition xcomplex.hpp:207
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    auto flip(E &&e)
    Reverse the order of elements in an xexpression along every axis.
    +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    auto axis_slice_begin(E &&e)
    Returns an iterator to the first element of the expression for axis 0.
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    +
    auto axis_slice_end(E &&e)
    Returns an iterator to the element following the last element of the expression for axis 0.
    +
    xarray< T, L > empty(const S &shape)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of with value_type T...
    Definition xbuilder.hpp:89
    +
    +
    + + + + diff --git a/xfixed_8hpp_source.html b/xfixed_8hpp_source.html new file mode 100644 index 000000000..9bc68d7a0 --- /dev/null +++ b/xfixed_8hpp_source.html @@ -0,0 +1,1034 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xfixed.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xfixed.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_FIXED_HPP
    +
    11#define XTENSOR_FIXED_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <utility>
    +
    17
    +
    18#include <xtl/xsequence.hpp>
    +
    19
    +
    20#include "../containers/xcontainer.hpp"
    +
    21#include "../containers/xstorage.hpp"
    +
    22#include "../core/xsemantic.hpp"
    +
    23#include "../core/xstrides.hpp"
    +
    24#include "../core/xtensor_config.hpp"
    +
    25
    +
    26namespace xtl
    +
    27{
    +
    28 namespace detail
    +
    29 {
    +
    30 template <class T, std::size_t N>
    +
    31 struct sequence_builder<xt::const_array<T, N>>
    +
    32 {
    +
    33 using sequence_type = xt::const_array<T, N>;
    +
    34 using value_type = typename sequence_type::value_type;
    +
    35 using size_type = typename sequence_type::size_type;
    +
    36
    +
    37 inline static sequence_type make(size_type /*size*/, value_type /*v*/)
    +
    38 {
    +
    39 return sequence_type();
    +
    40 }
    +
    41 };
    +
    42 }
    +
    43}
    +
    44
    +
    45namespace xt
    +
    46{
    +
    47
    +
    48 /**********************
    +
    49 * xfixed declaration *
    +
    50 **********************/
    +
    51
    +
    52 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    53 class xfixed_container;
    +
    54
    +
    55 namespace detail
    +
    56 {
    +
    57 /**************************************************************************************
    +
    58 The following is something we can currently only dream about -- for when we drop
    +
    59 support for a lot of the old compilers (e.g. GCC 4.9, MSVC 2017 ;)
    +
    60
    +
    61 template <class T>
    +
    62 constexpr std::size_t calculate_stride(T& shape, std::size_t idx, layout_type L)
    +
    63 {
    +
    64 if (shape[idx] == 1)
    +
    65 {
    +
    66 return std::size_t(0);
    +
    67 }
    +
    68
    +
    69 std::size_t data_size = 1;
    +
    70 std::size_t stride = 1;
    +
    71 if (L == layout_type::row_major)
    +
    72 {
    +
    73 // because we have a integer sequence that counts
    +
    74 // from 0 to sz - 1, we need to "invert" idx here
    +
    75 idx = shape.size() - idx;
    +
    76 for (std::size_t i = idx; i != 0; --i)
    +
    77 {
    +
    78 stride = data_size;
    +
    79 data_size = stride * shape[i - 1];
    +
    80 }
    +
    81 }
    +
    82 else
    +
    83 {
    +
    84 for (std::size_t i = 0; i < idx + 1; ++i)
    +
    85 {
    +
    86 stride = data_size;
    +
    87 data_size = stride * shape[i];
    +
    88 }
    +
    89 }
    +
    90 return stride;
    +
    91 }
    +
    92
    +
    93 *****************************************************************************************/
    +
    94
    +
    95 template <layout_type L, std::size_t I, std::size_t... X>
    +
    96 struct calculate_stride;
    +
    97
    +
    98 template <std::size_t I, std::size_t Y, std::size_t... X>
    +
    99 struct calculate_stride<layout_type::column_major, I, Y, X...>
    +
    100 {
    +
    101 static constexpr std::ptrdiff_t value = Y
    +
    102 * calculate_stride<layout_type::column_major, I - 1, X...>::value;
    +
    103 };
    +
    104
    +
    105 template <std::size_t Y, std::size_t... X>
    +
    106 struct calculate_stride<layout_type::column_major, 0, Y, X...>
    +
    107 {
    +
    108 static constexpr std::ptrdiff_t value = 1;
    +
    109 };
    +
    110
    +
    111 template <std::size_t I, std::size_t... X>
    +
    112 struct calculate_stride_row_major
    +
    113 {
    +
    114 static constexpr std::ptrdiff_t value = at<sizeof...(X) - I, X...>::value
    +
    115 * calculate_stride_row_major<I - 1, X...>::value;
    +
    116 };
    +
    117
    +
    118 template <std::size_t... X>
    +
    119 struct calculate_stride_row_major<0, X...>
    +
    120 {
    +
    121 static constexpr std::ptrdiff_t value = 1;
    +
    122 };
    +
    123
    +
    124 template <std::size_t I, std::size_t... X>
    +
    125 struct calculate_stride<layout_type::row_major, I, X...>
    +
    126 {
    +
    127 static constexpr std::ptrdiff_t value = calculate_stride_row_major<sizeof...(X) - I - 1, X...>::value;
    +
    128 };
    +
    129
    +
    130 namespace workaround
    +
    131 {
    +
    132 template <layout_type L, size_t I, class SEQ>
    +
    133 struct computed_strides;
    +
    134
    +
    135 template <layout_type L, size_t I, size_t... X>
    +
    136 struct computed_strides<L, I, std::index_sequence<X...>>
    +
    137 {
    +
    138 static constexpr std::ptrdiff_t value = calculate_stride<L, I, X...>::value;
    +
    139 };
    +
    140
    +
    141 template <layout_type L, size_t I, class SEQ>
    +
    142 constexpr std::ptrdiff_t get_computed_strides(bool cond)
    +
    143 {
    +
    144 return cond ? 0 : computed_strides<L, I, SEQ>::value;
    +
    145 }
    +
    146 }
    +
    147
    +
    148 template <layout_type L, class R, std::size_t... X, std::size_t... I>
    +
    149 constexpr R get_strides_impl(const xt::fixed_shape<X...>& shape, std::index_sequence<I...>)
    +
    150 {
    +
    151 static_assert(
    + +
    153 "Layout not supported for fixed array"
    +
    154 );
    +
    155#if (_MSC_VER >= 1910)
    +
    156 using temp_type = std::index_sequence<X...>;
    +
    157 return R({workaround::get_computed_strides<L, I, temp_type>(shape[I] == 1)...});
    +
    158#else
    +
    159 return R({shape[I] == 1 ? 0 : calculate_stride<L, I, X...>::value...});
    +
    160#endif
    +
    161 }
    +
    162
    +
    163 template <class S, class T, std::size_t... I>
    +
    164 constexpr T get_backstrides_impl(const S& shape, const T& strides, std::index_sequence<I...>)
    +
    165 {
    +
    166 return T({(strides[I] * std::ptrdiff_t(shape[I] - 1))...});
    +
    167 }
    +
    168
    +
    169 template <std::size_t... X>
    +
    170 struct fixed_compute_size_impl;
    +
    171
    +
    172 template <std::size_t Y, std::size_t... X>
    +
    173 struct fixed_compute_size_impl<Y, X...>
    +
    174 {
    +
    175 static constexpr std::size_t value = Y * fixed_compute_size_impl<X...>::value;
    +
    176 };
    +
    177
    +
    178 template <std::size_t X>
    +
    179 struct fixed_compute_size_impl<X>
    +
    180 {
    +
    181 static constexpr std::size_t value = X;
    +
    182 };
    +
    183
    +
    184 template <>
    +
    185 struct fixed_compute_size_impl<>
    +
    186 {
    +
    187 // support for 0D xtensor fixed (empty shape = xshape<>)
    +
    188 static constexpr std::size_t value = 1;
    +
    189 };
    +
    190
    +
    191 // TODO unify with constexpr compute_size when dropping MSVC 2015
    +
    192 template <class T>
    +
    193 struct fixed_compute_size;
    +
    194
    +
    195 template <std::size_t... X>
    +
    196 struct fixed_compute_size<xt::fixed_shape<X...>>
    +
    197 {
    +
    198 static constexpr std::size_t value = fixed_compute_size_impl<X...>::value;
    +
    199 };
    +
    200
    +
    201 template <class V, std::size_t... X>
    +
    202 struct get_init_type_impl;
    +
    203
    +
    204 template <class V, std::size_t Y>
    +
    205 struct get_init_type_impl<V, Y>
    +
    206 {
    +
    207 using type = V[Y];
    +
    208 };
    +
    209
    +
    210 template <class V>
    +
    211 struct get_init_type_impl<V>
    +
    212 {
    +
    213 using type = V[1];
    +
    214 };
    +
    215
    +
    216 template <class V, std::size_t Y, std::size_t... X>
    +
    217 struct get_init_type_impl<V, Y, X...>
    +
    218 {
    +
    219 using tmp_type = typename get_init_type_impl<V, X...>::type;
    +
    220 using type = tmp_type[Y];
    +
    221 };
    +
    222 }
    +
    223
    +
    224 template <layout_type L, class R, std::size_t... X>
    +
    225 constexpr R get_strides(const fixed_shape<X...>& shape) noexcept
    +
    226 {
    +
    227 return detail::get_strides_impl<L, R>(shape, std::make_index_sequence<sizeof...(X)>{});
    +
    228 }
    +
    229
    +
    230 template <class S, class T>
    +
    231 constexpr T get_backstrides(const S& shape, const T& strides) noexcept
    +
    232 {
    +
    233 return detail::get_backstrides_impl(shape, strides, std::make_index_sequence<std::tuple_size<T>::value>{});
    +
    234 }
    +
    235
    +
    236 template <class V, class S>
    + +
    238
    +
    239 template <class V, std::size_t... X>
    +
    +
    240 struct get_init_type<V, fixed_shape<X...>>
    +
    241 {
    +
    242 using type = typename detail::get_init_type_impl<V, X...>::type;
    +
    243 };
    +
    +
    244
    +
    245 template <class V, class S>
    +
    246 using get_init_type_t = typename get_init_type<V, S>::type;
    +
    247
    +
    248 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    +
    249 struct xcontainer_inner_types<xfixed_container<ET, S, L, SH, Tag>>
    +
    250 {
    +
    251 using shape_type = S;
    +
    252 using inner_shape_type = typename S::cast_type;
    +
    253 using strides_type = get_strides_t<inner_shape_type>;
    +
    254 using inner_strides_type = strides_type;
    +
    255 using backstrides_type = inner_strides_type;
    +
    256 using inner_backstrides_type = backstrides_type;
    +
    257
    +
    258 // NOTE: 0D (S::size() == 0) results in storage for 1 element (scalar)
    +
    259#if defined(_MSC_VER) && _MSC_VER < 1910 && !defined(_WIN64)
    +
    260 // WORKAROUND FOR MSVC 2015 32 bit, fallback to unaligned container for 0D scalar case
    +
    261 using storage_type = std::array<ET, detail::fixed_compute_size<S>::value>;
    +
    262#else
    + +
    264#endif
    +
    265
    +
    266 using reference = typename storage_type::reference;
    +
    267 using const_reference = typename storage_type::const_reference;
    +
    268 using size_type = typename storage_type::size_type;
    +
    269 using temporary_type = xfixed_container<ET, S, L, SH, Tag>;
    +
    270 static constexpr layout_type layout = L;
    +
    271 };
    +
    +
    272
    +
    273 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    +
    274 struct xiterable_inner_types<xfixed_container<ET, S, L, SH, Tag>>
    +
    275 : xcontainer_iterable_types<xfixed_container<ET, S, L, SH, Tag>>
    +
    276 {
    +
    277 };
    +
    +
    278
    +
    294 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    +
    295 class xfixed_container : public xcontainer<xfixed_container<ET, S, L, SH, Tag>>,
    +
    296 public xcontainer_semantic<xfixed_container<ET, S, L, SH, Tag>>
    +
    297 {
    +
    298 public:
    +
    299
    +
    300 using self_type = xfixed_container<ET, S, L, SH, Tag>;
    +
    301 using base_type = xcontainer<self_type>;
    +
    302 using semantic_base = xcontainer_semantic<self_type>;
    +
    303
    +
    304 using storage_type = typename base_type::storage_type;
    +
    305 using value_type = typename base_type::value_type;
    +
    306 using reference = typename base_type::reference;
    +
    307 using const_reference = typename base_type::const_reference;
    +
    308 using pointer = typename base_type::pointer;
    +
    309 using const_pointer = typename base_type::const_pointer;
    +
    310 using shape_type = typename base_type::shape_type;
    +
    311 using inner_shape_type = typename base_type::inner_shape_type;
    +
    312 using strides_type = typename base_type::strides_type;
    +
    313 using backstrides_type = typename base_type::backstrides_type;
    +
    314 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    315 using inner_strides_type = typename base_type::inner_strides_type;
    +
    316 using temporary_type = typename semantic_base::temporary_type;
    +
    317 using expression_tag = Tag;
    +
    318
    +
    319 static constexpr std::size_t N = std::tuple_size<shape_type>::value;
    +
    320 static constexpr std::size_t rank = N;
    +
    321
    +
    322 xfixed_container() = default;
    +
    323 xfixed_container(const value_type& v);
    +
    324 explicit xfixed_container(const inner_shape_type& shape, layout_type l = L);
    +
    325 explicit xfixed_container(const inner_shape_type& shape, value_type v, layout_type l = L);
    +
    326
    +
    327 template <class IX = std::integral_constant<std::size_t, N>>
    +
    328 xfixed_container(nested_initializer_list_t<value_type, N> t)
    +
    329 requires(IX::value != 0);
    +
    330
    +
    331 ~xfixed_container() = default;
    +
    332
    +
    333 xfixed_container(const xfixed_container&) = default;
    +
    334 xfixed_container& operator=(const xfixed_container&) = default;
    +
    335
    +
    336 xfixed_container(xfixed_container&&) = default;
    +
    337 xfixed_container& operator=(xfixed_container&&) = default;
    +
    338
    +
    339 template <class E>
    + +
    341
    +
    342 template <class E>
    +
    343 xfixed_container& operator=(const xexpression<E>& e);
    +
    344
    +
    345 template <class ST = std::array<std::size_t, N>>
    +
    346 static xfixed_container from_shape(ST&& /*s*/);
    +
    347
    +
    348 template <class ST = std::array<std::size_t, N>>
    +
    349 void resize(ST&& shape, bool force = false) const;
    +
    350 template <class ST = shape_type>
    +
    351 void resize(ST&& shape, layout_type l) const;
    +
    352 template <class ST = shape_type>
    +
    353 void resize(ST&& shape, const strides_type& strides) const;
    +
    354
    +
    355 template <class ST = std::array<std::size_t, N>>
    +
    356 const auto& reshape(ST&& shape, layout_type layout = L) const;
    +
    357
    +
    358 template <class ST>
    +
    359 bool broadcast_shape(ST& s, bool reuse_cache = false) const;
    +
    360
    +
    361 constexpr layout_type layout() const noexcept;
    +
    362 bool is_contiguous() const noexcept;
    +
    363
    +
    364 private:
    +
    365
    +
    366 storage_type m_storage;
    +
    367
    +
    368 XTENSOR_CONSTEXPR_ENHANCED_STATIC inner_shape_type m_shape = S();
    +
    369 XTENSOR_CONSTEXPR_ENHANCED_STATIC inner_strides_type m_strides = get_strides<L, inner_strides_type>(S());
    +
    370 XTENSOR_CONSTEXPR_ENHANCED_STATIC inner_backstrides_type
    +
    371 m_backstrides = get_backstrides(m_shape, m_strides);
    +
    372
    +
    373 storage_type& storage_impl() noexcept;
    +
    374 const storage_type& storage_impl() const noexcept;
    +
    375
    +
    376 XTENSOR_CONSTEXPR_RETURN const inner_shape_type& shape_impl() const noexcept;
    +
    377 XTENSOR_CONSTEXPR_RETURN const inner_strides_type& strides_impl() const noexcept;
    +
    378 XTENSOR_CONSTEXPR_RETURN const inner_backstrides_type& backstrides_impl() const noexcept;
    +
    379
    +
    380 friend class xcontainer<xfixed_container<ET, S, L, SH, Tag>>;
    +
    381 };
    +
    +
    382
    +
    383 /****************************************
    +
    384 * xfixed_container_adaptor declaration *
    +
    385 ****************************************/
    +
    386
    +
    387 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    388 class xfixed_adaptor;
    +
    389
    +
    390 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    +
    391 struct xcontainer_inner_types<xfixed_adaptor<EC, S, L, SH, Tag>>
    +
    392 {
    +
    393 using storage_type = std::remove_reference_t<EC>;
    +
    394 using reference = typename storage_type::reference;
    +
    395 using const_reference = typename storage_type::const_reference;
    +
    396 using size_type = typename storage_type::size_type;
    +
    397 using shape_type = S;
    +
    398 using inner_shape_type = typename S::cast_type;
    +
    399 using strides_type = get_strides_t<inner_shape_type>;
    +
    400 using backstrides_type = strides_type;
    +
    401 using inner_strides_type = strides_type;
    +
    402 using inner_backstrides_type = backstrides_type;
    + +
    404 static constexpr layout_type layout = L;
    +
    405 };
    +
    +
    406
    +
    407 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    +
    408 struct xiterable_inner_types<xfixed_adaptor<EC, S, L, SH, Tag>>
    +
    409 : xcontainer_iterable_types<xfixed_adaptor<EC, S, L, SH, Tag>>
    +
    410 {
    +
    411 };
    +
    +
    412
    +
    429 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    +
    430 class xfixed_adaptor : public xcontainer<xfixed_adaptor<EC, S, L, SH, Tag>>,
    +
    431 public xcontainer_semantic<xfixed_adaptor<EC, S, L, SH, Tag>>
    +
    432 {
    +
    433 public:
    +
    434
    +
    435 using container_closure_type = EC;
    +
    436
    +
    437 using self_type = xfixed_adaptor<EC, S, L, SH, Tag>;
    +
    438 using base_type = xcontainer<self_type>;
    +
    439 using semantic_base = xcontainer_semantic<self_type>;
    +
    440 using storage_type = typename base_type::storage_type;
    +
    441 using shape_type = typename base_type::shape_type;
    +
    442 using strides_type = typename base_type::strides_type;
    +
    443 using backstrides_type = typename base_type::backstrides_type;
    +
    444 using inner_shape_type = typename base_type::inner_shape_type;
    +
    445 using inner_strides_type = typename base_type::inner_strides_type;
    +
    446 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    447 using temporary_type = typename semantic_base::temporary_type;
    +
    448 using expression_tag = Tag;
    +
    449
    +
    450 static constexpr std::size_t N = S::size();
    +
    451
    +
    452 xfixed_adaptor(storage_type&& data);
    +
    453 xfixed_adaptor(const storage_type& data);
    +
    454
    +
    455 template <class D>
    +
    456 xfixed_adaptor(D&& data);
    +
    457
    +
    458 ~xfixed_adaptor() = default;
    +
    459
    +
    460 xfixed_adaptor(const xfixed_adaptor&) = default;
    +
    461 xfixed_adaptor& operator=(const xfixed_adaptor&);
    +
    462
    +
    463 xfixed_adaptor(xfixed_adaptor&&) = default;
    +
    464 xfixed_adaptor& operator=(xfixed_adaptor&&);
    +
    465 xfixed_adaptor& operator=(temporary_type&&);
    +
    466
    +
    467 template <class E>
    +
    468 xfixed_adaptor& operator=(const xexpression<E>& e);
    +
    469
    +
    470 template <class ST = std::array<std::size_t, N>>
    +
    471 void resize(ST&& shape, bool force = false) const;
    +
    472 template <class ST = shape_type>
    +
    473 void resize(ST&& shape, layout_type l) const;
    +
    474 template <class ST = shape_type>
    +
    475 void resize(ST&& shape, const strides_type& strides) const;
    +
    476
    +
    477 template <class ST = std::array<std::size_t, N>>
    +
    478 const auto& reshape(ST&& shape, layout_type layout = L) const;
    +
    479
    +
    480 template <class ST>
    +
    481 bool broadcast_shape(ST& s, bool reuse_cache = false) const;
    +
    482
    +
    483 constexpr layout_type layout() const noexcept;
    +
    484 bool is_contiguous() const noexcept;
    +
    485
    +
    486 private:
    +
    487
    +
    488 container_closure_type m_storage;
    +
    489
    +
    490 XTENSOR_CONSTEXPR_ENHANCED_STATIC inner_shape_type m_shape = S();
    +
    491 XTENSOR_CONSTEXPR_ENHANCED_STATIC inner_strides_type m_strides = get_strides<L, inner_strides_type>(S());
    +
    492 XTENSOR_CONSTEXPR_ENHANCED_STATIC inner_backstrides_type
    +
    493 m_backstrides = get_backstrides(m_shape, m_strides);
    +
    494
    +
    495 storage_type& storage_impl() noexcept;
    +
    496 const storage_type& storage_impl() const noexcept;
    +
    497
    +
    498 XTENSOR_CONSTEXPR_RETURN const inner_shape_type& shape_impl() const noexcept;
    +
    499 XTENSOR_CONSTEXPR_RETURN const inner_strides_type& strides_impl() const noexcept;
    +
    500 XTENSOR_CONSTEXPR_RETURN const inner_backstrides_type& backstrides_impl() const noexcept;
    +
    501
    +
    502 friend class xcontainer<xfixed_adaptor<EC, S, L, SH, Tag>>;
    +
    503 };
    +
    +
    504
    +
    505 /************************************
    +
    506 * xfixed_container implementation *
    +
    507 ************************************/
    +
    508
    +
    513
    +
    522 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    +
    523 inline xfixed_container<ET, S, L, SH, Tag>::xfixed_container(const inner_shape_type& shape, layout_type l)
    +
    524 {
    +
    525 (void) (shape);
    +
    526 (void) (l);
    +
    527 XTENSOR_ASSERT(shape.size() == N && std::equal(shape.begin(), shape.end(), m_shape.begin()));
    +
    528 XTENSOR_ASSERT(L == l);
    +
    529 }
    +
    +
    530
    +
    531 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    532 inline xfixed_container<ET, S, L, SH, Tag>::xfixed_container(const value_type& v)
    +
    533 {
    +
    534 if (this->size() != 1)
    +
    535 {
    +
    536 XTENSOR_THROW(std::runtime_error, "wrong shape for scalar assignment (has to be xshape<>).");
    +
    537 }
    +
    538 m_storage[0] = v;
    +
    539 }
    +
    540
    +
    550 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    +
    551 inline xfixed_container<ET, S, L, SH, Tag>::xfixed_container(
    +
    552 const inner_shape_type& shape,
    +
    553 value_type v,
    + +
    555 )
    +
    556 {
    +
    557 (void) (shape);
    +
    558 (void) (l);
    +
    559 XTENSOR_ASSERT(shape.size() == N && std::equal(shape.begin(), shape.end(), m_shape.begin()));
    +
    560 XTENSOR_ASSERT(L == l);
    +
    561 std::fill(m_storage.begin(), m_storage.end(), v);
    +
    562 }
    +
    +
    563
    +
    564 namespace detail
    +
    565 {
    +
    566 template <std::size_t X>
    +
    567 struct check_initializer_list_shape
    +
    568 {
    +
    569 template <class T, class S>
    +
    570 static bool run(const T& t, const S& shape)
    +
    571 {
    +
    572 std::size_t IX = shape.size() - X;
    +
    573 bool result = (shape[IX] == t.size());
    +
    574 for (std::size_t i = 0; i < shape[IX]; ++i)
    +
    575 {
    +
    576 result = result && check_initializer_list_shape<X - 1>::run(t.begin()[i], shape);
    +
    577 }
    +
    578 return result;
    +
    579 }
    +
    580 };
    +
    581
    +
    582 template <>
    +
    583 struct check_initializer_list_shape<0>
    +
    584 {
    +
    585 template <class T, class S>
    +
    586 static bool run(const T& /*t*/, const S& /*shape*/)
    +
    587 {
    +
    588 return true;
    +
    589 }
    +
    590 };
    +
    591 }
    +
    592
    +
    593 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    594 template <class ST>
    +
    595 inline xfixed_container<ET, S, L, SH, Tag> xfixed_container<ET, S, L, SH, Tag>::from_shape(ST&& shape)
    +
    596 {
    +
    597 (void) shape;
    +
    598 self_type tmp;
    +
    599 XTENSOR_ASSERT(shape.size() == N && std::equal(shape.begin(), shape.end(), tmp.shape().begin()));
    +
    600 return tmp;
    +
    601 }
    +
    602
    +
    610 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    611 template <class IX>
    +
    +
    612 inline xfixed_container<ET, S, L, SH, Tag>::xfixed_container(nested_initializer_list_t<value_type, N> t)
    +
    613 requires(IX::value != 0)
    +
    614 {
    +
    615 XTENSOR_ASSERT_MSG(
    +
    616 detail::check_initializer_list_shape<N>::run(t, this->shape()) == true,
    +
    617 "initializer list shape does not match fixed shape"
    +
    618 );
    +
    619 constexpr auto tmp = layout_type::row_major;
    +
    620 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    621 }
    +
    +
    622
    +
    624
    +
    629
    +
    632 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    633 template <class E>
    +
    +
    634 inline xfixed_container<ET, S, L, SH, Tag>::xfixed_container(const xexpression<E>& e)
    +
    635 {
    +
    636 semantic_base::assign(e);
    +
    637 }
    +
    +
    638
    +
    642 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    643 template <class E>
    +
    +
    644 inline auto xfixed_container<ET, S, L, SH, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    645 {
    +
    646 return semantic_base::operator=(e);
    +
    647 }
    +
    +
    648
    +
    650
    +
    655 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    656 template <class ST>
    +
    + +
    658 {
    +
    659 (void) (shape); // remove unused parameter warning if XTENSOR_ASSERT undefined
    +
    660 XTENSOR_ASSERT(std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size());
    +
    661 }
    +
    +
    662
    +
    667 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    668 template <class ST>
    +
    + +
    670 {
    +
    671 (void) (shape); // remove unused parameter warning if XTENSOR_ASSERT undefined
    +
    672 (void) (l);
    +
    673 XTENSOR_ASSERT(
    +
    674 std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size() && L == l
    +
    675 );
    +
    676 }
    +
    +
    677
    +
    682 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    683 template <class ST>
    +
    +
    684 inline void xfixed_container<ET, S, L, SH, Tag>::resize(ST&& shape, const strides_type& strides) const
    +
    685 {
    +
    686 (void) (shape); // remove unused parameter warning if XTENSOR_ASSERT undefined
    +
    687 (void) (strides);
    +
    688 XTENSOR_ASSERT(std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size());
    +
    689 XTENSOR_ASSERT(
    +
    690 std::equal(strides.begin(), strides.end(), m_strides.begin()) && strides.size() == m_strides.size()
    +
    691 );
    +
    692 }
    +
    +
    693
    +
    697 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    698 template <class ST>
    +
    + +
    700 {
    +
    701 if (!(std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size()
    +
    702 && layout == L))
    +
    703 {
    +
    704 XTENSOR_THROW(std::runtime_error, "Trying to reshape xtensor_fixed with different shape or layout.");
    +
    705 }
    +
    706 return *this;
    +
    707 }
    +
    +
    708
    +
    709 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    710 template <class ST>
    +
    711 inline bool xfixed_container<ET, S, L, SH, Tag>::broadcast_shape(ST& shape, bool) const
    +
    712 {
    +
    713 return xt::broadcast_shape(m_shape, shape);
    +
    714 }
    +
    715
    +
    716 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    717 constexpr layout_type xfixed_container<ET, S, L, SH, Tag>::layout() const noexcept
    +
    718 {
    +
    719 return base_type::static_layout;
    +
    720 }
    +
    721
    +
    722 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    723 inline bool xfixed_container<ET, S, L, SH, Tag>::is_contiguous() const noexcept
    +
    724 {
    +
    725 using str_type = typename inner_strides_type::value_type;
    +
    726 return m_strides.empty() || (layout() == layout_type::row_major && m_strides.back() == str_type(1))
    +
    727 || (layout() == layout_type::column_major && m_strides.front() == str_type(1));
    +
    728 }
    +
    729
    +
    730 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    731 inline auto xfixed_container<ET, S, L, SH, Tag>::storage_impl() noexcept -> storage_type&
    +
    732 {
    +
    733 return m_storage;
    +
    734 }
    +
    735
    +
    736 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    737 inline auto xfixed_container<ET, S, L, SH, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    738 {
    +
    739 return m_storage;
    +
    740 }
    +
    741
    +
    742 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    743 XTENSOR_CONSTEXPR_RETURN auto xfixed_container<ET, S, L, SH, Tag>::shape_impl() const noexcept
    +
    744 -> const inner_shape_type&
    +
    745 {
    +
    746 return m_shape;
    +
    747 }
    +
    748
    +
    749 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    750 XTENSOR_CONSTEXPR_RETURN auto xfixed_container<ET, S, L, SH, Tag>::strides_impl() const noexcept
    +
    751 -> const inner_strides_type&
    +
    752 {
    +
    753 return m_strides;
    +
    754 }
    +
    755
    +
    756 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    757 XTENSOR_CONSTEXPR_RETURN auto xfixed_container<ET, S, L, SH, Tag>::backstrides_impl() const noexcept
    +
    758 -> const inner_backstrides_type&
    +
    759 {
    +
    760 return m_backstrides;
    +
    761 }
    +
    762
    +
    763 /*******************
    +
    764 * xfixed_adaptor *
    +
    765 *******************/
    +
    766
    +
    771
    +
    775 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    + +
    777 : base_type()
    +
    778 , m_storage(std::move(data))
    +
    779 {
    +
    780 }
    +
    +
    781
    +
    786 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    + +
    788 : base_type()
    +
    789 , m_storage(data)
    +
    790 {
    +
    791 }
    +
    +
    792
    +
    798 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    799 template <class D>
    +
    + +
    801 : base_type()
    +
    802 , m_storage(std::forward<D>(data))
    +
    803 {
    +
    804 }
    +
    +
    805
    +
    807
    +
    808 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    809 inline auto xfixed_adaptor<EC, S, L, SH, Tag>::operator=(const xfixed_adaptor& rhs) -> self_type&
    +
    810 {
    +
    811 base_type::operator=(rhs);
    +
    812 m_storage = rhs.m_storage;
    +
    813 return *this;
    +
    814 }
    +
    815
    +
    816 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    817 inline auto xfixed_adaptor<EC, S, L, SH, Tag>::operator=(xfixed_adaptor&& rhs) -> self_type&
    +
    818 {
    +
    819 base_type::operator=(std::move(rhs));
    +
    820 m_storage = rhs.m_storage;
    +
    821 return *this;
    +
    822 }
    +
    823
    +
    824 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    825 inline auto xfixed_adaptor<EC, S, L, SH, Tag>::operator=(temporary_type&& rhs) -> self_type&
    +
    826 {
    +
    827 m_storage.resize(rhs.storage().size());
    +
    828 std::copy(rhs.storage().cbegin(), rhs.storage().cend(), m_storage.begin());
    +
    829 return *this;
    +
    830 }
    +
    831
    +
    836
    +
    839 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    840 template <class E>
    +
    +
    841 inline auto xfixed_adaptor<EC, S, L, SH, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    842 {
    +
    843 return semantic_base::operator=(e);
    +
    844 }
    +
    +
    845
    +
    847
    +
    852 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    853 template <class ST>
    +
    + +
    855 {
    +
    856 (void) (shape); // remove unused parameter warning if XTENSOR_ASSERT undefined
    +
    857 XTENSOR_ASSERT(std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size());
    +
    858 }
    +
    +
    859
    +
    864 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    865 template <class ST>
    +
    + +
    867 {
    +
    868 (void) (shape); // remove unused parameter warning if XTENSOR_ASSERT undefined
    +
    869 (void) (l);
    +
    870 XTENSOR_ASSERT(
    +
    871 std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size() && L == l
    +
    872 );
    +
    873 }
    +
    +
    874
    +
    879 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    880 template <class ST>
    +
    +
    881 inline void xfixed_adaptor<ET, S, L, SH, Tag>::resize(ST&& shape, const strides_type& strides) const
    +
    882 {
    +
    883 (void) (shape); // remove unused parameter warning if XTENSOR_ASSERT undefined
    +
    884 (void) (strides);
    +
    885 XTENSOR_ASSERT(std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size());
    +
    886 XTENSOR_ASSERT(
    +
    887 std::equal(strides.begin(), strides.end(), m_strides.begin()) && strides.size() == m_strides.size()
    +
    888 );
    +
    889 }
    +
    +
    890
    +
    894 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    895 template <class ST>
    +
    +
    896 inline const auto& xfixed_adaptor<ET, S, L, SH, Tag>::reshape(ST&& shape, layout_type layout) const
    +
    897 {
    +
    898 if (!(std::equal(shape.begin(), shape.end(), m_shape.begin()) && shape.size() == m_shape.size()
    +
    899 && layout == L))
    +
    900 {
    +
    901 XTENSOR_THROW(std::runtime_error, "Trying to reshape xtensor_fixed with different shape or layout.");
    +
    902 }
    +
    903 return *this;
    +
    904 }
    +
    +
    905
    +
    906 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    907 template <class ST>
    +
    908 inline bool xfixed_adaptor<ET, S, L, SH, Tag>::broadcast_shape(ST& shape, bool) const
    +
    909 {
    +
    910 return xt::broadcast_shape(m_shape, shape);
    +
    911 }
    +
    912
    +
    913 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    914 inline auto xfixed_adaptor<EC, S, L, SH, Tag>::storage_impl() noexcept -> storage_type&
    +
    915 {
    +
    916 return m_storage;
    +
    917 }
    +
    918
    +
    919 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    920 inline auto xfixed_adaptor<EC, S, L, SH, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    921 {
    +
    922 return m_storage;
    +
    923 }
    +
    924
    +
    925 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    926 constexpr layout_type xfixed_adaptor<EC, S, L, SH, Tag>::layout() const noexcept
    +
    927 {
    +
    928 return base_type::static_layout;
    +
    929 }
    +
    930
    +
    931 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    932 inline bool xfixed_adaptor<EC, S, L, SH, Tag>::is_contiguous() const noexcept
    +
    933 {
    +
    934 using str_type = typename inner_strides_type::value_type;
    +
    935 return m_strides.empty() || (layout() == layout_type::row_major && m_strides.back() == str_type(1))
    +
    936 || (layout() == layout_type::column_major && m_strides.front() == str_type(1));
    +
    937 }
    +
    938
    +
    939 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    940 XTENSOR_CONSTEXPR_RETURN auto xfixed_adaptor<EC, S, L, SH, Tag>::shape_impl() const noexcept
    +
    941 -> const inner_shape_type&
    +
    942 {
    +
    943 return m_shape;
    +
    944 }
    +
    945
    +
    946 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    947 XTENSOR_CONSTEXPR_RETURN auto xfixed_adaptor<EC, S, L, SH, Tag>::strides_impl() const noexcept
    +
    948 -> const inner_strides_type&
    +
    949 {
    +
    950 return m_strides;
    +
    951 }
    +
    952
    +
    953 template <class EC, class S, layout_type L, bool SH, class Tag>
    +
    954 XTENSOR_CONSTEXPR_RETURN auto xfixed_adaptor<EC, S, L, SH, Tag>::backstrides_impl() const noexcept
    +
    955 -> const inner_backstrides_type&
    +
    956 {
    +
    957 return m_backstrides;
    +
    958 }
    +
    959}
    +
    960
    +
    961#endif
    +
    This array class is modeled after std::array but adds optional alignment through a template parameter...
    +
    Fixed shape implementation for compile time defined arrays.
    + +
    constexpr const inner_strides_type & strides() const noexcept
    Returns the strides of the container.
    +
    constexpr const inner_shape_type & shape() const noexcept
    Returns the shape of the container.
    + + +
    Base class for xexpressions.
    +
    Dense multidimensional container adaptor with tensor semantic and fixed dimension.
    Definition xfixed.hpp:432
    +
    xfixed_adaptor(storage_type &&data)
    Constructs an xfixed_adaptor of the given stl-like container.
    Definition xfixed.hpp:776
    +
    const auto & reshape(ST &&shape, layout_type layout=L) const
    Note that the xfixed_container cannot be reshaped to a shape different from S.
    Definition xfixed.hpp:896
    +
    void resize(ST &&shape, bool force=false) const
    Note that the xfixed_adaptor cannot be resized.
    Definition xfixed.hpp:854
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xfixed.hpp:297
    +
    xfixed_container(const inner_shape_type &shape, layout_type l=L)
    Create an uninitialized xfixed_container.
    Definition xfixed.hpp:523
    +
    xfixed_container(const xexpression< E > &e)
    The extended copy constructor.
    Definition xfixed.hpp:634
    +
    void resize(ST &&shape, bool force=false) const
    Note that the xfixed_container cannot be resized.
    Definition xfixed.hpp:657
    +
    void resize(ST &&shape, const strides_type &strides) const
    Note that the xfixed_container cannot be resized.
    Definition xfixed.hpp:684
    +
    xfixed_container(const inner_shape_type &shape, value_type v, layout_type l=L)
    Create an xfixed_container, and initialize with the value of v.
    Definition xfixed.hpp:551
    +
    void resize(ST &&shape, layout_type l) const
    Note that the xfixed_container cannot be resized.
    Definition xfixed.hpp:669
    +
    xfixed_container(nested_initializer_list_t< value_type, N > t)
    Allocates an xfixed_container with shape S with values from a C array.
    Definition xfixed.hpp:612
    +
    const auto & reshape(ST &&shape, layout_type layout=L) const
    Note that the xfixed_container cannot be reshaped to a shape different from S.
    Definition xfixed.hpp:699
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + +
    +
    + + + + diff --git a/xfunction_8hpp_source.html b/xfunction_8hpp_source.html new file mode 100644 index 000000000..ccf5372ea --- /dev/null +++ b/xfunction_8hpp_source.html @@ -0,0 +1,1245 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xfunction.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xfunction.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_FUNCTION_HPP
    +
    11#define XTENSOR_FUNCTION_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <iterator>
    +
    16#include <tuple>
    +
    17#include <type_traits>
    +
    18#include <utility>
    +
    19
    +
    20#include <xtl/xsequence.hpp>
    +
    21#include <xtl/xtype_traits.hpp>
    +
    22
    +
    23#include "../containers/xscalar.hpp"
    +
    24#include "../core/xaccessible.hpp"
    +
    25#include "../core/xexpression_traits.hpp"
    +
    26#include "../core/xiterable.hpp"
    +
    27#include "../core/xiterator.hpp"
    +
    28#include "../core/xlayout.hpp"
    +
    29#include "../core/xshape.hpp"
    +
    30#include "../core/xstrides.hpp"
    +
    31#include "../utils/xtensor_simd.hpp"
    +
    32#include "../utils/xutils.hpp"
    +
    33
    +
    34namespace xt
    +
    35{
    +
    36 namespace detail
    +
    37 {
    +
    38
    +
    39 template <bool... B>
    +
    40 using conjunction_c = std::conjunction<std::integral_constant<bool, B>...>;
    +
    41
    +
    42 /************************
    +
    43 * xfunction_cache_impl *
    +
    44 ************************/
    +
    45
    +
    46 template <class S, class is_shape_trivial>
    +
    47 struct xfunction_cache_impl
    +
    48 {
    +
    49 S shape;
    +
    50 bool is_trivial;
    +
    51 bool is_initialized;
    +
    52
    +
    53 xfunction_cache_impl()
    +
    54 : shape(xtl::make_sequence<S>(0, std::size_t(0)))
    +
    55 , is_trivial(false)
    +
    56 , is_initialized(false)
    +
    57 {
    +
    58 }
    +
    59 };
    +
    60
    +
    61 template <std::size_t... N, class is_shape_trivial>
    +
    62 struct xfunction_cache_impl<fixed_shape<N...>, is_shape_trivial>
    +
    63 {
    +
    64 XTENSOR_CONSTEXPR_ENHANCED_STATIC fixed_shape<N...> shape = fixed_shape<N...>();
    +
    65 XTENSOR_CONSTEXPR_ENHANCED_STATIC bool is_trivial = is_shape_trivial::value;
    +
    66 XTENSOR_CONSTEXPR_ENHANCED_STATIC bool is_initialized = true;
    +
    67 };
    +
    68
    +
    69 template <class... CT>
    +
    70 struct xfunction_bool_load_type
    +
    71 {
    +
    72 using type = xtl::promote_type_t<typename std::decay_t<CT>::bool_load_type...>;
    +
    73 };
    +
    74
    +
    75 template <class CT>
    +
    76 struct xfunction_bool_load_type<CT>
    +
    77 {
    +
    78 using type = typename std::decay_t<CT>::bool_load_type;
    +
    79 };
    +
    80
    +
    81 template <class... CT>
    +
    82 using xfunction_bool_load_type_t = typename xfunction_bool_load_type<CT...>::type;
    +
    83 }
    +
    84
    +
    85 /************************
    +
    86 * xfunction extensions *
    +
    87 ************************/
    +
    88
    +
    89 namespace extension
    +
    90 {
    +
    91
    +
    92 template <class Tag, class F, class... CT>
    + +
    94
    +
    95 template <class F, class... CT>
    +
    + +
    97 {
    +
    98 using type = xtensor_empty_base;
    +
    99 };
    +
    +
    100
    +
    101 template <class F, class... CT>
    +
    +
    102 struct xfunction_base : xfunction_base_impl<xexpression_tag_t<CT...>, F, CT...>
    +
    103 {
    +
    104 };
    +
    +
    105
    +
    106 template <class F, class... CT>
    +
    107 using xfunction_base_t = typename xfunction_base<F, CT...>::type;
    +
    108 }
    +
    109
    +
    110 template <class promote>
    +
    +
    111 struct xfunction_cache : detail::xfunction_cache_impl<typename promote::type, promote>
    +
    112 {
    +
    113 };
    +
    +
    114
    +
    115 template <class F, class... CT>
    +
    116 class xfunction_iterator;
    +
    117
    +
    118 template <class F, class... CT>
    +
    119 class xfunction_stepper;
    +
    120
    +
    121 template <class F, class... CT>
    +
    122 class xfunction;
    +
    123
    +
    124 template <class F, class... CT>
    +
    + +
    126 {
    +
    127 using inner_shape_type = promote_shape_t<typename std::decay_t<CT>::shape_type...>;
    +
    128 using const_stepper = xfunction_stepper<F, CT...>;
    +
    129 using stepper = const_stepper;
    +
    130 };
    +
    +
    131
    +
    132 template <class F, class... CT>
    +
    + +
    134 {
    +
    135 // Added indirection for MSVC 2017 bug with the operator value_type()
    +
    136 using func_return_type = typename meta_identity<
    +
    137 decltype(std::declval<F>()(std::declval<xvalue_type_t<std::decay_t<CT>>>()...))>::type;
    +
    138 using value_type = std::decay_t<func_return_type>;
    +
    139 using reference = func_return_type;
    +
    140 using const_reference = reference;
    +
    141 using size_type = common_size_type_t<std::decay_t<CT>...>;
    +
    142 };
    +
    +
    143
    +
    144 template <class T, class F, class... CT>
    +
    +
    145 struct has_simd_interface<xfunction<F, CT...>, T> : std::conjunction<
    +
    146 has_simd_type<T>,
    +
    147 has_simd_apply<F, xt_simd::simd_type<T>>,
    +
    148 has_simd_interface<std::decay_t<CT>, T>...>
    +
    149 {
    +
    150 };
    +
    +
    151
    +
    152 /*************************************
    +
    153 * overlapping_memory_checker_traits *
    +
    154 *************************************/
    +
    155
    +
    156 template <class E>
    +
    + +
    158 E,
    +
    159 std::enable_if_t<!has_memory_address<E>::value && is_specialization_of<xfunction, E>::value>>
    +
    160 {
    +
    161 template <std::size_t I = 0, class... T, std::enable_if_t<(I == sizeof...(T)), int> = 0>
    +
    162 static bool check_tuple(const std::tuple<T...>&, const memory_range&)
    +
    163 {
    +
    164 return false;
    +
    165 }
    +
    166
    +
    167 template <std::size_t I = 0, class... T, std::enable_if_t<(I < sizeof...(T)), int> = 0>
    +
    168 static bool check_tuple(const std::tuple<T...>& t, const memory_range& dst_range)
    +
    169 {
    +
    170 using ChildE = std::decay_t<decltype(std::get<I>(t))>;
    +
    171 return overlapping_memory_checker_traits<ChildE>::check_overlap(std::get<I>(t), dst_range)
    +
    172 || check_tuple<I + 1>(t, dst_range);
    +
    173 }
    +
    174
    +
    175 static bool check_overlap(const E& expr, const memory_range& dst_range)
    +
    176 {
    +
    177 if (expr.size() == 0)
    +
    178 {
    +
    179 return false;
    +
    180 }
    +
    181 else
    +
    182 {
    +
    183 return check_tuple(expr.arguments(), dst_range);
    +
    184 }
    +
    185 }
    +
    186 };
    +
    +
    187
    +
    188 /*************
    +
    189 * xfunction *
    +
    190 *************/
    +
    191
    +
    203 template <class F, class... CT>
    +
    +
    204 class xfunction : private xconst_iterable<xfunction<F, CT...>>,
    +
    205 public xsharable_expression<xfunction<F, CT...>>,
    +
    206 private xconst_accessible<xfunction<F, CT...>>,
    +
    207 public extension::xfunction_base_t<F, CT...>
    +
    208 {
    +
    209 public:
    +
    210
    +
    211 using self_type = xfunction<F, CT...>;
    +
    212 using accessible_base = xconst_accessible<self_type>;
    +
    213 using extension_base = extension::xfunction_base_t<F, CT...>;
    +
    214 using expression_tag = typename extension_base::expression_tag;
    +
    215 using only_scalar = all_xscalar<CT...>;
    +
    216 using functor_type = typename std::remove_reference<F>::type;
    +
    217 using tuple_type = std::tuple<CT...>;
    +
    218
    +
    219 using inner_types = xcontainer_inner_types<self_type>;
    +
    220 using value_type = typename inner_types::value_type;
    +
    221 using reference = typename inner_types::reference;
    +
    222 using const_reference = typename inner_types::const_reference;
    +
    223 using pointer = value_type*;
    +
    224 using const_pointer = const value_type*;
    +
    225 using size_type = typename inner_types::size_type;
    +
    226 using difference_type = common_difference_type_t<std::decay_t<CT>...>;
    +
    227
    +
    228 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    229
    +
    230 // xtl::promote_type_t<typename std::decay_t<CT>::bool_load_type...>;
    +
    231 using bool_load_type = detail::xfunction_bool_load_type_t<CT...>;
    +
    232
    +
    233 template <class requested_type>
    +
    234 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    235
    +
    236 using iterable_base = xconst_iterable<xfunction<F, CT...>>;
    +
    237 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    238 using shape_type = inner_shape_type;
    +
    239
    +
    240 using stepper = typename iterable_base::stepper;
    +
    241 using const_stepper = typename iterable_base::const_stepper;
    +
    242
    +
    243 static constexpr layout_type static_layout = compute_layout(std::decay_t<CT>::static_layout...);
    +
    244 static constexpr bool contiguous_layout = static_layout != layout_type::dynamic;
    +
    245
    +
    246 template <layout_type L>
    +
    247 using layout_iterator = typename iterable_base::template layout_iterator<L>;
    +
    248 template <layout_type L>
    +
    249 using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>;
    +
    250 template <layout_type L>
    +
    251 using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>;
    +
    252 template <layout_type L>
    +
    253 using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>;
    +
    254
    +
    255 template <class S, layout_type L>
    +
    256 using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>;
    +
    257 template <class S, layout_type L>
    +
    258 using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>;
    +
    259 template <class S, layout_type L>
    +
    260 using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>;
    +
    261 template <class S, layout_type L>
    +
    262 using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>;
    +
    263
    +
    264 using const_linear_iterator = xfunction_iterator<F, CT...>;
    +
    265 using linear_iterator = const_linear_iterator;
    +
    266 using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>;
    +
    267 using reverse_linear_iterator = std::reverse_iterator<linear_iterator>;
    +
    268
    +
    269 using iterator = typename iterable_base::iterator;
    +
    270 using const_iterator = typename iterable_base::const_iterator;
    +
    271 using reverse_iterator = typename iterable_base::reverse_iterator;
    +
    272 using const_reverse_iterator = typename iterable_base::const_reverse_iterator;
    +
    273
    +
    274 template <class Func, class... CTA, class U = std::enable_if_t<!std::is_base_of<std::decay_t<Func>, self_type>::value>>
    +
    275 xfunction(Func&& f, CTA&&... e) noexcept;
    +
    276
    +
    277 template <class FA, class... CTA>
    + +
    279
    +
    280 ~xfunction() = default;
    +
    281
    +
    282 xfunction(const xfunction&) = default;
    +
    283 xfunction& operator=(const xfunction&) = default;
    +
    284
    +
    285 xfunction(xfunction&&) = default;
    +
    286 xfunction& operator=(xfunction&&) = default;
    +
    287
    + +
    289 size_type dimension() const noexcept;
    +
    290 const inner_shape_type& shape() const;
    +
    291 layout_type layout() const noexcept;
    +
    292 bool is_contiguous() const noexcept;
    +
    293 using accessible_base::shape;
    +
    294
    +
    295 template <class... Args>
    +
    296 const_reference operator()(Args... args) const;
    +
    297
    +
    298 template <class... Args>
    +
    299 const_reference unchecked(Args... args) const;
    +
    300
    +
    301 using accessible_base::at;
    +
    302 using accessible_base::operator[];
    +
    303 using accessible_base::back;
    +
    304 using accessible_base::front;
    +
    305 using accessible_base::in_bounds;
    +
    306 using accessible_base::periodic;
    +
    307
    +
    308 template <class It>
    +
    309 const_reference element(It first, It last) const;
    +
    310
    +
    311 template <class S>
    +
    312 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    313
    +
    314 template <class S>
    +
    315 bool has_linear_assign(const S& strides) const noexcept;
    +
    316
    +
    317 using iterable_base::begin;
    +
    318 using iterable_base::cbegin;
    +
    319 using iterable_base::cend;
    +
    320 using iterable_base::crbegin;
    +
    321 using iterable_base::crend;
    +
    322 using iterable_base::end;
    +
    323 using iterable_base::rbegin;
    +
    324 using iterable_base::rend;
    +
    325
    +
    326 const_linear_iterator linear_begin() const noexcept;
    +
    327 const_linear_iterator linear_end() const noexcept;
    +
    328 const_linear_iterator linear_cbegin() const noexcept;
    +
    329 const_linear_iterator linear_cend() const noexcept;
    +
    330
    +
    331 const_reverse_linear_iterator linear_rbegin() const noexcept;
    +
    332 const_reverse_linear_iterator linear_rend() const noexcept;
    +
    333 const_reverse_linear_iterator linear_crbegin() const noexcept;
    +
    334 const_reverse_linear_iterator linear_crend() const noexcept;
    +
    335
    +
    336 template <class S>
    +
    337 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    338 template <class S>
    +
    339 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    340
    +
    341 const_reference data_element(size_type i) const;
    +
    342
    +
    343 const_reference flat(size_type i) const;
    +
    344
    +
    345 template <class UT = self_type, class = typename std::enable_if<UT::only_scalar::value>::type>
    +
    346 operator value_type() const;
    +
    347
    +
    348 template <class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    +
    349 simd_return_type<requested_type> load_simd(size_type i) const;
    +
    350
    +
    351 const tuple_type& arguments() const noexcept;
    +
    352
    +
    353 const functor_type& functor() const noexcept;
    +
    354
    +
    355 private:
    +
    356
    +
    357 template <class Func, std::size_t... I>
    +
    358 const_stepper build_stepper(Func&& f, std::index_sequence<I...>) const noexcept;
    +
    359
    +
    360 template <class Func, std::size_t... I>
    +
    361 auto build_iterator(Func&& f, std::index_sequence<I...>) const noexcept;
    +
    362
    +
    363 size_type compute_dimension() const noexcept;
    +
    364
    +
    365 void compute_cached_shape() const;
    +
    366
    +
    367 tuple_type m_e;
    +
    368 functor_type m_f;
    +
    369 mutable xfunction_cache<detail::promote_index<typename std::decay_t<CT>::shape_type...>> m_cache;
    +
    370
    +
    371 friend class xfunction_iterator<F, CT...>;
    +
    372 friend class xfunction_stepper<F, CT...>;
    +
    373 friend class xconst_iterable<self_type>;
    +
    374 friend class xconst_accessible<self_type>;
    +
    375 };
    +
    +
    376
    +
    377 /**********************
    +
    378 * xfunction_iterator *
    +
    379 **********************/
    +
    380
    +
    381 template <class F, class... CT>
    +
    +
    382 class xfunction_iterator : public xtl::xrandom_access_iterator_base<
    +
    383 xfunction_iterator<F, CT...>,
    +
    384 typename xfunction<F, CT...>::value_type,
    +
    385 typename xfunction<F, CT...>::difference_type,
    +
    386 typename xfunction<F, CT...>::pointer,
    +
    387 typename xfunction<F, CT...>::reference>
    +
    388 {
    +
    389 public:
    +
    390
    +
    391 using self_type = xfunction_iterator<F, CT...>;
    +
    392 using functor_type = typename std::remove_reference<F>::type;
    +
    393 using xfunction_type = xfunction<F, CT...>;
    +
    394
    +
    395 using value_type = typename xfunction_type::value_type;
    +
    396 using reference = typename xfunction_type::value_type;
    +
    397 using pointer = typename xfunction_type::const_pointer;
    +
    398 using difference_type = typename xfunction_type::difference_type;
    +
    399 using iterator_category = std::random_access_iterator_tag;
    +
    400
    +
    401 template <class... It>
    +
    402 xfunction_iterator(const xfunction_type* func, It&&... it) noexcept;
    +
    403
    +
    404 self_type& operator++();
    +
    405 self_type& operator--();
    +
    406
    +
    407 self_type& operator+=(difference_type n);
    +
    408 self_type& operator-=(difference_type n);
    +
    409
    +
    410 difference_type operator-(const self_type& rhs) const;
    +
    411
    +
    412 reference operator*() const;
    +
    413
    +
    414 bool equal(const self_type& rhs) const;
    +
    415 bool less_than(const self_type& rhs) const;
    +
    416
    +
    417 private:
    +
    418
    +
    419 using data_type = std::tuple<decltype(xt::linear_begin(std::declval<const std::decay_t<CT>>()))...>;
    +
    420
    +
    421 template <std::size_t... I>
    +
    422 difference_type
    +
    423 tuple_max_diff(std::index_sequence<I...>, const data_type& lhs, const data_type& rhs) const;
    +
    424
    +
    425 const xfunction_type* p_f;
    +
    426 data_type m_it;
    +
    427 };
    +
    +
    428
    +
    429 template <class F, class... CT>
    +
    430 bool operator==(const xfunction_iterator<F, CT...>& it1, const xfunction_iterator<F, CT...>& it2);
    +
    431
    +
    432 template <class F, class... CT>
    +
    433 bool operator<(const xfunction_iterator<F, CT...>& it1, const xfunction_iterator<F, CT...>& it2);
    +
    434
    +
    435 /*********************
    +
    436 * xfunction_stepper *
    +
    437 *********************/
    +
    438
    +
    439 template <class F, class... CT>
    +
    +
    440 class xfunction_stepper
    +
    441 {
    +
    442 public:
    +
    443
    +
    444 using self_type = xfunction_stepper<F, CT...>;
    +
    445 using functor_type = typename std::remove_reference<F>::type;
    +
    446 using xfunction_type = xfunction<F, CT...>;
    +
    447
    +
    448 using value_type = typename xfunction_type::value_type;
    +
    449 using reference = typename xfunction_type::reference;
    +
    450 using pointer = typename xfunction_type::const_pointer;
    +
    451 using size_type = typename xfunction_type::size_type;
    +
    452 using difference_type = typename xfunction_type::difference_type;
    +
    453
    +
    454 using shape_type = typename xfunction_type::shape_type;
    +
    455
    +
    456 template <class requested_type>
    +
    457 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    458
    +
    459 template <class... St>
    +
    460 xfunction_stepper(const xfunction_type* func, St&&... st) noexcept;
    +
    461
    +
    462 void step(size_type dim);
    +
    463 void step_back(size_type dim);
    +
    464 void step(size_type dim, size_type n);
    +
    465 void step_back(size_type dim, size_type n);
    +
    466 void reset(size_type dim);
    +
    467 void reset_back(size_type dim);
    +
    468
    +
    469 void to_begin();
    +
    470 void to_end(layout_type l);
    +
    471
    +
    472 reference operator*() const;
    +
    473
    +
    474 template <class T>
    +
    475 simd_return_type<T> step_simd();
    +
    476
    +
    477 void step_leading();
    +
    478
    +
    479 private:
    +
    480
    +
    481 const xfunction_type* p_f;
    +
    482 std::tuple<typename std::decay_t<CT>::const_stepper...> m_st;
    +
    483 };
    +
    +
    484
    +
    485 /*********************************
    +
    486 * xfunction implementation *
    +
    487 *********************************/
    +
    488
    +
    493
    +
    499 template <class F, class... CT>
    +
    500 template <class Func, class... CTA, class U>
    +
    +
    501 inline xfunction<F, CT...>::xfunction(Func&& f, CTA&&... e) noexcept
    +
    502 : m_e(std::forward<CTA>(e)...)
    +
    503 , m_f(std::forward<Func>(f))
    +
    504 {
    +
    505 }
    +
    +
    506
    +
    512 template <class F, class... CT>
    +
    513 template <class FA, class... CTA>
    +
    + +
    515 : m_e(xf.arguments())
    +
    516 , m_f(xf.functor())
    +
    517 {
    +
    518 }
    +
    +
    519
    +
    521
    +
    526
    +
    529 template <class F, class... CT>
    +
    +
    530 inline auto xfunction<F, CT...>::dimension() const noexcept -> size_type
    +
    531 {
    +
    532 size_type dimension = m_cache.is_initialized ? m_cache.shape.size() : compute_dimension();
    +
    533 return dimension;
    +
    534 }
    +
    +
    535
    +
    536 template <class F, class... CT>
    +
    537 inline void xfunction<F, CT...>::compute_cached_shape() const
    +
    538 {
    +
    539 static_assert(!detail::is_fixed<shape_type>::value, "Calling compute_cached_shape on fixed!");
    +
    540
    +
    541 m_cache.shape = uninitialized_shape<xindex_type_t<inner_shape_type>>(compute_dimension());
    +
    542 m_cache.is_trivial = broadcast_shape(m_cache.shape, false);
    +
    543 m_cache.is_initialized = true;
    +
    544 }
    +
    545
    +
    549 template <class F, class... CT>
    +
    +
    550 inline auto xfunction<F, CT...>::shape() const -> const inner_shape_type&
    +
    551 {
    +
    552 if constexpr (!detail::is_fixed<inner_shape_type>::value)
    +
    553 {
    +
    554 if (!m_cache.is_initialized)
    +
    555 {
    +
    556 compute_cached_shape();
    +
    557 }
    +
    558 }
    +
    559 return m_cache.shape;
    +
    560 }
    +
    +
    561
    +
    565 template <class F, class... CT>
    +
    + +
    567 {
    +
    568 return std::apply(
    +
    569 [&](auto&... e)
    +
    570 {
    +
    571 return compute_layout(e.layout()...);
    +
    572 },
    +
    573 m_e
    +
    574 );
    +
    575 }
    +
    +
    576
    +
    577 template <class F, class... CT>
    +
    578 inline bool xfunction<F, CT...>::is_contiguous() const noexcept
    +
    579 {
    +
    580 return layout() != layout_type::dynamic
    +
    581 && accumulate(
    +
    582 [](bool r, const auto& exp)
    +
    583 {
    +
    584 return r && exp.is_contiguous();
    +
    585 },
    +
    586 true,
    +
    587 m_e
    +
    588 );
    +
    589 }
    +
    590
    +
    592
    +
    596
    +
    603 template <class F, class... CT>
    +
    604 template <class... Args>
    +
    +
    605 inline auto xfunction<F, CT...>::operator()(Args... args) const -> const_reference
    +
    606 {
    +
    607 // The static cast prevents the compiler from instantiating the template methods with signed integers,
    +
    608 // leading to warning about signed/unsigned conversions in the deeper layers of the access methods
    +
    609
    +
    610 return std::apply(
    +
    611 [&](auto&... e)
    +
    612 {
    +
    613 XTENSOR_TRY(check_index(shape(), args...));
    +
    614 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    615 return m_f(e(args...)...);
    +
    616 },
    +
    617 m_e
    +
    618 );
    +
    619 }
    +
    +
    620
    +
    624
    +
    630 template <class F, class... CT>
    +
    +
    631 inline auto xfunction<F, CT...>::flat(size_type index) const -> const_reference
    +
    632 {
    +
    633 return std::apply(
    +
    634 [&](auto&... e)
    +
    635 {
    +
    636 return m_f(e.data_element(index)...);
    +
    637 },
    +
    638 m_e
    +
    639 );
    +
    640 }
    +
    +
    641
    +
    661 template <class F, class... CT>
    +
    662 template <class... Args>
    +
    +
    663 inline auto xfunction<F, CT...>::unchecked(Args... args) const -> const_reference
    +
    664 {
    +
    665 // The static cast prevents the compiler from instantiating the template methods with signed integers,
    +
    666 // leading to warning about signed/unsigned conversions in the deeper layers of the access methods
    +
    667 return std::apply(
    +
    668 [&](const auto&... e)
    +
    669 {
    +
    670 return m_f(e.unchecked(static_cast<size_type>(args)...)...);
    +
    671 },
    +
    672 m_e
    +
    673 );
    +
    674 }
    +
    +
    675
    +
    683 template <class F, class... CT>
    +
    684 template <class It>
    +
    +
    685 inline auto xfunction<F, CT...>::element(It first, It last) const -> const_reference
    +
    686 {
    +
    687 return std::apply(
    +
    688 [&](auto&... e)
    +
    689 {
    +
    690 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    691 return m_f(e.element(first, last)...);
    +
    692 },
    +
    693 m_e
    +
    694 );
    +
    695 }
    +
    +
    696
    +
    698
    +
    703
    +
    709 template <class F, class... CT>
    +
    710 template <class S>
    +
    +
    711 inline bool xfunction<F, CT...>::broadcast_shape(S& shape, bool reuse_cache) const
    +
    712 {
    +
    713 if (m_cache.is_initialized && reuse_cache)
    +
    714 {
    +
    715 std::copy(m_cache.shape.cbegin(), m_cache.shape.cend(), shape.begin());
    +
    716 return m_cache.is_trivial;
    +
    717 }
    +
    718 else
    +
    719 {
    +
    720 // e.broadcast_shape must be evaluated even if b is false
    +
    721 auto func = [&shape](bool b, auto&& e)
    +
    722 {
    +
    723 return e.broadcast_shape(shape) && b;
    +
    724 };
    +
    725 return accumulate(func, true, m_e);
    +
    726 }
    +
    727 }
    +
    +
    728
    +
    734 template <class F, class... CT>
    +
    735 template <class S>
    +
    +
    736 inline bool xfunction<F, CT...>::has_linear_assign(const S& strides) const noexcept
    +
    737 {
    +
    738 auto func = [&strides](bool b, auto&& e)
    +
    739 {
    +
    740 return b && e.has_linear_assign(strides);
    +
    741 };
    +
    742 return accumulate(func, true, m_e);
    +
    743 }
    +
    +
    744
    +
    746
    +
    747 template <class F, class... CT>
    +
    748 inline auto xfunction<F, CT...>::linear_begin() const noexcept -> const_linear_iterator
    +
    749 {
    +
    750 return linear_cbegin();
    +
    751 }
    +
    752
    +
    753 template <class F, class... CT>
    +
    754 inline auto xfunction<F, CT...>::linear_end() const noexcept -> const_linear_iterator
    +
    755 {
    +
    756 return linear_cend();
    +
    757 }
    +
    758
    +
    759 template <class F, class... CT>
    +
    760 inline auto xfunction<F, CT...>::linear_cbegin() const noexcept -> const_linear_iterator
    +
    761 {
    +
    762 auto f = [](const auto& e) noexcept
    +
    763 {
    +
    764 return xt::linear_begin(e);
    +
    765 };
    +
    766 return build_iterator(f, std::make_index_sequence<sizeof...(CT)>());
    +
    767 }
    +
    768
    +
    769 template <class F, class... CT>
    +
    770 inline auto xfunction<F, CT...>::linear_cend() const noexcept -> const_linear_iterator
    +
    771 {
    +
    772 auto f = [](const auto& e) noexcept
    +
    773 {
    +
    774 return xt::linear_end(e);
    +
    775 };
    +
    776 return build_iterator(f, std::make_index_sequence<sizeof...(CT)>());
    +
    777 }
    +
    778
    +
    779 template <class F, class... CT>
    +
    780 inline auto xfunction<F, CT...>::linear_rbegin() const noexcept -> const_reverse_linear_iterator
    +
    781 {
    +
    782 return linear_crbegin();
    +
    783 }
    +
    784
    +
    785 template <class F, class... CT>
    +
    786 inline auto xfunction<F, CT...>::linear_rend() const noexcept -> const_reverse_linear_iterator
    +
    787 {
    +
    788 return linear_crend();
    +
    789 }
    +
    790
    +
    791 template <class F, class... CT>
    +
    792 inline auto xfunction<F, CT...>::linear_crbegin() const noexcept -> const_reverse_linear_iterator
    +
    793 {
    +
    794 return const_reverse_linear_iterator(linear_cend());
    +
    795 }
    +
    796
    +
    797 template <class F, class... CT>
    +
    798 inline auto xfunction<F, CT...>::linear_crend() const noexcept -> const_reverse_linear_iterator
    +
    799 {
    +
    800 return const_reverse_linear_iterator(linear_cbegin());
    +
    801 }
    +
    802
    +
    803 template <class F, class... CT>
    +
    804 template <class S>
    +
    805 inline auto xfunction<F, CT...>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    806 {
    +
    807 auto f = [&shape](const auto& e) noexcept
    +
    808 {
    +
    809 return e.stepper_begin(shape);
    +
    810 };
    +
    811 return build_stepper(f, std::make_index_sequence<sizeof...(CT)>());
    +
    812 }
    +
    813
    +
    814 template <class F, class... CT>
    +
    815 template <class S>
    +
    816 inline auto xfunction<F, CT...>::stepper_end(const S& shape, layout_type l) const noexcept -> const_stepper
    +
    817 {
    +
    818 auto f = [&shape, l](const auto& e) noexcept
    +
    819 {
    +
    820 return e.stepper_end(shape, l);
    +
    821 };
    +
    822 return build_stepper(f, std::make_index_sequence<sizeof...(CT)>());
    +
    823 }
    +
    824
    +
    825 template <class F, class... CT>
    +
    826 inline auto xfunction<F, CT...>::data_element(size_type i) const -> const_reference
    +
    827 {
    +
    828 return std::apply(
    +
    829 [&](auto&... e)
    +
    830 {
    +
    831 return m_f(e.data_element(i)...);
    +
    832 },
    +
    833 m_e
    +
    834 );
    +
    835 }
    +
    836
    +
    837 template <class F, class... CT>
    +
    838 template <class UT, class>
    +
    839 inline xfunction<F, CT...>::operator value_type() const
    +
    840 {
    +
    841 return operator()();
    +
    842 }
    +
    843
    +
    844 template <class F, class... CT>
    +
    845 template <class align, class requested_type, std::size_t N>
    +
    846 inline auto xfunction<F, CT...>::load_simd(size_type i) const -> simd_return_type<requested_type>
    +
    847 {
    +
    848 return std::apply(
    +
    849 [&](auto&... e)
    +
    850 {
    +
    851 return m_f.simd_apply((e.template load_simd<align, requested_type>(i))...);
    +
    852 },
    +
    853 m_e
    +
    854 );
    +
    855 }
    +
    856
    +
    857 template <class F, class... CT>
    +
    858 inline auto xfunction<F, CT...>::arguments() const noexcept -> const tuple_type&
    +
    859 {
    +
    860 return m_e;
    +
    861 }
    +
    862
    +
    863 template <class F, class... CT>
    +
    864 inline auto xfunction<F, CT...>::functor() const noexcept -> const functor_type&
    +
    865 {
    +
    866 return m_f;
    +
    867 }
    +
    868
    +
    869 template <class F, class... CT>
    +
    870 template <class Func, std::size_t... I>
    +
    871 inline auto xfunction<F, CT...>::build_stepper(Func&& f, std::index_sequence<I...>) const noexcept
    +
    872 -> const_stepper
    +
    873 {
    +
    874 return const_stepper(this, f(std::get<I>(m_e))...);
    +
    875 }
    +
    876
    +
    877 template <class F, class... CT>
    +
    878 template <class Func, std::size_t... I>
    +
    879 inline auto xfunction<F, CT...>::build_iterator(Func&& f, std::index_sequence<I...>) const noexcept
    +
    880 {
    +
    881 return const_linear_iterator(this, f(std::get<I>(m_e))...);
    +
    882 }
    +
    883
    +
    884 template <class F, class... CT>
    +
    885 inline auto xfunction<F, CT...>::compute_dimension() const noexcept -> size_type
    +
    886 {
    +
    887 auto func = [](size_type d, auto&& e) noexcept
    +
    888 {
    +
    889 return (std::max)(d, e.dimension());
    +
    890 };
    +
    891 return accumulate(func, size_type(0), m_e);
    +
    892 }
    +
    893
    +
    894 /*************************************
    +
    895 * xfunction_iterator implementation *
    +
    896 *************************************/
    +
    897
    +
    898 template <class F, class... CT>
    +
    899 template <class... It>
    +
    900 inline xfunction_iterator<F, CT...>::xfunction_iterator(const xfunction_type* func, It&&... it) noexcept
    +
    901 : p_f(func)
    +
    902 , m_it(std::forward<It>(it)...)
    +
    903 {
    +
    904 }
    +
    905
    +
    906 template <class F, class... CT>
    +
    907 inline auto xfunction_iterator<F, CT...>::operator++() -> self_type&
    +
    908 {
    +
    909 auto f = [](auto& it)
    +
    910 {
    +
    911 ++it;
    +
    912 };
    +
    913 for_each(f, m_it);
    +
    914 return *this;
    +
    915 }
    +
    916
    +
    917 template <class F, class... CT>
    +
    918 inline auto xfunction_iterator<F, CT...>::operator--() -> self_type&
    +
    919 {
    +
    920 auto f = [](auto& it)
    +
    921 {
    +
    922 return --it;
    +
    923 };
    +
    924 for_each(f, m_it);
    +
    925 return *this;
    +
    926 }
    +
    927
    +
    928 template <class F, class... CT>
    +
    929 inline auto xfunction_iterator<F, CT...>::operator+=(difference_type n) -> self_type&
    +
    930 {
    +
    931 auto f = [n](auto& it)
    +
    932 {
    +
    933 it += n;
    +
    934 };
    +
    935 for_each(f, m_it);
    +
    936 return *this;
    +
    937 }
    +
    938
    +
    939 template <class F, class... CT>
    +
    940 inline auto xfunction_iterator<F, CT...>::operator-=(difference_type n) -> self_type&
    +
    941 {
    +
    942 auto f = [n](auto& it)
    +
    943 {
    +
    944 it -= n;
    +
    945 };
    +
    946 for_each(f, m_it);
    +
    947 return *this;
    +
    948 }
    +
    949
    +
    950 template <class F, class... CT>
    +
    951 inline auto xfunction_iterator<F, CT...>::operator-(const self_type& rhs) const -> difference_type
    +
    952 {
    +
    953 return tuple_max_diff(std::make_index_sequence<sizeof...(CT)>(), m_it, rhs.m_it);
    +
    954 }
    +
    955
    +
    956 template <class F, class... CT>
    +
    957 inline auto xfunction_iterator<F, CT...>::operator*() const -> reference
    +
    958 {
    +
    959 return std::apply(
    +
    960 [&](auto&... it)
    +
    961 {
    +
    962 return (p_f->m_f)(*it...);
    +
    963 },
    +
    964 m_it
    +
    965 );
    +
    966 }
    +
    967
    +
    968 template <class F, class... CT>
    +
    969 inline bool xfunction_iterator<F, CT...>::equal(const self_type& rhs) const
    +
    970 {
    +
    971 // Optimization: no need to compare each subiterator since they all
    +
    972 // are incremented decremented together.
    +
    973 constexpr std::size_t temp = xtl::mpl::find_if<is_not_xdummy_iterator, data_type>::value;
    +
    974 constexpr std::size_t index = (temp == std::tuple_size<data_type>::value) ? 0 : temp;
    +
    975 return std::get<index>(m_it) == std::get<index>(rhs.m_it);
    +
    976 }
    +
    977
    +
    978 template <class F, class... CT>
    +
    979 inline bool xfunction_iterator<F, CT...>::less_than(const self_type& rhs) const
    +
    980 {
    +
    981 // Optimization: no need to compare each subiterator since they all
    +
    982 // are incremented decremented together.
    +
    983 constexpr std::size_t temp = xtl::mpl::find_if<is_not_xdummy_iterator, data_type>::value;
    +
    984 constexpr std::size_t index = (temp == std::tuple_size<data_type>::value) ? 0 : temp;
    +
    985 return std::get<index>(m_it) < std::get<index>(rhs.m_it);
    +
    986 }
    +
    987
    +
    988 template <class F, class... CT>
    +
    989 template <std::size_t... I>
    +
    990 inline auto xfunction_iterator<F, CT...>::tuple_max_diff(
    +
    991 std::index_sequence<I...>,
    +
    992 const data_type& lhs,
    +
    993 const data_type& rhs
    +
    994 ) const -> difference_type
    +
    995 {
    +
    996 auto diff = std::make_tuple((std::get<I>(lhs) - std::get<I>(rhs))...);
    +
    997 auto func = [](difference_type n, auto&& v)
    +
    998 {
    +
    999 return (std::max)(n, v);
    +
    1000 };
    +
    1001 return accumulate(func, difference_type(0), diff);
    +
    1002 }
    +
    1003
    +
    1004 template <class F, class... CT>
    +
    1005 inline bool operator==(const xfunction_iterator<F, CT...>& it1, const xfunction_iterator<F, CT...>& it2)
    +
    1006 {
    +
    1007 return it1.equal(it2);
    +
    1008 }
    +
    1009
    +
    1010 template <class F, class... CT>
    +
    1011 inline bool operator<(const xfunction_iterator<F, CT...>& it1, const xfunction_iterator<F, CT...>& it2)
    +
    1012 {
    +
    1013 return it1.less_than(it2);
    +
    1014 }
    +
    1015
    +
    1016 /************************************
    +
    1017 * xfunction_stepper implementation *
    +
    1018 ************************************/
    +
    1019
    +
    1020 template <class F, class... CT>
    +
    1021 template <class... St>
    +
    1022 inline xfunction_stepper<F, CT...>::xfunction_stepper(const xfunction_type* func, St&&... st) noexcept
    +
    1023 : p_f(func)
    +
    1024 , m_st(std::forward<St>(st)...)
    +
    1025 {
    +
    1026 }
    +
    1027
    +
    1028 template <class F, class... CT>
    +
    1029 inline void xfunction_stepper<F, CT...>::step(size_type dim)
    +
    1030 {
    +
    1031 auto f = [dim](auto& st)
    +
    1032 {
    +
    1033 st.step(dim);
    +
    1034 };
    +
    1035 for_each(f, m_st);
    +
    1036 }
    +
    1037
    +
    1038 template <class F, class... CT>
    +
    1039 inline void xfunction_stepper<F, CT...>::step_back(size_type dim)
    +
    1040 {
    +
    1041 auto f = [dim](auto& st)
    +
    1042 {
    +
    1043 st.step_back(dim);
    +
    1044 };
    +
    1045 for_each(f, m_st);
    +
    1046 }
    +
    1047
    +
    1048 template <class F, class... CT>
    +
    1049 inline void xfunction_stepper<F, CT...>::step(size_type dim, size_type n)
    +
    1050 {
    +
    1051 auto f = [dim, n](auto& st)
    +
    1052 {
    +
    1053 st.step(dim, n);
    +
    1054 };
    +
    1055 for_each(f, m_st);
    +
    1056 }
    +
    1057
    +
    1058 template <class F, class... CT>
    +
    1059 inline void xfunction_stepper<F, CT...>::step_back(size_type dim, size_type n)
    +
    1060 {
    +
    1061 auto f = [dim, n](auto& st)
    +
    1062 {
    +
    1063 st.step_back(dim, n);
    +
    1064 };
    +
    1065 for_each(f, m_st);
    +
    1066 }
    +
    1067
    +
    1068 template <class F, class... CT>
    +
    1069 inline void xfunction_stepper<F, CT...>::reset(size_type dim)
    +
    1070 {
    +
    1071 auto f = [dim](auto& st)
    +
    1072 {
    +
    1073 st.reset(dim);
    +
    1074 };
    +
    1075 for_each(f, m_st);
    +
    1076 }
    +
    1077
    +
    1078 template <class F, class... CT>
    +
    1079 inline void xfunction_stepper<F, CT...>::reset_back(size_type dim)
    +
    1080 {
    +
    1081 auto f = [dim](auto& st)
    +
    1082 {
    +
    1083 st.reset_back(dim);
    +
    1084 };
    +
    1085 for_each(f, m_st);
    +
    1086 }
    +
    1087
    +
    1088 template <class F, class... CT>
    +
    1089 inline void xfunction_stepper<F, CT...>::to_begin()
    +
    1090 {
    +
    1091 auto f = [](auto& st)
    +
    1092 {
    +
    1093 st.to_begin();
    +
    1094 };
    +
    1095 for_each(f, m_st);
    +
    1096 }
    +
    1097
    +
    1098 template <class F, class... CT>
    +
    1099 inline void xfunction_stepper<F, CT...>::to_end(layout_type l)
    +
    1100 {
    +
    1101 auto f = [l](auto& st)
    +
    1102 {
    +
    1103 st.to_end(l);
    +
    1104 };
    +
    1105 for_each(f, m_st);
    +
    1106 }
    +
    1107
    +
    1108 template <class F, class... CT>
    +
    1109 inline auto xfunction_stepper<F, CT...>::operator*() const -> reference
    +
    1110 {
    +
    1111 return std::apply(
    +
    1112 [&](auto&... e)
    +
    1113 {
    +
    1114 return (p_f->m_f)(*e...);
    +
    1115 },
    +
    1116 m_st
    +
    1117 );
    +
    1118 }
    +
    1119
    +
    1120 template <class F, class... CT>
    +
    1121 template <class T>
    +
    1122 inline auto xfunction_stepper<F, CT...>::step_simd() -> simd_return_type<T>
    +
    1123 {
    +
    1124 return std::apply(
    +
    1125 [&](auto&... st)
    +
    1126 {
    +
    1127 return (p_f->m_f.simd_apply)(st.template step_simd<T>()...);
    +
    1128 },
    +
    1129 m_st
    +
    1130 );
    +
    1131 }
    +
    1132
    +
    1133 template <class F, class... CT>
    +
    1134 inline void xfunction_stepper<F, CT...>::step_leading()
    +
    1135 {
    +
    1136 auto step_leading_lambda = [](auto&& st)
    +
    1137 {
    +
    1138 st.step_leading();
    +
    1139 };
    +
    1140 for_each(step_leading_lambda, m_st);
    +
    1141 }
    +
    1142}
    +
    1143
    +
    1144#endif
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    + + +
    Multidimensional function operating on xtensor expressions.
    +
    const_reference back() const
    +
    xfunction(xfunction< FA, CTA... > xf) noexcept
    Constructs an xfunction applying the specified function given by another xfunction with its arguments...
    +
    bool in_bounds(Args... args) const
    +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    +
    layout_type layout() const noexcept
    +
    const inner_shape_type & shape() const
    +
    size_type dimension() const noexcept
    Returns the number of dimensions of the function.
    +
    xfunction(Func &&f, CTA &&... e) noexcept
    Constructs an xfunction applying the specified function to the given arguments.
    +
    bool has_linear_assign(const S &strides) const noexcept
    +
    const_reference flat(size_type i) const
    +
    const_reference front() const
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    +
    auto operator-(E &&e) noexcept -> detail::xfunction_type_t< detail::negate, E >
    Opposite.
    +
    auto operator*(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
    Multiplication.
    +
    auto equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >
    Element-wise equality.
    +
    auto exp(E &&e) noexcept -> detail::xfunction_type_t< math::exp_fun, E >
    Natural exponential function.
    Definition xmath.hpp:900
    +
    auto diff(const xexpression< T > &a, std::size_t n=1, std::ptrdiff_t axis=-1)
    Calculate the n-th discrete difference along the given axis.
    Definition xmath.hpp:2908
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    constexpr layout_type compute_layout(Args... args) noexcept
    Implementation of the following logical table:
    Definition xlayout.hpp:88
    +
    layout_type
    Definition xlayout.hpp:24
    + +
    auto accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())
    Accumulate and flatten array NOTE This function is not lazy!
    + + + + + + + + + + + +
    +
    + + + + diff --git a/xfunctor__view_8hpp_source.html b/xfunctor__view_8hpp_source.html new file mode 100644 index 000000000..c973dd883 --- /dev/null +++ b/xfunctor__view_8hpp_source.html @@ -0,0 +1,1599 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xfunctor_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xfunctor_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_FUNCTOR_VIEW_HPP
    +
    11#define XTENSOR_FUNCTOR_VIEW_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <type_traits>
    +
    17#include <utility>
    +
    18
    +
    19#include <xtl/xproxy_wrapper.hpp>
    +
    20
    +
    21#include "../containers/xarray.hpp"
    +
    22#include "../containers/xtensor.hpp"
    +
    23#include "../core/xaccessible.hpp"
    +
    24#include "../core/xexpression.hpp"
    +
    25#include "../core/xiterator.hpp"
    +
    26#include "../core/xsemantic.hpp"
    +
    27#include "../utils/xutils.hpp"
    +
    28
    +
    29namespace xt
    +
    30{
    +
    37
    +
    38 /************************************************
    +
    39 * xfunctor_view and xfunctor_adaptor extension *
    +
    40 ************************************************/
    +
    41
    +
    42 namespace extension
    +
    43 {
    +
    44 template <class Tag, class F, class CT>
    + +
    46
    +
    47 template <class F, class CT>
    +
    + +
    49 {
    +
    50 using type = xtensor_empty_base;
    +
    51 };
    +
    +
    52
    +
    53 template <class F, class CT>
    +
    +
    54 struct xfunctor_view_base : xfunctor_view_base_impl<xexpression_tag_t<CT>, F, CT>
    +
    55 {
    +
    56 };
    +
    +
    57
    +
    58 template <class F, class CT>
    +
    59 using xfunctor_view_base_t = typename xfunctor_view_base<F, CT>::type;
    +
    60 }
    +
    61
    +
    62 /*************************************
    +
    63 * xfunctor_applier_base declaration *
    +
    64 *************************************/
    +
    65
    +
    66 template <class F, class IT>
    + +
    68
    +
    69 template <class F, class ST>
    +
    70 class xfunctor_stepper;
    +
    71
    +
    72 template <class D>
    +
    +
    73 class xfunctor_applier_base : private xaccessible<D>
    +
    74 {
    +
    75 public:
    +
    76
    +
    77 using self_type = xfunctor_applier_base<D>;
    +
    78 using inner_types = xcontainer_inner_types<D>;
    +
    79 using xexpression_type = typename inner_types::xexpression_type;
    +
    80 using undecay_expression = typename inner_types::undecay_expression;
    +
    81 using functor_type = typename inner_types::functor_type;
    +
    82 using accessible_base = xaccessible<D>;
    +
    83
    +
    84 using extension_base = extension::xfunctor_view_base_t<functor_type, undecay_expression>;
    +
    85 using expression_tag = typename extension_base::expression_tag;
    +
    86
    +
    87 using value_type = typename functor_type::value_type;
    +
    88 using reference = typename inner_types::reference;
    +
    89 using const_reference = typename inner_types::const_reference;
    +
    90 using pointer = typename functor_type::pointer;
    +
    91 using const_pointer = typename functor_type::const_pointer;
    +
    92 using size_type = typename inner_types::size_type;
    +
    93 using difference_type = typename xexpression_type::difference_type;
    +
    94
    +
    95 using shape_type = typename xexpression_type::shape_type;
    +
    96 using strides_type = xtl::mpl::eval_if_t<
    + +
    98 detail::expr_strides_type<xexpression_type>,
    + +
    100 using backstrides_type = xtl::mpl::eval_if_t<
    + +
    102 detail::expr_backstrides_type<xexpression_type>,
    + +
    104
    +
    105 using inner_shape_type = typename xexpression_type::inner_shape_type;
    +
    106 using inner_strides_type = xtl::mpl::eval_if_t<
    + +
    108 detail::expr_inner_strides_type<xexpression_type>,
    + +
    110 using inner_backstrides_type = xtl::mpl::eval_if_t<
    + +
    112 detail::expr_inner_backstrides_type<xexpression_type>,
    + +
    114
    +
    115 using bool_load_type = xt::bool_load_type<value_type>;
    +
    116
    +
    117 static constexpr layout_type static_layout = xexpression_type::static_layout;
    +
    118 static constexpr bool contiguous_layout = xexpression_type::contiguous_layout;
    +
    119
    + + +
    122
    +
    123 template <layout_type L>
    + +
    125 template <layout_type L>
    +
    126 using const_layout_iterator = xfunctor_iterator<
    +
    127 const functor_type,
    +
    128 typename xexpression_type::template const_layout_iterator<L>>;
    +
    129
    +
    130 template <layout_type L>
    +
    131 using reverse_layout_iterator = xfunctor_iterator<
    +
    132 functor_type,
    +
    133 typename xexpression_type::template reverse_layout_iterator<L>>;
    +
    134 template <layout_type L>
    +
    135 using const_reverse_layout_iterator = xfunctor_iterator<
    +
    136 const functor_type,
    +
    137 typename xexpression_type::template const_reverse_layout_iterator<L>>;
    +
    138
    +
    139 template <class S, layout_type L>
    + +
    141 template <class S, layout_type L>
    +
    142 using const_broadcast_iterator = xfunctor_iterator<
    +
    143 functor_type,
    + +
    145
    +
    146 template <class S, layout_type L>
    +
    147 using reverse_broadcast_iterator = xfunctor_iterator<
    +
    148 functor_type,
    +
    149 typename xexpression_type::template reverse_broadcast_iterator<S, L>>;
    +
    150 template <class S, layout_type L>
    +
    151 using const_reverse_broadcast_iterator = xfunctor_iterator<
    +
    152 functor_type,
    +
    153 typename xexpression_type::template const_reverse_broadcast_iterator<S, L>>;
    +
    154
    + + + +
    158 using const_reverse_linear_iterator = xfunctor_iterator<
    +
    159 const functor_type,
    +
    160 typename xexpression_type::const_reverse_linear_iterator>;
    +
    161
    + + + + +
    166
    +
    167 explicit xfunctor_applier_base(undecay_expression) noexcept;
    +
    168
    +
    169 template <class Func, class E>
    +
    170 xfunctor_applier_base(Func&&, E&&) noexcept;
    +
    171
    +
    172 size_type size() const noexcept;
    +
    173 const inner_shape_type& shape() const noexcept;
    +
    174 const inner_strides_type& strides() const noexcept;
    +
    175 const inner_backstrides_type& backstrides() const noexcept;
    +
    176 using accessible_base::dimension;
    +
    177 using accessible_base::shape;
    +
    178
    +
    179 layout_type layout() const noexcept;
    +
    180 bool is_contiguous() const noexcept;
    +
    181
    +
    182 template <class... Args>
    +
    183 reference operator()(Args... args);
    +
    184
    +
    185 template <class... Args>
    +
    186 reference unchecked(Args... args);
    +
    187
    +
    188 template <class IT>
    +
    189 reference element(IT first, IT last);
    +
    190
    +
    191 template <class... Args>
    +
    192 const_reference operator()(Args... args) const;
    +
    193
    +
    194 template <class... Args>
    +
    195 const_reference unchecked(Args... args) const;
    +
    196
    +
    197 template <class IT>
    +
    198 const_reference element(IT first, IT last) const;
    +
    199
    +
    200 using accessible_base::at;
    +
    201 using accessible_base::operator[];
    +
    202 using accessible_base::back;
    +
    203 using accessible_base::front;
    +
    204 using accessible_base::periodic;
    +
    205
    +
    206 using accessible_base::in_bounds;
    +
    207
    +
    208 xexpression_type& expression() noexcept;
    +
    209 const xexpression_type& expression() const noexcept;
    +
    210
    +
    211 template <class S>
    +
    212 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    213
    +
    214 template <class S>
    +
    215 bool has_linear_assign(const S& strides) const;
    +
    216
    +
    217 template <class FCT = functor_type>
    +
    218 auto data_element(size_type i)
    +
    219 -> decltype(std::declval<FCT>()(std::declval<undecay_expression>().data_element(i)))
    +
    220 {
    +
    221 return m_functor(m_e.data_element(i));
    +
    222 }
    +
    223
    +
    224 template <class FCT = functor_type>
    +
    225 auto data_element(size_type i) const
    +
    226 -> decltype(std::declval<FCT>()(std::declval<const undecay_expression>().data_element(i)))
    +
    227 {
    +
    228 return m_functor(m_e.data_element(i));
    +
    229 }
    +
    230
    +
    231 template <class FCT = functor_type>
    +
    232 auto flat(size_type i) -> decltype(std::declval<FCT>()(std::declval<undecay_expression>().flat(i)))
    +
    233 {
    +
    234 return m_functor(m_e.flat(i));
    +
    235 }
    +
    236
    +
    237 template <class FCT = functor_type>
    +
    238 auto flat(size_type i) const
    +
    239 -> decltype(std::declval<FCT>()(std::declval<const undecay_expression>().flat(i)))
    +
    240 {
    +
    241 return m_functor(m_e.flat(i));
    +
    242 }
    +
    243
    +
    244 // The following functions are defined inline because otherwise signatures
    +
    245 // don't match on GCC.
    +
    246 template <
    +
    247 class align,
    +
    248 class requested_type = typename xexpression_type::value_type,
    +
    249 std::size_t N = xt_simd::simd_traits<requested_type>::size,
    +
    250 class FCT = functor_type>
    +
    251 auto load_simd(size_type i) const
    +
    252 -> decltype(std::declval<FCT>().template proxy_simd_load<align, requested_type, N>(
    +
    253 std::declval<undecay_expression>(),
    +
    254 i
    +
    255 ))
    +
    256 {
    +
    257 return m_functor.template proxy_simd_load<align, requested_type, N>(m_e, i);
    +
    258 }
    +
    259
    +
    260 template <class align, class simd, class FCT = functor_type>
    +
    261 auto store_simd(size_type i, const simd& e)
    +
    262 -> decltype(std::declval<FCT>()
    +
    263 .template proxy_simd_store<align>(std::declval<undecay_expression>(), i, e))
    +
    264 {
    +
    265 return m_functor.template proxy_simd_store<align>(m_e, i, e);
    +
    266 }
    +
    267
    +
    268 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    269 auto begin() noexcept;
    +
    270 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    271 auto end() noexcept;
    +
    272
    +
    273 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    274 auto begin() const noexcept;
    +
    275 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    276 auto end() const noexcept;
    +
    277 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    278 auto cbegin() const noexcept;
    +
    279 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    280 auto cend() const noexcept;
    +
    281
    +
    282 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    283 auto rbegin() noexcept;
    +
    284 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    285 auto rend() noexcept;
    +
    286
    +
    287 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    288 auto rbegin() const noexcept;
    +
    289 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    290 auto rend() const noexcept;
    +
    291 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    292 auto crbegin() const noexcept;
    +
    293 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    294 auto crend() const noexcept;
    +
    295
    +
    296 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    297 broadcast_iterator<S, L> begin(const S& shape) noexcept;
    +
    298 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    299 broadcast_iterator<S, L> end(const S& shape) noexcept;
    +
    300
    +
    301 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    302 const_broadcast_iterator<S, L> begin(const S& shape) const noexcept;
    +
    303 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    304 const_broadcast_iterator<S, L> end(const S& shape) const noexcept;
    +
    305 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    306 const_broadcast_iterator<S, L> cbegin(const S& shape) const noexcept;
    +
    307 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    308 const_broadcast_iterator<S, L> cend(const S& shape) const noexcept;
    +
    309
    +
    310 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    311 reverse_broadcast_iterator<S, L> rbegin(const S& shape) noexcept;
    +
    312 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    313 reverse_broadcast_iterator<S, L> rend(const S& shape) noexcept;
    +
    314
    +
    315 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    316 const_reverse_broadcast_iterator<S, L> rbegin(const S& shape) const noexcept;
    +
    317 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    318 const_reverse_broadcast_iterator<S, L> rend(const S& shape) const noexcept;
    +
    319 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    320 const_reverse_broadcast_iterator<S, L> crbegin(const S& shape) const noexcept;
    +
    321 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    322 const_reverse_broadcast_iterator<S, L> crend(const S& shape) const noexcept;
    +
    323
    +
    324 linear_iterator linear_begin() noexcept;
    +
    325 linear_iterator linear_end() noexcept;
    +
    326
    +
    327 const_linear_iterator linear_begin() const noexcept;
    +
    328 const_linear_iterator linear_end() const noexcept;
    +
    329 const_linear_iterator linear_cbegin() const noexcept;
    +
    330 const_linear_iterator linear_cend() const noexcept;
    +
    331
    +
    332 reverse_linear_iterator linear_rbegin() noexcept;
    +
    333 reverse_linear_iterator linear_rend() noexcept;
    +
    334
    +
    335 const_reverse_linear_iterator linear_rbegin() const noexcept;
    +
    336 const_reverse_linear_iterator linear_rend() const noexcept;
    +
    337 const_reverse_linear_iterator linear_crbegin() const noexcept;
    +
    338 const_reverse_linear_iterator linear_crend() const noexcept;
    +
    339
    +
    340 template <class S>
    +
    341 stepper stepper_begin(const S& shape) noexcept;
    +
    342 template <class S>
    +
    343 stepper stepper_end(const S& shape, layout_type l) noexcept;
    +
    344 template <class S>
    +
    345 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    346 template <class S>
    +
    347 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    348
    +
    349 protected:
    +
    350
    +
    351 undecay_expression m_e;
    +
    352 functor_type m_functor;
    +
    353
    +
    354 private:
    +
    355
    +
    356 friend class xaccessible<D>;
    +
    357 friend class xconst_accessible<D>;
    +
    358 };
    +
    +
    359
    +
    360 template <class D, class T>
    +
    + +
    362 : std::conjunction<
    +
    363 has_simd_type<T>,
    +
    364 has_simd_interface<typename xfunctor_applier_base<D>::xexpression_type>,
    +
    365 detail::has_simd_interface_impl<xfunctor_applier_base<D>, T>>
    +
    366 {
    +
    367 };
    +
    +
    368
    +
    369 /********************************
    +
    370 * xfunctor_view_temporary_type *
    +
    371 ********************************/
    +
    372
    +
    373 namespace detail
    +
    374 {
    +
    375 // TODO replace with xexpression_for_shape ...
    +
    376 template <class F, class S, layout_type L>
    +
    377 struct functorview_temporary_type_impl
    +
    378 {
    + +
    380 };
    +
    381
    +
    382 template <class F, class T, std::size_t N, layout_type L>
    +
    383 struct functorview_temporary_type_impl<F, std::array<T, N>, L>
    +
    384 {
    +
    385 using type = xtensor<typename F::value_type, N, L>;
    +
    386 };
    +
    387 }
    +
    388
    +
    389 template <class F, class E>
    +
    + +
    391 {
    +
    392 using type = typename detail::functorview_temporary_type_impl<F, typename E::shape_type, E::static_layout>::type;
    +
    393 };
    +
    +
    394
    +
    395 /*****************************
    +
    396 * xfunctor_view declaration *
    +
    397 *****************************/
    +
    398
    +
    399 template <class F, class CT>
    +
    400 class xfunctor_view;
    +
    401
    +
    402 template <class F, class CT>
    +
    + +
    404 {
    +
    405 using xexpression_type = std::decay_t<CT>;
    +
    406 using undecay_expression = CT;
    +
    407 using functor_type = std::decay_t<F>;
    +
    408 using reference = decltype(std::declval<F>()(std::declval<xexpression_type>()()));
    +
    409 using const_reference = decltype(std::declval<F>()(std::declval<const xexpression_type>()()));
    +
    410 using size_type = typename xexpression_type::size_type;
    +
    411 using temporary_type = typename xfunctor_view_temporary_type<F, xexpression_type>::type;
    +
    412 };
    +
    +
    413
    +
    414 template <class F, class CT, class T>
    +
    + +
    416 : has_simd_interface<xfunctor_applier_base<xfunctor_view<F, CT>>, T>
    +
    417 {
    +
    418 };
    +
    +
    419
    +
    439 template <class F, class CT>
    +
    +
    440 class xfunctor_view : public xfunctor_applier_base<xfunctor_view<F, CT>>,
    +
    441 public xview_semantic<xfunctor_view<F, CT>>,
    +
    442 public extension::xfunctor_view_base_t<F, CT>
    +
    443 {
    +
    444 public:
    +
    445
    +
    446 using self_type = xfunctor_view<F, CT>;
    +
    447 using semantic_base = xview_semantic<self_type>;
    +
    448
    +
    449 // constructors
    + +
    451
    +
    452 template <class E>
    +
    453 self_type& operator=(const xexpression<E>& e);
    +
    454
    +
    455 template <class E>
    +
    456 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    457
    +
    458 template <class E>
    +
    459 using rebind_t = xfunctor_view<F, E>;
    +
    460
    +
    461 template <class E>
    +
    462 rebind_t<E> build_functor_view(E&& e) const;
    +
    463
    +
    464 private:
    +
    465
    +
    466 using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type;
    +
    467 void assign_temporary_impl(temporary_type&& tmp);
    +
    468 friend class xview_semantic<self_type>;
    +
    469 friend class xaccessible<self_type>;
    +
    470 };
    +
    +
    471
    +
    472 /********************************
    +
    473 * xfunctor_adaptor declaration *
    +
    474 ********************************/
    +
    475
    +
    476 template <class F, class CT>
    +
    477 class xfunctor_adaptor;
    +
    478
    +
    479 template <class F, class CT>
    +
    + +
    481 {
    +
    482 using xexpression_type = std::decay_t<CT>;
    +
    483 using undecay_expression = CT;
    +
    484 using functor_type = std::decay_t<F>;
    +
    485 using reference = typename functor_type::reference;
    +
    486 using const_reference = typename functor_type::const_reference;
    +
    487 using size_type = typename xexpression_type::size_type;
    +
    488 using temporary_type = typename xfunctor_view_temporary_type<F, xexpression_type>::type;
    +
    489 };
    +
    +
    490
    +
    491 template <class F, class CT, class T>
    +
    + +
    493 : has_simd_interface<xfunctor_applier_base<xfunctor_adaptor<F, CT>>, T>
    +
    494 {
    +
    495 };
    +
    +
    496
    +
    508 template <class F, class CT>
    +
    +
    509 class xfunctor_adaptor : public xfunctor_applier_base<xfunctor_adaptor<F, CT>>,
    +
    510 public xcontainer_semantic<xfunctor_adaptor<F, CT>>,
    +
    511 public extension::xfunctor_view_base_t<F, CT>
    +
    512 {
    +
    513 public:
    +
    514
    +
    515 using self_type = xfunctor_adaptor<F, CT>;
    +
    516 using semantic_base = xcontainer_semantic<self_type>;
    +
    517 using xexpression_type = std::decay_t<CT>;
    +
    518 using base_type = xfunctor_applier_base<self_type>;
    +
    519 using shape_type = typename base_type::shape_type;
    +
    520 using strides_type = typename xexpression_type::strides_type;
    +
    521 // constructors
    + +
    523
    +
    524 template <class E>
    +
    525 self_type& operator=(const xexpression<E>& e);
    +
    526
    +
    527 template <class E>
    +
    528 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    529
    +
    530 template <class S = shape_type>
    +
    531 auto resize(S&& shape, bool force = false);
    +
    532
    +
    533 template <class S = shape_type>
    +
    534 auto resize(S&& shape, layout_type l);
    +
    535
    +
    536 template <class S = shape_type>
    +
    537 auto resize(S&& shape, const strides_type& strides);
    +
    538
    +
    539 template <class S = shape_type>
    +
    540 auto& reshape(S&& shape, layout_type layout = base_type::static_layout) &;
    +
    541
    +
    542 private:
    +
    543
    +
    544 using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type;
    +
    545 void assign_temporary_impl(temporary_type&& tmp);
    +
    546 friend class xcontainer_semantic<self_type>;
    +
    547 friend class xaccessible<self_type>;
    +
    548 };
    +
    +
    549
    +
    550 /*********************************
    +
    551 * xfunctor_iterator declaration *
    +
    552 *********************************/
    +
    553
    +
    554 template <class R>
    +
    + +
    556 {
    +
    557 using reference = R;
    +
    558 using pointer = std::add_pointer_t<std::remove_reference_t<R>>;
    +
    559 };
    +
    +
    560
    +
    561 namespace detail
    +
    562 {
    +
    563 template <class F, class IT>
    +
    564 struct xfunctor_invoker
    +
    565 {
    +
    566 using type = decltype(std::declval<F>()(*(std::declval<IT>())));
    +
    567 };
    +
    568
    +
    569 template <class F, class IT>
    +
    570 using xfunctor_invoker_t = typename xfunctor_invoker<F, IT>::type;
    +
    571 }
    +
    572
    +
    573 template <class F, class IT>
    +
    +
    574 class xfunctor_iterator : public xtl::xrandom_access_iterator_base<
    +
    575 xfunctor_iterator<F, IT>,
    +
    576 typename std::decay_t<F>::value_type,
    +
    577 typename std::iterator_traits<IT>::difference_type,
    +
    578 typename xproxy_inner_types<detail::xfunctor_invoker_t<F, IT>>::pointer,
    +
    579 typename xproxy_inner_types<detail::xfunctor_invoker_t<F, IT>>::reference>
    +
    580 {
    +
    581 public:
    +
    582
    +
    583 using functor_type = F;
    +
    584 using subiterator_traits = std::iterator_traits<IT>;
    +
    585
    + +
    587 using value_type = typename functor_type::value_type;
    +
    588 using reference = typename proxy_inner::reference;
    +
    589 using pointer = typename proxy_inner::pointer;
    +
    590 using difference_type = typename subiterator_traits::difference_type;
    +
    591 using iterator_category = typename subiterator_traits::iterator_category;
    +
    592
    +
    593 using self_type = xfunctor_iterator<F, IT>;
    +
    594
    +
    595 xfunctor_iterator(const IT&, functor_type*);
    +
    596
    +
    597 self_type& operator++();
    +
    598 self_type& operator--();
    +
    599
    +
    600 self_type& operator+=(difference_type n);
    +
    601 self_type& operator-=(difference_type n);
    +
    602
    +
    603 difference_type operator-(xfunctor_iterator rhs) const;
    +
    604
    +
    605 reference operator*() const;
    +
    606 pointer operator->() const;
    +
    607
    +
    608 bool equal(const xfunctor_iterator& rhs) const;
    +
    609 bool less_than(const xfunctor_iterator& rhs) const;
    +
    610
    +
    611 private:
    +
    612
    +
    613 IT m_it;
    +
    614 functor_type* p_functor;
    +
    615 };
    +
    +
    616
    +
    617 template <class F, class IT>
    +
    618 bool operator==(const xfunctor_iterator<F, IT>& lhs, const xfunctor_iterator<F, IT>& rhs);
    +
    619
    +
    620 template <class F, class IT>
    +
    621 bool operator<(const xfunctor_iterator<F, IT>& lhs, const xfunctor_iterator<F, IT>& rhs);
    +
    622
    +
    623 /********************************
    +
    624 * xfunctor_stepper declaration *
    +
    625 ********************************/
    +
    626
    +
    627 template <class F, class ST>
    +
    +
    628 class xfunctor_stepper
    +
    629 {
    +
    630 public:
    +
    631
    +
    632 using functor_type = F;
    +
    633
    + +
    635 using value_type = typename functor_type::value_type;
    +
    636 using reference = typename proxy_inner::reference;
    +
    637 using pointer = std::remove_reference_t<reference>*;
    +
    638 using size_type = typename ST::size_type;
    +
    639 using difference_type = typename ST::difference_type;
    +
    640
    +
    641 using shape_type = typename ST::shape_type;
    +
    642
    +
    643 xfunctor_stepper() = default;
    +
    644 xfunctor_stepper(const ST&, functor_type*);
    +
    645
    +
    646 reference operator*() const;
    +
    647
    +
    648 void step(size_type dim);
    +
    649 void step_back(size_type dim);
    +
    650 void step(size_type dim, size_type n);
    +
    651 void step_back(size_type dim, size_type n);
    +
    652 void reset(size_type dim);
    +
    653 void reset_back(size_type dim);
    +
    654
    +
    655 void to_begin();
    +
    656 void to_end(layout_type);
    +
    657
    +
    658 private:
    +
    659
    +
    660 ST m_stepper;
    +
    661 functor_type* p_functor;
    +
    662 };
    +
    +
    663
    +
    664 /****************************************
    +
    665 * xfunctor_applier_base implementation *
    +
    666 ****************************************/
    +
    667
    +
    672
    +
    678 template <class D>
    +
    +
    679 inline xfunctor_applier_base<D>::xfunctor_applier_base(undecay_expression e) noexcept
    +
    680 : m_e(e)
    +
    681 , m_functor(functor_type())
    +
    682 {
    +
    683 }
    +
    +
    684
    +
    691 template <class D>
    +
    692 template <class Func, class E>
    +
    +
    693 inline xfunctor_applier_base<D>::xfunctor_applier_base(Func&& func, E&& e) noexcept
    +
    694 : m_e(std::forward<E>(e))
    +
    695 , m_functor(std::forward<Func>(func))
    +
    696 {
    +
    697 }
    +
    +
    698
    +
    700
    +
    704
    +
    708 template <class D>
    +
    +
    709 inline auto xfunctor_applier_base<D>::size() const noexcept -> size_type
    +
    710 {
    +
    711 return m_e.size();
    +
    712 }
    +
    +
    713
    +
    717 template <class D>
    +
    +
    718 inline auto xfunctor_applier_base<D>::shape() const noexcept -> const inner_shape_type&
    +
    719 {
    +
    720 return m_e.shape();
    +
    721 }
    +
    +
    722
    +
    726 template <class D>
    +
    +
    727 inline auto xfunctor_applier_base<D>::strides() const noexcept -> const inner_strides_type&
    +
    728 {
    +
    729 return m_e.strides();
    +
    730 }
    +
    +
    731
    +
    735 template <class D>
    +
    +
    736 inline auto xfunctor_applier_base<D>::backstrides() const noexcept -> const inner_backstrides_type&
    +
    737 {
    +
    738 return m_e.backstrides();
    +
    739 }
    +
    +
    740
    +
    744 template <class D>
    +
    + +
    746 {
    +
    747 return m_e.layout();
    +
    748 }
    +
    +
    749
    +
    750 template <class D>
    +
    751 inline bool xfunctor_applier_base<D>::is_contiguous() const noexcept
    +
    752 {
    +
    753 return m_e.is_contiguous();
    +
    754 }
    +
    755
    +
    757
    +
    761
    +
    768 template <class D>
    +
    769 template <class... Args>
    +
    +
    770 inline auto xfunctor_applier_base<D>::operator()(Args... args) -> reference
    +
    771 {
    +
    772 XTENSOR_TRY(check_index(shape(), args...));
    +
    773 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    774 return m_functor(m_e(args...));
    +
    775 }
    +
    +
    776
    +
    796 template <class D>
    +
    797 template <class... Args>
    +
    +
    798 inline auto xfunctor_applier_base<D>::unchecked(Args... args) -> reference
    +
    799 {
    +
    800 return m_functor(m_e.unchecked(args...));
    +
    801 }
    +
    +
    802
    +
    810 template <class D>
    +
    811 template <class IT>
    +
    +
    812 inline auto xfunctor_applier_base<D>::element(IT first, IT last) -> reference
    +
    813 {
    +
    814 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    815 return m_functor(m_e.element(first, last));
    +
    816 }
    +
    +
    817
    +
    824 template <class D>
    +
    825 template <class... Args>
    +
    +
    826 inline auto xfunctor_applier_base<D>::operator()(Args... args) const -> const_reference
    +
    827 {
    +
    828 XTENSOR_TRY(check_index(shape(), args...));
    +
    829 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    830 return m_functor(m_e(args...));
    +
    831 }
    +
    +
    832
    +
    852 template <class D>
    +
    853 template <class... Args>
    +
    +
    854 inline auto xfunctor_applier_base<D>::unchecked(Args... args) const -> const_reference
    +
    855 {
    +
    856 return m_functor(m_e.unchecked(args...));
    +
    857 }
    +
    +
    858
    +
    866 template <class D>
    +
    867 template <class IT>
    +
    +
    868 inline auto xfunctor_applier_base<D>::element(IT first, IT last) const -> const_reference
    +
    869 {
    +
    870 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    871 return m_functor(m_e.element(first, last));
    +
    872 }
    +
    +
    873
    +
    877 template <class D>
    +
    +
    878 inline auto xfunctor_applier_base<D>::expression() noexcept -> xexpression_type&
    +
    879 {
    +
    880 return m_e;
    +
    881 }
    +
    +
    882
    +
    886 template <class D>
    +
    +
    887 inline auto xfunctor_applier_base<D>::expression() const noexcept -> const xexpression_type&
    +
    888 {
    +
    889 return m_e;
    +
    890 }
    +
    +
    891
    +
    893
    +
    898
    +
    904 template <class D>
    +
    905 template <class S>
    +
    +
    906 inline bool xfunctor_applier_base<D>::broadcast_shape(S& shape, bool reuse_cache) const
    +
    907 {
    +
    908 return m_e.broadcast_shape(shape, reuse_cache);
    +
    909 }
    +
    +
    910
    +
    917 template <class D>
    +
    918 template <class S>
    +
    + +
    920 {
    +
    921 return m_e.has_linear_assign(strides);
    +
    922 }
    +
    +
    923
    +
    925
    +
    930
    +
    934 template <class D>
    +
    935 template <layout_type L>
    +
    +
    936 inline auto xfunctor_applier_base<D>::begin() noexcept
    +
    937 {
    +
    938 return xfunctor_iterator<functor_type, decltype(m_e.template begin<L>())>(
    +
    939 m_e.template begin<L>(),
    +
    940 &m_functor
    +
    941 );
    +
    942 }
    +
    +
    943
    +
    949 template <class D>
    +
    950 template <layout_type L>
    +
    +
    951 inline auto xfunctor_applier_base<D>::end() noexcept
    +
    952 {
    +
    953 return xfunctor_iterator<functor_type, decltype(m_e.template end<L>())>(m_e.template end<L>(), &m_functor);
    +
    954 }
    +
    +
    955
    +
    960 template <class D>
    +
    961 template <layout_type L>
    +
    +
    962 inline auto xfunctor_applier_base<D>::begin() const noexcept
    +
    963 {
    +
    964 return this->template cbegin<L>();
    +
    965 }
    +
    +
    966
    +
    972 template <class D>
    +
    973 template <layout_type L>
    +
    +
    974 inline auto xfunctor_applier_base<D>::end() const noexcept
    +
    975 {
    +
    976 return this->template cend<L>();
    +
    977 }
    +
    +
    978
    +
    983 template <class D>
    +
    984 template <layout_type L>
    +
    +
    985 inline auto xfunctor_applier_base<D>::cbegin() const noexcept
    +
    986 {
    +
    987 return xfunctor_iterator<const functor_type, decltype(m_e.template cbegin<L>())>(
    +
    988 m_e.template cbegin<L>(),
    +
    989 &m_functor
    +
    990 );
    +
    991 }
    +
    +
    992
    +
    998 template <class D>
    +
    999 template <layout_type L>
    +
    +
    1000 inline auto xfunctor_applier_base<D>::cend() const noexcept
    +
    1001 {
    +
    1002 return xfunctor_iterator<const functor_type, decltype(m_e.template cend<L>())>(
    +
    1003 m_e.template cend<L>(),
    +
    1004 &m_functor
    +
    1005 );
    +
    1006 }
    +
    +
    1007
    +
    1009
    +
    1014
    +
    1021 template <class D>
    +
    1022 template <class S, layout_type L>
    +
    +
    1023 inline auto xfunctor_applier_base<D>::begin(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    1024 {
    +
    1025 return broadcast_iterator<S, L>(m_e.template begin<S, L>(shape), &m_functor);
    +
    1026 }
    +
    +
    1027
    +
    1035 template <class D>
    +
    1036 template <class S, layout_type L>
    +
    +
    1037 inline auto xfunctor_applier_base<D>::end(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    1038 {
    +
    1039 return broadcast_iterator<S, L>(m_e.template end<S, L>(shape), &m_functor);
    +
    1040 }
    +
    +
    1041
    +
    1049 template <class D>
    +
    1050 template <class S, layout_type L>
    +
    +
    1051 inline auto xfunctor_applier_base<D>::begin(const S& shape) const noexcept
    +
    1052 -> const_broadcast_iterator<S, L>
    +
    1053 {
    +
    1054 return cbegin<S, L>(shape);
    +
    1055 }
    +
    +
    1056
    +
    1064 template <class D>
    +
    1065 template <class S, layout_type L>
    +
    +
    1066 inline auto xfunctor_applier_base<D>::end(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    1067 {
    +
    1068 return cend<S, L>(shape);
    +
    1069 }
    +
    +
    1070
    +
    1078 template <class D>
    +
    1079 template <class S, layout_type L>
    +
    +
    1080 inline auto xfunctor_applier_base<D>::cbegin(const S& shape) const noexcept
    +
    1081 -> const_broadcast_iterator<S, L>
    +
    1082 {
    +
    1083 return const_broadcast_iterator<S, L>(m_e.template cbegin<S, L>(shape), &m_functor);
    +
    1084 }
    +
    +
    1085
    +
    1093 template <class D>
    +
    1094 template <class S, layout_type L>
    +
    +
    1095 inline auto xfunctor_applier_base<D>::cend(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    1096 {
    +
    1097 return const_broadcast_iterator<S, L>(m_e.template cend<S, L>(shape), &m_functor);
    +
    1098 }
    +
    +
    1099
    +
    1101
    +
    1106
    +
    1110 template <class D>
    +
    1111 template <layout_type L>
    +
    + +
    1113 {
    +
    1114 return xfunctor_iterator<functor_type, decltype(m_e.template rbegin<L>())>(
    +
    1115 m_e.template rbegin<L>(),
    +
    1116 &m_functor
    +
    1117 );
    +
    1118 }
    +
    +
    1119
    +
    1125 template <class D>
    +
    1126 template <layout_type L>
    +
    +
    1127 inline auto xfunctor_applier_base<D>::rend() noexcept
    +
    1128 {
    +
    1129 return xfunctor_iterator<functor_type, decltype(m_e.template rend<L>())>(
    +
    1130 m_e.template rend<L>(),
    +
    1131 &m_functor
    +
    1132 );
    +
    1133 }
    +
    +
    1134
    +
    1139 template <class D>
    +
    1140 template <layout_type L>
    +
    +
    1141 inline auto xfunctor_applier_base<D>::rbegin() const noexcept
    +
    1142 {
    +
    1143 return this->template crbegin<L>();
    +
    1144 }
    +
    +
    1145
    +
    1151 template <class D>
    +
    1152 template <layout_type L>
    +
    +
    1153 inline auto xfunctor_applier_base<D>::rend() const noexcept
    +
    1154 {
    +
    1155 return this->template crend<L>();
    +
    1156 }
    +
    +
    1157
    +
    1162 template <class D>
    +
    1163 template <layout_type L>
    +
    +
    1164 inline auto xfunctor_applier_base<D>::crbegin() const noexcept
    +
    1165 {
    +
    1166 return xfunctor_iterator<const functor_type, decltype(m_e.template crbegin<L>())>(
    +
    1167 m_e.template crbegin<L>(),
    +
    1168 &m_functor
    +
    1169 );
    +
    1170 }
    +
    +
    1171
    +
    1177 template <class D>
    +
    1178 template <layout_type L>
    +
    +
    1179 inline auto xfunctor_applier_base<D>::crend() const noexcept
    +
    1180 {
    +
    1181 return xfunctor_iterator<const functor_type, decltype(m_e.template crend<L>())>(
    +
    1182 m_e.template crend<L>(),
    +
    1183 &m_functor
    +
    1184 );
    +
    1185 }
    +
    +
    1186
    +
    1188
    +
    1192
    +
    1200 template <class D>
    +
    1201 template <class S, layout_type L>
    +
    +
    1202 inline auto xfunctor_applier_base<D>::rbegin(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    1203 {
    +
    1204 return reverse_broadcast_iterator<S, L>(m_e.template rbegin<S, L>(shape), &m_functor);
    +
    1205 }
    +
    +
    1206
    +
    1214 template <class D>
    +
    1215 template <class S, layout_type L>
    +
    +
    1216 inline auto xfunctor_applier_base<D>::rend(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    1217 {
    +
    1218 return reverse_broadcast_iterator<S, L>(m_e.template rend<S, L>(shape), &m_functor);
    +
    1219 }
    +
    +
    1220
    +
    1228 template <class D>
    +
    1229 template <class S, layout_type L>
    +
    +
    1230 inline auto xfunctor_applier_base<D>::rbegin(const S& shape) const noexcept
    +
    1231 -> const_reverse_broadcast_iterator<S, L>
    +
    1232 {
    +
    1233 return crbegin<S, L>(shape);
    +
    1234 }
    +
    +
    1235
    +
    1243 template <class D>
    +
    1244 template <class S, layout_type L>
    +
    +
    1245 inline auto xfunctor_applier_base<D>::rend(const S& /*shape*/) const noexcept
    +
    1246 -> const_reverse_broadcast_iterator<S, L>
    +
    1247 {
    +
    1248 return crend<S, L>();
    +
    1249 }
    +
    +
    1250
    +
    1258 template <class D>
    +
    1259 template <class S, layout_type L>
    +
    +
    1260 inline auto xfunctor_applier_base<D>::crbegin(const S& /*shape*/) const noexcept
    +
    1261 -> const_reverse_broadcast_iterator<S, L>
    +
    1262 {
    +
    1263 return const_reverse_broadcast_iterator<S, L>(m_e.template crbegin<S, L>(), &m_functor);
    +
    1264 }
    +
    +
    1265
    +
    1273 template <class D>
    +
    1274 template <class S, layout_type L>
    +
    +
    1275 inline auto xfunctor_applier_base<D>::crend(const S& shape) const noexcept
    +
    1276 -> const_reverse_broadcast_iterator<S, L>
    +
    1277 {
    +
    1278 return const_reverse_broadcast_iterator<S, L>(m_e.template crend<S, L>(shape), &m_functor);
    +
    1279 }
    +
    +
    1280
    +
    1282
    +
    1283 template <class D>
    +
    1284 inline auto xfunctor_applier_base<D>::linear_begin() noexcept -> linear_iterator
    +
    1285 {
    +
    1286 return linear_iterator(m_e.linear_begin(), &m_functor);
    +
    1287 }
    +
    1288
    +
    1289 template <class D>
    +
    1290 inline auto xfunctor_applier_base<D>::linear_end() noexcept -> linear_iterator
    +
    1291 {
    +
    1292 return linear_iterator(m_e.linear_end(), &m_functor);
    +
    1293 }
    +
    1294
    +
    1295 template <class D>
    +
    1296 inline auto xfunctor_applier_base<D>::linear_begin() const noexcept -> const_linear_iterator
    +
    1297 {
    +
    1298 return const_linear_iterator(m_e.linear_begin(), &m_functor);
    +
    1299 }
    +
    1300
    +
    1301 template <class D>
    +
    1302 inline auto xfunctor_applier_base<D>::linear_end() const noexcept -> const_linear_iterator
    +
    1303 {
    +
    1304 return const_linear_iterator(m_e.linear_end(), &m_functor);
    +
    1305 }
    +
    1306
    +
    1307 template <class D>
    +
    1308 inline auto xfunctor_applier_base<D>::linear_cbegin() const noexcept -> const_linear_iterator
    +
    1309 {
    +
    1310 return const_linear_iterator(m_e.linear_cbegin(), &m_functor);
    +
    1311 }
    +
    1312
    +
    1313 template <class D>
    +
    1314 inline auto xfunctor_applier_base<D>::linear_cend() const noexcept -> const_linear_iterator
    +
    1315 {
    +
    1316 return const_linear_iterator(m_e.linear_cend(), &m_functor);
    +
    1317 }
    +
    1318
    +
    1319 template <class D>
    +
    1320 inline auto xfunctor_applier_base<D>::linear_rbegin() noexcept -> reverse_linear_iterator
    +
    1321 {
    +
    1322 return reverse_linear_iterator(m_e.linear_rbegin(), &m_functor);
    +
    1323 }
    +
    1324
    +
    1325 template <class D>
    +
    1326 inline auto xfunctor_applier_base<D>::linear_rend() noexcept -> reverse_linear_iterator
    +
    1327 {
    +
    1328 return reverse_linear_iterator(m_e.linear_rend(), &m_functor);
    +
    1329 }
    +
    1330
    +
    1331 template <class D>
    +
    1332 inline auto xfunctor_applier_base<D>::linear_rbegin() const noexcept -> const_reverse_linear_iterator
    +
    1333 {
    +
    1334 return const_reverse_linear_iterator(m_e.linear_rbegin(), &m_functor);
    +
    1335 }
    +
    1336
    +
    1337 template <class D>
    +
    1338 inline auto xfunctor_applier_base<D>::linear_rend() const noexcept -> const_reverse_linear_iterator
    +
    1339 {
    +
    1340 return const_reverse_linear_iterator(m_e.linear_rend(), &m_functor);
    +
    1341 }
    +
    1342
    +
    1343 template <class D>
    +
    1344 inline auto xfunctor_applier_base<D>::linear_crbegin() const noexcept -> const_reverse_linear_iterator
    +
    1345 {
    +
    1346 return const_reverse_linear_iterator(m_e.linear_crbegin(), &m_functor);
    +
    1347 }
    +
    1348
    +
    1349 template <class D>
    +
    1350 inline auto xfunctor_applier_base<D>::linear_crend() const noexcept -> const_reverse_linear_iterator
    +
    1351 {
    +
    1352 return const_reverse_linear_iterator(m_e.linear_crend(), &m_functor);
    +
    1353 }
    +
    1354
    +
    1355 /***************
    +
    1356 * stepper api *
    +
    1357 ***************/
    +
    1358
    +
    1359 template <class D>
    +
    1360 template <class S>
    +
    1361 inline auto xfunctor_applier_base<D>::stepper_begin(const S& shape) noexcept -> stepper
    +
    1362 {
    +
    1363 return stepper(m_e.stepper_begin(shape), &m_functor);
    +
    1364 }
    +
    1365
    +
    1366 template <class D>
    +
    1367 template <class S>
    +
    1368 inline auto xfunctor_applier_base<D>::stepper_end(const S& shape, layout_type l) noexcept -> stepper
    +
    1369 {
    +
    1370 return stepper(m_e.stepper_end(shape, l), &m_functor);
    +
    1371 }
    +
    1372
    +
    1373 template <class D>
    +
    1374 template <class S>
    +
    1375 inline auto xfunctor_applier_base<D>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    1376 {
    +
    1377 const xexpression_type& const_m_e = m_e;
    +
    1378 return const_stepper(const_m_e.stepper_begin(shape), &m_functor);
    +
    1379 }
    +
    1380
    +
    1381 template <class D>
    +
    1382 template <class S>
    +
    1383 inline auto xfunctor_applier_base<D>::stepper_end(const S& shape, layout_type l) const noexcept
    +
    1384 -> const_stepper
    +
    1385 {
    +
    1386 const xexpression_type& const_m_e = m_e;
    +
    1387 return const_stepper(const_m_e.stepper_end(shape, l), &m_functor);
    +
    1388 }
    +
    1389
    +
    1390 /********************************
    +
    1391 * xfunctor_view implementation *
    +
    1392 ********************************/
    +
    1393
    +
    1398
    +
    1401 template <class F, class CT>
    +
    1402 template <class E>
    +
    +
    1403 inline auto xfunctor_view<F, CT>::operator=(const xexpression<E>& e) -> self_type&
    +
    1404 {
    +
    1405 bool cond = (e.derived_cast().shape().size() == this->dimension())
    +
    1406 && std::equal(this->shape().begin(), this->shape().end(), e.derived_cast().shape().begin());
    +
    1407 if (!cond)
    +
    1408 {
    +
    1409 semantic_base::operator=(broadcast(e.derived_cast(), this->shape()));
    +
    1410 }
    +
    1411 else
    +
    1412 {
    +
    1413 semantic_base::operator=(e);
    +
    1414 }
    +
    1415 return *this;
    +
    1416 }
    +
    +
    1417
    +
    1419
    +
    1420 template <class F, class CT>
    +
    1421 template <class E>
    +
    1422 inline auto xfunctor_view<F, CT>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    1423 {
    +
    1424 std::fill(this->begin(), this->end(), e);
    +
    1425 return *this;
    +
    1426 }
    +
    1427
    +
    1428 template <class F, class CT>
    +
    1429 inline void xfunctor_view<F, CT>::assign_temporary_impl(temporary_type&& tmp)
    +
    1430 {
    +
    1431 std::copy(tmp.cbegin(), tmp.cend(), this->begin());
    +
    1432 }
    +
    1433
    +
    1434 template <class F, class CT>
    +
    1435 template <class E>
    +
    1436 inline auto xfunctor_view<F, CT>::build_functor_view(E&& e) const -> rebind_t<E>
    +
    1437 {
    +
    1438 return rebind_t<E>((this->m_functor), std::forward<E>(e));
    +
    1439 }
    +
    1440
    +
    1441 /***********************************
    +
    1442 * xfunctor_adaptor implementation *
    +
    1443 ***********************************/
    +
    1444
    +
    1449
    +
    1452 template <class F, class CT>
    +
    1453 template <class E>
    +
    +
    1454 inline auto xfunctor_adaptor<F, CT>::operator=(const xexpression<E>& e) -> self_type&
    +
    1455 {
    +
    1456 const auto& de = e.derived_cast();
    +
    1457 this->m_e.resize(de.shape());
    +
    1458
    +
    1459 if (this->layout() == de.layout())
    +
    1460 {
    +
    1461 std::copy(de.linear_begin(), de.linear_end(), this->linear_begin());
    +
    1462 }
    +
    1463 else
    +
    1464 {
    +
    1465 // note: does this even select the current layout of *this* for iteration?
    +
    1466 std::copy(de.begin(), de.end(), this->begin());
    +
    1467 }
    +
    1468
    +
    1469 return *this;
    +
    1470 }
    +
    +
    1471
    +
    1473
    +
    1474 template <class F, class CT>
    +
    1475 template <class S>
    +
    1476 auto xfunctor_adaptor<F, CT>::resize(S&& shape, bool force)
    +
    1477 {
    +
    1478 this->m_e.resize(std::forward<S>(shape), force);
    +
    1479 }
    +
    1480
    +
    1481 template <class F, class CT>
    +
    1482 template <class S>
    +
    1483 auto xfunctor_adaptor<F, CT>::resize(S&& shape, layout_type l)
    +
    1484 {
    +
    1485 this->m_e.resize(std::forward<S>(shape), l);
    +
    1486 }
    +
    1487
    +
    1488 template <class F, class CT>
    +
    1489 template <class S>
    +
    1490 auto xfunctor_adaptor<F, CT>::resize(S&& shape, const strides_type& strides)
    +
    1491 {
    +
    1492 this->m_e.resize(std::forward<S>(shape), strides);
    +
    1493 }
    +
    1494
    +
    1495 template <class F, class CT>
    +
    1496 template <class S>
    +
    1497 auto& xfunctor_adaptor<F, CT>::reshape(S&& shape, layout_type layout) &
    +
    1498 {
    +
    1499 this->m_e.reshape(std::forward<S>(shape), layout);
    +
    1500 return *this;
    +
    1501 }
    +
    1502
    +
    1503 /************************************
    +
    1504 * xfunctor_iterator implementation *
    +
    1505 ************************************/
    +
    1506
    +
    1507 template <class F, class IT>
    +
    1508 xfunctor_iterator<F, IT>::xfunctor_iterator(const IT& it, functor_type* pf)
    +
    1509 : m_it(it)
    +
    1510 , p_functor(pf)
    +
    1511 {
    +
    1512 }
    +
    1513
    +
    1514 template <class F, class IT>
    +
    1515 inline auto xfunctor_iterator<F, IT>::operator++() -> self_type&
    +
    1516 {
    +
    1517 ++m_it;
    +
    1518 return *this;
    +
    1519 }
    +
    1520
    +
    1521 template <class F, class IT>
    +
    1522 inline auto xfunctor_iterator<F, IT>::operator--() -> self_type&
    +
    1523 {
    +
    1524 --m_it;
    +
    1525 return *this;
    +
    1526 }
    +
    1527
    +
    1528 template <class F, class IT>
    +
    1529 inline auto xfunctor_iterator<F, IT>::operator+=(difference_type n) -> self_type&
    +
    1530 {
    +
    1531 m_it += n;
    +
    1532 return *this;
    +
    1533 }
    +
    1534
    +
    1535 template <class F, class IT>
    +
    1536 inline auto xfunctor_iterator<F, IT>::operator-=(difference_type n) -> self_type&
    +
    1537 {
    +
    1538 m_it -= n;
    +
    1539 return *this;
    +
    1540 }
    +
    1541
    +
    1542 template <class F, class IT>
    +
    1543 inline auto xfunctor_iterator<F, IT>::operator-(xfunctor_iterator rhs) const -> difference_type
    +
    1544 {
    +
    1545 return m_it - rhs.m_it;
    +
    1546 }
    +
    1547
    +
    1548 template <class F, class IT>
    +
    1549 auto xfunctor_iterator<F, IT>::operator*() const -> reference
    +
    1550 {
    +
    1551 return (*p_functor)(*m_it);
    +
    1552 }
    +
    1553
    +
    1554 template <class F, class IT>
    +
    1555 auto xfunctor_iterator<F, IT>::operator->() const -> pointer
    +
    1556 {
    +
    1557 return &(operator*());
    +
    1558 }
    +
    1559
    +
    1560 template <class F, class IT>
    +
    1561 auto xfunctor_iterator<F, IT>::equal(const xfunctor_iterator& rhs) const -> bool
    +
    1562 {
    +
    1563 return m_it == rhs.m_it;
    +
    1564 }
    +
    1565
    +
    1566 template <class F, class IT>
    +
    1567 auto xfunctor_iterator<F, IT>::less_than(const xfunctor_iterator& rhs) const -> bool
    +
    1568 {
    +
    1569 return m_it < rhs.m_it;
    +
    1570 }
    +
    1571
    +
    1572 template <class F, class IT>
    +
    1573 bool operator==(const xfunctor_iterator<F, IT>& lhs, const xfunctor_iterator<F, IT>& rhs)
    +
    1574 {
    +
    1575 return lhs.equal(rhs);
    +
    1576 }
    +
    1577
    +
    1578 template <class F, class IT>
    +
    1579 bool operator<(const xfunctor_iterator<F, IT>& lhs, const xfunctor_iterator<F, IT>& rhs)
    +
    1580 {
    +
    1581 return !lhs.less_than(rhs);
    +
    1582 }
    +
    1583
    +
    1584 /***********************************
    +
    1585 * xfunctor_stepper implementation *
    +
    1586 ***********************************/
    +
    1587
    +
    1588 template <class F, class ST>
    +
    1589 xfunctor_stepper<F, ST>::xfunctor_stepper(const ST& stepper, functor_type* pf)
    +
    1590 : m_stepper(stepper)
    +
    1591 , p_functor(pf)
    +
    1592 {
    +
    1593 }
    +
    1594
    +
    1595 template <class F, class ST>
    +
    1596 auto xfunctor_stepper<F, ST>::operator*() const -> reference
    +
    1597 {
    +
    1598 return (*p_functor)(*m_stepper);
    +
    1599 }
    +
    1600
    +
    1601 template <class F, class ST>
    +
    1602 void xfunctor_stepper<F, ST>::step(size_type dim)
    +
    1603 {
    +
    1604 m_stepper.step(dim);
    +
    1605 }
    +
    1606
    +
    1607 template <class F, class ST>
    +
    1608 void xfunctor_stepper<F, ST>::step_back(size_type dim)
    +
    1609 {
    +
    1610 m_stepper.step_back(dim);
    +
    1611 }
    +
    1612
    +
    1613 template <class F, class ST>
    +
    1614 void xfunctor_stepper<F, ST>::step(size_type dim, size_type n)
    +
    1615 {
    +
    1616 m_stepper.step(dim, n);
    +
    1617 }
    +
    1618
    +
    1619 template <class F, class ST>
    +
    1620 void xfunctor_stepper<F, ST>::step_back(size_type dim, size_type n)
    +
    1621 {
    +
    1622 m_stepper.step_back(dim, n);
    +
    1623 }
    +
    1624
    +
    1625 template <class F, class ST>
    +
    1626 void xfunctor_stepper<F, ST>::reset(size_type dim)
    +
    1627 {
    +
    1628 m_stepper.reset(dim);
    +
    1629 }
    +
    1630
    +
    1631 template <class F, class ST>
    +
    1632 void xfunctor_stepper<F, ST>::reset_back(size_type dim)
    +
    1633 {
    +
    1634 m_stepper.reset_back(dim);
    +
    1635 }
    +
    1636
    +
    1637 template <class F, class ST>
    +
    1638 void xfunctor_stepper<F, ST>::to_begin()
    +
    1639 {
    +
    1640 m_stepper.to_begin();
    +
    1641 }
    +
    1642
    +
    1643 template <class F, class ST>
    +
    1644 void xfunctor_stepper<F, ST>::to_end(layout_type l)
    +
    1645 {
    +
    1646 m_stepper.to_end(l);
    +
    1647 }
    +
    1648}
    +
    1649#endif
    +
    Base class for implementation of common expression access methods.
    +
    Base class for implementation of common expression constant access methods.
    +
    size_type dimension() const noexcept
    +
    bool in_bounds(Args... args) const
    +
    Base class for xexpressions.
    +
    Adapt a container with a functor, forwarding methods such as resize / reshape.
    + + +
    const inner_backstrides_type & backstrides() const noexcept
    +
    layout_type layout() const noexcept
    +
    xfunctor_applier_base(undecay_expression) noexcept
    Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
    +
    xexpression_type & expression() noexcept
    + + + + +
    const inner_shape_type & shape() const noexcept
    +
    bool has_linear_assign(const S &strides) const
    + +
    xfunctor_applier_base(Func &&, E &&) noexcept
    Constructs an xfunctor_applier_base expression wrappering the specified xt::xexpression.
    +
    auto begin() noexcept
    Returns an iterator to the first element of the expression.
    + +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    +
    size_type size() const noexcept
    + +
    const inner_strides_type & strides() const noexcept
    + + + +
    View of an xexpression .
    + +
    auto operator*(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
    Multiplication.
    +
    standard mathematical functions for xexpressions
    +
    auto broadcast(E &&e, const S &s)
    Returns an xexpression broadcasting the given expression to a specified shape.
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + + + +
    +
    + + + + diff --git a/xgenerator_8hpp_source.html b/xgenerator_8hpp_source.html new file mode 100644 index 000000000..bd723afdc --- /dev/null +++ b/xgenerator_8hpp_source.html @@ -0,0 +1,616 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/generators/xgenerator.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xgenerator.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_GENERATOR_HPP
    +
    11#define XTENSOR_GENERATOR_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <type_traits>
    +
    16#include <utility>
    +
    17
    +
    18#include <xtl/xsequence.hpp>
    +
    19
    +
    20#include "../core/xaccessible.hpp"
    +
    21#include "../core/xexpression.hpp"
    +
    22#include "../core/xiterable.hpp"
    +
    23#include "../core/xstrides.hpp"
    +
    24#include "../utils/xutils.hpp"
    +
    25#include "../views/xstrided_view.hpp"
    +
    26
    +
    27namespace xt
    +
    28{
    +
    29
    +
    30 /************************
    +
    31 * xgenerator extension *
    +
    32 ************************/
    +
    33
    +
    34 namespace extension
    +
    35 {
    +
    36 template <class Tag, class F, class R, class S>
    + +
    38
    +
    39 template <class F, class R, class S>
    +
    + +
    41 {
    +
    42 using type = xtensor_empty_base;
    +
    43 };
    +
    +
    44
    +
    45 template <class F, class R, class S>
    +
    +
    46 struct xgenerator_base : xgenerator_base_impl<xexpression_tag_t<R>, F, R, S>
    +
    47 {
    +
    48 };
    +
    +
    49
    +
    50 template <class F, class R, class S>
    +
    51 using xgenerator_base_t = typename xgenerator_base<F, R, S>::type;
    +
    52 }
    +
    53
    +
    54 /**************
    +
    55 * xgenerator *
    +
    56 **************/
    +
    57
    +
    58 template <class F, class R, class S>
    +
    59 class xgenerator;
    +
    60
    +
    61 template <typename T>
    + +
    63
    +
    64 template <class C, class R, class S>
    +
    + +
    66 {
    +
    67 using inner_shape_type = S;
    +
    68 using const_stepper = xindexed_stepper<xgenerator<C, R, S>, true>;
    +
    69 using stepper = const_stepper;
    +
    70 };
    +
    +
    71
    +
    72 template <class C, class R, class S>
    +
    + +
    74 {
    +
    75 using reference = R;
    +
    76 using const_reference = R;
    +
    77 using size_type = std::size_t;
    +
    78 };
    +
    +
    79
    +
    80 /*************************************
    +
    81 * overlapping_memory_checker_traits *
    +
    82 *************************************/
    +
    83
    +
    84 template <xgenerator_concept E>
    + +
    + +
    87 {
    +
    88 static bool check_overlap(const E&, const memory_range&)
    +
    89 {
    +
    90 return false;
    +
    91 }
    +
    92 };
    +
    +
    93
    +
    105 template <class F, class R, class S>
    +
    +
    106 class xgenerator : public xsharable_expression<xgenerator<F, R, S>>,
    +
    107 public xconst_iterable<xgenerator<F, R, S>>,
    +
    108 public xconst_accessible<xgenerator<F, R, S>>,
    +
    109 public extension::xgenerator_base_t<F, R, S>
    +
    110 {
    +
    111 public:
    +
    112
    +
    113 using self_type = xgenerator<F, R, S>;
    +
    114 using functor_type = typename std::remove_reference<F>::type;
    +
    115
    +
    116 using accessible_base = xconst_accessible<self_type>;
    +
    117 using extension_base = extension::xgenerator_base_t<F, R, S>;
    +
    118 using expression_tag = typename extension_base::expression_tag;
    +
    119
    +
    120 using inner_types = xcontainer_inner_types<self_type>;
    +
    121 using value_type = R;
    +
    122 using reference = typename inner_types::reference;
    +
    123 using const_reference = typename inner_types::const_reference;
    +
    124 using pointer = value_type*;
    +
    125 using const_pointer = const value_type*;
    +
    126 using size_type = typename inner_types::size_type;
    +
    127 using difference_type = std::ptrdiff_t;
    +
    128
    +
    129 using iterable_base = xconst_iterable<self_type>;
    +
    130 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    131 using shape_type = inner_shape_type;
    +
    132
    +
    133 using stepper = typename iterable_base::stepper;
    +
    134 using const_stepper = typename iterable_base::const_stepper;
    +
    135
    +
    136 using bool_load_type = xt::bool_load_type<R>;
    +
    137
    +
    138 static constexpr layout_type static_layout = layout_type::dynamic;
    +
    139 static constexpr bool contiguous_layout = false;
    +
    140
    +
    141 template <class Func>
    +
    142 xgenerator(Func&& f, const S& shape) noexcept;
    +
    143
    +
    144 const inner_shape_type& shape() const noexcept;
    +
    145 layout_type layout() const noexcept;
    +
    146 bool is_contiguous() const noexcept;
    +
    147 using accessible_base::shape;
    +
    148
    +
    149 template <class... Args>
    +
    150 const_reference operator()(Args... args) const;
    +
    151 template <class... Args>
    +
    152 const_reference unchecked(Args... args) const;
    +
    153
    +
    154 template <class It>
    +
    155 const_reference element(It first, It last) const;
    +
    156
    +
    157 template <class O>
    +
    158 bool broadcast_shape(O& shape, bool reuse_cache = false) const;
    +
    159
    +
    160 template <class O>
    +
    161 bool has_linear_assign(const O& /*strides*/) const noexcept;
    +
    162
    +
    163 template <class O>
    +
    164 const_stepper stepper_begin(const O& shape) const noexcept;
    +
    165 template <class O>
    +
    166 const_stepper stepper_end(const O& shape, layout_type) const noexcept;
    +
    167
    +
    168 template <class E, class FE = F>
    +
    169 void assign_to(xexpression<E>& e) const noexcept
    +
    170 requires(has_assign_to_v<E, FE>);
    +
    171
    +
    172 const functor_type& functor() const noexcept;
    +
    173
    +
    174 template <class OR, class OF>
    +
    175 using rebind_t = xgenerator<OF, OR, S>;
    +
    176
    +
    177 template <class OR, class OF>
    +
    178 rebind_t<OR, OF> build_generator(OF&& func) const;
    +
    179
    +
    180 template <class O = xt::dynamic_shape<typename shape_type::value_type>>
    +
    181 auto reshape(O&& shape) const&;
    +
    182
    +
    183 template <class O = xt::dynamic_shape<typename shape_type::value_type>>
    +
    184 auto reshape(O&& shape) &&;
    +
    185
    +
    186 template <class T>
    +
    187 auto reshape(std::initializer_list<T> shape) const&;
    +
    188
    +
    189 template <class T>
    +
    190 auto reshape(std::initializer_list<T> shape) &&;
    +
    191
    +
    192 private:
    +
    193
    +
    194 template <class O>
    +
    195 decltype(auto) compute_shape(O&& shape, std::false_type /*signed*/) const;
    +
    196
    +
    197 template <class O>
    +
    198 auto compute_shape(O&& shape, std::true_type /*signed*/) const;
    +
    199
    +
    200 template <class T>
    +
    201 auto compute_shape(std::initializer_list<T> shape) const;
    +
    202
    +
    203 template <std::size_t dim>
    +
    204 void adapt_index() const;
    +
    205
    +
    206 template <std::size_t dim, class I, class... Args>
    +
    207 void adapt_index(I& arg, Args&... args) const;
    +
    208
    +
    209 functor_type m_f;
    +
    210 inner_shape_type m_shape;
    +
    211 };
    +
    +
    212
    +
    213 /*****************************
    +
    214 * xgenerator implementation *
    +
    215 *****************************/
    +
    216
    +
    221
    +
    227 template <class F, class R, class S>
    +
    228 template <class Func>
    +
    +
    229 inline xgenerator<F, R, S>::xgenerator(Func&& f, const S& shape) noexcept
    +
    230 : m_f(std::forward<Func>(f))
    +
    231 , m_shape(shape)
    +
    232 {
    +
    233 }
    +
    +
    234
    +
    236
    +
    241
    +
    244 template <class F, class R, class S>
    +
    +
    245 inline auto xgenerator<F, R, S>::shape() const noexcept -> const inner_shape_type&
    +
    246 {
    +
    247 return m_shape;
    +
    248 }
    +
    +
    249
    +
    250 template <class F, class R, class S>
    +
    251 inline layout_type xgenerator<F, R, S>::layout() const noexcept
    +
    252 {
    +
    253 return static_layout;
    +
    254 }
    +
    255
    +
    256 template <class F, class R, class S>
    +
    257 inline bool xgenerator<F, R, S>::is_contiguous() const noexcept
    +
    258 {
    +
    259 return false;
    +
    260 }
    +
    261
    +
    263
    +
    267
    +
    274 template <class F, class R, class S>
    +
    275 template <class... Args>
    +
    +
    276 inline auto xgenerator<F, R, S>::operator()(Args... args) const -> const_reference
    +
    277 {
    +
    278 XTENSOR_TRY(check_index(shape(), args...));
    +
    279 adapt_index<0>(args...);
    +
    280 return m_f(args...);
    +
    281 }
    +
    +
    282
    +
    302 template <class F, class R, class S>
    +
    303 template <class... Args>
    +
    +
    304 inline auto xgenerator<F, R, S>::unchecked(Args... args) const -> const_reference
    +
    305 {
    +
    306 return m_f(args...);
    +
    307 }
    +
    +
    308
    +
    316 template <class F, class R, class S>
    +
    317 template <class It>
    +
    +
    318 inline auto xgenerator<F, R, S>::element(It first, It last) const -> const_reference
    +
    319 {
    + +
    321 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    322 return m_f.element(bounded_iterator(first, shape().cbegin()), bounded_iterator(last, shape().cend()));
    +
    323 }
    +
    +
    324
    +
    326
    +
    331
    +
    337 template <class F, class R, class S>
    +
    338 template <class O>
    +
    +
    339 inline bool xgenerator<F, R, S>::broadcast_shape(O& shape, bool) const
    +
    340 {
    +
    341 return xt::broadcast_shape(m_shape, shape);
    +
    342 }
    +
    +
    343
    +
    349 template <class F, class R, class S>
    +
    350 template <class O>
    +
    +
    351 inline bool xgenerator<F, R, S>::has_linear_assign(const O& /*strides*/) const noexcept
    +
    352 {
    +
    353 return false;
    +
    354 }
    +
    +
    355
    +
    357
    +
    358 template <class F, class R, class S>
    +
    359 template <class O>
    +
    360 inline auto xgenerator<F, R, S>::stepper_begin(const O& shape) const noexcept -> const_stepper
    +
    361 {
    +
    362 size_type offset = shape.size() - this->dimension();
    +
    363 return const_stepper(this, offset);
    +
    364 }
    +
    365
    +
    366 template <class F, class R, class S>
    +
    367 template <class O>
    +
    368 inline auto xgenerator<F, R, S>::stepper_end(const O& shape, layout_type) const noexcept -> const_stepper
    +
    369 {
    +
    370 size_type offset = shape.size() - this->dimension();
    +
    371 return const_stepper(this, offset, true);
    +
    372 }
    +
    373
    +
    374 template <class F, class R, class S>
    +
    375 template <class E, class FE>
    +
    376 inline void xgenerator<F, R, S>::assign_to(xexpression<E>& e) const noexcept
    +
    377 requires(has_assign_to_v<E, FE>)
    +
    378 {
    +
    379 e.derived_cast().resize(m_shape);
    +
    380 m_f.assign_to(e);
    +
    381 }
    +
    382
    +
    383 template <class F, class R, class S>
    +
    384 inline auto xgenerator<F, R, S>::functor() const noexcept -> const functor_type&
    +
    385 {
    +
    386 return m_f;
    +
    387 }
    +
    388
    +
    389 template <class F, class R, class S>
    +
    390 template <class OR, class OF>
    +
    391 inline auto xgenerator<F, R, S>::build_generator(OF&& func) const -> rebind_t<OR, OF>
    +
    392 {
    +
    393 return rebind_t<OR, OF>(std::move(func), shape_type(m_shape));
    +
    394 }
    +
    395
    +
    406 template <class F, class R, class S>
    +
    407 template <class O>
    +
    +
    408 inline auto xgenerator<F, R, S>::reshape(O&& shape) const&
    +
    409 {
    +
    410 return reshape_view(*this, compute_shape(shape, xtl::is_signed<typename std::decay_t<O>::value_type>()));
    +
    411 }
    +
    +
    412
    +
    413 template <class F, class R, class S>
    +
    414 template <class O>
    +
    415 inline auto xgenerator<F, R, S>::reshape(O&& shape) &&
    +
    416 {
    +
    417 return reshape_view(
    +
    418 std::move(*this),
    +
    419 compute_shape(shape, xtl::is_signed<typename std::decay_t<O>::value_type>())
    +
    420 );
    +
    421 }
    +
    422
    +
    423 template <class F, class R, class S>
    +
    424 template <class T>
    +
    425 inline auto xgenerator<F, R, S>::reshape(std::initializer_list<T> shape) const&
    +
    426 {
    +
    427 return reshape_view(*this, compute_shape(shape));
    +
    428 }
    +
    429
    +
    430 template <class F, class R, class S>
    +
    431 template <class T>
    +
    432 inline auto xgenerator<F, R, S>::reshape(std::initializer_list<T> shape) &&
    +
    433 {
    +
    434 return reshape_view(std::move(*this), compute_shape(shape));
    +
    435 }
    +
    436
    +
    437 template <class F, class R, class S>
    +
    438 template <class O>
    +
    439 inline decltype(auto) xgenerator<F, R, S>::compute_shape(O&& shape, std::false_type) const
    +
    440 {
    +
    441 return xtl::forward_sequence<xt::dynamic_shape<typename shape_type::value_type>, O>(shape);
    +
    442 }
    +
    443
    +
    444 template <class F, class R, class S>
    +
    445 template <class O>
    +
    446 inline auto xgenerator<F, R, S>::compute_shape(O&& shape, std::true_type) const
    +
    447 {
    +
    448 using vtype = typename shape_type::value_type;
    +
    449 xt::dynamic_shape<vtype> sh(shape.size());
    +
    450 using int_type = typename std::decay_t<O>::value_type;
    +
    451 int_type accumulator(1);
    +
    452 std::size_t neg_idx = 0;
    +
    453 std::size_t i = 0;
    +
    454 for (std::size_t j = 0; j != shape.size(); ++j, ++i)
    +
    455 {
    +
    456 auto dim = shape[j];
    +
    457 if (dim < 0)
    +
    458 {
    +
    459 XTENSOR_ASSERT(dim == -1 && !neg_idx);
    +
    460 neg_idx = i;
    +
    461 }
    +
    462 else
    +
    463 {
    +
    464 sh[j] = static_cast<vtype>(dim);
    +
    465 }
    +
    466 accumulator *= dim;
    +
    467 }
    +
    468 if (accumulator < 0)
    +
    469 {
    +
    470 sh[neg_idx] = this->size()
    +
    471 / static_cast<size_type>(std::make_unsigned_t<int_type>(std::abs(accumulator)));
    +
    472 }
    +
    473 return sh;
    +
    474 }
    +
    475
    +
    476 template <class F, class R, class S>
    +
    477 template <class T>
    +
    478 inline auto xgenerator<F, R, S>::compute_shape(std::initializer_list<T> shape) const
    +
    479 {
    +
    480 using sh_type = xt::dynamic_shape<T>;
    +
    481 sh_type sh = xtl::make_sequence<sh_type>(shape.size());
    +
    482 std::copy(shape.begin(), shape.end(), sh.begin());
    +
    483 return compute_shape(std::move(sh), xtl::is_signed<T>());
    +
    484 }
    +
    485
    +
    486 template <class F, class R, class S>
    +
    487 template <std::size_t dim>
    +
    488 inline void xgenerator<F, R, S>::adapt_index() const
    +
    489 {
    +
    490 }
    +
    491
    +
    492 template <class F, class R, class S>
    +
    493 template <std::size_t dim, class I, class... Args>
    +
    494 inline void xgenerator<F, R, S>::adapt_index(I& arg, Args&... args) const
    +
    495 {
    +
    496 using tmp_value_type = typename decltype(m_shape)::value_type;
    +
    497 if (sizeof...(Args) + 1 > m_shape.size())
    +
    498 {
    +
    499 adapt_index<dim>(args...);
    +
    500 }
    +
    501 else
    +
    502 {
    +
    503 if (static_cast<tmp_value_type>(arg) >= m_shape[dim] && m_shape[dim] == 1)
    +
    504 {
    +
    505 arg = 0;
    +
    506 }
    +
    507 adapt_index<dim + 1>(args...);
    +
    508 }
    +
    509 }
    +
    510
    +
    511 namespace detail
    +
    512 {
    +
    513 template <class Functor, class I, std::size_t L>
    +
    514 inline auto make_xgenerator(Functor&& f, const I (&shape)[L]) noexcept
    +
    515 {
    +
    516 using shape_type = std::array<std::size_t, L>;
    +
    517 using type = xgenerator<Functor, typename Functor::value_type, shape_type>;
    +
    518 return type(std::forward<Functor>(f), xtl::forward_sequence<shape_type, decltype(shape)>(shape));
    +
    519 }
    +
    520
    +
    521 template <class Functor, class S>
    +
    522 inline auto make_xgenerator(Functor&& f, S&& shape) noexcept
    +
    523 {
    +
    524 using type = xgenerator<Functor, typename Functor::value_type, std::decay_t<S>>;
    +
    525 return type(std::forward<Functor>(f), std::forward<S>(shape));
    +
    526 }
    +
    527 }
    +
    528}
    +
    529
    +
    530#endif
    + +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    + +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    auto cend() const noexcept -> const_layout_iterator< L >
    +
    auto cbegin() const noexcept -> const_layout_iterator< L >
    +
    Base class for xexpressions.
    +
    Multidimensional function operating on indices.
    +
    xgenerator(Func &&f, const S &shape) noexcept
    Constructs an xgenerator applying the specified function over the given shape.
    +
    const inner_shape_type & shape() const noexcept
    +
    auto reshape(O &&shape) const &
    +
    bool has_linear_assign(const O &) const noexcept
    +
    bool broadcast_shape(O &shape, bool reuse_cache=false) const
    + + + +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + + +
    +
    + + + + diff --git a/xhistogram_8hpp_source.html b/xhistogram_8hpp_source.html new file mode 100644 index 000000000..4c4edc5e3 --- /dev/null +++ b/xhistogram_8hpp_source.html @@ -0,0 +1,637 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xhistogram.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xhistogram.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    13
    +
    14#ifndef XTENSOR_HISTOGRAM_HPP
    +
    15#define XTENSOR_HISTOGRAM_HPP
    +
    16
    +
    17#include "../containers/xtensor.hpp"
    +
    18#include "../misc/xset_operation.hpp"
    +
    19#include "../misc/xsort.hpp"
    +
    20#include "../views/xview.hpp"
    +
    21
    +
    22using namespace xt::placeholders;
    +
    23
    +
    24namespace xt
    +
    25{
    +
    30
    +
    40 template <class E1, class E2>
    +
    +
    41 inline auto digitize(E1&& data, E2&& bin_edges, bool right = false)
    +
    42 {
    +
    43 XTENSOR_ASSERT(bin_edges.dimension() == 1);
    +
    44 XTENSOR_ASSERT(bin_edges.size() >= 2);
    +
    45 XTENSOR_ASSERT(std::is_sorted(bin_edges.cbegin(), bin_edges.cend()));
    +
    46 XTENSOR_ASSERT(xt::amin(data)[0] >= bin_edges[0]);
    +
    47 XTENSOR_ASSERT(xt::amax(data)[0] <= bin_edges[bin_edges.size() - 1]);
    +
    48
    +
    49 return xt::searchsorted(std::forward<E2>(bin_edges), std::forward<E1>(data), right);
    +
    50 }
    +
    +
    51
    +
    52 namespace detail
    +
    53 {
    +
    54 template <class R = double, class E1, class E2, class E3>
    +
    55 inline auto histogram_imp(E1&& data, E2&& bin_edges, E3&& weights, bool density, bool equal_bins)
    +
    56 {
    +
    57 using size_type = common_size_type_t<std::decay_t<E1>, std::decay_t<E2>, std::decay_t<E3>>;
    +
    58 using value_type = typename std::decay_t<E3>::value_type;
    +
    59
    +
    60 XTENSOR_ASSERT(data.dimension() == 1);
    +
    61 XTENSOR_ASSERT(weights.dimension() == 1);
    +
    62 XTENSOR_ASSERT(bin_edges.dimension() == 1);
    +
    63 XTENSOR_ASSERT(weights.size() == data.size());
    +
    64 XTENSOR_ASSERT(bin_edges.size() >= 2);
    +
    65 XTENSOR_ASSERT(std::is_sorted(bin_edges.cbegin(), bin_edges.cend()));
    +
    66
    +
    67 size_t n_bins = bin_edges.size() - 1;
    + +
    69
    +
    70 if (equal_bins)
    +
    71 {
    +
    72 std::array<typename std::decay_t<E2>::value_type, 2> bounds = xt::minmax(bin_edges)();
    +
    73 auto left = static_cast<double>(bounds[0]);
    +
    74 auto right = static_cast<double>(bounds[1]);
    +
    75 double norm = 1. / (right - left);
    +
    76 for (size_t i = 0; i < data.size(); ++i)
    +
    77 {
    +
    78 auto v = static_cast<double>(data(i));
    +
    79 // left and right are not bounds of data
    +
    80 if (v >= left && v < right)
    +
    81 {
    +
    82 auto i_bin = static_cast<size_t>(static_cast<double>(n_bins) * (v - left) * norm);
    +
    83 count(i_bin) += weights(i);
    +
    84 }
    +
    85 else if (v == right)
    +
    86 {
    +
    87 count(n_bins - 1) += weights(i);
    +
    88 }
    +
    89 }
    +
    90 }
    +
    91 else
    +
    92 {
    +
    93 auto sorter = xt::argsort(data);
    +
    94
    +
    95 size_type ibin = 0;
    +
    96
    +
    97 for (auto& idx : sorter)
    +
    98 {
    +
    99 auto item = data[idx];
    +
    100
    +
    101 if (item < bin_edges[0])
    +
    102 {
    +
    103 continue;
    +
    104 }
    +
    105
    +
    106 if (item > bin_edges[n_bins])
    +
    107 {
    +
    108 break;
    +
    109 }
    +
    110
    +
    111 while (item >= bin_edges[ibin + 1] && ibin < n_bins - 1)
    +
    112 {
    +
    113 ++ibin;
    +
    114 }
    +
    115
    +
    116 count[ibin] += weights[idx];
    +
    117 }
    +
    118 }
    +
    119
    +
    120 xt::xtensor<R, 1> prob = xt::cast<R>(count);
    +
    121
    +
    122 if (density)
    +
    123 {
    +
    124 R n = static_cast<R>(data.size());
    +
    125 for (size_type i = 0; i < bin_edges.size() - 1; ++i)
    +
    126 {
    +
    127 prob[i] /= (static_cast<R>(bin_edges[i + 1] - bin_edges[i]) * n);
    +
    128 }
    +
    129 }
    +
    130
    +
    131 return prob;
    +
    132 }
    +
    133
    +
    134 } // detail
    +
    135
    +
    140
    +
    151 template <class R = double, class E1, class E2, class E3>
    +
    +
    152 inline auto histogram(E1&& data, E2&& bin_edges, E3&& weights, bool density = false)
    +
    153 {
    +
    154 return detail::histogram_imp<R>(
    +
    155 std::forward<E1>(data),
    +
    156 std::forward<E2>(bin_edges),
    +
    157 std::forward<E3>(weights),
    +
    158 density,
    +
    159 false
    +
    160 );
    +
    161 }
    +
    +
    162
    +
    172 template <class R = double, class E1, class E2>
    +
    +
    173 inline auto histogram(E1&& data, E2&& bin_edges, bool density = false)
    +
    174 {
    +
    175 using value_type = typename std::decay_t<E1>::value_type;
    +
    176
    +
    177 auto n = data.size();
    +
    178
    +
    179 return detail::histogram_imp<R>(
    +
    180 std::forward<E1>(data),
    +
    181 std::forward<E2>(bin_edges),
    + +
    183 density,
    +
    184 false
    +
    185 );
    +
    186 }
    +
    +
    187
    +
    197 template <class R = double, class E1>
    +
    +
    198 inline auto histogram(E1&& data, std::size_t bins = 10, bool density = false)
    +
    199 {
    +
    200 using value_type = typename std::decay_t<E1>::value_type;
    +
    201
    +
    202 auto n = data.size();
    +
    203
    +
    204 return detail::histogram_imp<R>(
    +
    205 std::forward<E1>(data),
    + + +
    208 density,
    +
    209 true
    +
    210 );
    +
    211 }
    +
    +
    212
    +
    224 template <class R = double, class E1, class E2>
    +
    +
    225 inline auto histogram(E1&& data, std::size_t bins, E2 left, E2 right, bool density = false)
    +
    226 {
    +
    227 using value_type = typename std::decay_t<E1>::value_type;
    +
    228
    +
    229 auto n = data.size();
    +
    230
    +
    231 return detail::histogram_imp<R>(
    +
    232 std::forward<E1>(data),
    +
    233 histogram_bin_edges(data, left, right, bins),
    + +
    235 density,
    +
    236 true
    +
    237 );
    +
    238 }
    +
    +
    239
    +
    250 template <class R = double, class E1, class E2>
    +
    +
    251 inline auto histogram(E1&& data, std::size_t bins, E2&& weights, bool density = false)
    +
    252 {
    +
    253 return detail::histogram_imp<R>(
    +
    254 std::forward<E1>(data),
    +
    255 histogram_bin_edges(data, weights, bins),
    +
    256 std::forward<E2>(weights),
    +
    257 density,
    +
    258 true
    +
    259 );
    +
    260 }
    +
    +
    261
    +
    274 template <class R = double, class E1, class E2, class E3>
    +
    +
    275 inline auto histogram(E1&& data, std::size_t bins, E2&& weights, E3 left, E3 right, bool density = false)
    +
    276 {
    +
    277 return detail::histogram_imp<R>(
    +
    278 std::forward<E1>(data),
    +
    279 histogram_bin_edges(data, weights, left, right, bins),
    +
    280 std::forward<E2>(weights),
    +
    281 density,
    +
    282 true
    +
    283 );
    +
    284 }
    +
    +
    285
    +
    + +
    291 {
    +
    292 automatic,
    +
    293 linspace,
    +
    294 logspace,
    +
    295 uniform
    +
    296 };
    +
    +
    297
    +
    310 template <class E1, class E2, class E3>
    +
    + +
    312 E1&& data,
    +
    313 E2&& weights,
    +
    314 E3 left,
    +
    315 E3 right,
    +
    316 std::size_t bins = 10,
    +
    317 histogram_algorithm mode = histogram_algorithm::automatic
    +
    318 )
    +
    319 {
    +
    320 // counter and return type
    +
    321 using size_type = common_size_type_t<std::decay_t<E1>, std::decay_t<E2>>;
    +
    322 using value_type = typename std::decay_t<E1>::value_type;
    +
    323 using weights_type = typename std::decay_t<E2>::value_type;
    +
    324
    +
    325 // basic checks
    +
    326 // - rank
    +
    327 XTENSOR_ASSERT(data.dimension() == 1);
    +
    328 XTENSOR_ASSERT(weights.dimension() == 1);
    +
    329 // - size
    +
    330 XTENSOR_ASSERT(weights.size() == data.size());
    +
    331 // - bounds
    +
    332 XTENSOR_ASSERT(left <= right);
    +
    333 // - non-empty
    +
    334 XTENSOR_ASSERT(bins > std::size_t(0));
    +
    335
    +
    336 // act on different modes
    +
    337 switch (mode)
    +
    338 {
    +
    339 // bins of equal width
    +
    340 case histogram_algorithm::automatic:
    +
    341 {
    +
    342 xt::xtensor<value_type, 1> bin_edges = xt::linspace<value_type>(left, right, bins + 1);
    +
    343 return bin_edges;
    +
    344 }
    +
    345
    +
    346 // bins of equal width
    +
    347 case histogram_algorithm::linspace:
    +
    348 {
    +
    349 xt::xtensor<value_type, 1> bin_edges = xt::linspace<value_type>(left, right, bins + 1);
    +
    350 return bin_edges;
    +
    351 }
    +
    352
    +
    353 // bins of logarithmically increasing size
    +
    354 case histogram_algorithm::logspace:
    +
    355 {
    +
    356 using rhs_value_type = std::conditional_t<xtl::is_integral<value_type>::value, double, value_type>;
    +
    357
    + +
    359 xt::logspace<rhs_value_type>(std::log10(left), std::log10(right), bins + 1)
    +
    360 );
    +
    361
    +
    362 // TODO: replace above with below after 'xsimd' fix
    +
    363 // xt::xtensor<value_type,1> bin_edges = xt::logspace<value_type>(
    +
    364 // std::log10(left), std::log10(right), bins+1);
    +
    365
    +
    366 return bin_edges;
    +
    367 }
    +
    368
    +
    369 // same amount of data in each bin
    +
    370 case histogram_algorithm::uniform:
    +
    371 {
    +
    372 // indices that sort "data"
    +
    373 auto sorter = xt::argsort(data);
    +
    374
    +
    375 // histogram: all of equal 'height'
    +
    376 // - height
    +
    377 weights_type w = xt::sum<weights_type>(weights)[0] / static_cast<weights_type>(bins);
    +
    378 // - apply to all bins
    + +
    380
    +
    381 // take cumulative sum, to act as easy look-up
    +
    382 count = xt::cumsum(count);
    +
    383
    +
    384 // edges
    +
    385 // - allocate
    +
    386 std::vector<size_t> shape = {bins + 1};
    +
    387 xt::xtensor<value_type, 1> bin_edges = xtensor<value_type, 1>::from_shape(shape);
    +
    388 // - first/last edge
    +
    389 bin_edges[0] = left;
    +
    390 bin_edges[bins] = right;
    +
    391 // - cumulative weight
    +
    392 weights_type cum_weight = static_cast<weights_type>(0);
    +
    393 // - current bin
    +
    394 size_type ibin = 0;
    +
    395 // - loop to find interior bin-edges
    +
    396 for (size_type i = 0; i < weights.size(); ++i)
    +
    397 {
    +
    398 if (cum_weight >= count[ibin])
    +
    399 {
    +
    400 bin_edges[ibin + 1] = data[sorter[i]];
    +
    401 ++ibin;
    +
    402 }
    +
    403 cum_weight += weights[sorter[i]];
    +
    404 }
    +
    405 return bin_edges;
    +
    406 }
    +
    407
    +
    408 // bins of equal width
    +
    409 default:
    +
    410 {
    +
    411 xt::xtensor<value_type, 1> bin_edges = xt::linspace<value_type>(left, right, bins + 1);
    +
    412 return bin_edges;
    +
    413 }
    +
    414 }
    +
    415 }
    +
    +
    416
    +
    427 template <class E1, class E2>
    +
    + +
    429 E1&& data,
    +
    430 E2&& weights,
    +
    431 std::size_t bins = 10,
    +
    432 histogram_algorithm mode = histogram_algorithm::automatic
    +
    433 )
    +
    434 {
    +
    435 using value_type = typename std::decay_t<E1>::value_type;
    +
    436 std::array<value_type, 2> left_right;
    +
    437 left_right = xt::minmax(data)();
    +
    438
    +
    439 return histogram_bin_edges(
    +
    440 std::forward<E1>(data),
    +
    441 std::forward<E2>(weights),
    +
    442 left_right[0],
    +
    443 left_right[1],
    +
    444 bins,
    +
    445 mode
    +
    446 );
    +
    447 }
    +
    +
    448
    +
    458 template <class E1>
    +
    459 inline auto
    +
    +
    460 histogram_bin_edges(E1&& data, std::size_t bins = 10, histogram_algorithm mode = histogram_algorithm::automatic)
    +
    461 {
    +
    462 using value_type = typename std::decay_t<E1>::value_type;
    +
    463
    +
    464 auto n = data.size();
    +
    465 std::array<value_type, 2> left_right;
    +
    466 left_right = xt::minmax(data)();
    +
    467
    +
    468 return histogram_bin_edges(
    +
    469 std::forward<E1>(data),
    + +
    471 left_right[0],
    +
    472 left_right[1],
    +
    473 bins,
    +
    474 mode
    +
    475 );
    +
    476 }
    +
    +
    477
    +
    489 template <class E1, class E2>
    +
    + +
    491 E1&& data,
    +
    492 E2 left,
    +
    493 E2 right,
    +
    494 std::size_t bins = 10,
    +
    495 histogram_algorithm mode = histogram_algorithm::automatic
    +
    496 )
    +
    497 {
    +
    498 using value_type = typename std::decay_t<E1>::value_type;
    +
    499
    +
    500 auto n = data.size();
    +
    501
    +
    502 return histogram_bin_edges(std::forward<E1>(data), xt::ones<value_type>({n}), left, right, bins, mode);
    +
    503 }
    +
    +
    504
    +
    522 template <class E1, class E2, XTL_REQUIRES(is_xexpression<std::decay_t<E2>>)>
    +
    +
    523 inline auto bincount(E1&& data, E2&& weights, std::size_t minlength = 0)
    +
    524 {
    +
    525 using result_value_type = typename std::decay_t<E2>::value_type;
    +
    526 using input_value_type = typename std::decay_t<E1>::value_type;
    +
    527 using size_type = typename std::decay_t<E1>::size_type;
    +
    528
    +
    529 static_assert(
    +
    530 xtl::is_integral<typename std::decay_t<E1>::value_type>::value,
    +
    531 "Bincount data has to be integral type."
    +
    532 );
    +
    533 XTENSOR_ASSERT(data.dimension() == 1);
    +
    534 XTENSOR_ASSERT(weights.dimension() == 1);
    +
    535
    +
    536 std::array<input_value_type, 2> left_right;
    +
    537 left_right = xt::minmax(data)();
    +
    538
    +
    539 if (left_right[0] < input_value_type(0))
    +
    540 {
    +
    541 XTENSOR_THROW(std::runtime_error, "Data argument for bincount can only contain positive integers!");
    +
    542 }
    +
    543
    + +
    545 {(std::max)(minlength, std::size_t(left_right[1] + 1))}
    +
    546 );
    +
    547
    +
    548 for (size_type i = 0; i < data.size(); ++i)
    +
    549 {
    +
    550 res(data(i)) += weights(i);
    +
    551 }
    +
    552
    +
    553 return res;
    +
    554 }
    +
    +
    555
    +
    556 template <class E1>
    +
    557 inline auto bincount(E1&& data, std::size_t minlength = 0)
    +
    558 {
    +
    559 return bincount(
    +
    560 std::forward<E1>(data),
    +
    561 xt::ones<typename std::decay_t<E1>::value_type>(data.shape()),
    +
    562 minlength
    +
    563 );
    +
    564 }
    +
    565
    +
    575 template <class E>
    +
    +
    576 inline xt::xtensor<size_t, 1> bin_items(size_t N, E&& weights)
    +
    577 {
    +
    578 if (weights.size() <= std::size_t(1))
    +
    579 {
    + +
    581 return n;
    +
    582 }
    +
    583
    +
    584#ifdef XTENSOR_ENABLE_ASSERT
    +
    585 using value_type = typename std::decay_t<E>::value_type;
    +
    586
    +
    587 XTENSOR_ASSERT(xt::all(weights >= static_cast<value_type>(0)));
    +
    588 XTENSOR_ASSERT(xt::sum(weights)() > static_cast<value_type>(0));
    +
    589#endif
    +
    590
    +
    591 xt::xtensor<double, 1> P = xt::cast<double>(weights) / static_cast<double>(xt::sum(weights)());
    +
    592 xt::xtensor<size_t, 1> n = xt::ceil(static_cast<double>(N) * P);
    +
    593
    +
    594 if (xt::sum(n)() == N)
    +
    595 {
    +
    596 return n;
    +
    597 }
    +
    598
    + +
    600 xt::xtensor<size_t, 1> sorter = xt::argsort(P);
    +
    601 sorter = xt::view(sorter, xt::range(P.size(), _, -1));
    +
    602 sorter = xt::view(sorter, xt::range(0, xt::sum(n)(0) - N));
    +
    603 xt::view(d, xt::keep(sorter)) = 1;
    +
    604 n -= d;
    +
    605
    +
    606 return n;
    +
    607 }
    +
    +
    608
    +
    +
    618 inline xt::xtensor<size_t, 1> bin_items(size_t N, size_t bins)
    +
    619 {
    +
    620 return bin_items(N, xt::ones<double>({bins}));
    +
    621 }
    +
    +
    622}
    +
    623
    +
    624#endif
    +
    size_type size() const noexcept
    Returns the number of element in the container.
    +
    constexpr const inner_shape_type & shape() const noexcept
    Returns the shape of the container.
    +
    auto cumsum(E &&e, std::ptrdiff_t axis)
    Cumulative sum.
    Definition xmath.hpp:2283
    +
    auto amax(E &&e, X &&axes, EVS es=EVS())
    Maximum element along given axis.
    Definition xmath.hpp:782
    +
    auto amin(E &&e, X &&axes, EVS es=EVS())
    Minimum element along given axis.
    Definition xmath.hpp:800
    +
    auto cast(E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
    Element-wise static_cast.
    +
    auto digitize(E1 &&data, E2 &&bin_edges, bool right=false)
    Return the indices of the bins to which each value in input array belongs.
    +
    auto histogram_bin_edges(E1 &&data, E2 &&weights, E3 left, E3 right, std::size_t bins=10, histogram_algorithm mode=histogram_algorithm::automatic)
    Compute the bin-edges of a histogram of a set of data using different algorithms.
    +
    auto histogram(E1 &&data, E2 &&bin_edges, E3 &&weights, bool density=false)
    Compute the histogram of a set of data.
    +
    histogram_algorithm
    Defines different algorithms to be used in "histogram_bin_edges".
    +
    bool all(E &&e)
    Any.
    +
    auto ceil(E &&e) noexcept -> detail::xfunction_type_t< math::ceil_fun, E >
    ceil function.
    Definition xmath.hpp:1574
    +
    auto sum(E &&e, X &&axes, EVS es=EVS())
    Sum of elements over given axes.
    Definition xmath.hpp:1838
    +
    auto minmax(E &&e, EVS es=EVS())
    Minimum and maximum among the elements of an array or expression.
    Definition xmath.hpp:2231
    +
    auto searchsorted(E1 &&a, E2 &&v, bool right=true)
    Find indices where elements should be inserted to maintain order.
    +
    auto norm(E &&e) noexcept
    Calculates the squared magnitude elementwise for the complex numbers in e.
    Definition xcomplex.hpp:257
    +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    auto ones(S shape) noexcept
    Returns an xexpression containing ones of the specified shape.
    Definition xbuilder.hpp:46
    +
    auto zeros(S shape) noexcept
    Returns an xexpression containing zeros of the specified shape.
    Definition xbuilder.hpp:66
    +
    xt::xtensor< size_t, 1 > bin_items(size_t N, E &&weights)
    Get the number of items in each bin, given the fraction of items per bin.
    +
    auto linspace(T start, T stop, std::size_t num_samples=50, bool endpoint=true) noexcept
    Generates num_samples evenly spaced numbers over given interval.
    Definition xbuilder.hpp:460
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    auto keep(T &&indices)
    Create a non-contigous slice from a container of indices to keep.
    Definition xslice.hpp:386
    +
    auto logspace(T start, T stop, std::size_t num_samples, T base=10, bool endpoint=true) noexcept
    Generates num_samples numbers evenly spaced on a log scale over given interval.
    Definition xbuilder.hpp:481
    +
    auto bincount(E1 &&data, E2 &&weights, std::size_t minlength=0)
    Count number of occurrences of each value in array of non-negative ints.
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    +
    +
    + + + + diff --git a/xindex__view_8hpp_source.html b/xindex__view_8hpp_source.html new file mode 100644 index 000000000..6b23de246 --- /dev/null +++ b/xindex__view_8hpp_source.html @@ -0,0 +1,838 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xindex_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xindex_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_INDEX_VIEW_HPP
    +
    11#define XTENSOR_INDEX_VIEW_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <type_traits>
    +
    17#include <utility>
    +
    18
    +
    19#include "../core/xexpression.hpp"
    +
    20#include "../core/xiterable.hpp"
    +
    21#include "../core/xoperation.hpp"
    +
    22#include "../core/xsemantic.hpp"
    +
    23#include "../core/xstrides.hpp"
    +
    24#include "../utils/xutils.hpp"
    +
    25
    +
    26namespace xt
    +
    27{
    +
    28
    +
    29 /*************************
    +
    30 * xindex_view extension *
    +
    31 *************************/
    +
    32
    +
    33 namespace extension
    +
    34 {
    +
    35 template <class Tag, class CT, class I>
    + +
    37
    +
    38 template <class CT, class I>
    +
    + +
    40 {
    +
    41 using type = xtensor_empty_base;
    +
    42 };
    +
    +
    43
    +
    44 template <class CT, class I>
    +
    +
    45 struct xindex_view_base : xindex_view_base_impl<xexpression_tag_t<CT>, CT, I>
    +
    46 {
    +
    47 };
    +
    +
    48
    +
    49 template <class CT, class I>
    +
    50 using xindex_view_base_t = typename xindex_view_base<CT, I>::type;
    +
    51 }
    +
    52
    +
    53 /***************
    +
    54 * xindex_view *
    +
    55 ***************/
    +
    56
    +
    57 template <class CT, class I>
    +
    58 class xindex_view;
    +
    59
    +
    60 template <class CT, class I>
    +
    + +
    62 {
    +
    63 using xexpression_type = std::decay_t<CT>;
    + +
    65 };
    +
    +
    66
    +
    67 template <class CT, class I>
    +
    + +
    69 {
    +
    70 using inner_shape_type = std::array<std::size_t, 1>;
    +
    71 using const_stepper = xindexed_stepper<xindex_view<CT, I>, true>;
    +
    72 using stepper = xindexed_stepper<xindex_view<CT, I>, false>;
    +
    73 };
    +
    +
    74
    +
    89 template <class CT, class I>
    +
    +
    90 class xindex_view : public xview_semantic<xindex_view<CT, I>>,
    +
    91 public xiterable<xindex_view<CT, I>>,
    +
    92 public extension::xindex_view_base_t<CT, I>
    +
    93 {
    +
    94 public:
    +
    95
    +
    96 using self_type = xindex_view<CT, I>;
    +
    97 using xexpression_type = std::decay_t<CT>;
    +
    98 using semantic_base = xview_semantic<self_type>;
    +
    99
    +
    100 using extension_base = extension::xindex_view_base_t<CT, I>;
    +
    101 using expression_tag = typename extension_base::expression_tag;
    +
    102
    +
    103 using value_type = typename xexpression_type::value_type;
    +
    104 using reference = inner_reference_t<CT>;
    +
    105 using const_reference = typename xexpression_type::const_reference;
    +
    106 using pointer = typename xexpression_type::pointer;
    +
    107 using const_pointer = typename xexpression_type::const_pointer;
    +
    108 using size_type = typename xexpression_type::size_type;
    +
    109 using difference_type = typename xexpression_type::difference_type;
    +
    110
    +
    111 using iterable_base = xiterable<self_type>;
    +
    112 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    113 using shape_type = inner_shape_type;
    +
    114
    +
    115 using indices_type = I;
    +
    116
    +
    117 using stepper = typename iterable_base::stepper;
    +
    118 using const_stepper = typename iterable_base::const_stepper;
    +
    119
    +
    120 using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type;
    +
    121 using base_index_type = xindex_type_t<shape_type>;
    +
    122
    +
    123 using bool_load_type = typename xexpression_type::bool_load_type;
    +
    124
    +
    125 static constexpr layout_type static_layout = layout_type::dynamic;
    +
    126 static constexpr bool contiguous_layout = false;
    +
    127
    +
    128 template <class CTA, class I2>
    +
    129 xindex_view(CTA&& e, I2&& indices) noexcept;
    +
    130
    +
    131 template <class E>
    +
    132 self_type& operator=(const xexpression<E>& e);
    +
    133
    +
    134 template <class E>
    +
    135 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    136
    +
    137 size_type size() const noexcept;
    +
    138 size_type dimension() const noexcept;
    +
    139 const inner_shape_type& shape() const noexcept;
    +
    140 size_type shape(size_type index) const;
    +
    141 layout_type layout() const noexcept;
    +
    142 bool is_contiguous() const noexcept;
    +
    143
    +
    144 template <class T>
    +
    145 void fill(const T& value);
    +
    146
    +
    147 reference operator()(size_type idx = size_type(0));
    +
    148 template <class... Args>
    +
    149 reference operator()(size_type idx0, size_type idx1, Args... args);
    +
    150 reference unchecked(size_type idx);
    +
    151 template <class S>
    +
    152 disable_integral_t<S, reference> operator[](const S& index);
    +
    153 template <class OI>
    +
    154 reference operator[](std::initializer_list<OI> index);
    +
    155 reference operator[](size_type i);
    +
    156
    +
    157 template <class It>
    +
    158 reference element(It first, It last);
    +
    159
    +
    160 const_reference operator()(size_type idx = size_type(0)) const;
    +
    161 template <class... Args>
    +
    162 const_reference operator()(size_type idx0, size_type idx1, Args... args) const;
    +
    163 const_reference unchecked(size_type idx) const;
    +
    164 template <class S>
    +
    165 disable_integral_t<S, const_reference> operator[](const S& index) const;
    +
    166 template <class OI>
    +
    167 const_reference operator[](std::initializer_list<OI> index) const;
    +
    168 const_reference operator[](size_type i) const;
    +
    169
    +
    170 template <class It>
    +
    171 const_reference element(It first, It last) const;
    +
    172
    +
    173 xexpression_type& expression() noexcept;
    +
    174 const xexpression_type& expression() const noexcept;
    +
    175
    +
    176 template <class O>
    +
    177 bool broadcast_shape(O& shape, bool reuse_cache = false) const;
    +
    178
    +
    179 template <class O>
    +
    180 bool has_linear_assign(const O& /*strides*/) const noexcept;
    +
    181
    +
    182 template <class ST>
    +
    183 stepper stepper_begin(const ST& shape);
    +
    184 template <class ST>
    +
    185 stepper stepper_end(const ST& shape, layout_type);
    +
    186
    +
    187 template <class ST>
    +
    188 const_stepper stepper_begin(const ST& shape) const;
    +
    189 template <class ST>
    +
    190 const_stepper stepper_end(const ST& shape, layout_type) const;
    +
    191
    +
    192 template <class E>
    +
    193 using rebind_t = xindex_view<E, I>;
    +
    194
    +
    195 template <class E>
    +
    196 rebind_t<E> build_index_view(E&& e) const;
    +
    197
    +
    198 private:
    +
    199
    +
    200 CT m_e;
    +
    201 const indices_type m_indices;
    +
    202 const inner_shape_type m_shape;
    +
    203
    +
    204 void assign_temporary_impl(temporary_type&& tmp);
    +
    205
    +
    206 friend class xview_semantic<xindex_view<CT, I>>;
    +
    207 };
    +
    +
    208
    +
    209 /***************
    +
    210 * xfiltration *
    +
    211 ***************/
    +
    212
    +
    231 template <class ECT, class CCT>
    +
    + +
    233 {
    +
    234 public:
    +
    235
    +
    236 using self_type = xfiltration<ECT, CCT>;
    +
    237 using xexpression_type = std::decay_t<ECT>;
    +
    238 using const_reference = typename xexpression_type::const_reference;
    +
    239
    +
    240 template <class ECTA, class CCTA>
    +
    241 xfiltration(ECTA&& e, CCTA&& condition);
    +
    242
    +
    243 template <class E>
    +
    244 disable_xexpression<E, self_type&> operator=(const E&);
    +
    245
    +
    246 template <class E>
    +
    247 disable_xexpression<E, self_type&> operator+=(const E&);
    +
    248
    +
    249 template <class E>
    +
    250 disable_xexpression<E, self_type&> operator-=(const E&);
    +
    251
    +
    252 template <class E>
    +
    253 disable_xexpression<E, self_type&> operator*=(const E&);
    +
    254
    +
    255 template <class E>
    +
    256 disable_xexpression<E, self_type&> operator/=(const E&);
    +
    257
    +
    258 template <class E>
    +
    259 disable_xexpression<E, self_type&> operator%=(const E&);
    +
    260
    +
    261 private:
    +
    262
    +
    263 template <class F>
    +
    264 self_type& apply(F&& func);
    +
    265
    +
    266 ECT m_e;
    +
    267 CCT m_condition;
    +
    268 };
    +
    +
    269
    +
    270 /******************************
    +
    271 * xindex_view implementation *
    +
    272 ******************************/
    +
    273
    +
    278
    +
    285 template <class CT, class I>
    +
    286 template <class CTA, class I2>
    +
    +
    287 inline xindex_view<CT, I>::xindex_view(CTA&& e, I2&& indices) noexcept
    +
    288 : m_e(std::forward<CTA>(e))
    +
    289 , m_indices(std::forward<I2>(indices))
    +
    290 , m_shape({m_indices.size()})
    +
    291 {
    +
    292 }
    +
    +
    293
    +
    295
    +
    300
    +
    303 template <class CT, class I>
    +
    304 template <class E>
    +
    +
    305 inline auto xindex_view<CT, I>::operator=(const xexpression<E>& e) -> self_type&
    +
    306 {
    +
    307 return semantic_base::operator=(e);
    +
    308 }
    +
    +
    309
    +
    311
    +
    312 template <class CT, class I>
    +
    313 template <class E>
    +
    314 inline auto xindex_view<CT, I>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    315 {
    +
    316 std::fill(this->begin(), this->end(), e);
    +
    317 return *this;
    +
    318 }
    +
    319
    +
    320 template <class CT, class I>
    +
    321 inline void xindex_view<CT, I>::assign_temporary_impl(temporary_type&& tmp)
    +
    322 {
    +
    323 std::copy(tmp.cbegin(), tmp.cend(), this->begin());
    +
    324 }
    +
    325
    +
    330
    +
    333 template <class CT, class I>
    +
    +
    334 inline auto xindex_view<CT, I>::size() const noexcept -> size_type
    +
    335 {
    +
    336 return compute_size(shape());
    +
    337 }
    +
    +
    338
    +
    342 template <class CT, class I>
    +
    +
    343 inline auto xindex_view<CT, I>::dimension() const noexcept -> size_type
    +
    344 {
    +
    345 return 1;
    +
    346 }
    +
    +
    347
    +
    351 template <class CT, class I>
    +
    +
    352 inline auto xindex_view<CT, I>::shape() const noexcept -> const inner_shape_type&
    +
    353 {
    +
    354 return m_shape;
    +
    355 }
    +
    +
    356
    +
    360 template <class CT, class I>
    +
    +
    361 inline auto xindex_view<CT, I>::shape(size_type i) const -> size_type
    +
    362 {
    +
    363 return m_shape[i];
    +
    364 }
    +
    +
    365
    +
    366 template <class CT, class I>
    +
    367 inline layout_type xindex_view<CT, I>::layout() const noexcept
    +
    368 {
    +
    369 return static_layout;
    +
    370 }
    +
    371
    +
    372 template <class CT, class I>
    +
    373 inline bool xindex_view<CT, I>::is_contiguous() const noexcept
    +
    374 {
    +
    375 return false;
    +
    376 }
    +
    377
    +
    379
    +
    384
    +
    389 template <class CT, class I>
    +
    390 template <class T>
    +
    +
    391 inline void xindex_view<CT, I>::fill(const T& value)
    +
    392 {
    +
    393 std::fill(this->begin(), this->end(), value);
    +
    394 }
    +
    +
    395
    +
    401 template <class CT, class I>
    +
    +
    402 inline auto xindex_view<CT, I>::operator()(size_type idx) -> reference
    +
    403 {
    +
    404 return m_e[m_indices[idx]];
    +
    405 }
    +
    +
    406
    +
    407 template <class CT, class I>
    +
    408 template <class... Args>
    +
    409 inline auto xindex_view<CT, I>::operator()(size_type, size_type idx1, Args... args) -> reference
    +
    410 {
    +
    411 return this->operator()(idx1, static_cast<size_type>(args)...);
    +
    412 }
    +
    413
    +
    418 template <class CT, class I>
    +
    +
    419 inline auto xindex_view<CT, I>::unchecked(size_type idx) -> reference
    +
    420 {
    +
    421 return this->operator()(idx);
    +
    422 }
    +
    +
    423
    +
    429 template <class CT, class I>
    +
    +
    430 inline auto xindex_view<CT, I>::operator()(size_type idx) const -> const_reference
    +
    431 {
    +
    432 return m_e[m_indices[idx]];
    +
    433 }
    +
    +
    434
    +
    435 template <class CT, class I>
    +
    436 template <class... Args>
    +
    437 inline auto xindex_view<CT, I>::operator()(size_type, size_type idx1, Args... args) const -> const_reference
    +
    438 {
    +
    439 return this->operator()(idx1, args...);
    +
    440 }
    +
    441
    +
    446 template <class CT, class I>
    +
    +
    447 inline auto xindex_view<CT, I>::unchecked(size_type idx) const -> const_reference
    +
    448 {
    +
    449 return this->operator()(idx);
    +
    450 }
    +
    +
    451
    +
    458 template <class CT, class I>
    +
    459 template <class S>
    +
    +
    460 inline auto xindex_view<CT, I>::operator[](const S& index) -> disable_integral_t<S, reference>
    +
    461 {
    +
    462 return m_e[m_indices[index[0]]];
    +
    463 }
    +
    +
    464
    +
    465 template <class CT, class I>
    +
    466 template <class OI>
    +
    467 inline auto xindex_view<CT, I>::operator[](std::initializer_list<OI> index) -> reference
    +
    468 {
    +
    469 return m_e[m_indices[*(index.begin())]];
    +
    470 }
    +
    471
    +
    472 template <class CT, class I>
    +
    473 inline auto xindex_view<CT, I>::operator[](size_type i) -> reference
    +
    474 {
    +
    475 return operator()(i);
    +
    476 }
    +
    477
    +
    484 template <class CT, class I>
    +
    485 template <class S>
    +
    +
    486 inline auto xindex_view<CT, I>::operator[](const S& index) const -> disable_integral_t<S, const_reference>
    +
    487 {
    +
    488 return m_e[m_indices[index[0]]];
    +
    489 }
    +
    +
    490
    +
    491 template <class CT, class I>
    +
    492 template <class OI>
    +
    493 inline auto xindex_view<CT, I>::operator[](std::initializer_list<OI> index) const -> const_reference
    +
    494 {
    +
    495 return m_e[m_indices[*(index.begin())]];
    +
    496 }
    +
    497
    +
    498 template <class CT, class I>
    +
    499 inline auto xindex_view<CT, I>::operator[](size_type i) const -> const_reference
    +
    500 {
    +
    501 return operator()(i);
    +
    502 }
    +
    503
    +
    510 template <class CT, class I>
    +
    511 template <class It>
    +
    +
    512 inline auto xindex_view<CT, I>::element(It first, It /*last*/) -> reference
    +
    513 {
    +
    514 return m_e[m_indices[(*first)]];
    +
    515 }
    +
    +
    516
    +
    523 template <class CT, class I>
    +
    524 template <class It>
    +
    +
    525 inline auto xindex_view<CT, I>::element(It first, It /*last*/) const -> const_reference
    +
    526 {
    +
    527 return m_e[m_indices[(*first)]];
    +
    528 }
    +
    +
    529
    +
    533 template <class CT, class I>
    +
    +
    534 inline auto xindex_view<CT, I>::expression() noexcept -> xexpression_type&
    +
    535 {
    +
    536 return m_e;
    +
    537 }
    +
    +
    538
    +
    542 template <class CT, class I>
    +
    +
    543 inline auto xindex_view<CT, I>::expression() const noexcept -> const xexpression_type&
    +
    544 {
    +
    545 return m_e;
    +
    546 }
    +
    +
    547
    +
    549
    +
    554
    +
    560 template <class CT, class I>
    +
    561 template <class O>
    +
    +
    562 inline bool xindex_view<CT, I>::broadcast_shape(O& shape, bool) const
    +
    563 {
    +
    564 return xt::broadcast_shape(m_shape, shape);
    +
    565 }
    +
    +
    566
    +
    572 template <class CT, class I>
    +
    573 template <class O>
    +
    +
    574 inline bool xindex_view<CT, I>::has_linear_assign(const O& /*strides*/) const noexcept
    +
    575 {
    +
    576 return false;
    +
    577 }
    +
    +
    578
    +
    580
    +
    581 /***************
    +
    582 * stepper api *
    +
    583 ***************/
    +
    584
    +
    585 template <class CT, class I>
    +
    586 template <class ST>
    +
    587 inline auto xindex_view<CT, I>::stepper_begin(const ST& shape) -> stepper
    +
    588 {
    +
    589 size_type offset = shape.size() - dimension();
    +
    590 return stepper(this, offset);
    +
    591 }
    +
    592
    +
    593 template <class CT, class I>
    +
    594 template <class ST>
    +
    595 inline auto xindex_view<CT, I>::stepper_end(const ST& shape, layout_type) -> stepper
    +
    596 {
    +
    597 size_type offset = shape.size() - dimension();
    +
    598 return stepper(this, offset, true);
    +
    599 }
    +
    600
    +
    601 template <class CT, class I>
    +
    602 template <class ST>
    +
    603 inline auto xindex_view<CT, I>::stepper_begin(const ST& shape) const -> const_stepper
    +
    604 {
    +
    605 size_type offset = shape.size() - dimension();
    +
    606 return const_stepper(this, offset);
    +
    607 }
    +
    608
    +
    609 template <class CT, class I>
    +
    610 template <class ST>
    +
    611 inline auto xindex_view<CT, I>::stepper_end(const ST& shape, layout_type) const -> const_stepper
    +
    612 {
    +
    613 size_type offset = shape.size() - dimension();
    +
    614 return const_stepper(this, offset, true);
    +
    615 }
    +
    616
    +
    617 template <class CT, class I>
    +
    618 template <class E>
    +
    619 inline auto xindex_view<CT, I>::build_index_view(E&& e) const -> rebind_t<E>
    +
    620 {
    +
    621 return rebind_t<E>(std::forward<E>(e), indices_type(m_indices));
    +
    622 }
    +
    623
    +
    624 /******************************
    +
    625 * xfiltration implementation *
    +
    626 ******************************/
    +
    627
    +
    632
    +
    639 template <class ECT, class CCT>
    +
    640 template <class ECTA, class CCTA>
    +
    +
    641 inline xfiltration<ECT, CCT>::xfiltration(ECTA&& e, CCTA&& condition)
    +
    642 : m_e(std::forward<ECTA>(e))
    +
    643 , m_condition(std::forward<CCTA>(condition))
    +
    644 {
    +
    645 }
    +
    +
    646
    +
    648
    +
    653
    +
    658 template <class ECT, class CCT>
    +
    659 template <class E>
    +
    +
    660 inline auto xfiltration<ECT, CCT>::operator=(const E& e) -> disable_xexpression<E, self_type&>
    +
    661 {
    +
    662 return apply(
    +
    663 [this, &e](const_reference v, bool cond)
    +
    664 {
    +
    665 return cond ? e : v;
    +
    666 }
    +
    667 );
    +
    668 }
    +
    +
    669
    +
    671
    +
    676
    +
    681 template <class ECT, class CCT>
    +
    682 template <class E>
    +
    +
    683 inline auto xfiltration<ECT, CCT>::operator+=(const E& e) -> disable_xexpression<E, self_type&>
    +
    684 {
    +
    685 return apply(
    +
    686 [&e](const_reference v, bool cond)
    +
    687 {
    +
    688 return cond ? v + e : v;
    +
    689 }
    +
    690 );
    +
    691 }
    +
    +
    692
    +
    698 template <class ECT, class CCT>
    +
    699 template <class E>
    +
    +
    700 inline auto xfiltration<ECT, CCT>::operator-=(const E& e) -> disable_xexpression<E, self_type&>
    +
    701 {
    +
    702 return apply(
    +
    703 [&e](const_reference v, bool cond)
    +
    704 {
    +
    705 return cond ? v - e : v;
    +
    706 }
    +
    707 );
    +
    708 }
    +
    +
    709
    +
    715 template <class ECT, class CCT>
    +
    716 template <class E>
    +
    +
    717 inline auto xfiltration<ECT, CCT>::operator*=(const E& e) -> disable_xexpression<E, self_type&>
    +
    718 {
    +
    719 return apply(
    +
    720 [&e](const_reference v, bool cond)
    +
    721 {
    +
    722 return cond ? v * e : v;
    +
    723 }
    +
    724 );
    +
    725 }
    +
    +
    726
    +
    732 template <class ECT, class CCT>
    +
    733 template <class E>
    +
    +
    734 inline auto xfiltration<ECT, CCT>::operator/=(const E& e) -> disable_xexpression<E, self_type&>
    +
    735 {
    +
    736 return apply(
    +
    737 [&e](const_reference v, bool cond)
    +
    738 {
    +
    739 return cond ? v / e : v;
    +
    740 }
    +
    741 );
    +
    742 }
    +
    +
    743
    +
    749 template <class ECT, class CCT>
    +
    750 template <class E>
    +
    +
    751 inline auto xfiltration<ECT, CCT>::operator%=(const E& e) -> disable_xexpression<E, self_type&>
    +
    752 {
    +
    753 return apply(
    +
    754 [&e](const_reference v, bool cond)
    +
    755 {
    +
    756 return cond ? v % e : v;
    +
    757 }
    +
    758 );
    +
    759 }
    +
    +
    760
    +
    761 template <class ECT, class CCT>
    +
    762 template <class F>
    +
    763 inline auto xfiltration<ECT, CCT>::apply(F&& func) -> self_type&
    +
    764 {
    +
    765 std::transform(m_e.cbegin(), m_e.cend(), m_condition.cbegin(), m_e.begin(), func);
    +
    766 return *this;
    +
    767 }
    +
    768
    +
    785 template <class E, class I>
    +
    +
    786 inline auto index_view(E&& e, I&& indices) noexcept
    +
    787 {
    +
    788 using view_type = xindex_view<xclosure_t<E>, std::decay_t<I>>;
    +
    789 return view_type(std::forward<E>(e), std::forward<I>(indices));
    +
    790 }
    +
    +
    791
    +
    792 template <class E, std::size_t L>
    +
    793 inline auto index_view(E&& e, const xindex (&indices)[L]) noexcept
    +
    794 {
    +
    795 using view_type = xindex_view<xclosure_t<E>, std::array<xindex, L>>;
    +
    796 return view_type(std::forward<E>(e), xt::to_array(indices));
    +
    797 }
    +
    798
    +
    820 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E, class O>
    +
    +
    821 inline auto filter(E&& e, O&& condition) noexcept
    +
    822 {
    +
    823 auto indices = argwhere<L>(std::forward<O>(condition));
    +
    824 using view_type = xindex_view<xclosure_t<E>, decltype(indices)>;
    +
    825 return view_type(std::forward<E>(e), std::move(indices));
    +
    826 }
    +
    +
    827
    +
    845 template <class E, class C>
    +
    +
    846 inline auto filtration(E&& e, C&& condition) noexcept
    +
    847 {
    +
    848 using filtration_type = xfiltration<xclosure_t<E>, xclosure_t<C>>;
    +
    849 return filtration_type(std::forward<E>(e), std::forward<C>(condition));
    +
    850 }
    +
    +
    851}
    +
    852
    +
    853#endif
    +
    Base class for xexpressions.
    +
    Filter of a xexpression for fast scalar assign.
    +
    xfiltration(ECTA &&e, CCTA &&condition)
    Constructs a xfiltration on the given expression e, selecting the elements matching the specified con...
    +
    View of an xexpression from vector of indices.
    +
    xindex_view(CTA &&e, I2 &&indices) noexcept
    Constructs an xindex_view, selecting the indices specified by indices.
    +
    bool has_linear_assign(const O &) const noexcept
    +
    size_type size() const noexcept
    Returns the size of the xindex_view.
    +
    reference unchecked(size_type idx)
    +
    reference operator()(size_type idx=size_type(0))
    Returns a reference to the element at the specified position in the xindex_view.
    +
    xexpression_type & expression() noexcept
    +
    bool broadcast_shape(O &shape, bool reuse_cache=false) const
    +
    const inner_shape_type & shape() const noexcept
    +
    void fill(const T &value)
    +
    size_type dimension() const noexcept
    + +
    Base class for multidimensional iterable expressions.
    +
    auto end() noexcept -> layout_iterator< L >
    +
    auto begin() noexcept -> layout_iterator< L >
    +
    auto operator%=(const E &e) -> disable_xexpression< E, derived_type & >
    +
    auto operator+=(const E &e) -> disable_xexpression< E, derived_type & >
    +
    auto operator*=(const E &e) -> disable_xexpression< E, derived_type & >
    +
    auto operator/=(const E &e) -> disable_xexpression< E, derived_type & >
    +
    auto operator-=(const E &e) -> disable_xexpression< E, derived_type & >
    +
    auto argwhere(const T &arr)
    return vector of indices where arr is not zero
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    + +
    auto filtration(E &&e, C &&condition) noexcept
    creates a filtration of e filtered by condition.
    +
    auto index_view(E &&e, I &&indices) noexcept
    creates an indexview from a container of indices.
    +
    auto filter(E &&e, O &&condition) noexcept
    creates a view into e filtered by condition.
    + + + + + + +
    +
    + + + + diff --git a/xinfo_8hpp_source.html b/xinfo_8hpp_source.html new file mode 100644 index 000000000..aa67a71eb --- /dev/null +++ b/xinfo_8hpp_source.html @@ -0,0 +1,267 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io/xinfo.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xinfo.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_INFO_HPP
    +
    11#define XTENSOR_INFO_HPP
    +
    12
    +
    13#include <string>
    +
    14
    +
    15#include "../core/xlayout.hpp"
    +
    16
    +
    17#ifndef _MSC_VER
    +
    18#if __cplusplus < 201103
    +
    19#define CONSTEXPR11_TN
    +
    20#define CONSTEXPR14_TN
    +
    21#define NOEXCEPT_TN
    +
    22#elif __cplusplus < 201402
    +
    23#define CONSTEXPR11_TN constexpr
    +
    24#define CONSTEXPR14_TN
    +
    25#define NOEXCEPT_TN noexcept
    +
    26#else
    +
    27#define CONSTEXPR11_TN constexpr
    +
    28#define CONSTEXPR14_TN constexpr
    +
    29#define NOEXCEPT_TN noexcept
    +
    30#endif
    +
    31#else // _MSC_VER
    +
    32#if _MSC_VER < 1900
    +
    33#define CONSTEXPR11_TN
    +
    34#define CONSTEXPR14_TN
    +
    35#define NOEXCEPT_TN
    +
    36#elif _MSC_VER < 2000
    +
    37#define CONSTEXPR11_TN constexpr
    +
    38#define CONSTEXPR14_TN
    +
    39#define NOEXCEPT_TN noexcept
    +
    40#else
    +
    41#define CONSTEXPR11_TN constexpr
    +
    42#define CONSTEXPR14_TN constexpr
    +
    43#define NOEXCEPT_TN noexcept
    +
    44#endif
    +
    45#endif
    +
    46
    +
    47namespace xt
    +
    48{
    +
    49 // see http://stackoverflow.com/a/20170989
    +
    +
    50 struct static_string
    +
    51 {
    +
    52 template <std::size_t N>
    +
    53 explicit CONSTEXPR11_TN static_string(const char (&a)[N]) NOEXCEPT_TN : data(a),
    +
    54 size(N - 1)
    +
    55 {
    +
    56 }
    +
    57
    +
    58 CONSTEXPR11_TN static_string(const char* a, const std::size_t sz) NOEXCEPT_TN : data(a),
    +
    59 size(sz)
    +
    60 {
    +
    61 }
    +
    62
    +
    63 const char* const data;
    +
    64 const std::size_t size;
    +
    65 };
    +
    +
    66
    +
    67 template <class T>
    +
    68 CONSTEXPR14_TN static_string type_name()
    +
    69 {
    +
    70#ifdef __clang__
    +
    71 static_string p(__PRETTY_FUNCTION__);
    +
    72 return static_string(p.data + 39, p.size - 39 - 1);
    +
    73#elif defined(__GNUC__)
    +
    74 static_string p(__PRETTY_FUNCTION__);
    +
    75#if __cplusplus < 201402
    +
    76 return static_string(p.data + 36, p.size - 36 - 1);
    +
    77#else
    +
    78 return static_string(p.data + 54, p.size - 54 - 1);
    +
    79#endif
    +
    80#elif defined(_MSC_VER)
    +
    81 static const static_string p(__FUNCSIG__);
    +
    82 return static_string(p.data + 47, p.size - 47 - 7);
    +
    83#endif
    +
    84 }
    +
    85
    +
    86 template <class T>
    +
    87 std::string type_to_string()
    +
    88 {
    +
    89 static_string static_name = type_name<T>();
    +
    90 return std::string(static_name.data, static_name.size);
    +
    91 }
    +
    92
    +
    93 template <class T>
    +
    94 std::string info(const T& t)
    +
    95 {
    +
    96 std::string s;
    +
    97 s += "\nValue type: " + type_to_string<typename T::value_type>();
    +
    98 s += "\nLayout: ";
    +
    99 if (t.layout() == layout_type::row_major)
    +
    100 {
    +
    101 s += "row_major";
    +
    102 }
    +
    103 else if (t.layout() == layout_type::column_major)
    +
    104 {
    +
    105 s += "column_major";
    +
    106 }
    +
    107 else if (t.layout() == layout_type::dynamic)
    +
    108 {
    +
    109 s += "dynamic";
    +
    110 }
    +
    111 else
    +
    112 {
    +
    113 s += "any";
    +
    114 }
    +
    115 s += "\nShape: (";
    +
    116 bool first = true;
    +
    117 for (const auto& el : t.shape())
    +
    118 {
    +
    119 if (!first)
    +
    120 {
    +
    121 s += ", ";
    +
    122 }
    +
    123 first = false;
    +
    124 s += std::to_string(el);
    +
    125 }
    +
    126 s += ")\nStrides: (";
    +
    127 first = true;
    +
    128 for (const auto& el : t.strides())
    +
    129 {
    +
    130 if (!first)
    +
    131 {
    +
    132 s += ", ";
    +
    133 }
    +
    134 first = false;
    +
    135 s += std::to_string(el);
    +
    136 }
    +
    137 s += ")\nSize: " + std::to_string(t.size()) + "\n";
    +
    138 return s;
    +
    139 }
    +
    140}
    +
    141
    +
    142#endif
    +
    standard mathematical functions for xexpressions
    + + + + +
    +
    + + + + diff --git a/xio_8hpp_source.html b/xio_8hpp_source.html new file mode 100644 index 000000000..79427a552 --- /dev/null +++ b/xio_8hpp_source.html @@ -0,0 +1,891 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io/xio.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xio.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_IO_HPP
    +
    11#define XTENSOR_IO_HPP
    +
    12
    +
    13#include <complex>
    +
    14#include <cstddef>
    +
    15#include <iomanip>
    +
    16#include <iostream>
    +
    17#include <sstream>
    +
    18#include <string>
    +
    19
    +
    20#include "../core/xexpression.hpp"
    +
    21#include "../core/xmath.hpp"
    +
    22#include "../views/xstrided_view.hpp"
    +
    23
    +
    24namespace xt
    +
    25{
    +
    26
    +
    27 template <class E>
    +
    28 inline std::ostream& operator<<(std::ostream& out, const xexpression<E>& e);
    +
    29
    +
    30 /*****************
    +
    31 * print options *
    +
    32 *****************/
    +
    33
    +
    34 namespace print_options
    +
    35 {
    +
    + +
    37 {
    +
    38 int edge_items = 3;
    +
    39 int line_width = 75;
    +
    40 int threshold = 1000;
    +
    41 int precision = -1; // default precision
    +
    42 };
    +
    +
    43
    +
    44 inline print_options_impl& print_options()
    +
    45 {
    +
    46 static print_options_impl po;
    +
    47 return po;
    +
    48 }
    +
    49
    +
    56 inline void set_line_width(int line_width)
    +
    57 {
    +
    58 print_options().line_width = line_width;
    +
    59 }
    +
    60
    +
    67 inline void set_threshold(int threshold)
    +
    68 {
    +
    69 print_options().threshold = threshold;
    +
    70 }
    +
    71
    +
    79 inline void set_edge_items(int edge_items)
    +
    80 {
    +
    81 print_options().edge_items = edge_items;
    +
    82 }
    +
    83
    +
    89 inline void set_precision(int precision)
    +
    90 {
    +
    91 print_options().precision = precision;
    +
    92 }
    +
    93
    +
    94#define DEFINE_LOCAL_PRINT_OPTION(NAME) \
    +
    95 class NAME \
    +
    96 { \
    +
    97 public: \
    +
    98 \
    +
    99 NAME(int value) \
    +
    100 : m_value(value) \
    +
    101 { \
    +
    102 id(); \
    +
    103 } \
    +
    104 static int id() \
    +
    105 { \
    +
    106 static int id = std::ios_base::xalloc(); \
    +
    107 return id; \
    +
    108 } \
    +
    109 int value() const \
    +
    110 { \
    +
    111 return m_value; \
    +
    112 } \
    +
    113 \
    +
    114 private: \
    +
    115 \
    +
    116 int m_value; \
    +
    117 }; \
    +
    118 \
    +
    119 inline std::ostream& operator<<(std::ostream& out, const NAME& n) \
    +
    120 { \
    +
    121 out.iword(NAME::id()) = n.value(); \
    +
    122 return out; \
    +
    123 }
    +
    124
    +
    137 DEFINE_LOCAL_PRINT_OPTION(line_width)
    +
    138
    +
    139
    +
    151 DEFINE_LOCAL_PRINT_OPTION(threshold)
    +
    152
    +
    165 DEFINE_LOCAL_PRINT_OPTION(edge_items)
    +
    166
    +
    179 DEFINE_LOCAL_PRINT_OPTION(precision)
    +
    180 }
    +
    181
    +
    182 /**************************************
    +
    183 * xexpression ostream implementation *
    +
    184 **************************************/
    +
    185
    +
    186 namespace detail
    +
    187 {
    +
    188 template <class E, class F>
    +
    189 std::ostream& xoutput(
    +
    190 std::ostream& out,
    +
    191 const E& e,
    +
    192 xstrided_slice_vector& slices,
    +
    193 F& printer,
    +
    194 std::size_t blanks,
    +
    195 std::streamsize element_width,
    +
    196 std::size_t edgeitems,
    +
    197 std::size_t line_width
    +
    198 )
    +
    199 {
    +
    200 using size_type = typename E::size_type;
    +
    201
    +
    202 const auto view = xt::strided_view(e, slices);
    +
    203 if (view.dimension() == 0)
    +
    204 {
    +
    205 printer.print_next(out);
    +
    206 }
    +
    207 else
    +
    208 {
    +
    209 std::string indents(blanks, ' ');
    +
    210
    +
    211 size_type i = 0;
    +
    212 size_type elems_on_line = 0;
    +
    213 const size_type ewp2 = static_cast<size_type>(element_width) + size_type(2);
    +
    214 const size_type line_lim = static_cast<size_type>(std::floor(line_width / ewp2));
    +
    215
    +
    216 out << '{';
    +
    217 for (; i != size_type(view.shape()[0] - 1); ++i)
    +
    218 {
    +
    219 if (edgeitems && size_type(view.shape()[0]) > (edgeitems * 2) && i == edgeitems)
    +
    220 {
    +
    221 if (view.dimension() == 1 && line_lim != 0 && elems_on_line >= line_lim)
    +
    222 {
    +
    223 out << " ...,";
    +
    224 }
    +
    225 else if (view.dimension() > 1)
    +
    226 {
    +
    227 elems_on_line = 0;
    +
    228 out << "...," << std::endl << indents;
    +
    229 }
    +
    230 else
    +
    231 {
    +
    232 out << "..., ";
    +
    233 }
    +
    234 i = size_type(view.shape()[0]) - edgeitems;
    +
    235 }
    +
    236 if (view.dimension() == 1 && line_lim != 0 && elems_on_line >= line_lim)
    +
    237 {
    +
    238 out << std::endl << indents;
    +
    239 elems_on_line = 0;
    +
    240 }
    +
    241 slices.push_back(static_cast<int>(i));
    +
    242 xoutput(out, e, slices, printer, blanks + 1, element_width, edgeitems, line_width) << ',';
    +
    243 slices.pop_back();
    +
    244 elems_on_line++;
    +
    245
    +
    246 if ((view.dimension() == 1) && !(line_lim != 0 && elems_on_line >= line_lim))
    +
    247 {
    +
    248 out << ' ';
    +
    249 }
    +
    250 else if (view.dimension() > 1)
    +
    251 {
    +
    252 out << std::endl << indents;
    +
    253 }
    +
    254 }
    +
    255 if (view.dimension() == 1 && line_lim != 0 && elems_on_line >= line_lim)
    +
    256 {
    +
    257 out << std::endl << indents;
    +
    258 }
    +
    259 slices.push_back(static_cast<int>(i));
    +
    260 xoutput(out, e, slices, printer, blanks + 1, element_width, edgeitems, line_width) << '}';
    +
    261 slices.pop_back();
    +
    262 }
    +
    263 return out;
    +
    264 }
    +
    265
    +
    266 template <class F, class E>
    +
    267 void recurser_run(F& fn, const E& e, xstrided_slice_vector& slices, std::size_t lim = 0)
    +
    268 {
    +
    269 using size_type = typename E::size_type;
    +
    270 const auto view = strided_view(e, slices);
    +
    271 if (view.dimension() == 0)
    +
    272 {
    +
    273 fn.update(view());
    +
    274 }
    +
    275 else
    +
    276 {
    +
    277 size_type i = 0;
    +
    278 for (; i != static_cast<size_type>(view.shape()[0] - 1); ++i)
    +
    279 {
    +
    280 if (lim && size_type(view.shape()[0]) > (lim * 2) && i == lim)
    +
    281 {
    +
    282 i = static_cast<size_type>(view.shape()[0]) - lim;
    +
    283 }
    +
    284 slices.push_back(static_cast<int>(i));
    +
    285 recurser_run(fn, e, slices, lim);
    +
    286 slices.pop_back();
    +
    287 }
    +
    288 slices.push_back(static_cast<int>(i));
    +
    289 recurser_run(fn, e, slices, lim);
    +
    290 slices.pop_back();
    +
    291 }
    +
    292 }
    +
    293
    +
    294 template <class T, class E = void>
    +
    295 struct printer;
    +
    296
    +
    297 template <class T>
    +
    298 struct printer<T, std::enable_if_t<std::is_floating_point<typename T::value_type>::value>>
    +
    299 {
    +
    300 using value_type = std::decay_t<typename T::value_type>;
    +
    301 using cache_type = std::vector<value_type>;
    +
    302 using cache_iterator = typename cache_type::const_iterator;
    +
    303
    +
    304 explicit printer(std::streamsize precision)
    +
    305 : m_precision(precision)
    +
    306 {
    +
    307 }
    +
    308
    +
    309 void init()
    +
    310 {
    +
    311 m_precision = m_required_precision < m_precision ? m_required_precision : m_precision;
    +
    312 m_it = m_cache.cbegin();
    +
    313 if (m_scientific)
    +
    314 {
    +
    315 // 3 = sign, number and dot and 4 = "e+00"
    +
    316 m_width = m_precision + 7;
    +
    317 if (m_large_exponent)
    +
    318 {
    +
    319 // = e+000 (additional number)
    +
    320 m_width += 1;
    +
    321 }
    +
    322 }
    +
    323 else
    +
    324 {
    +
    325 std::streamsize decimals = 1; // print a leading 0
    +
    326 if (std::floor(m_max) != 0)
    +
    327 {
    +
    328 decimals += std::streamsize(std::log10(std::floor(m_max)));
    +
    329 }
    +
    330 // 2 => sign and dot
    +
    331 m_width = 2 + decimals + m_precision;
    +
    332 }
    +
    333 if (!m_required_precision)
    +
    334 {
    +
    335 --m_width;
    +
    336 }
    +
    337 }
    +
    338
    +
    339 std::ostream& print_next(std::ostream& out)
    +
    340 {
    +
    341 if (!m_scientific)
    +
    342 {
    +
    343 std::stringstream buf;
    +
    344 buf.width(m_width);
    +
    345 buf << std::fixed;
    +
    346 buf.precision(m_precision);
    +
    347 buf << (*m_it);
    +
    348 if (!m_required_precision && !std::isinf(*m_it) && !std::isnan(*m_it))
    +
    349 {
    +
    350 buf << '.';
    +
    351 }
    +
    352 std::string res = buf.str();
    +
    353 auto sit = res.rbegin();
    +
    354 while (*sit == '0')
    +
    355 {
    +
    356 *sit = ' ';
    +
    357 ++sit;
    +
    358 }
    +
    359 out << res;
    +
    360 }
    +
    361 else
    +
    362 {
    +
    363 if (!m_large_exponent)
    +
    364 {
    +
    365 out << std::scientific;
    +
    366 out.width(m_width);
    +
    367 out << (*m_it);
    +
    368 }
    +
    369 else
    +
    370 {
    +
    371 std::stringstream buf;
    +
    372 buf.width(m_width);
    +
    373 buf << std::scientific;
    +
    374 buf.precision(m_precision);
    +
    375 buf << (*m_it);
    +
    376 std::string res = buf.str();
    +
    377
    +
    378 if (res[res.size() - 4] == 'e')
    +
    379 {
    +
    380 res.erase(0, 1);
    +
    381 res.insert(res.size() - 2, "0");
    +
    382 }
    +
    383 out << res;
    +
    384 }
    +
    385 }
    +
    386 ++m_it;
    +
    387 return out;
    +
    388 }
    +
    389
    +
    390 void update(const value_type& val)
    +
    391 {
    +
    392 if (val != 0 && !std::isinf(val) && !std::isnan(val))
    +
    393 {
    +
    394 if (!m_scientific || !m_large_exponent)
    +
    395 {
    +
    396 int exponent = 1 + int(std::log10(math::abs(val)));
    +
    397 if (exponent <= -5 || exponent > 7)
    +
    398 {
    +
    399 m_scientific = true;
    +
    400 m_required_precision = m_precision;
    +
    401 if (exponent <= -100 || exponent >= 100)
    +
    402 {
    +
    403 m_large_exponent = true;
    +
    404 }
    +
    405 }
    +
    406 }
    +
    407 if (math::abs(val) > m_max)
    +
    408 {
    +
    409 m_max = math::abs(val);
    +
    410 }
    +
    411 if (m_required_precision < m_precision)
    +
    412 {
    +
    413 while (std::floor(val * std::pow(10, m_required_precision))
    +
    414 != val * std::pow(10, m_required_precision))
    +
    415 {
    +
    416 m_required_precision++;
    +
    417 }
    +
    418 }
    +
    419 }
    +
    420 m_cache.push_back(val);
    +
    421 }
    +
    422
    +
    423 std::streamsize width()
    +
    424 {
    +
    425 return m_width;
    +
    426 }
    +
    427
    +
    428 private:
    +
    429
    +
    430 bool m_large_exponent = false;
    +
    431 bool m_scientific = false;
    +
    432 std::streamsize m_width = 9;
    +
    433 std::streamsize m_precision;
    +
    434 std::streamsize m_required_precision = 0;
    +
    435 value_type m_max = 0;
    +
    436
    +
    437 cache_type m_cache;
    +
    438 cache_iterator m_it;
    +
    439 };
    +
    440
    +
    441 template <class T>
    +
    442 struct printer<
    +
    443 T,
    +
    444 std::enable_if_t<
    +
    445 xtl::is_integral<typename T::value_type>::value && !std::is_same<typename T::value_type, bool>::value>>
    +
    446 {
    +
    447 using value_type = std::decay_t<typename T::value_type>;
    +
    448 using cache_type = std::vector<value_type>;
    +
    449 using cache_iterator = typename cache_type::const_iterator;
    +
    450
    +
    451 explicit printer(std::streamsize)
    +
    452 {
    +
    453 }
    +
    454
    +
    455 void init()
    +
    456 {
    +
    457 m_it = m_cache.cbegin();
    +
    458 m_width = 1 + std::streamsize((m_max > 0) ? std::log10(m_max) : 0) + m_sign;
    +
    459 }
    +
    460
    +
    461 std::ostream& print_next(std::ostream& out)
    +
    462 {
    +
    463 // + enables printing of chars etc. as numbers
    +
    464 // TODO should chars be printed as numbers?
    +
    465 out.width(m_width);
    +
    466 out << +(*m_it);
    +
    467 ++m_it;
    +
    468 return out;
    +
    469 }
    +
    470
    +
    471 void update(const value_type& val)
    +
    472 {
    +
    473 if (math::abs(val) > m_max)
    +
    474 {
    +
    475 m_max = math::abs(val);
    +
    476 }
    +
    477 if (xtl::is_signed<value_type>::value && val < 0)
    +
    478 {
    +
    479 m_sign = true;
    +
    480 }
    +
    481 m_cache.push_back(val);
    +
    482 }
    +
    483
    +
    484 std::streamsize width()
    +
    485 {
    +
    486 return m_width;
    +
    487 }
    +
    488
    +
    489 private:
    +
    490
    +
    491 std::streamsize m_width;
    +
    492 bool m_sign = false;
    +
    493 value_type m_max = 0;
    +
    494
    +
    495 cache_type m_cache;
    +
    496 cache_iterator m_it;
    +
    497 };
    +
    498
    +
    499 template <class T>
    +
    500 struct printer<T, std::enable_if_t<std::is_same<typename T::value_type, bool>::value>>
    +
    501 {
    +
    502 using value_type = bool;
    +
    503 using cache_type = std::vector<bool>;
    +
    504 using cache_iterator = typename cache_type::const_iterator;
    +
    505
    +
    506 explicit printer(std::streamsize)
    +
    507 {
    +
    508 }
    +
    509
    +
    510 void init()
    +
    511 {
    +
    512 m_it = m_cache.cbegin();
    +
    513 }
    +
    514
    +
    515 std::ostream& print_next(std::ostream& out)
    +
    516 {
    +
    517 if (*m_it)
    +
    518 {
    +
    519 out << " true";
    +
    520 }
    +
    521 else
    +
    522 {
    +
    523 out << "false";
    +
    524 }
    +
    525 // TODO: the following std::setw(5) isn't working correctly on OSX.
    +
    526 // out << std::boolalpha << std::setw(m_width) << (*m_it);
    +
    527 ++m_it;
    +
    528 return out;
    +
    529 }
    +
    530
    +
    531 void update(const value_type& val)
    +
    532 {
    +
    533 m_cache.push_back(val);
    +
    534 }
    +
    535
    +
    536 std::streamsize width()
    +
    537 {
    +
    538 return m_width;
    +
    539 }
    +
    540
    +
    541 private:
    +
    542
    +
    543 std::streamsize m_width = 5;
    +
    544
    +
    545 cache_type m_cache;
    +
    546 cache_iterator m_it;
    +
    547 };
    +
    548
    +
    549 template <class T>
    +
    550 struct printer<T, std::enable_if_t<xtl::is_complex<typename T::value_type>::value>>
    +
    551 {
    +
    552 using value_type = std::decay_t<typename T::value_type>;
    +
    553 using cache_type = std::vector<bool>;
    +
    554 using cache_iterator = typename cache_type::const_iterator;
    +
    555
    +
    556 explicit printer(std::streamsize precision)
    +
    557 : real_printer(precision)
    +
    558 , imag_printer(precision)
    +
    559 {
    +
    560 }
    +
    561
    +
    562 void init()
    +
    563 {
    +
    564 real_printer.init();
    +
    565 imag_printer.init();
    +
    566 m_it = m_signs.cbegin();
    +
    567 }
    +
    568
    +
    569 std::ostream& print_next(std::ostream& out)
    +
    570 {
    +
    571 real_printer.print_next(out);
    +
    572 if (*m_it)
    +
    573 {
    +
    574 out << "-";
    +
    575 }
    +
    576 else
    +
    577 {
    +
    578 out << "+";
    +
    579 }
    +
    580 std::stringstream buf;
    +
    581 imag_printer.print_next(buf);
    +
    582 std::string s = buf.str();
    +
    583 if (s[0] == ' ')
    +
    584 {
    +
    585 s.erase(0, 1); // erase space for +/-
    +
    586 }
    +
    587 // insert j at end of number
    +
    588 std::size_t idx = s.find_last_not_of(" ");
    +
    589 s.insert(idx + 1, "i");
    +
    590 out << s;
    +
    591 ++m_it;
    +
    592 return out;
    +
    593 }
    +
    594
    +
    595 void update(const value_type& val)
    +
    596 {
    +
    597 real_printer.update(val.real());
    +
    598 imag_printer.update(std::abs(val.imag()));
    +
    599 m_signs.push_back(std::signbit(val.imag()));
    +
    600 }
    +
    601
    +
    602 std::streamsize width()
    +
    603 {
    +
    604 return real_printer.width() + imag_printer.width() + 2;
    +
    605 }
    +
    606
    +
    607 private:
    +
    608
    +
    609 printer<value_type> real_printer, imag_printer;
    +
    610 cache_type m_signs;
    +
    611 cache_iterator m_it;
    +
    612 };
    +
    613
    +
    614 template <class T>
    +
    615 struct printer<
    +
    616 T,
    +
    617 std::enable_if_t<
    +
    618 !xtl::is_fundamental<typename T::value_type>::value && !xtl::is_complex<typename T::value_type>::value>>
    +
    619 {
    +
    620 using const_reference = typename T::const_reference;
    +
    621 using value_type = std::decay_t<typename T::value_type>;
    +
    622 using cache_type = std::vector<std::string>;
    +
    623 using cache_iterator = typename cache_type::const_iterator;
    +
    624
    +
    625 explicit printer(std::streamsize)
    +
    626 {
    +
    627 }
    +
    628
    +
    629 void init()
    +
    630 {
    +
    631 m_it = m_cache.cbegin();
    +
    632 if (m_width > 20)
    +
    633 {
    +
    634 m_width = 0;
    +
    635 }
    +
    636 }
    +
    637
    +
    638 std::ostream& print_next(std::ostream& out)
    +
    639 {
    +
    640 out.width(m_width);
    +
    641 out << *m_it;
    +
    642 ++m_it;
    +
    643 return out;
    +
    644 }
    +
    645
    +
    646 void update(const_reference val)
    +
    647 {
    +
    648 std::stringstream buf;
    +
    649 buf << val;
    +
    650 std::string s = buf.str();
    +
    651 if (int(s.size()) > m_width)
    +
    652 {
    +
    653 m_width = std::streamsize(s.size());
    +
    654 }
    +
    655 m_cache.push_back(s);
    +
    656 }
    +
    657
    +
    658 std::streamsize width()
    +
    659 {
    +
    660 return m_width;
    +
    661 }
    +
    662
    +
    663 private:
    +
    664
    +
    665 std::streamsize m_width = 0;
    +
    666 cache_type m_cache;
    +
    667 cache_iterator m_it;
    +
    668 };
    +
    669
    +
    670 template <class E>
    +
    671 struct custom_formatter
    +
    672 {
    +
    673 using value_type = std::decay_t<typename E::value_type>;
    +
    674
    +
    675 template <class F>
    +
    676 custom_formatter(F&& func)
    +
    677 : m_func(func)
    +
    678 {
    +
    679 }
    +
    680
    +
    681 std::string operator()(const value_type& val) const
    +
    682 {
    +
    683 return m_func(val);
    +
    684 }
    +
    685
    +
    686 private:
    +
    687
    +
    688 std::function<std::string(const value_type&)> m_func;
    +
    689 };
    +
    690 }
    +
    691
    +
    692 inline print_options::print_options_impl get_print_options(std::ostream& out)
    +
    693 {
    + + + + + +
    699
    +
    700 res.edge_items = static_cast<int>(out.iword(edge_items::id()));
    +
    701 res.line_width = static_cast<int>(out.iword(line_width::id()));
    +
    702 res.threshold = static_cast<int>(out.iword(threshold::id()));
    +
    703 res.precision = static_cast<int>(out.iword(precision::id()));
    +
    704
    +
    705 if (!res.edge_items)
    +
    706 {
    +
    707 res.edge_items = print_options::print_options().edge_items;
    +
    708 }
    +
    709 else
    +
    710 {
    +
    711 out.iword(edge_items::id()) = long(0);
    +
    712 }
    +
    713 if (!res.line_width)
    +
    714 {
    +
    715 res.line_width = print_options::print_options().line_width;
    +
    716 }
    +
    717 else
    +
    718 {
    +
    719 out.iword(line_width::id()) = long(0);
    +
    720 }
    +
    721 if (!res.threshold)
    +
    722 {
    +
    723 res.threshold = print_options::print_options().threshold;
    +
    724 }
    +
    725 else
    +
    726 {
    +
    727 out.iword(threshold::id()) = long(0);
    +
    728 }
    +
    729 if (!res.precision)
    +
    730 {
    +
    731 res.precision = print_options::print_options().precision;
    +
    732 }
    +
    733 else
    +
    734 {
    +
    735 out.iword(precision::id()) = long(0);
    +
    736 }
    +
    737
    +
    738 return res;
    +
    739 }
    +
    740
    +
    741 template <class E, class F>
    +
    742 std::ostream& pretty_print(const xexpression<E>& e, F&& func, std::ostream& out = std::cout)
    +
    743 {
    +
    744 xfunction<detail::custom_formatter<E>, const_xclosure_t<E>> print_fun(
    +
    745 detail::custom_formatter<E>(std::forward<F>(func)),
    +
    746 e
    +
    747 );
    +
    748 return pretty_print(print_fun, out);
    +
    749 }
    +
    750
    +
    751 namespace detail
    +
    752 {
    +
    753 template <class S>
    +
    754 class fmtflags_guard
    +
    755 {
    +
    756 public:
    +
    757
    +
    758 explicit fmtflags_guard(S& stream)
    +
    759 : m_stream(stream)
    +
    760 , m_flags(stream.flags())
    +
    761 {
    +
    762 }
    +
    763
    +
    764 ~fmtflags_guard()
    +
    765 {
    +
    766 m_stream.flags(m_flags);
    +
    767 }
    +
    768
    +
    769 private:
    +
    770
    +
    771 S& m_stream;
    +
    772 std::ios_base::fmtflags m_flags;
    +
    773 };
    +
    774 }
    +
    775
    +
    776 template <class E>
    +
    777 std::ostream& pretty_print(const xexpression<E>& e, std::ostream& out = std::cout)
    +
    778 {
    +
    779 detail::fmtflags_guard<std::ostream> guard(out);
    +
    780
    +
    781 const E& d = e.derived_cast();
    +
    782
    +
    783 std::size_t lim = 0;
    +
    784 std::size_t sz = compute_size(d.shape());
    +
    785
    +
    786 auto po = get_print_options(out);
    +
    787
    +
    788 if (sz > static_cast<std::size_t>(po.threshold))
    +
    789 {
    +
    790 lim = static_cast<std::size_t>(po.edge_items);
    +
    791 }
    +
    792 if (sz == 0)
    +
    793 {
    +
    794 out << "{}";
    +
    795 return out;
    +
    796 }
    +
    797
    +
    798 auto temp_precision = out.precision();
    +
    799 auto precision = temp_precision;
    +
    800 if (po.precision != -1)
    +
    801 {
    +
    802 out.precision(static_cast<std::streamsize>(po.precision));
    +
    803 precision = static_cast<std::streamsize>(po.precision);
    +
    804 }
    +
    805
    +
    806 detail::printer<E> p(precision);
    +
    807
    + +
    809 detail::recurser_run(p, d, sv, lim);
    +
    810 p.init();
    +
    811 sv.clear();
    +
    812 xoutput(out, d, sv, p, 1, p.width(), lim, static_cast<std::size_t>(po.line_width));
    +
    813
    +
    814 out.precision(temp_precision); // restore precision
    +
    815
    +
    816 return out;
    +
    817 }
    +
    818
    +
    819 template <class E>
    +
    820 inline std::ostream& operator<<(std::ostream& out, const xexpression<E>& e)
    +
    821 {
    +
    822 return pretty_print(e, out);
    +
    823 }
    +
    824}
    +
    825#endif
    +
    826
    +
    827// Backward compatibility: include xmime.hpp in xio.hpp by default.
    +
    828
    +
    829#if defined(__CLING__) || defined(__CLANG_REPL__)
    +
    830#include "xmime.hpp"
    +
    831#endif
    +
    io manipulator used to set the number of egde items if the summarization is triggered.
    Definition xio.hpp:165
    +
    io manipulator used to set the width of the lines when printing an expression.
    Definition xio.hpp:137
    +
    io manipulator used to set the precision of the floating point values when printing an expression.
    Definition xio.hpp:179
    +
    io manipulator used to set the threshold after which summarization is triggered.
    Definition xio.hpp:151
    +
    Base class for xexpressions.
    +
    auto operator<<(E1 &&e1, E2 &&e2) noexcept -> detail::shift_return_type_t< detail::left_shift, E1, E2 >
    Bitwise left shift.
    +
    standard mathematical functions for xexpressions
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    + +
    +
    + + + + diff --git a/xiterable_8hpp_source.html b/xiterable_8hpp_source.html new file mode 100644 index 000000000..63c616abe --- /dev/null +++ b/xiterable_8hpp_source.html @@ -0,0 +1,1225 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterable.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xiterable.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ITERABLE_HPP
    +
    11#define XTENSOR_ITERABLE_HPP
    +
    12
    +
    13#include "../core/xiterator.hpp"
    +
    14
    +
    15namespace xt
    +
    16{
    +
    17
    +
    18 /*******************
    +
    19 * xconst_iterable *
    +
    20 *******************/
    +
    21
    +
    22 template <class D>
    + +
    24
    +
    35 template <class D>
    +
    + +
    37 {
    +
    38 public:
    +
    39
    +
    40 using derived_type = D;
    +
    41
    +
    42 using iterable_types = xiterable_inner_types<D>;
    +
    43 using inner_shape_type = typename iterable_types::inner_shape_type;
    +
    44
    +
    45 using stepper = typename iterable_types::stepper;
    +
    46 using const_stepper = typename iterable_types::const_stepper;
    +
    47
    +
    48 template <layout_type L>
    +
    49 using layout_iterator = xiterator<stepper, inner_shape_type*, L>;
    +
    50 template <layout_type L>
    +
    51 using const_layout_iterator = xiterator<const_stepper, inner_shape_type*, L>;
    +
    52 template <layout_type L>
    +
    53 using reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>;
    +
    54 template <layout_type L>
    +
    55 using const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>;
    +
    56
    +
    57 using linear_iterator = layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    58 using const_linear_iterator = const_layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    59 using reverse_linear_iterator = reverse_layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    60 using const_reverse_linear_iterator = const_reverse_layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    61
    +
    62 template <class S, layout_type L>
    +
    63 using broadcast_iterator = xiterator<stepper, S, L>;
    +
    64 template <class S, layout_type L>
    +
    65 using const_broadcast_iterator = xiterator<const_stepper, S, L>;
    +
    66 template <class S, layout_type L>
    +
    67 using reverse_broadcast_iterator = std::reverse_iterator<broadcast_iterator<S, L>>;
    +
    68 template <class S, layout_type L>
    +
    69 using const_reverse_broadcast_iterator = std::reverse_iterator<const_broadcast_iterator<S, L>>;
    +
    70
    +
    71 using iterator = layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    72 using const_iterator = const_layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    73 using reverse_iterator = reverse_layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    74 using const_reverse_iterator = const_reverse_layout_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    75
    +
    76 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    77 const_layout_iterator<L> begin() const noexcept;
    +
    78 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    79 const_layout_iterator<L> end() const noexcept;
    +
    80 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    81 const_layout_iterator<L> cbegin() const noexcept;
    +
    82 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    83 const_layout_iterator<L> cend() const noexcept;
    +
    84
    +
    85 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    86 const_reverse_layout_iterator<L> rbegin() const noexcept;
    +
    87 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    88 const_reverse_layout_iterator<L> rend() const noexcept;
    +
    89 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    90 const_reverse_layout_iterator<L> crbegin() const noexcept;
    +
    91 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    92 const_reverse_layout_iterator<L> crend() const noexcept;
    +
    93
    +
    94 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    95 const_broadcast_iterator<S, L> begin(const S& shape) const noexcept;
    +
    96 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    97 const_broadcast_iterator<S, L> end(const S& shape) const noexcept;
    +
    98 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    99 const_broadcast_iterator<S, L> cbegin(const S& shape) const noexcept;
    +
    100 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    101 const_broadcast_iterator<S, L> cend(const S& shape) const noexcept;
    +
    102
    +
    103 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    104 const_reverse_broadcast_iterator<S, L> rbegin(const S& shape) const noexcept;
    +
    105 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    106 const_reverse_broadcast_iterator<S, L> rend(const S& shape) const noexcept;
    +
    107 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    108 const_reverse_broadcast_iterator<S, L> crbegin(const S& shape) const noexcept;
    +
    109 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    110 const_reverse_broadcast_iterator<S, L> crend(const S& shape) const noexcept;
    +
    111
    +
    112 protected:
    +
    113
    +
    114 const inner_shape_type& get_shape() const;
    +
    115
    +
    116 private:
    +
    117
    +
    118 template <layout_type L>
    +
    119 const_layout_iterator<L> get_cbegin(bool end_index) const noexcept;
    +
    120 template <layout_type L>
    +
    121 const_layout_iterator<L> get_cend(bool end_index) const noexcept;
    +
    122
    +
    123 template <layout_type L, class S>
    +
    124 const_broadcast_iterator<S, L> get_cbegin(const S& shape, bool end_index) const noexcept;
    +
    125 template <layout_type L, class S>
    +
    126 const_broadcast_iterator<S, L> get_cend(const S& shape, bool end_index) const noexcept;
    +
    127
    +
    128 template <class S>
    +
    129 const_stepper get_stepper_begin(const S& shape) const noexcept;
    +
    130 template <class S>
    +
    131 const_stepper get_stepper_end(const S& shape, layout_type l) const noexcept;
    +
    132
    +
    133 const derived_type& derived_cast() const;
    +
    134 };
    +
    +
    135
    +
    136 /*************
    +
    137 * xiterable *
    +
    138 *************/
    +
    139
    +
    150 template <class D>
    +
    +
    151 class xiterable : public xconst_iterable<D>
    +
    152 {
    +
    153 public:
    +
    154
    +
    155 using derived_type = D;
    +
    156
    +
    157 using base_type = xconst_iterable<D>;
    +
    158 using inner_shape_type = typename base_type::inner_shape_type;
    +
    159
    +
    160 using stepper = typename base_type::stepper;
    +
    161 using const_stepper = typename base_type::const_stepper;
    +
    162
    +
    163 using linear_iterator = typename base_type::linear_iterator;
    +
    164 using reverse_linear_iterator = typename base_type::reverse_linear_iterator;
    +
    165
    +
    166 template <layout_type L>
    +
    167 using layout_iterator = typename base_type::template layout_iterator<L>;
    +
    168 template <layout_type L>
    +
    169 using const_layout_iterator = typename base_type::template const_layout_iterator<L>;
    +
    170 template <layout_type L>
    +
    171 using reverse_layout_iterator = typename base_type::template reverse_layout_iterator<L>;
    +
    172 template <layout_type L>
    +
    173 using const_reverse_layout_iterator = typename base_type::template const_reverse_layout_iterator<L>;
    +
    174
    +
    175 template <class S, layout_type L>
    +
    176 using broadcast_iterator = typename base_type::template broadcast_iterator<S, L>;
    +
    177 template <class S, layout_type L>
    +
    178 using const_broadcast_iterator = typename base_type::template const_broadcast_iterator<S, L>;
    +
    179 template <class S, layout_type L>
    +
    180 using reverse_broadcast_iterator = typename base_type::template reverse_broadcast_iterator<S, L>;
    +
    181 template <class S, layout_type L>
    +
    182 using const_reverse_broadcast_iterator = typename base_type::template const_reverse_broadcast_iterator<S, L>;
    +
    183
    +
    184 using iterator = typename base_type::iterator;
    +
    185 using const_iterator = typename base_type::const_iterator;
    +
    186 using reverse_iterator = typename base_type::reverse_iterator;
    +
    187 using const_reverse_iterator = typename base_type::const_reverse_iterator;
    +
    188
    +
    189 using base_type::begin;
    +
    190 using base_type::end;
    +
    191 using base_type::rbegin;
    +
    192 using base_type::rend;
    +
    193
    +
    194 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    195 layout_iterator<L> begin() noexcept;
    +
    196 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    197 layout_iterator<L> end() noexcept;
    +
    198
    +
    199 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    200 reverse_layout_iterator<L> rbegin() noexcept;
    +
    201 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    202 reverse_layout_iterator<L> rend() noexcept;
    +
    203
    +
    204 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    205 broadcast_iterator<S, L> begin(const S& shape) noexcept;
    +
    206 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    207 broadcast_iterator<S, L> end(const S& shape) noexcept;
    +
    208
    +
    209 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    210 reverse_broadcast_iterator<S, L> rbegin(const S& shape) noexcept;
    +
    211 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    212 reverse_broadcast_iterator<S, L> rend(const S& shape) noexcept;
    +
    213
    +
    214 private:
    +
    215
    +
    216 template <layout_type L>
    +
    217 layout_iterator<L> get_begin(bool end_index) noexcept;
    +
    218 template <layout_type L>
    +
    219 layout_iterator<L> get_end(bool end_index) noexcept;
    +
    220
    +
    221 template <layout_type L, class S>
    +
    222 broadcast_iterator<S, L> get_begin(const S& shape, bool end_index) noexcept;
    +
    223 template <layout_type L, class S>
    +
    224 broadcast_iterator<S, L> get_end(const S& shape, bool end_index) noexcept;
    +
    225
    +
    226 template <class S>
    +
    227 stepper get_stepper_begin(const S& shape) noexcept;
    +
    228 template <class S>
    +
    229 stepper get_stepper_end(const S& shape, layout_type l) noexcept;
    +
    230
    +
    231 template <class S>
    +
    232 const_stepper get_stepper_begin(const S& shape) const noexcept;
    +
    233 template <class S>
    +
    234 const_stepper get_stepper_end(const S& shape, layout_type l) const noexcept;
    +
    235
    +
    236 derived_type& derived_cast();
    +
    237 };
    +
    +
    238
    +
    239 /************************
    +
    240 * xcontiguous_iterable *
    +
    241 ************************/
    +
    242
    +
    243 template <class D>
    + +
    245
    +
    246 namespace detail
    +
    247 {
    +
    248 template <class T, bool is_const>
    +
    249 struct get_storage_iterator;
    +
    250
    +
    251 template <class T>
    +
    252 struct get_storage_iterator<T, true>
    +
    253 {
    +
    254 using iterator = typename T::const_iterator;
    +
    255 using const_iterator = typename T::const_iterator;
    +
    256 using reverse_iterator = typename T::const_reverse_iterator;
    +
    257 using const_reverse_iterator = typename T::const_reverse_iterator;
    +
    258 };
    +
    259
    +
    260 template <class T>
    +
    261 struct get_storage_iterator<T, false>
    +
    262 {
    +
    263 using iterator = typename T::iterator;
    +
    264 using const_iterator = typename T::const_iterator;
    +
    265 using reverse_iterator = typename T::reverse_iterator;
    +
    266 using const_reverse_iterator = typename T::const_reverse_iterator;
    +
    267 };
    +
    268
    +
    269 template <class D, bool has_storage_type>
    +
    270 struct linear_iterator_traits_impl;
    +
    271
    +
    272 template <class D>
    +
    273 struct linear_iterator_traits_impl<D, true>
    +
    274 {
    +
    275 using inner_types = xcontainer_inner_types<D>;
    +
    276 using storage_type = typename inner_types::storage_type;
    +
    277 using iterator_type = get_storage_iterator<storage_type, std::is_const<storage_type>::value>;
    +
    278 using linear_iterator = typename iterator_type::iterator;
    +
    279 using const_linear_iterator = typename iterator_type::const_iterator;
    +
    280 using reverse_linear_iterator = typename iterator_type::reverse_iterator;
    +
    281 using const_reverse_linear_iterator = typename iterator_type::const_reverse_iterator;
    +
    282 };
    +
    283
    +
    284 template <class D>
    +
    285 struct linear_iterator_traits_impl<D, false>
    +
    286 {
    +
    287 using inner_types = xcontainer_inner_types<D>;
    +
    288 using xexpression_type = typename inner_types::xexpression_type;
    +
    289 using linear_iterator = typename xexpression_type::linear_iterator;
    +
    290 using const_linear_iterator = typename xexpression_type::const_linear_iterator;
    +
    291 using reverse_linear_iterator = typename xexpression_type::reverse_linear_iterator;
    +
    292 using const_reverse_linear_iterator = typename xexpression_type::const_reverse_linear_iterator;
    +
    293 };
    +
    294
    +
    295 template <class D>
    +
    296 using linear_iterator_traits = linear_iterator_traits_impl<D, has_storage_type<D>::value>;
    +
    297 }
    +
    298
    +
    310 template <class D>
    +
    + +
    312 {
    +
    313 public:
    +
    314
    +
    315 using derived_type = D;
    +
    316
    +
    317 using inner_types = xcontainer_inner_types<D>;
    +
    318
    +
    319 using iterable_base = xiterable<D>;
    +
    320 using stepper = typename iterable_base::stepper;
    +
    321 using const_stepper = typename iterable_base::const_stepper;
    +
    322
    +
    323 static constexpr layout_type static_layout = inner_types::layout;
    +
    324
    +
    325#if defined(_MSC_VER) && _MSC_VER >= 1910
    +
    326 // Workaround for compiler bug in Visual Studio 2017 with respect to alias templates with non-type
    +
    327 // parameters.
    +
    328 template <layout_type L>
    + +
    330 template <layout_type L>
    +
    331 using const_layout_iterator = xiterator<
    +
    332 typename iterable_base::const_stepper,
    +
    333 typename iterable_base::inner_shape_type*,
    +
    334 L>;
    +
    335 template <layout_type L>
    +
    336 using reverse_layout_iterator = std::reverse_iterator<layout_iterator<L>>;
    +
    337 template <layout_type L>
    +
    338 using const_reverse_layout_iterator = std::reverse_iterator<const_layout_iterator<L>>;
    +
    339#else
    +
    340 template <layout_type L>
    +
    341 using layout_iterator = typename iterable_base::template layout_iterator<L>;
    +
    342 template <layout_type L>
    +
    343 using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>;
    +
    344 template <layout_type L>
    +
    345 using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>;
    +
    346 template <layout_type L>
    +
    347 using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>;
    +
    348#endif
    +
    349
    +
    350 template <class S, layout_type L>
    +
    351 using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>;
    +
    352 template <class S, layout_type L>
    +
    353 using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>;
    +
    354 template <class S, layout_type L>
    +
    355 using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>;
    +
    356 template <class S, layout_type L>
    +
    357 using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>;
    +
    358
    +
    359 using linear_traits = detail::linear_iterator_traits<D>;
    +
    360 using linear_iterator = typename linear_traits::linear_iterator;
    +
    361 using const_linear_iterator = typename linear_traits::const_linear_iterator;
    +
    362 using reverse_linear_iterator = typename linear_traits::reverse_linear_iterator;
    +
    363 using const_reverse_linear_iterator = typename linear_traits::const_reverse_linear_iterator;
    +
    364
    +
    365 template <layout_type L, class It1, class It2>
    +
    366 using select_iterator_impl = std::conditional_t<L == static_layout, It1, It2>;
    +
    367
    +
    368 template <layout_type L>
    +
    369 using select_iterator = select_iterator_impl<L, linear_iterator, layout_iterator<L>>;
    +
    370 template <layout_type L>
    +
    371 using select_const_iterator = select_iterator_impl<L, const_linear_iterator, const_layout_iterator<L>>;
    +
    372 template <layout_type L>
    +
    373 using select_reverse_iterator = select_iterator_impl<L, reverse_linear_iterator, reverse_layout_iterator<L>>;
    +
    374 template <layout_type L>
    +
    375 using select_const_reverse_iterator = select_iterator_impl<
    +
    376 L,
    +
    377 const_reverse_linear_iterator,
    +
    378 const_reverse_layout_iterator<L>>;
    +
    379
    +
    380 using iterator = select_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    381 using const_iterator = select_const_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    382 using reverse_iterator = select_reverse_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    383 using const_reverse_iterator = select_const_reverse_iterator<XTENSOR_DEFAULT_TRAVERSAL>;
    +
    384
    +
    385 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    386 select_iterator<L> begin() noexcept;
    +
    387 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    388 select_iterator<L> end() noexcept;
    +
    389
    +
    390 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    391 select_const_iterator<L> begin() const noexcept;
    +
    392 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    393 select_const_iterator<L> end() const noexcept;
    +
    394 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    395 select_const_iterator<L> cbegin() const noexcept;
    +
    396 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    397 select_const_iterator<L> cend() const noexcept;
    +
    398
    +
    399 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    400 select_reverse_iterator<L> rbegin() noexcept;
    +
    401 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    402 select_reverse_iterator<L> rend() noexcept;
    +
    403
    +
    404 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    405 select_const_reverse_iterator<L> rbegin() const noexcept;
    +
    406 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    407 select_const_reverse_iterator<L> rend() const noexcept;
    +
    408 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    409 select_const_reverse_iterator<L> crbegin() const noexcept;
    +
    410 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    411 select_const_reverse_iterator<L> crend() const noexcept;
    +
    412
    +
    413 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    414 broadcast_iterator<S, L> begin(const S& shape) noexcept;
    +
    415 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    416 broadcast_iterator<S, L> end(const S& shape) noexcept;
    +
    417
    +
    418 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    419 const_broadcast_iterator<S, L> begin(const S& shape) const noexcept;
    +
    420 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    421 const_broadcast_iterator<S, L> end(const S& shape) const noexcept;
    +
    422 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    423 const_broadcast_iterator<S, L> cbegin(const S& shape) const noexcept;
    +
    424 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    425 const_broadcast_iterator<S, L> cend(const S& shape) const noexcept;
    +
    426
    +
    427 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    428 reverse_broadcast_iterator<S, L> rbegin(const S& shape) noexcept;
    +
    429 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    430 reverse_broadcast_iterator<S, L> rend(const S& shape) noexcept;
    +
    431
    +
    432 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    433 const_reverse_broadcast_iterator<S, L> rbegin(const S& shape) const noexcept;
    +
    434 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    435 const_reverse_broadcast_iterator<S, L> rend(const S& shape) const noexcept;
    +
    436 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    437 const_reverse_broadcast_iterator<S, L> crbegin(const S& shape) const noexcept;
    +
    438 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S>
    +
    439 const_reverse_broadcast_iterator<S, L> crend(const S& shape) const noexcept;
    +
    440
    +
    441 private:
    +
    442
    +
    443 derived_type& derived_cast();
    +
    444 const derived_type& derived_cast() const;
    +
    445
    +
    446 friend class xiterable<D>;
    +
    447 friend class xconst_iterable<D>;
    +
    448 };
    +
    +
    449
    +
    450 /**********************************
    +
    451 * xconst_iterable implementation *
    +
    452 **********************************/
    +
    453
    +
    458
    +
    462 template <class D>
    +
    463 template <layout_type L>
    +
    +
    464 inline auto xconst_iterable<D>::begin() const noexcept -> const_layout_iterator<L>
    +
    465 {
    +
    466 return this->template cbegin<L>();
    +
    467 }
    +
    +
    468
    +
    474 template <class D>
    +
    475 template <layout_type L>
    +
    +
    476 inline auto xconst_iterable<D>::end() const noexcept -> const_layout_iterator<L>
    +
    477 {
    +
    478 return this->template cend<L>();
    +
    479 }
    +
    +
    480
    +
    485 template <class D>
    +
    486 template <layout_type L>
    +
    +
    487 inline auto xconst_iterable<D>::cbegin() const noexcept -> const_layout_iterator<L>
    +
    488 {
    +
    489 return this->template get_cbegin<L>(false);
    +
    490 }
    +
    +
    491
    +
    497 template <class D>
    +
    498 template <layout_type L>
    +
    +
    499 inline auto xconst_iterable<D>::cend() const noexcept -> const_layout_iterator<L>
    +
    500 {
    +
    501 return this->template get_cend<L>(true);
    +
    502 }
    +
    +
    503
    +
    505
    +
    510
    +
    514 template <class D>
    +
    515 template <layout_type L>
    +
    +
    516 inline auto xconst_iterable<D>::rbegin() const noexcept -> const_reverse_layout_iterator<L>
    +
    517 {
    +
    518 return this->template crbegin<L>();
    +
    519 }
    +
    +
    520
    +
    526 template <class D>
    +
    527 template <layout_type L>
    +
    +
    528 inline auto xconst_iterable<D>::rend() const noexcept -> const_reverse_layout_iterator<L>
    +
    529 {
    +
    530 return this->template crend<L>();
    +
    531 }
    +
    +
    532
    +
    537 template <class D>
    +
    538 template <layout_type L>
    +
    +
    539 inline auto xconst_iterable<D>::crbegin() const noexcept -> const_reverse_layout_iterator<L>
    +
    540 {
    +
    541 return const_reverse_layout_iterator<L>(get_cend<L>(true));
    +
    542 }
    +
    +
    543
    +
    549 template <class D>
    +
    550 template <layout_type L>
    +
    +
    551 inline auto xconst_iterable<D>::crend() const noexcept -> const_reverse_layout_iterator<L>
    +
    552 {
    +
    553 return const_reverse_layout_iterator<L>(get_cbegin<L>(false));
    +
    554 }
    +
    +
    555
    +
    557
    +
    562
    +
    569 template <class D>
    +
    570 template <layout_type L, class S>
    +
    +
    571 inline auto xconst_iterable<D>::begin(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    572 {
    +
    573 return cbegin<L>(shape);
    +
    574 }
    +
    +
    575
    +
    583 template <class D>
    +
    584 template <layout_type L, class S>
    +
    +
    585 inline auto xconst_iterable<D>::end(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    586 {
    +
    587 return cend<L>(shape);
    +
    588 }
    +
    +
    589
    +
    597 template <class D>
    +
    598 template <layout_type L, class S>
    +
    +
    599 inline auto xconst_iterable<D>::cbegin(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    600 {
    +
    601 return get_cbegin<L, S>(shape, false);
    +
    602 }
    +
    +
    603
    +
    611 template <class D>
    +
    612 template <layout_type L, class S>
    +
    +
    613 inline auto xconst_iterable<D>::cend(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    614 {
    +
    615 return get_cend<L, S>(shape, true);
    +
    616 }
    +
    +
    617
    +
    619
    +
    624
    +
    631 template <class D>
    +
    632 template <layout_type L, class S>
    +
    +
    633 inline auto xconst_iterable<D>::rbegin(const S& shape) const noexcept
    +
    634 -> const_reverse_broadcast_iterator<S, L>
    +
    635 {
    +
    636 return crbegin<L, S>(shape);
    +
    637 }
    +
    +
    638
    +
    646 template <class D>
    +
    647 template <layout_type L, class S>
    +
    +
    648 inline auto xconst_iterable<D>::rend(const S& shape) const noexcept
    +
    649 -> const_reverse_broadcast_iterator<S, L>
    +
    650 {
    +
    651 return crend<L, S>(shape);
    +
    652 }
    +
    +
    653
    +
    661 template <class D>
    +
    662 template <layout_type L, class S>
    +
    +
    663 inline auto xconst_iterable<D>::crbegin(const S& shape) const noexcept
    +
    664 -> const_reverse_broadcast_iterator<S, L>
    +
    665 {
    +
    666 return const_reverse_broadcast_iterator<S, L>(get_cend<L, S>(shape, true));
    +
    667 }
    +
    +
    668
    +
    676 template <class D>
    +
    677 template <layout_type L, class S>
    +
    +
    678 inline auto xconst_iterable<D>::crend(const S& shape) const noexcept
    +
    679 -> const_reverse_broadcast_iterator<S, L>
    +
    680 {
    +
    681 return const_reverse_broadcast_iterator<S, L>(get_cbegin<L, S>(shape, false));
    +
    682 }
    +
    +
    683
    +
    685
    +
    686 template <class D>
    +
    687 template <layout_type L>
    +
    688 inline auto xconst_iterable<D>::get_cbegin(bool end_index) const noexcept -> const_layout_iterator<L>
    +
    689 {
    +
    690 return const_layout_iterator<L>(get_stepper_begin(get_shape()), &get_shape(), end_index);
    +
    691 }
    +
    692
    +
    693 template <class D>
    +
    694 template <layout_type L>
    +
    695 inline auto xconst_iterable<D>::get_cend(bool end_index) const noexcept -> const_layout_iterator<L>
    +
    696 {
    +
    697 return const_layout_iterator<L>(get_stepper_end(get_shape(), L), &get_shape(), end_index);
    +
    698 }
    +
    699
    +
    700 template <class D>
    +
    701 template <layout_type L, class S>
    +
    702 inline auto xconst_iterable<D>::get_cbegin(const S& shape, bool end_index) const noexcept
    +
    703 -> const_broadcast_iterator<S, L>
    +
    704 {
    +
    705 return const_broadcast_iterator<S, L>(get_stepper_begin(shape), shape, end_index);
    +
    706 }
    +
    707
    +
    708 template <class D>
    +
    709 template <layout_type L, class S>
    +
    710 inline auto xconst_iterable<D>::get_cend(const S& shape, bool end_index) const noexcept
    +
    711 -> const_broadcast_iterator<S, L>
    +
    712 {
    +
    713 return const_broadcast_iterator<S, L>(get_stepper_end(shape, L), shape, end_index);
    +
    714 }
    +
    715
    +
    716 template <class D>
    +
    717 template <class S>
    +
    718 inline auto xconst_iterable<D>::get_stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    719 {
    +
    720 return derived_cast().stepper_begin(shape);
    +
    721 }
    +
    722
    +
    723 template <class D>
    +
    724 template <class S>
    +
    725 inline auto xconst_iterable<D>::get_stepper_end(const S& shape, layout_type l) const noexcept
    +
    726 -> const_stepper
    +
    727 {
    +
    728 return derived_cast().stepper_end(shape, l);
    +
    729 }
    +
    730
    +
    731 template <class D>
    +
    732 inline auto xconst_iterable<D>::get_shape() const -> const inner_shape_type&
    +
    733 {
    +
    734 return derived_cast().shape();
    +
    735 }
    +
    736
    +
    737 template <class D>
    +
    738 inline auto xconst_iterable<D>::derived_cast() const -> const derived_type&
    +
    739 {
    +
    740 return *static_cast<const derived_type*>(this);
    +
    741 }
    +
    742
    +
    743 /****************************
    +
    744 * xiterable implementation *
    +
    745 ****************************/
    +
    746
    +
    751
    +
    755 template <class D>
    +
    756 template <layout_type L>
    +
    +
    757 inline auto xiterable<D>::begin() noexcept -> layout_iterator<L>
    +
    758 {
    +
    759 return get_begin<L>(false);
    +
    760 }
    +
    +
    761
    +
    767 template <class D>
    +
    768 template <layout_type L>
    +
    +
    769 inline auto xiterable<D>::end() noexcept -> layout_iterator<L>
    +
    770 {
    +
    771 return get_end<L>(true);
    +
    772 }
    +
    +
    773
    +
    775
    +
    780
    +
    784 template <class D>
    +
    785 template <layout_type L>
    +
    +
    786 inline auto xiterable<D>::rbegin() noexcept -> reverse_layout_iterator<L>
    +
    787 {
    +
    788 return reverse_layout_iterator<L>(get_end<L>(true));
    +
    789 }
    +
    +
    790
    +
    796 template <class D>
    +
    797 template <layout_type L>
    +
    +
    798 inline auto xiterable<D>::rend() noexcept -> reverse_layout_iterator<L>
    +
    799 {
    +
    800 return reverse_layout_iterator<L>(get_begin<L>(false));
    +
    801 }
    +
    +
    802
    +
    804
    +
    809
    +
    816 template <class D>
    +
    817 template <layout_type L, class S>
    +
    +
    818 inline auto xiterable<D>::begin(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    819 {
    +
    820 return get_begin<L, S>(shape, false);
    +
    821 }
    +
    +
    822
    +
    830 template <class D>
    +
    831 template <layout_type L, class S>
    +
    +
    832 inline auto xiterable<D>::end(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    833 {
    +
    834 return get_end<L, S>(shape, true);
    +
    835 }
    +
    +
    836
    +
    838
    +
    843
    +
    850 template <class D>
    +
    851 template <layout_type L, class S>
    +
    +
    852 inline auto xiterable<D>::rbegin(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    853 {
    +
    854 return reverse_broadcast_iterator<S, L>(get_end<L, S>(shape, true));
    +
    855 }
    +
    +
    856
    +
    864 template <class D>
    +
    865 template <layout_type L, class S>
    +
    +
    866 inline auto xiterable<D>::rend(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    867 {
    +
    868 return reverse_broadcast_iterator<S, L>(get_begin<L, S>(shape, false));
    +
    869 }
    +
    +
    870
    +
    872
    +
    873 template <class D>
    +
    874 template <layout_type L>
    +
    875 inline auto xiterable<D>::get_begin(bool end_index) noexcept -> layout_iterator<L>
    +
    876 {
    +
    877 return layout_iterator<L>(get_stepper_begin(this->get_shape()), &(this->get_shape()), end_index);
    +
    878 }
    +
    879
    +
    880 template <class D>
    +
    881 template <layout_type L>
    +
    882 inline auto xiterable<D>::get_end(bool end_index) noexcept -> layout_iterator<L>
    +
    883 {
    +
    884 return layout_iterator<L>(get_stepper_end(this->get_shape(), L), &(this->get_shape()), end_index);
    +
    885 }
    +
    886
    +
    887 template <class D>
    +
    888 template <layout_type L, class S>
    +
    889 inline auto xiterable<D>::get_begin(const S& shape, bool end_index) noexcept -> broadcast_iterator<S, L>
    +
    890 {
    +
    891 return broadcast_iterator<S, L>(get_stepper_begin(shape), shape, end_index);
    +
    892 }
    +
    893
    +
    894 template <class D>
    +
    895 template <layout_type L, class S>
    +
    896 inline auto xiterable<D>::get_end(const S& shape, bool end_index) noexcept -> broadcast_iterator<S, L>
    +
    897 {
    +
    898 return broadcast_iterator<S, L>(get_stepper_end(shape, L), shape, end_index);
    +
    899 }
    +
    900
    +
    901 template <class D>
    +
    902 template <class S>
    +
    903 inline auto xiterable<D>::get_stepper_begin(const S& shape) noexcept -> stepper
    +
    904 {
    +
    905 return derived_cast().stepper_begin(shape);
    +
    906 }
    +
    907
    +
    908 template <class D>
    +
    909 template <class S>
    +
    910 inline auto xiterable<D>::get_stepper_end(const S& shape, layout_type l) noexcept -> stepper
    +
    911 {
    +
    912 return derived_cast().stepper_end(shape, l);
    +
    913 }
    +
    914
    +
    915 template <class D>
    +
    916 template <class S>
    +
    917 inline auto xiterable<D>::get_stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    918 {
    +
    919 return derived_cast().stepper_begin(shape);
    +
    920 }
    +
    921
    +
    922 template <class D>
    +
    923 template <class S>
    +
    924 inline auto xiterable<D>::get_stepper_end(const S& shape, layout_type l) const noexcept -> const_stepper
    +
    925 {
    +
    926 return derived_cast().stepper_end(shape, l);
    +
    927 }
    +
    928
    +
    929 template <class D>
    +
    930 inline auto xiterable<D>::derived_cast() -> derived_type&
    +
    931 {
    +
    932 return *static_cast<derived_type*>(this);
    +
    933 }
    +
    934
    +
    935 /***************************************
    +
    936 * xcontiguous_iterable implementation *
    +
    937 ***************************************/
    +
    938
    +
    943
    +
    947 template <class D>
    +
    948 template <layout_type L>
    +
    +
    949 inline auto xcontiguous_iterable<D>::begin() noexcept -> select_iterator<L>
    +
    950 {
    +
    951 if constexpr (L == static_layout)
    +
    952 {
    +
    953 return derived_cast().linear_begin();
    +
    954 }
    +
    955 else
    +
    956 {
    +
    957 return iterable_base::template begin<L>();
    +
    958 }
    +
    959 }
    +
    +
    960
    +
    966 template <class D>
    +
    967 template <layout_type L>
    +
    +
    968 inline auto xcontiguous_iterable<D>::end() noexcept -> select_iterator<L>
    +
    969 {
    +
    970 if constexpr (L == static_layout)
    +
    971 {
    +
    972 return derived_cast().linear_end();
    +
    973 }
    +
    974 else
    +
    975 {
    +
    976 return iterable_base::template end<L>();
    +
    977 }
    +
    978 }
    +
    +
    979
    +
    984 template <class D>
    +
    985 template <layout_type L>
    +
    +
    986 inline auto xcontiguous_iterable<D>::begin() const noexcept -> select_const_iterator<L>
    +
    987 {
    +
    988 return this->template cbegin<L>();
    +
    989 }
    +
    +
    990
    +
    996 template <class D>
    +
    997 template <layout_type L>
    +
    +
    998 inline auto xcontiguous_iterable<D>::end() const noexcept -> select_const_iterator<L>
    +
    999 {
    +
    1000 return this->template cend<L>();
    +
    1001 }
    +
    +
    1002
    +
    1007 template <class D>
    +
    1008 template <layout_type L>
    +
    +
    1009 inline auto xcontiguous_iterable<D>::cbegin() const noexcept -> select_const_iterator<L>
    +
    1010 {
    +
    1011 if constexpr (L == static_layout)
    +
    1012 {
    +
    1013 return derived_cast().linear_cbegin();
    +
    1014 }
    +
    1015 else
    +
    1016 {
    +
    1017 return iterable_base::template cbegin<L>();
    +
    1018 }
    +
    1019 }
    +
    +
    1020
    +
    1026 template <class D>
    +
    1027 template <layout_type L>
    +
    +
    1028 inline auto xcontiguous_iterable<D>::cend() const noexcept -> select_const_iterator<L>
    +
    1029 {
    +
    1030 if constexpr (L == static_layout)
    +
    1031 {
    +
    1032 return derived_cast().linear_cend();
    +
    1033 }
    +
    1034 else
    +
    1035 {
    +
    1036 return iterable_base::template cend<L>();
    +
    1037 }
    +
    1038 }
    +
    +
    1039
    +
    1041
    +
    1046
    +
    1050 template <class D>
    +
    1051 template <layout_type L>
    +
    +
    1052 inline auto xcontiguous_iterable<D>::rbegin() noexcept -> select_reverse_iterator<L>
    +
    1053 {
    +
    1054 if constexpr (L == static_layout)
    +
    1055 {
    +
    1056 return derived_cast().linear_rbegin();
    +
    1057 }
    +
    1058 else
    +
    1059 {
    +
    1060 return iterable_base::template rbegin<L>();
    +
    1061 }
    +
    1062 }
    +
    +
    1063
    +
    1069 template <class D>
    +
    1070 template <layout_type L>
    +
    +
    1071 inline auto xcontiguous_iterable<D>::rend() noexcept -> select_reverse_iterator<L>
    +
    1072 {
    +
    1073 if constexpr (L == static_layout)
    +
    1074 {
    +
    1075 return derived_cast().linear_rend();
    +
    1076 }
    +
    1077 else
    +
    1078 {
    +
    1079 return iterable_base::template rend<L>();
    +
    1080 }
    +
    1081 }
    +
    +
    1082
    +
    1087 template <class D>
    +
    1088 template <layout_type L>
    +
    +
    1089 inline auto xcontiguous_iterable<D>::rbegin() const noexcept -> select_const_reverse_iterator<L>
    +
    1090 {
    +
    1091 return this->template crbegin<L>();
    +
    1092 }
    +
    +
    1093
    +
    1099 template <class D>
    +
    1100 template <layout_type L>
    +
    +
    1101 inline auto xcontiguous_iterable<D>::rend() const noexcept -> select_const_reverse_iterator<L>
    +
    1102 {
    +
    1103 return this->template crend<L>();
    +
    1104 }
    +
    +
    1105
    +
    1110 template <class D>
    +
    1111 template <layout_type L>
    +
    +
    1112 inline auto xcontiguous_iterable<D>::crbegin() const noexcept -> select_const_reverse_iterator<L>
    +
    1113 {
    +
    1114 if constexpr (L == static_layout)
    +
    1115 {
    +
    1116 return derived_cast().linear_crbegin();
    +
    1117 }
    +
    1118 else
    +
    1119 {
    +
    1120 return iterable_base::template crbegin<L>();
    +
    1121 }
    +
    1122 }
    +
    +
    1123
    +
    1129 template <class D>
    +
    1130 template <layout_type L>
    +
    +
    1131 inline auto xcontiguous_iterable<D>::crend() const noexcept -> select_const_reverse_iterator<L>
    +
    1132 {
    +
    1133 if constexpr (L == static_layout)
    +
    1134 {
    +
    1135 return derived_cast().linear_crend();
    +
    1136 }
    +
    1137 else
    +
    1138 {
    +
    1139 return iterable_base::template crend<L>();
    +
    1140 }
    +
    1141 }
    +
    +
    1142
    +
    1144
    +
    1148
    +
    1157 template <class D>
    +
    1158 template <layout_type L, class S>
    +
    +
    1159 inline auto xcontiguous_iterable<D>::begin(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    1160 {
    +
    1161 return iterable_base::template begin<L, S>(shape);
    +
    1162 }
    +
    +
    1163
    +
    1171 template <class D>
    +
    1172 template <layout_type L, class S>
    +
    +
    1173 inline auto xcontiguous_iterable<D>::end(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    1174 {
    +
    1175 return iterable_base::template end<L, S>(shape);
    +
    1176 }
    +
    +
    1177
    +
    1185 template <class D>
    +
    1186 template <layout_type L, class S>
    +
    +
    1187 inline auto xcontiguous_iterable<D>::begin(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    1188 {
    +
    1189 return iterable_base::template begin<L, S>(shape);
    +
    1190 }
    +
    +
    1191
    +
    1199 template <class D>
    +
    1200 template <layout_type L, class S>
    +
    +
    1201 inline auto xcontiguous_iterable<D>::end(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    1202 {
    +
    1203 return iterable_base::template end<L, S>(shape);
    +
    1204 }
    +
    +
    1205
    +
    1213 template <class D>
    +
    1214 template <layout_type L, class S>
    +
    +
    1215 inline auto xcontiguous_iterable<D>::cbegin(const S& shape) const noexcept
    +
    1216 -> const_broadcast_iterator<S, L>
    +
    1217 {
    +
    1218 return iterable_base::template cbegin<L, S>(shape);
    +
    1219 }
    +
    +
    1220
    +
    1228 template <class D>
    +
    1229 template <layout_type L, class S>
    +
    +
    1230 inline auto xcontiguous_iterable<D>::cend(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    1231 {
    +
    1232 return iterable_base::template cend<L, S>(shape);
    +
    1233 }
    +
    +
    1234
    +
    1236
    +
    1241
    +
    1248 template <class D>
    +
    1249 template <layout_type L, class S>
    +
    +
    1250 inline auto xcontiguous_iterable<D>::rbegin(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    1251 {
    +
    1252 return iterable_base::template rbegin<L, S>(shape);
    +
    1253 }
    +
    +
    1254
    +
    1262 template <class D>
    +
    1263 template <layout_type L, class S>
    +
    +
    1264 inline auto xcontiguous_iterable<D>::rend(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    1265 {
    +
    1266 return iterable_base::template rend<L, S>(shape);
    +
    1267 }
    +
    +
    1268
    +
    1276 template <class D>
    +
    1277 template <layout_type L, class S>
    +
    +
    1278 inline auto xcontiguous_iterable<D>::rbegin(const S& shape) const noexcept
    +
    1279 -> const_reverse_broadcast_iterator<S, L>
    +
    1280 {
    +
    1281 return iterable_base::template rbegin<L, S>(shape);
    +
    1282 }
    +
    +
    1283
    +
    1291 template <class D>
    +
    1292 template <layout_type L, class S>
    +
    +
    1293 inline auto xcontiguous_iterable<D>::rend(const S& shape) const noexcept
    +
    1294 -> const_reverse_broadcast_iterator<S, L>
    +
    1295 {
    +
    1296 return iterable_base::template rend<L, S>(shape);
    +
    1297 }
    +
    +
    1298
    +
    1306 template <class D>
    +
    1307 template <layout_type L, class S>
    +
    +
    1308 inline auto xcontiguous_iterable<D>::crbegin(const S& shape) const noexcept
    +
    1309 -> const_reverse_broadcast_iterator<S, L>
    +
    1310 {
    +
    1311 return iterable_base::template crbegin<L, S>(shape);
    +
    1312 }
    +
    +
    1313
    +
    1321 template <class D>
    +
    1322 template <layout_type L, class S>
    +
    +
    1323 inline auto xcontiguous_iterable<D>::crend(const S& shape) const noexcept
    +
    1324 -> const_reverse_broadcast_iterator<S, L>
    +
    1325 {
    +
    1326 return iterable_base::template crend<L, S>(shape);
    +
    1327 }
    +
    +
    1328
    +
    1330
    +
    1331 template <class D>
    +
    1332 inline auto xcontiguous_iterable<D>::derived_cast() -> derived_type&
    +
    1333 {
    +
    1334 return *static_cast<derived_type*>(this);
    +
    1335 }
    +
    1336
    +
    1337 template <class D>
    +
    1338 inline auto xcontiguous_iterable<D>::derived_cast() const -> const derived_type&
    +
    1339 {
    +
    1340 return *static_cast<const derived_type*>(this);
    +
    1341 }
    +
    1342
    +
    1343}
    +
    1344
    +
    1345#endif
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    Base class for multidimensional iterable expressions with contiguous storage.
    + +
    auto cend() const noexcept -> select_const_iterator< L >
    +
    auto cbegin() const noexcept -> select_const_iterator< L >
    +
    auto rbegin() noexcept -> select_reverse_iterator< L >
    +
    auto crbegin() const noexcept -> select_const_reverse_iterator< L >
    +
    auto begin() noexcept -> select_iterator< L >
    +
    auto rend() noexcept -> select_reverse_iterator< L >
    +
    auto crend() const noexcept -> select_const_reverse_iterator< L >
    +
    Base class for multidimensional iterable expressions.
    + +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + +
    +
    + + + + diff --git a/xiterator_8hpp_source.html b/xiterator_8hpp_source.html new file mode 100644 index 000000000..4632d997b --- /dev/null +++ b/xiterator_8hpp_source.html @@ -0,0 +1,1442 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xiterator.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xiterator.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_ITERATOR_HPP
    +
    11#define XTENSOR_ITERATOR_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <iterator>
    +
    17#include <numeric>
    +
    18
    +
    19#include <xtl/xcompare.hpp>
    +
    20#include <xtl/xiterator_base.hpp>
    +
    21#include <xtl/xmeta_utils.hpp>
    +
    22#include <xtl/xsequence.hpp>
    +
    23
    +
    24#include "../core/xlayout.hpp"
    +
    25#include "../core/xshape.hpp"
    +
    26#include "../utils/xexception.hpp"
    +
    27#include "../utils/xutils.hpp"
    +
    28
    +
    29namespace xt
    +
    30{
    +
    31
    +
    32 /***********************
    +
    33 * iterator meta utils *
    +
    34 ***********************/
    +
    35
    +
    36 template <class CT>
    +
    37 class xscalar;
    +
    38
    +
    39 template <bool is_const, class CT>
    +
    40 class xscalar_stepper;
    +
    41
    +
    42 namespace detail
    +
    43 {
    +
    44 template <class C>
    +
    45 struct get_stepper_iterator_impl
    +
    46 {
    +
    47 using type = typename C::container_iterator;
    +
    48 };
    +
    49
    +
    50 template <class C>
    +
    51 struct get_stepper_iterator_impl<const C>
    +
    52 {
    +
    53 using type = typename C::const_container_iterator;
    +
    54 };
    +
    55
    +
    56 template <class CT>
    +
    57 struct get_stepper_iterator_impl<xscalar<CT>>
    +
    58 {
    +
    59 using type = typename xscalar<CT>::dummy_iterator;
    +
    60 };
    +
    61
    +
    62 template <class CT>
    +
    63 struct get_stepper_iterator_impl<const xscalar<CT>>
    +
    64 {
    +
    65 using type = typename xscalar<CT>::const_dummy_iterator;
    +
    66 };
    +
    67 }
    +
    68
    +
    69 template <class C>
    +
    70 using get_stepper_iterator = typename detail::get_stepper_iterator_impl<C>::type;
    +
    71
    +
    72 /********************************
    +
    73 * xindex_type_t implementation *
    +
    74 ********************************/
    +
    75
    +
    76 namespace detail
    +
    77 {
    +
    78 template <class ST>
    +
    79 struct index_type_impl
    +
    80 {
    +
    81 using type = dynamic_shape<typename ST::value_type>;
    +
    82 };
    +
    83
    +
    84 template <class V, std::size_t L>
    +
    85 struct index_type_impl<std::array<V, L>>
    +
    86 {
    +
    87 using type = std::array<V, L>;
    +
    88 };
    +
    89
    +
    90 template <std::size_t... I>
    +
    91 struct index_type_impl<fixed_shape<I...>>
    +
    92 {
    +
    93 using type = std::array<std::size_t, sizeof...(I)>;
    +
    94 };
    +
    95 }
    +
    96
    +
    97 template <class C>
    +
    98 using xindex_type_t = typename detail::index_type_impl<C>::type;
    +
    99
    +
    100 /************
    +
    101 * xstepper *
    +
    102 ************/
    +
    103
    +
    104 template <class C>
    +
    +
    105 class xstepper
    +
    106 {
    +
    107 public:
    +
    108
    +
    109 using storage_type = C;
    +
    110 using subiterator_type = get_stepper_iterator<C>;
    +
    111 using subiterator_traits = std::iterator_traits<subiterator_type>;
    +
    112 using value_type = typename subiterator_traits::value_type;
    +
    113 using reference = typename subiterator_traits::reference;
    +
    114 using pointer = typename subiterator_traits::pointer;
    +
    115 using difference_type = typename subiterator_traits::difference_type;
    +
    116 using size_type = typename storage_type::size_type;
    +
    117 using shape_type = typename storage_type::shape_type;
    +
    118 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    119
    +
    120 template <class requested_type>
    +
    121 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    122
    +
    123 xstepper() = default;
    +
    124 xstepper(storage_type* c, subiterator_type it, size_type offset) noexcept;
    +
    125
    +
    126 reference operator*() const;
    +
    127
    +
    128 void step(size_type dim, size_type n = 1);
    +
    129 void step_back(size_type dim, size_type n = 1);
    +
    130 void reset(size_type dim);
    +
    131 void reset_back(size_type dim);
    +
    132
    +
    133 void to_begin();
    +
    134 void to_end(layout_type l);
    +
    135
    +
    136 template <class T>
    +
    137 simd_return_type<T> step_simd();
    +
    138
    +
    139 void step_leading();
    +
    140
    +
    141 template <class R>
    +
    142 void store_simd(const R& vec);
    +
    143
    +
    144 private:
    +
    145
    +
    146 storage_type* p_c;
    +
    147 subiterator_type m_it;
    +
    148 size_type m_offset;
    +
    149 };
    +
    +
    150
    +
    151 template <layout_type L>
    +
    + +
    153 {
    +
    154 // For performance reasons, increment_stepper and decrement_stepper are
    +
    155 // specialized for the case where n=1, which underlies operator++ and
    +
    156 // operator-- on xiterators.
    +
    157
    +
    158 template <class S, class IT, class ST>
    +
    159 static void increment_stepper(S& stepper, IT& index, const ST& shape);
    +
    160
    +
    161 template <class S, class IT, class ST>
    +
    162 static void decrement_stepper(S& stepper, IT& index, const ST& shape);
    +
    163
    +
    164 template <class S, class IT, class ST>
    +
    165 static void increment_stepper(S& stepper, IT& index, const ST& shape, typename S::size_type n);
    +
    166
    +
    167 template <class S, class IT, class ST>
    +
    168 static void decrement_stepper(S& stepper, IT& index, const ST& shape, typename S::size_type n);
    +
    169 };
    +
    +
    170
    +
    171 /********************
    +
    172 * xindexed_stepper *
    +
    173 ********************/
    +
    174
    +
    175 template <class E, bool is_const>
    +
    +
    176 class xindexed_stepper
    +
    177 {
    +
    178 public:
    +
    179
    +
    180 using self_type = xindexed_stepper<E, is_const>;
    +
    181 using xexpression_type = std::conditional_t<is_const, const E, E>;
    +
    182
    +
    183 using value_type = typename xexpression_type::value_type;
    +
    184 using reference = std::
    +
    185 conditional_t<is_const, typename xexpression_type::const_reference, typename xexpression_type::reference>;
    +
    186 using pointer = std::
    +
    187 conditional_t<is_const, typename xexpression_type::const_pointer, typename xexpression_type::pointer>;
    +
    188 using size_type = typename xexpression_type::size_type;
    +
    189 using difference_type = typename xexpression_type::difference_type;
    +
    190
    +
    191 using shape_type = typename xexpression_type::shape_type;
    +
    192 using index_type = xindex_type_t<shape_type>;
    +
    193
    +
    194 xindexed_stepper() = default;
    +
    195 xindexed_stepper(xexpression_type* e, size_type offset, bool end = false) noexcept;
    +
    196
    +
    197 reference operator*() const;
    +
    198
    +
    199 void step(size_type dim, size_type n = 1);
    +
    200 void step_back(size_type dim, size_type n = 1);
    +
    201 void reset(size_type dim);
    +
    202 void reset_back(size_type dim);
    +
    203
    +
    204 void to_begin();
    +
    205 void to_end(layout_type l);
    +
    206
    +
    207 private:
    +
    208
    +
    209 xexpression_type* p_e;
    +
    210 index_type m_index;
    +
    211 size_type m_offset;
    +
    212 };
    +
    +
    213
    +
    214 template <class T>
    +
    + +
    216 {
    +
    217 static const bool value = false;
    +
    218 };
    +
    +
    219
    +
    220 template <class T, bool B>
    +
    + +
    222 {
    +
    223 static const bool value = true;
    +
    224 };
    +
    +
    225
    +
    226 template <class T, class R = T>
    +
    +
    227 struct enable_indexed_stepper : std::enable_if<is_indexed_stepper<T>::value, R>
    +
    228 {
    +
    229 };
    +
    +
    230
    +
    231 template <class T, class R = T>
    +
    232 using enable_indexed_stepper_t = typename enable_indexed_stepper<T, R>::type;
    +
    233
    +
    234 template <class T, class R = T>
    +
    +
    235 struct disable_indexed_stepper : std::enable_if<!is_indexed_stepper<T>::value, R>
    +
    236 {
    +
    237 };
    +
    +
    238
    +
    239 template <class T, class R = T>
    +
    240 using disable_indexed_stepper_t = typename disable_indexed_stepper<T, R>::type;
    +
    241
    +
    242 /*************
    +
    243 * xiterator *
    +
    244 *************/
    +
    245
    +
    246 namespace detail
    +
    247 {
    +
    248 template <class S>
    +
    249 class shape_storage
    +
    250 {
    +
    251 public:
    +
    252
    +
    253 using shape_type = S;
    +
    254 using param_type = const S&;
    +
    255
    +
    256 shape_storage() = default;
    +
    257 shape_storage(param_type shape);
    +
    258 const S& shape() const;
    +
    259
    +
    260 private:
    +
    261
    +
    262 S m_shape;
    +
    263 };
    +
    264
    +
    265 template <class S>
    +
    266 class shape_storage<S*>
    +
    267 {
    +
    268 public:
    +
    269
    +
    270 using shape_type = S;
    +
    271 using param_type = const S*;
    +
    272
    +
    273 shape_storage(param_type shape = 0);
    +
    274 const S& shape() const;
    +
    275
    +
    276 private:
    +
    277
    +
    278 const S* p_shape;
    +
    279 };
    +
    280
    +
    281 template <layout_type L>
    +
    282 struct LAYOUT_FORBIDEN_FOR_XITERATOR;
    +
    283 }
    +
    284
    +
    285 template <class St, class S, layout_type L>
    +
    +
    286 class xiterator : public xtl::xrandom_access_iterator_base<
    +
    287 xiterator<St, S, L>,
    +
    288 typename St::value_type,
    +
    289 typename St::difference_type,
    +
    290 typename St::pointer,
    +
    291 typename St::reference>,
    +
    292 private detail::shape_storage<S>
    +
    293 {
    +
    294 public:
    +
    295
    +
    296 using self_type = xiterator<St, S, L>;
    +
    297
    +
    298 using stepper_type = St;
    +
    299 using value_type = typename stepper_type::value_type;
    +
    300 using reference = typename stepper_type::reference;
    +
    301 using pointer = typename stepper_type::pointer;
    +
    302 using difference_type = typename stepper_type::difference_type;
    +
    303 using size_type = typename stepper_type::size_type;
    +
    304 using iterator_category = std::random_access_iterator_tag;
    +
    305
    +
    306 using private_base = detail::shape_storage<S>;
    +
    307 using shape_type = typename private_base::shape_type;
    +
    308 using shape_param_type = typename private_base::param_type;
    +
    309 using index_type = xindex_type_t<shape_type>;
    +
    310
    +
    311 xiterator() = default;
    +
    312
    +
    313 // end_index means either reverse_iterator && !end or !reverse_iterator && end
    +
    314 xiterator(St st, shape_param_type shape, bool end_index);
    +
    315
    +
    316 self_type& operator++();
    +
    317 self_type& operator--();
    +
    318
    +
    319 self_type& operator+=(difference_type n);
    +
    320 self_type& operator-=(difference_type n);
    +
    321
    +
    322 difference_type operator-(const self_type& rhs) const;
    +
    323
    +
    324 reference operator*() const;
    +
    325 pointer operator->() const;
    +
    326
    +
    327 bool equal(const xiterator& rhs) const;
    +
    328 bool less_than(const xiterator& rhs) const;
    +
    329
    +
    330 private:
    +
    331
    +
    332 stepper_type m_st;
    +
    333 index_type m_index;
    +
    334 difference_type m_linear_index;
    +
    335
    +
    336 using checking_type = typename detail::LAYOUT_FORBIDEN_FOR_XITERATOR<L>::type;
    +
    337 };
    +
    +
    338
    +
    339 template <class St, class S, layout_type L>
    +
    340 bool operator==(const xiterator<St, S, L>& lhs, const xiterator<St, S, L>& rhs);
    +
    341
    +
    342 template <class St, class S, layout_type L>
    +
    343 bool operator<(const xiterator<St, S, L>& lhs, const xiterator<St, S, L>& rhs);
    +
    344
    +
    345 template <class St, class S, layout_type L>
    +
    +
    346 struct is_contiguous_container<xiterator<St, S, L>> : std::false_type
    +
    347 {
    +
    348 };
    +
    +
    349
    +
    350 /*********************
    +
    351 * xbounded_iterator *
    +
    352 *********************/
    +
    353
    +
    354 template <class It, class BIt>
    +
    +
    355 class xbounded_iterator : public xtl::xrandom_access_iterator_base<
    +
    356 xbounded_iterator<It, BIt>,
    +
    357 typename std::iterator_traits<It>::value_type,
    +
    358 typename std::iterator_traits<It>::difference_type,
    +
    359 typename std::iterator_traits<It>::pointer,
    +
    360 typename std::iterator_traits<It>::reference>
    +
    361 {
    +
    362 public:
    +
    363
    +
    364 using self_type = xbounded_iterator<It, BIt>;
    +
    365
    +
    366 using subiterator_type = It;
    +
    367 using bound_iterator_type = BIt;
    +
    368 using value_type = typename std::iterator_traits<It>::value_type;
    +
    369 using reference = typename std::iterator_traits<It>::reference;
    +
    370 using pointer = typename std::iterator_traits<It>::pointer;
    +
    371 using difference_type = typename std::iterator_traits<It>::difference_type;
    +
    372 using iterator_category = std::random_access_iterator_tag;
    +
    373
    +
    374 xbounded_iterator() = default;
    +
    375 xbounded_iterator(It it, BIt bound_it);
    +
    376
    +
    377 self_type& operator++();
    +
    378 self_type& operator--();
    +
    379
    +
    380 self_type& operator+=(difference_type n);
    +
    381 self_type& operator-=(difference_type n);
    +
    382
    +
    383 difference_type operator-(const self_type& rhs) const;
    +
    384
    +
    385 value_type operator*() const;
    +
    386
    +
    387 bool equal(const self_type& rhs) const;
    +
    388 bool less_than(const self_type& rhs) const;
    +
    389
    +
    390 private:
    +
    391
    +
    392 subiterator_type m_it;
    +
    393 bound_iterator_type m_bound_it;
    +
    394 };
    +
    +
    395
    +
    396 template <class It, class BIt>
    +
    397 bool operator==(const xbounded_iterator<It, BIt>& lhs, const xbounded_iterator<It, BIt>& rhs);
    +
    398
    +
    399 template <class It, class BIt>
    +
    400 bool operator<(const xbounded_iterator<It, BIt>& lhs, const xbounded_iterator<It, BIt>& rhs);
    +
    401
    +
    402 /*****************************
    +
    403 * linear_begin / linear_end *
    +
    404 *****************************/
    +
    405
    +
    406 namespace detail
    +
    407 {
    +
    408 template <class C, class = void_t<>>
    +
    409 struct has_linear_iterator : std::false_type
    +
    410 {
    +
    411 };
    +
    412
    +
    413 template <class C>
    +
    414 struct has_linear_iterator<C, void_t<decltype(std::declval<C>().linear_cbegin())>> : std::true_type
    +
    415 {
    +
    416 };
    +
    417 }
    +
    418
    +
    419 template <class C>
    +
    420 XTENSOR_CONSTEXPR_RETURN auto linear_begin(C& c) noexcept
    +
    421 {
    +
    422 if constexpr (detail::has_linear_iterator<C>::value)
    +
    423 {
    +
    424 return c.linear_begin();
    +
    425 }
    +
    426 else
    +
    427 {
    +
    428 return c.begin();
    +
    429 }
    +
    430 }
    +
    431
    +
    432 template <class C>
    +
    433 XTENSOR_CONSTEXPR_RETURN auto linear_end(C& c) noexcept
    +
    434 {
    +
    435 if constexpr (detail::has_linear_iterator<C>::value)
    +
    436 {
    +
    437 return c.linear_end();
    +
    438 }
    +
    439 else
    +
    440 {
    +
    441 return c.end();
    +
    442 }
    +
    443 }
    +
    444
    +
    445 template <class C>
    +
    446 XTENSOR_CONSTEXPR_RETURN auto linear_begin(const C& c) noexcept
    +
    447 {
    +
    448 if constexpr (detail::has_linear_iterator<C>::value)
    +
    449 {
    +
    450 return c.linear_cbegin();
    +
    451 }
    +
    452 else
    +
    453 {
    +
    454 return c.cbegin();
    +
    455 }
    +
    456 }
    +
    457
    +
    458 template <class C>
    +
    459 XTENSOR_CONSTEXPR_RETURN auto linear_end(const C& c) noexcept
    +
    460 {
    +
    461 if constexpr (detail::has_linear_iterator<C>::value)
    +
    462 {
    +
    463 return c.linear_cend();
    +
    464 }
    +
    465 else
    +
    466 {
    +
    467 return c.cend();
    +
    468 }
    +
    469 }
    +
    470
    +
    471 /***************************
    +
    472 * xstepper implementation *
    +
    473 ***************************/
    +
    474
    +
    475 template <class C>
    +
    476 inline xstepper<C>::xstepper(storage_type* c, subiterator_type it, size_type offset) noexcept
    +
    477 : p_c(c)
    +
    478 , m_it(it)
    +
    479 , m_offset(offset)
    +
    480 {
    +
    481 }
    +
    482
    +
    483 template <class C>
    +
    484 inline auto xstepper<C>::operator*() const -> reference
    +
    485 {
    +
    486 return *m_it;
    +
    487 }
    +
    488
    +
    489 template <class C>
    +
    490 inline void xstepper<C>::step(size_type dim, size_type n)
    +
    491 {
    +
    492 if (dim >= m_offset)
    +
    493 {
    +
    494 using strides_value_type = typename std::decay_t<decltype(p_c->strides())>::value_type;
    +
    495 m_it += difference_type(static_cast<strides_value_type>(n) * p_c->strides()[dim - m_offset]);
    +
    496 }
    +
    497 }
    +
    498
    +
    499 template <class C>
    +
    500 inline void xstepper<C>::step_back(size_type dim, size_type n)
    +
    501 {
    +
    502 if (dim >= m_offset)
    +
    503 {
    +
    504 using strides_value_type = typename std::decay_t<decltype(p_c->strides())>::value_type;
    +
    505 m_it -= difference_type(static_cast<strides_value_type>(n) * p_c->strides()[dim - m_offset]);
    +
    506 }
    +
    507 }
    +
    508
    +
    509 template <class C>
    +
    510 inline void xstepper<C>::reset(size_type dim)
    +
    511 {
    +
    512 if (dim >= m_offset)
    +
    513 {
    +
    514 m_it -= difference_type(p_c->backstrides()[dim - m_offset]);
    +
    515 }
    +
    516 }
    +
    517
    +
    518 template <class C>
    +
    519 inline void xstepper<C>::reset_back(size_type dim)
    +
    520 {
    +
    521 if (dim >= m_offset)
    +
    522 {
    +
    523 m_it += difference_type(p_c->backstrides()[dim - m_offset]);
    +
    524 }
    +
    525 }
    +
    526
    +
    527 template <class C>
    +
    528 inline void xstepper<C>::to_begin()
    +
    529 {
    +
    530 m_it = p_c->data_xbegin();
    +
    531 }
    +
    532
    +
    533 template <class C>
    +
    534 inline void xstepper<C>::to_end(layout_type l)
    +
    535 {
    +
    536 m_it = p_c->data_xend(l, m_offset);
    +
    537 }
    +
    538
    +
    539 namespace detail
    +
    540 {
    +
    541 template <class It>
    +
    542 struct step_simd_invoker
    +
    543 {
    +
    544 template <class R>
    +
    545 static R apply(const It& it)
    +
    546 {
    +
    547 R reg;
    +
    548 return reg.load_unaligned(&(*it));
    +
    549 // return reg;
    +
    550 }
    +
    551 };
    +
    552
    +
    553 template <bool is_const, class T, class S, layout_type L>
    +
    554 struct step_simd_invoker<xiterator<xscalar_stepper<is_const, T>, S, L>>
    +
    555 {
    +
    556 template <class R>
    +
    557 static R apply(const xiterator<xscalar_stepper<is_const, T>, S, L>& it)
    +
    558 {
    +
    559 return R(*it);
    +
    560 }
    +
    561 };
    +
    562 }
    +
    563
    +
    564 template <class C>
    +
    565 template <class T>
    +
    566 inline auto xstepper<C>::step_simd() -> simd_return_type<T>
    +
    567 {
    +
    568 using simd_type = simd_return_type<T>;
    +
    569 simd_type reg = detail::step_simd_invoker<subiterator_type>::template apply<simd_type>(m_it);
    +
    570 m_it += xt_simd::revert_simd_traits<simd_type>::size;
    +
    571 return reg;
    +
    572 }
    +
    573
    +
    574 template <class C>
    +
    575 template <class R>
    +
    576 inline void xstepper<C>::store_simd(const R& vec)
    +
    577 {
    +
    578 vec.store_unaligned(&(*m_it));
    +
    579 m_it += xt_simd::revert_simd_traits<R>::size;
    +
    580 ;
    +
    581 }
    +
    582
    +
    583 template <class C>
    +
    584 void xstepper<C>::step_leading()
    +
    585 {
    +
    586 ++m_it;
    +
    587 }
    +
    588
    +
    589 template <>
    +
    590 template <class S, class IT, class ST>
    +
    591 void stepper_tools<layout_type::row_major>::increment_stepper(S& stepper, IT& index, const ST& shape)
    +
    592 {
    +
    593 using size_type = typename S::size_type;
    +
    594 const size_type size = index.size();
    +
    595 size_type i = size;
    +
    596 while (i != 0)
    +
    597 {
    +
    598 --i;
    +
    599 if (index[i] != shape[i] - 1)
    +
    600 {
    +
    601 ++index[i];
    +
    602 stepper.step(i);
    +
    603 return;
    +
    604 }
    +
    605 else
    +
    606 {
    +
    607 index[i] = 0;
    +
    608 if (i != 0)
    +
    609 {
    +
    610 stepper.reset(i);
    +
    611 }
    +
    612 }
    +
    613 }
    +
    614 if (i == 0)
    +
    615 {
    +
    616 if (size != size_type(0))
    +
    617 {
    +
    618 std::transform(
    +
    619 shape.cbegin(),
    +
    620 shape.cend() - 1,
    +
    621 index.begin(),
    +
    622 [](const auto& v)
    +
    623 {
    +
    624 return v - 1;
    +
    625 }
    +
    626 );
    +
    627 index[size - 1] = shape[size - 1];
    +
    628 }
    +
    629 stepper.to_end(layout_type::row_major);
    +
    630 }
    +
    631 }
    +
    632
    +
    633 template <>
    +
    634 template <class S, class IT, class ST>
    +
    635 void stepper_tools<layout_type::row_major>::increment_stepper(
    +
    636 S& stepper,
    +
    637 IT& index,
    +
    638 const ST& shape,
    +
    639 typename S::size_type n
    +
    640 )
    +
    641 {
    +
    642 using size_type = typename S::size_type;
    +
    643 const size_type size = index.size();
    +
    644 const size_type leading_i = size - 1;
    +
    645 size_type i = size;
    +
    646 while (i != 0 && n != 0)
    +
    647 {
    +
    648 --i;
    +
    649 size_type inc = (i == leading_i) ? n : 1;
    +
    650 if (xtl::cmp_less(index[i] + inc, shape[i]))
    +
    651 {
    +
    652 index[i] += inc;
    +
    653 stepper.step(i, inc);
    +
    654 n -= inc;
    +
    655 if (i != leading_i || index.size() == 1)
    +
    656 {
    +
    657 i = index.size();
    +
    658 }
    +
    659 }
    +
    660 else
    +
    661 {
    +
    662 if (i == leading_i)
    +
    663 {
    +
    664 size_type off = shape[i] - index[i] - 1;
    +
    665 stepper.step(i, off);
    +
    666 n -= off;
    +
    667 }
    +
    668 index[i] = 0;
    +
    669 if (i != 0)
    +
    670 {
    +
    671 stepper.reset(i);
    +
    672 }
    +
    673 }
    +
    674 }
    +
    675 if (i == 0 && n != 0)
    +
    676 {
    +
    677 if (size != size_type(0))
    +
    678 {
    +
    679 std::transform(
    +
    680 shape.cbegin(),
    +
    681 shape.cend() - 1,
    +
    682 index.begin(),
    +
    683 [](const auto& v)
    +
    684 {
    +
    685 return v - 1;
    +
    686 }
    +
    687 );
    +
    688 index[leading_i] = shape[leading_i];
    +
    689 }
    +
    690 stepper.to_end(layout_type::row_major);
    +
    691 }
    +
    692 }
    +
    693
    +
    694 template <>
    +
    695 template <class S, class IT, class ST>
    +
    696 void stepper_tools<layout_type::row_major>::decrement_stepper(S& stepper, IT& index, const ST& shape)
    +
    697 {
    +
    698 using size_type = typename S::size_type;
    +
    699 size_type i = index.size();
    +
    700 while (i != 0)
    +
    701 {
    +
    702 --i;
    +
    703 if (index[i] != 0)
    +
    704 {
    +
    705 --index[i];
    +
    706 stepper.step_back(i);
    +
    707 return;
    +
    708 }
    +
    709 else
    +
    710 {
    +
    711 index[i] = shape[i] - 1;
    +
    712 if (i != 0)
    +
    713 {
    +
    714 stepper.reset_back(i);
    +
    715 }
    +
    716 }
    +
    717 }
    +
    718 if (i == 0)
    +
    719 {
    +
    720 stepper.to_begin();
    +
    721 }
    +
    722 }
    +
    723
    +
    724 template <>
    +
    725 template <class S, class IT, class ST>
    +
    726 void stepper_tools<layout_type::row_major>::decrement_stepper(
    +
    727 S& stepper,
    +
    728 IT& index,
    +
    729 const ST& shape,
    +
    730 typename S::size_type n
    +
    731 )
    +
    732 {
    +
    733 using size_type = typename S::size_type;
    +
    734 size_type i = index.size();
    +
    735 size_type leading_i = index.size() - 1;
    +
    736 while (i != 0 && n != 0)
    +
    737 {
    +
    738 --i;
    +
    739 size_type inc = (i == leading_i) ? n : 1;
    +
    740 if (xtl::cmp_greater_equal(index[i], inc))
    +
    741 {
    +
    742 index[i] -= inc;
    +
    743 stepper.step_back(i, inc);
    +
    744 n -= inc;
    +
    745 if (i != leading_i || index.size() == 1)
    +
    746 {
    +
    747 i = index.size();
    +
    748 }
    +
    749 }
    +
    750 else
    +
    751 {
    +
    752 if (i == leading_i)
    +
    753 {
    +
    754 size_type off = index[i];
    +
    755 stepper.step_back(i, off);
    +
    756 n -= off;
    +
    757 }
    +
    758 index[i] = shape[i] - 1;
    +
    759 if (i != 0)
    +
    760 {
    +
    761 stepper.reset_back(i);
    +
    762 }
    +
    763 }
    +
    764 }
    +
    765 if (i == 0 && n != 0)
    +
    766 {
    +
    767 stepper.to_begin();
    +
    768 }
    +
    769 }
    +
    770
    +
    771 template <>
    +
    772 template <class S, class IT, class ST>
    +
    773 void stepper_tools<layout_type::column_major>::increment_stepper(S& stepper, IT& index, const ST& shape)
    +
    774 {
    +
    775 using size_type = typename S::size_type;
    +
    776 const size_type size = index.size();
    +
    777 size_type i = 0;
    +
    778 while (i != size)
    +
    779 {
    +
    780 if (index[i] != shape[i] - 1)
    +
    781 {
    +
    782 ++index[i];
    +
    783 stepper.step(i);
    +
    784 return;
    +
    785 }
    +
    786 else
    +
    787 {
    +
    788 index[i] = 0;
    +
    789 if (i != size - 1)
    +
    790 {
    +
    791 stepper.reset(i);
    +
    792 }
    +
    793 }
    +
    794 ++i;
    +
    795 }
    +
    796 if (i == size)
    +
    797 {
    +
    798 if (size != size_type(0))
    +
    799 {
    +
    800 std::transform(
    +
    801 shape.cbegin() + 1,
    +
    802 shape.cend(),
    +
    803 index.begin() + 1,
    +
    804 [](const auto& v)
    +
    805 {
    +
    806 return v - 1;
    +
    807 }
    +
    808 );
    +
    809 index[0] = shape[0];
    +
    810 }
    +
    811 stepper.to_end(layout_type::column_major);
    +
    812 }
    +
    813 }
    +
    814
    +
    815 template <>
    +
    816 template <class S, class IT, class ST>
    +
    817 void stepper_tools<layout_type::column_major>::increment_stepper(
    +
    818 S& stepper,
    +
    819 IT& index,
    +
    820 const ST& shape,
    +
    821 typename S::size_type n
    +
    822 )
    +
    823 {
    +
    824 using size_type = typename S::size_type;
    +
    825 const size_type size = index.size();
    +
    826 const size_type leading_i = 0;
    +
    827 size_type i = 0;
    +
    828 while (i != size && n != 0)
    +
    829 {
    +
    830 size_type inc = (i == leading_i) ? n : 1;
    +
    831 if (index[i] + inc < shape[i])
    +
    832 {
    +
    833 index[i] += inc;
    +
    834 stepper.step(i, inc);
    +
    835 n -= inc;
    +
    836 if (i != leading_i || size == 1)
    +
    837 {
    +
    838 i = 0;
    +
    839 continue;
    +
    840 }
    +
    841 }
    +
    842 else
    +
    843 {
    +
    844 if (i == leading_i)
    +
    845 {
    +
    846 size_type off = shape[i] - index[i] - 1;
    +
    847 stepper.step(i, off);
    +
    848 n -= off;
    +
    849 }
    +
    850 index[i] = 0;
    +
    851 if (i != size - 1)
    +
    852 {
    +
    853 stepper.reset(i);
    +
    854 }
    +
    855 }
    +
    856 ++i;
    +
    857 }
    +
    858 if (i == size && n != 0)
    +
    859 {
    +
    860 if (size != size_type(0))
    +
    861 {
    +
    862 std::transform(
    +
    863 shape.cbegin() + 1,
    +
    864 shape.cend(),
    +
    865 index.begin() + 1,
    +
    866 [](const auto& v)
    +
    867 {
    +
    868 return v - 1;
    +
    869 }
    +
    870 );
    +
    871 index[leading_i] = shape[leading_i];
    +
    872 }
    +
    873 stepper.to_end(layout_type::column_major);
    +
    874 }
    +
    875 }
    +
    876
    +
    877 template <>
    +
    878 template <class S, class IT, class ST>
    +
    879 void stepper_tools<layout_type::column_major>::decrement_stepper(S& stepper, IT& index, const ST& shape)
    +
    880 {
    +
    881 using size_type = typename S::size_type;
    +
    882 size_type size = index.size();
    +
    883 size_type i = 0;
    +
    884 while (i != size)
    +
    885 {
    +
    886 if (index[i] != 0)
    +
    887 {
    +
    888 --index[i];
    +
    889 stepper.step_back(i);
    +
    890 return;
    +
    891 }
    +
    892 else
    +
    893 {
    +
    894 index[i] = shape[i] - 1;
    +
    895 if (i != size - 1)
    +
    896 {
    +
    897 stepper.reset_back(i);
    +
    898 }
    +
    899 }
    +
    900 ++i;
    +
    901 }
    +
    902 if (i == size)
    +
    903 {
    +
    904 stepper.to_begin();
    +
    905 }
    +
    906 }
    +
    907
    +
    908 template <>
    +
    909 template <class S, class IT, class ST>
    +
    910 void stepper_tools<layout_type::column_major>::decrement_stepper(
    +
    911 S& stepper,
    +
    912 IT& index,
    +
    913 const ST& shape,
    +
    914 typename S::size_type n
    +
    915 )
    +
    916 {
    +
    917 using size_type = typename S::size_type;
    +
    918 size_type size = index.size();
    +
    919 size_type i = 0;
    +
    920 size_type leading_i = 0;
    +
    921 while (i != size && n != 0)
    +
    922 {
    +
    923 size_type inc = (i == leading_i) ? n : 1;
    +
    924 if (index[i] >= inc)
    +
    925 {
    +
    926 index[i] -= inc;
    +
    927 stepper.step_back(i, inc);
    +
    928 n -= inc;
    +
    929 if (i != leading_i || index.size() == 1)
    +
    930 {
    +
    931 i = 0;
    +
    932 continue;
    +
    933 }
    +
    934 }
    +
    935 else
    +
    936 {
    +
    937 if (i == leading_i)
    +
    938 {
    +
    939 size_type off = index[i];
    +
    940 stepper.step_back(i, off);
    +
    941 n -= off;
    +
    942 }
    +
    943 index[i] = shape[i] - 1;
    +
    944 if (i != size - 1)
    +
    945 {
    +
    946 stepper.reset_back(i);
    +
    947 }
    +
    948 }
    +
    949 ++i;
    +
    950 }
    +
    951 if (i == size && n != 0)
    +
    952 {
    +
    953 stepper.to_begin();
    +
    954 }
    +
    955 }
    +
    956
    +
    957 /***********************************
    +
    958 * xindexed_stepper implementation *
    +
    959 ***********************************/
    +
    960
    +
    961 template <class C, bool is_const>
    +
    962 inline xindexed_stepper<C, is_const>::xindexed_stepper(xexpression_type* e, size_type offset, bool end) noexcept
    +
    963 : p_e(e)
    +
    964 , m_index(xtl::make_sequence<index_type>(e->shape().size(), size_type(0)))
    +
    965 , m_offset(offset)
    +
    966 {
    +
    967 if (end)
    +
    968 {
    +
    969 // Note: the layout here doesn't matter (unused) but using default traversal looks more "correct".
    +
    970 to_end(XTENSOR_DEFAULT_TRAVERSAL);
    +
    971 }
    +
    972 }
    +
    973
    +
    974 template <class C, bool is_const>
    +
    975 inline auto xindexed_stepper<C, is_const>::operator*() const -> reference
    +
    976 {
    +
    977 return p_e->element(m_index.cbegin(), m_index.cend());
    +
    978 }
    +
    979
    +
    980 template <class C, bool is_const>
    +
    981 inline void xindexed_stepper<C, is_const>::step(size_type dim, size_type n)
    +
    982 {
    +
    983 if (dim >= m_offset)
    +
    984 {
    +
    985 m_index[dim - m_offset] += static_cast<typename index_type::value_type>(n);
    +
    986 }
    +
    987 }
    +
    988
    +
    989 template <class C, bool is_const>
    +
    990 inline void xindexed_stepper<C, is_const>::step_back(size_type dim, size_type n)
    +
    991 {
    +
    992 if (dim >= m_offset)
    +
    993 {
    +
    994 m_index[dim - m_offset] -= static_cast<typename index_type::value_type>(n);
    +
    995 }
    +
    996 }
    +
    997
    +
    998 template <class C, bool is_const>
    +
    999 inline void xindexed_stepper<C, is_const>::reset(size_type dim)
    +
    1000 {
    +
    1001 if (dim >= m_offset)
    +
    1002 {
    +
    1003 m_index[dim - m_offset] = 0;
    +
    1004 }
    +
    1005 }
    +
    1006
    +
    1007 template <class C, bool is_const>
    +
    1008 inline void xindexed_stepper<C, is_const>::reset_back(size_type dim)
    +
    1009 {
    +
    1010 if (dim >= m_offset)
    +
    1011 {
    +
    1012 m_index[dim - m_offset] = p_e->shape()[dim - m_offset] - 1;
    +
    1013 }
    +
    1014 }
    +
    1015
    +
    1016 template <class C, bool is_const>
    +
    1017 inline void xindexed_stepper<C, is_const>::to_begin()
    +
    1018 {
    +
    1019 std::fill(m_index.begin(), m_index.end(), size_type(0));
    +
    1020 }
    +
    1021
    +
    1022 template <class C, bool is_const>
    +
    1023 inline void xindexed_stepper<C, is_const>::to_end(layout_type l)
    +
    1024 {
    +
    1025 const auto& shape = p_e->shape();
    +
    1026 std::transform(
    +
    1027 shape.cbegin(),
    +
    1028 shape.cend(),
    +
    1029 m_index.begin(),
    +
    1030 [](const auto& v)
    +
    1031 {
    +
    1032 return v - 1;
    +
    1033 }
    +
    1034 );
    +
    1035
    +
    1036 size_type l_dim = (l == layout_type::row_major) ? shape.size() - 1 : 0;
    +
    1037 m_index[l_dim] = shape[l_dim];
    +
    1038 }
    +
    1039
    +
    1040 /****************************
    +
    1041 * xiterator implementation *
    +
    1042 ****************************/
    +
    1043
    +
    1044 namespace detail
    +
    1045 {
    +
    1046 template <class S>
    +
    1047 inline shape_storage<S>::shape_storage(param_type shape)
    +
    1048 : m_shape(shape)
    +
    1049 {
    +
    1050 }
    +
    1051
    +
    1052 template <class S>
    +
    1053 inline const S& shape_storage<S>::shape() const
    +
    1054 {
    +
    1055 return m_shape;
    +
    1056 }
    +
    1057
    +
    1058 template <class S>
    +
    1059 inline shape_storage<S*>::shape_storage(param_type shape)
    +
    1060 : p_shape(shape)
    +
    1061 {
    +
    1062 }
    +
    1063
    +
    1064 template <class S>
    +
    1065 inline const S& shape_storage<S*>::shape() const
    +
    1066 {
    +
    1067 return *p_shape;
    +
    1068 }
    +
    1069
    +
    1070 template <>
    +
    1071 struct LAYOUT_FORBIDEN_FOR_XITERATOR<layout_type::row_major>
    +
    1072 {
    +
    1073 using type = int;
    +
    1074 };
    +
    1075
    +
    1076 template <>
    +
    1077 struct LAYOUT_FORBIDEN_FOR_XITERATOR<layout_type::column_major>
    +
    1078 {
    +
    1079 using type = int;
    +
    1080 };
    +
    1081 }
    +
    1082
    +
    1083 template <class St, class S, layout_type L>
    +
    1084 inline xiterator<St, S, L>::xiterator(St st, shape_param_type shape, bool end_index)
    +
    1085 : private_base(shape)
    +
    1086 , m_st(st)
    +
    1087 , m_index(
    +
    1088 end_index ? xtl::forward_sequence<index_type, const shape_type&>(this->shape())
    +
    1089 : xtl::make_sequence<index_type>(this->shape().size(), size_type(0))
    +
    1090 )
    +
    1091 , m_linear_index(0)
    +
    1092 {
    +
    1093 // end_index means either reverse_iterator && !end or !reverse_iterator && end
    +
    1094 if (end_index)
    +
    1095 {
    +
    1096 if (m_index.size() != size_type(0))
    +
    1097 {
    +
    1098 auto iter_begin = (L == layout_type::row_major) ? m_index.begin() : m_index.begin() + 1;
    +
    1099 auto iter_end = (L == layout_type::row_major) ? m_index.end() - 1 : m_index.end();
    +
    1100 std::transform(
    +
    1101 iter_begin,
    +
    1102 iter_end,
    +
    1103 iter_begin,
    +
    1104 [](const auto& v)
    +
    1105 {
    +
    1106 return v - 1;
    +
    1107 }
    +
    1108 );
    +
    1109 }
    +
    1110 m_linear_index = difference_type(std::accumulate(
    +
    1111 this->shape().cbegin(),
    +
    1112 this->shape().cend(),
    +
    1113 size_type(1),
    +
    1114 std::multiplies<size_type>()
    +
    1115 ));
    +
    1116 }
    +
    1117 }
    +
    1118
    +
    1119 template <class St, class S, layout_type L>
    +
    1120 inline auto xiterator<St, S, L>::operator++() -> self_type&
    +
    1121 {
    +
    1122 stepper_tools<L>::increment_stepper(m_st, m_index, this->shape());
    +
    1123 ++m_linear_index;
    +
    1124 return *this;
    +
    1125 }
    +
    1126
    +
    1127 template <class St, class S, layout_type L>
    +
    1128 inline auto xiterator<St, S, L>::operator--() -> self_type&
    +
    1129 {
    +
    1130 stepper_tools<L>::decrement_stepper(m_st, m_index, this->shape());
    +
    1131 --m_linear_index;
    +
    1132 return *this;
    +
    1133 }
    +
    1134
    +
    1135 template <class St, class S, layout_type L>
    +
    1136 inline auto xiterator<St, S, L>::operator+=(difference_type n) -> self_type&
    +
    1137 {
    +
    1138 if (n >= 0)
    +
    1139 {
    +
    1140 stepper_tools<L>::increment_stepper(m_st, m_index, this->shape(), static_cast<size_type>(n));
    +
    1141 }
    +
    1142 else
    +
    1143 {
    +
    1144 stepper_tools<L>::decrement_stepper(m_st, m_index, this->shape(), static_cast<size_type>(-n));
    +
    1145 }
    +
    1146 m_linear_index += n;
    +
    1147 return *this;
    +
    1148 }
    +
    1149
    +
    1150 template <class St, class S, layout_type L>
    +
    1151 inline auto xiterator<St, S, L>::operator-=(difference_type n) -> self_type&
    +
    1152 {
    +
    1153 if (n >= 0)
    +
    1154 {
    +
    1155 stepper_tools<L>::decrement_stepper(m_st, m_index, this->shape(), static_cast<size_type>(n));
    +
    1156 }
    +
    1157 else
    +
    1158 {
    +
    1159 stepper_tools<L>::increment_stepper(m_st, m_index, this->shape(), static_cast<size_type>(-n));
    +
    1160 }
    +
    1161 m_linear_index -= n;
    +
    1162 return *this;
    +
    1163 }
    +
    1164
    +
    1165 template <class St, class S, layout_type L>
    +
    1166 inline auto xiterator<St, S, L>::operator-(const self_type& rhs) const -> difference_type
    +
    1167 {
    +
    1168 return m_linear_index - rhs.m_linear_index;
    +
    1169 }
    +
    1170
    +
    1171 template <class St, class S, layout_type L>
    +
    1172 inline auto xiterator<St, S, L>::operator*() const -> reference
    +
    1173 {
    +
    1174 return *m_st;
    +
    1175 }
    +
    1176
    +
    1177 template <class St, class S, layout_type L>
    +
    1178 inline auto xiterator<St, S, L>::operator->() const -> pointer
    +
    1179 {
    +
    1180 return &(*m_st);
    +
    1181 }
    +
    1182
    +
    1183 template <class St, class S, layout_type L>
    +
    1184 inline bool xiterator<St, S, L>::equal(const xiterator& rhs) const
    +
    1185 {
    +
    1186 XTENSOR_ASSERT(this->shape() == rhs.shape());
    +
    1187 return m_linear_index == rhs.m_linear_index;
    +
    1188 }
    +
    1189
    +
    1190 template <class St, class S, layout_type L>
    +
    1191 inline bool xiterator<St, S, L>::less_than(const xiterator& rhs) const
    +
    1192 {
    +
    1193 XTENSOR_ASSERT(this->shape() == rhs.shape());
    +
    1194 return m_linear_index < rhs.m_linear_index;
    +
    1195 }
    +
    1196
    +
    1197 template <class St, class S, layout_type L>
    +
    1198 inline bool operator==(const xiterator<St, S, L>& lhs, const xiterator<St, S, L>& rhs)
    +
    1199 {
    +
    1200 return lhs.equal(rhs);
    +
    1201 }
    +
    1202
    +
    1203 template <class St, class S, layout_type L>
    +
    1204 bool operator<(const xiterator<St, S, L>& lhs, const xiterator<St, S, L>& rhs)
    +
    1205 {
    +
    1206 return lhs.less_than(rhs);
    +
    1207 }
    +
    1208
    +
    1209 /************************************
    +
    1210 * xbounded_iterator implementation *
    +
    1211 ************************************/
    +
    1212
    +
    1213 template <class It, class BIt>
    +
    1214 xbounded_iterator<It, BIt>::xbounded_iterator(It it, BIt bound_it)
    +
    1215 : m_it(it)
    +
    1216 , m_bound_it(bound_it)
    +
    1217 {
    +
    1218 }
    +
    1219
    +
    1220 template <class It, class BIt>
    +
    1221 inline auto xbounded_iterator<It, BIt>::operator++() -> self_type&
    +
    1222 {
    +
    1223 ++m_it;
    +
    1224 ++m_bound_it;
    +
    1225 return *this;
    +
    1226 }
    +
    1227
    +
    1228 template <class It, class BIt>
    +
    1229 inline auto xbounded_iterator<It, BIt>::operator--() -> self_type&
    +
    1230 {
    +
    1231 --m_it;
    +
    1232 --m_bound_it;
    +
    1233 return *this;
    +
    1234 }
    +
    1235
    +
    1236 template <class It, class BIt>
    +
    1237 inline auto xbounded_iterator<It, BIt>::operator+=(difference_type n) -> self_type&
    +
    1238 {
    +
    1239 m_it += n;
    +
    1240 m_bound_it += n;
    +
    1241 return *this;
    +
    1242 }
    +
    1243
    +
    1244 template <class It, class BIt>
    +
    1245 inline auto xbounded_iterator<It, BIt>::operator-=(difference_type n) -> self_type&
    +
    1246 {
    +
    1247 m_it -= n;
    +
    1248 m_bound_it -= n;
    +
    1249 return *this;
    +
    1250 }
    +
    1251
    +
    1252 template <class It, class BIt>
    +
    1253 inline auto xbounded_iterator<It, BIt>::operator-(const self_type& rhs) const -> difference_type
    +
    1254 {
    +
    1255 return m_it - rhs.m_it;
    +
    1256 }
    +
    1257
    +
    1258 template <class It, class BIt>
    +
    1259 inline auto xbounded_iterator<It, BIt>::operator*() const -> value_type
    +
    1260 {
    +
    1261 using type = decltype(*m_bound_it);
    +
    1262 return (static_cast<type>(*m_it) < *m_bound_it) ? *m_it : static_cast<value_type>((*m_bound_it) - 1);
    +
    1263 }
    +
    1264
    +
    1265 template <class It, class BIt>
    +
    1266 inline bool xbounded_iterator<It, BIt>::equal(const self_type& rhs) const
    +
    1267 {
    +
    1268 return m_it == rhs.m_it && m_bound_it == rhs.m_bound_it;
    +
    1269 }
    +
    1270
    +
    1271 template <class It, class BIt>
    +
    1272 inline bool xbounded_iterator<It, BIt>::less_than(const self_type& rhs) const
    +
    1273 {
    +
    1274 return m_it < rhs.m_it;
    +
    1275 }
    +
    1276
    +
    1277 template <class It, class BIt>
    +
    1278 inline bool operator==(const xbounded_iterator<It, BIt>& lhs, const xbounded_iterator<It, BIt>& rhs)
    +
    1279 {
    +
    1280 return lhs.equal(rhs);
    +
    1281 }
    +
    1282
    +
    1283 template <class It, class BIt>
    +
    1284 inline bool operator<(const xbounded_iterator<It, BIt>& lhs, const xbounded_iterator<It, BIt>& rhs)
    +
    1285 {
    +
    1286 return lhs.less_than(rhs);
    +
    1287 }
    +
    1288}
    +
    1289
    +
    1290#endif
    + + + + + +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + +
    +
    + + + + diff --git a/xjson_8hpp_source.html b/xjson_8hpp_source.html new file mode 100644 index 000000000..d1bd8c53c --- /dev/null +++ b/xjson_8hpp_source.html @@ -0,0 +1,287 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io/xjson.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xjson.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_JSON_HPP
    +
    11#define XTENSOR_JSON_HPP
    +
    12
    +
    13#include <cstddef>
    +
    14#include <stdexcept>
    +
    15#include <utility>
    +
    16
    +
    17#include <nlohmann/json.hpp>
    +
    18
    +
    19#include "../core/xtensor_config.hpp"
    +
    20#include "../views/xstrided_view.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24 /*************************************
    +
    25 * to_json and from_json declaration *
    +
    26 *************************************/
    +
    27
    +
    28 template <template <typename U, typename V, typename... Args> class M, class E>
    +
    29 enable_xexpression<E> to_json(nlohmann::basic_json<M>&, const E&);
    +
    30
    +
    31 template <template <typename U, typename V, typename... Args> class M, class E>
    +
    32 enable_xcontainer_semantics<E> from_json(const nlohmann::basic_json<M>&, E&);
    +
    33
    +
    35 template <template <typename U, typename V, typename... Args> class M, class E>
    +
    36 enable_xview_semantics<E> from_json(const nlohmann::basic_json<M>&, E&);
    +
    37
    +
    39
    +
    40 /****************************************
    +
    41 * to_json and from_json implementation *
    +
    42 ****************************************/
    +
    43
    +
    44 namespace detail
    +
    45 {
    +
    46 template <template <typename U, typename V, typename... Args> class M, class D>
    +
    47 void to_json_impl(nlohmann::basic_json<M>& j, const xexpression<D>& e, xstrided_slice_vector& slices)
    +
    48 {
    +
    49 const auto view = strided_view(e.derived_cast(), slices);
    +
    50 if (view.dimension() == 0)
    +
    51 {
    +
    52 j = view();
    +
    53 }
    +
    54 else
    +
    55 {
    +
    56 j = nlohmann::basic_json<M>::array();
    +
    57 using size_type = typename D::size_type;
    +
    58 size_type nrows = view.shape()[0];
    +
    59 for (size_type i = 0; i != nrows; ++i)
    +
    60 {
    +
    61 slices.push_back(static_cast<std::ptrdiff_t>(i));
    +
    62 nlohmann::basic_json<M> k;
    +
    63 to_json_impl(k, e, slices);
    +
    64 j.push_back(std::move(k));
    +
    65 slices.pop_back();
    +
    66 }
    +
    67 }
    +
    68 }
    +
    69
    +
    70 template <template <typename U, typename V, typename... Args> class M, class D>
    +
    71 inline void
    +
    72 from_json_impl(const nlohmann::basic_json<M>& j, xexpression<D>& e, xstrided_slice_vector& slices)
    +
    73 {
    +
    74 auto view = strided_view(e.derived_cast(), slices);
    +
    75
    +
    76 if (view.dimension() == 0)
    +
    77 {
    +
    78 view() = j.template get<std::remove_reference_t<decltype(view())>>();
    +
    79 }
    +
    80 else
    +
    81 {
    +
    82 using size_type = typename D::size_type;
    +
    83 size_type nrows = view.shape()[0];
    +
    84 for (size_type i = 0; i != nrows; ++i)
    +
    85 {
    +
    86 slices.push_back(static_cast<std::ptrdiff_t>(i));
    +
    87 const nlohmann::basic_json<M>& k = j[i];
    +
    88 from_json_impl(k, e, slices);
    +
    89 slices.pop_back();
    +
    90 }
    +
    91 }
    +
    92 }
    +
    93
    +
    94 template <template <typename U, typename V, typename... Args> class M>
    +
    95 inline unsigned int json_dimension(const nlohmann::basic_json<M>& j)
    +
    96 {
    +
    97 if (j.is_array() && j.size())
    +
    98 {
    +
    99 return 1 + json_dimension(j[0]);
    +
    100 }
    +
    101 else
    +
    102 {
    +
    103 return 0;
    +
    104 }
    +
    105 }
    +
    106
    +
    107 template <template <typename U, typename V, typename... Args> class M, class S>
    +
    108 inline void json_shape(const nlohmann::basic_json<M>& j, S& s, std::size_t pos = 0)
    +
    109 {
    +
    110 if (j.is_array())
    +
    111 {
    +
    112 auto size = j.size();
    +
    113 s[pos] = size;
    +
    114 if (size)
    +
    115 {
    +
    116 json_shape(j[0], s, pos + 1);
    +
    117 }
    +
    118 }
    +
    119 }
    +
    120 }
    +
    121
    +
    132 template <template <typename U, typename V, typename... Args> class M, class E>
    +
    +
    133 inline enable_xexpression<E> to_json(nlohmann::basic_json<M>& j, const E& e)
    +
    134 {
    +
    135 auto sv = xstrided_slice_vector();
    +
    136 detail::to_json_impl(j, e, sv);
    +
    137 }
    +
    +
    138
    +
    155 template <template <typename U, typename V, typename... Args> class M, class E>
    +
    +
    156 inline enable_xcontainer_semantics<E> from_json(const nlohmann::basic_json<M>& j, E& e)
    +
    157 {
    +
    158 auto dimension = detail::json_dimension(j);
    +
    159 auto s = xtl::make_sequence<typename E::shape_type>(dimension);
    +
    160 detail::json_shape(j, s);
    +
    161
    +
    162 // In the case of a container, we resize the container.
    +
    163 e.resize(s);
    +
    164
    +
    165 auto sv = xstrided_slice_vector();
    +
    166 detail::from_json_impl(j, e, sv);
    +
    167 }
    +
    +
    168
    +
    170 template <template <typename U, typename V, typename... Args> class M, class E>
    +
    171 inline enable_xview_semantics<E> from_json(const nlohmann::basic_json<M>& j, E& e)
    +
    172 {
    +
    173 typename E::shape_type s;
    +
    174 detail::json_shape(j, s);
    +
    175
    +
    176 // In the case of a view, we check the size of the container.
    +
    177 if (!std::equal(s.cbegin(), s.cend(), e.shape().cbegin()))
    +
    178 {
    +
    179 XTENSOR_THROW(std::runtime_error, "Shape mismatch when deserializing JSON to view");
    +
    180 }
    +
    181
    +
    182 auto sv = xstrided_slice_vector();
    +
    183 detail::from_json_impl(j, e, sv);
    +
    184 }
    +
    185
    +
    187}
    +
    188
    +
    189#endif
    +
    standard mathematical functions for xexpressions
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    enable_xcontainer_semantics< E > from_json(const nlohmann::basic_json< M > &, E &)
    JSON deserialization of a xtensor expression with a container or a view semantics.
    Definition xjson.hpp:156
    +
    enable_xexpression< E > to_json(nlohmann::basic_json< M > &, const E &)
    JSON serialization of an xtensor expression.
    Definition xjson.hpp:133
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    +
    +
    + + + + diff --git a/xlayout_8hpp_source.html b/xlayout_8hpp_source.html new file mode 100644 index 000000000..1c1ea1e72 --- /dev/null +++ b/xlayout_8hpp_source.html @@ -0,0 +1,213 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xlayout.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xlayout.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_LAYOUT_HPP
    +
    11#define XTENSOR_LAYOUT_HPP
    +
    12
    +
    13#include <type_traits>
    +
    14
    +
    15// Do not include anything else here.
    +
    16// xlayout.hpp is included in xtensor_forward.hpp
    +
    17// and we don't want to bring other headers to it.
    +
    18#include "../core/xtensor_config.hpp"
    +
    19
    +
    20namespace xt
    +
    21{
    +
    +
    23 enum class layout_type
    +
    24 {
    +
    26 dynamic = 0x00,
    +
    28 any = 0xFF,
    +
    30 row_major = 0x01,
    + +
    33 };
    +
    +
    34
    +
    51 template <class... Args>
    +
    52 constexpr layout_type compute_layout(Args... args) noexcept;
    +
    53
    +
    54 constexpr layout_type default_assignable_layout(layout_type l) noexcept;
    +
    55
    +
    56 constexpr layout_type layout_remove_any(const layout_type layout) noexcept;
    +
    57
    +
    58 /******************
    +
    59 * Implementation *
    +
    60 ******************/
    +
    61
    +
    62 namespace detail
    +
    63 {
    +
    64 constexpr layout_type compute_layout_impl() noexcept
    +
    65 {
    +
    66 return layout_type::any;
    +
    67 }
    +
    68
    +
    69 constexpr layout_type compute_layout_impl(layout_type l) noexcept
    +
    70 {
    +
    71 return l;
    +
    72 }
    +
    73
    +
    74 constexpr layout_type compute_layout_impl(layout_type lhs, layout_type rhs) noexcept
    +
    75 {
    +
    76 using type = std::underlying_type_t<layout_type>;
    +
    77 return layout_type(static_cast<type>(lhs) & static_cast<type>(rhs));
    +
    78 }
    +
    79
    +
    80 template <class... Args>
    +
    81 constexpr layout_type compute_layout_impl(layout_type lhs, Args... args) noexcept
    +
    82 {
    +
    83 return compute_layout_impl(lhs, compute_layout_impl(args...));
    +
    84 }
    +
    85 }
    +
    86
    +
    87 template <class... Args>
    +
    +
    88 constexpr layout_type compute_layout(Args... args) noexcept
    +
    89 {
    +
    90 return detail::compute_layout_impl(args...);
    +
    91 }
    +
    +
    92
    +
    93 constexpr layout_type default_assignable_layout(layout_type l) noexcept
    +
    94 {
    +
    95 return (l == layout_type::row_major || l == layout_type::column_major) ? l : XTENSOR_DEFAULT_LAYOUT;
    +
    96 }
    +
    97
    +
    98 constexpr layout_type layout_remove_any(const layout_type layout) noexcept
    +
    99 {
    +
    100 return layout == layout_type::any ? XTENSOR_DEFAULT_LAYOUT : layout;
    +
    101 }
    +
    102}
    +
    103
    +
    104#endif
    +
    bool any(E &&e)
    Any.
    +
    standard mathematical functions for xexpressions
    +
    constexpr layout_type compute_layout(Args... args) noexcept
    Implementation of the following logical table:
    Definition xlayout.hpp:88
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + +
    +
    + + + + diff --git a/xmanipulation_8hpp_source.html b/xmanipulation_8hpp_source.html new file mode 100644 index 000000000..07cd93840 --- /dev/null +++ b/xmanipulation_8hpp_source.html @@ -0,0 +1,1098 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xmanipulation.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xmanipulation.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_MANIPULATION_HPP
    +
    11#define XTENSOR_MANIPULATION_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <utility>
    +
    15
    +
    16#include <xtl/xcompare.hpp>
    +
    17#include <xtl/xsequence.hpp>
    +
    18
    +
    19#include "../core/xtensor_config.hpp"
    +
    20#include "../generators/xbuilder.hpp"
    +
    21#include "../utils/xexception.hpp"
    +
    22#include "../utils/xutils.hpp"
    +
    23#include "../views/xrepeat.hpp"
    +
    24#include "../views/xstrided_view.hpp"
    +
    25#include "xtl_concepts.hpp"
    +
    26
    +
    27namespace xt
    +
    28{
    +
    32
    +
    33 namespace check_policy
    +
    34 {
    +
    +
    35 struct none
    +
    36 {
    +
    37 };
    +
    +
    38
    +
    +
    39 struct full
    +
    40 {
    +
    41 };
    +
    +
    42 }
    +
    43
    +
    44 template <class E>
    +
    45 auto transpose(E&& e) noexcept;
    +
    46
    +
    47 template <class E, class S, class Tag = check_policy::none>
    +
    48 auto transpose(E&& e, S&& permutation, Tag check_policy = Tag());
    +
    49
    +
    50 template <class E>
    +
    51 auto swapaxes(E&& e, std::ptrdiff_t axis1, std::ptrdiff_t axis2);
    +
    52
    +
    53 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E>
    +
    54 auto ravel(E&& e);
    +
    55
    +
    56 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E>
    +
    57 auto flatten(E&& e);
    +
    58
    +
    59 template <layout_type L, class T>
    +
    60 auto flatnonzero(const T& arr);
    +
    61
    +
    62 template <class E>
    +
    63 auto trim_zeros(E&& e, const std::string& direction = "fb");
    +
    64
    +
    65 template <class E>
    +
    66 auto squeeze(E&& e);
    +
    67
    +
    68 template <class E, xtl::non_integral_concept S, class Tag = check_policy::none>
    +
    69 auto squeeze(E&& e, S&& axis, Tag check_policy = Tag());
    +
    70
    +
    71 template <class E>
    +
    72 auto expand_dims(E&& e, std::size_t axis);
    +
    73
    +
    74 template <std::size_t N, class E>
    +
    75 auto atleast_Nd(E&& e);
    +
    76
    +
    77 template <class E>
    +
    78 auto atleast_1d(E&& e);
    +
    79
    +
    80 template <class E>
    +
    81 auto atleast_2d(E&& e);
    +
    82
    +
    83 template <class E>
    +
    84 auto atleast_3d(E&& e);
    +
    85
    +
    86 template <class E>
    +
    87 auto split(E& e, std::size_t n, std::size_t axis = 0);
    +
    88
    +
    89 template <class E>
    +
    90 auto hsplit(E& e, std::size_t n);
    +
    91
    +
    92 template <class E>
    +
    93 auto vsplit(E& e, std::size_t n);
    +
    94
    +
    95 template <class E>
    +
    96 auto flip(E&& e);
    +
    97
    +
    98 template <class E>
    +
    99 auto flip(E&& e, std::size_t axis);
    +
    100
    +
    101 template <std::ptrdiff_t N = 1, class E>
    +
    102 auto rot90(E&& e, const std::array<std::ptrdiff_t, 2>& axes = {0, 1});
    +
    103
    +
    104 template <class E>
    +
    105 auto roll(E&& e, std::ptrdiff_t shift);
    +
    106
    +
    107 template <class E>
    +
    108 auto roll(E&& e, std::ptrdiff_t shift, std::ptrdiff_t axis);
    +
    109
    +
    110 template <class E>
    +
    111 auto repeat(E&& e, std::size_t repeats, std::size_t axis);
    +
    112
    +
    113 template <class E>
    +
    114 auto repeat(E&& e, const std::vector<std::size_t>& repeats, std::size_t axis);
    +
    115
    +
    116 template <class E>
    +
    117 auto repeat(E&& e, std::vector<std::size_t>&& repeats, std::size_t axis);
    +
    118
    +
    119 /****************************
    +
    120 * transpose implementation *
    +
    121 ****************************/
    +
    122
    +
    123 namespace detail
    +
    124 {
    +
    125 inline layout_type transpose_layout_noexcept(layout_type l) noexcept
    +
    126 {
    +
    127 layout_type result = l;
    +
    128 if (l == layout_type::row_major)
    +
    129 {
    + +
    131 }
    +
    132 else if (l == layout_type::column_major)
    +
    133 {
    +
    134 result = layout_type::row_major;
    +
    135 }
    +
    136 return result;
    +
    137 }
    +
    138
    +
    139 inline layout_type transpose_layout(layout_type l)
    +
    140 {
    + +
    142 {
    +
    143 XTENSOR_THROW(transpose_error, "cannot compute transposed layout of dynamic layout");
    +
    144 }
    +
    145 return transpose_layout_noexcept(l);
    +
    146 }
    +
    147
    +
    148 template <class E, class S>
    +
    149 inline auto transpose_impl(E&& e, S&& permutation, check_policy::none)
    +
    150 {
    +
    151 if (std::size(permutation) != e.dimension())
    +
    152 {
    +
    153 XTENSOR_THROW(transpose_error, "Permutation does not have the same size as shape");
    +
    154 }
    +
    155
    +
    156 // permute stride and shape
    +
    157 using shape_type = xindex_type_t<typename std::decay_t<E>::shape_type>;
    +
    158 shape_type temp_shape;
    +
    159 resize_container(temp_shape, e.shape().size());
    +
    160
    +
    161 using strides_type = get_strides_t<shape_type>;
    +
    162 strides_type temp_strides;
    +
    163 resize_container(temp_strides, e.strides().size());
    +
    164
    +
    165 using size_type = typename std::decay_t<E>::size_type;
    +
    166 for (std::size_t i = 0; i < e.shape().size(); ++i)
    +
    167 {
    +
    168 if (std::size_t(permutation[i]) >= e.dimension())
    +
    169 {
    +
    170 XTENSOR_THROW(transpose_error, "Permutation contains wrong axis");
    +
    171 }
    +
    172 size_type perm = static_cast<size_type>(permutation[i]);
    +
    173 temp_shape[i] = e.shape()[perm];
    +
    174 temp_strides[i] = e.strides()[perm];
    +
    175 }
    +
    176
    + +
    178 if (std::is_sorted(std::begin(permutation), std::end(permutation)))
    +
    179 {
    +
    180 // keep old layout
    +
    181 new_layout = e.layout();
    +
    182 }
    +
    183 else if (std::is_sorted(std::begin(permutation), std::end(permutation), std::greater<>()))
    +
    184 {
    +
    185 new_layout = transpose_layout_noexcept(e.layout());
    +
    186 }
    +
    187
    +
    188 return strided_view(
    +
    189 std::forward<E>(e),
    +
    190 std::move(temp_shape),
    +
    191 std::move(temp_strides),
    +
    192 get_offset<XTENSOR_DEFAULT_LAYOUT>(e),
    +
    193 new_layout
    +
    194 );
    +
    195 }
    +
    196
    +
    197 template <class E, class S>
    +
    198 inline auto transpose_impl(E&& e, S&& permutation, check_policy::full)
    +
    199 {
    +
    200 // check if axis appears twice in permutation
    +
    201 for (std::size_t i = 0; i < std::size(permutation); ++i)
    +
    202 {
    +
    203 for (std::size_t j = i + 1; j < std::size(permutation); ++j)
    +
    204 {
    +
    205 if (permutation[i] == permutation[j])
    +
    206 {
    +
    207 XTENSOR_THROW(transpose_error, "Permutation contains axis more than once");
    +
    208 }
    +
    209 }
    +
    210 }
    +
    211 return transpose_impl(std::forward<E>(e), std::forward<S>(permutation), check_policy::none());
    +
    212 }
    +
    213
    +
    214 template <class E, class S, class X>
    +
    215 inline void compute_transposed_strides(E&& e, const S& shape, X& strides)
    +
    216 {
    +
    217 if constexpr (has_data_interface<std::decay_t<E>>::value)
    +
    218 {
    +
    219 std::copy(e.strides().crbegin(), e.strides().crend(), strides.begin());
    +
    220 }
    +
    221 else
    +
    222 {
    +
    223 // In the case where E does not have a data interface, the transposition
    +
    224 // makes use of a flat storage adaptor that has layout XTENSOR_DEFAULT_TRAVERSAL
    +
    225 // which should be the one inverted.
    +
    226 layout_type l = transpose_layout(XTENSOR_DEFAULT_TRAVERSAL);
    +
    227 compute_strides(shape, l, strides);
    +
    228 }
    +
    229 }
    +
    230 }
    +
    231
    +
    238 template <class E>
    +
    +
    239 inline auto transpose(E&& e) noexcept
    +
    240 {
    +
    241 using shape_type = xindex_type_t<typename std::decay_t<E>::shape_type>;
    +
    242 shape_type shape;
    +
    243 resize_container(shape, e.shape().size());
    +
    244 std::copy(e.shape().crbegin(), e.shape().crend(), shape.begin());
    +
    245
    +
    246 get_strides_t<shape_type> strides;
    +
    247 resize_container(strides, e.shape().size());
    +
    248 detail::compute_transposed_strides(e, shape, strides);
    +
    249
    +
    250 layout_type new_layout = detail::transpose_layout_noexcept(e.layout());
    +
    251
    +
    252 return strided_view(
    +
    253 std::forward<E>(e),
    +
    254 std::move(shape),
    +
    255 std::move(strides),
    +
    256 detail::get_offset<XTENSOR_DEFAULT_TRAVERSAL>(e),
    +
    257 new_layout
    +
    258 );
    +
    259 }
    +
    +
    260
    +
    270 template <class E, class S, class Tag>
    +
    +
    271 inline auto transpose(E&& e, S&& permutation, Tag check_policy)
    +
    272 {
    +
    273 return detail::transpose_impl(std::forward<E>(e), std::forward<S>(permutation), check_policy);
    +
    274 }
    +
    +
    275
    +
    277 template <class E, class I, std::size_t N, class Tag = check_policy::none>
    +
    278 inline auto transpose(E&& e, const I (&permutation)[N], Tag check_policy = Tag())
    +
    279 {
    +
    280 return detail::transpose_impl(std::forward<E>(e), permutation, check_policy);
    +
    281 }
    +
    282
    +
    284
    +
    285 /*****************************
    +
    286 * swapaxes implementation *
    +
    287 *****************************/
    +
    288
    +
    289 namespace detail
    +
    290 {
    +
    291 template <class S>
    +
    292 inline S swapaxes_perm(std::size_t dim, std::ptrdiff_t axis1, std::ptrdiff_t axis2)
    +
    293 {
    +
    294 const std::size_t ax1 = normalize_axis(dim, axis1);
    +
    295 const std::size_t ax2 = normalize_axis(dim, axis2);
    +
    296 auto perm = xtl::make_sequence<S>(dim, 0);
    +
    297 using id_t = typename S::value_type;
    +
    298 std::iota(perm.begin(), perm.end(), id_t(0));
    +
    299 perm[ax1] = ax2;
    +
    300 perm[ax2] = ax1;
    +
    301 return perm;
    +
    302 }
    +
    303 }
    +
    304
    +
    315 template <class E>
    +
    +
    316 inline auto swapaxes(E&& e, std::ptrdiff_t axis1, std::ptrdiff_t axis2)
    +
    317 {
    +
    318 const auto dim = e.dimension();
    +
    319 check_axis_in_dim(axis1, dim, "Parameter axis1");
    +
    320 check_axis_in_dim(axis2, dim, "Parameter axis2");
    +
    321
    +
    322 using strides_t = get_strides_t<typename std::decay_t<E>::shape_type>;
    +
    323 return transpose(std::forward<E>(e), detail::swapaxes_perm<strides_t>(dim, axis1, axis2));
    +
    324 }
    +
    +
    325
    +
    326 /*****************************
    +
    327 * moveaxis implementation *
    +
    328 *****************************/
    +
    329
    +
    330 namespace detail
    +
    331 {
    +
    332 template <class S>
    +
    333 inline S moveaxis_perm(std::size_t dim, std::ptrdiff_t src, std::ptrdiff_t dest)
    +
    334 {
    +
    335 using id_t = typename S::value_type;
    +
    336
    +
    337 const std::size_t src_norm = normalize_axis(dim, src);
    +
    338 const std::size_t dest_norm = normalize_axis(dim, dest);
    +
    339
    +
    340 // Initializing to src_norm handles case where `dest == -1` and the loop
    +
    341 // does not go check `perm_idx == dest_norm` a `dim+1`th time.
    +
    342 auto perm = xtl::make_sequence<S>(dim, src_norm);
    +
    343 id_t perm_idx = 0;
    +
    344 for (id_t i = 0; xtl::cmp_less(i, dim); ++i)
    +
    345 {
    +
    346 if (xtl::cmp_equal(perm_idx, dest_norm))
    +
    347 {
    +
    348 perm[perm_idx] = src_norm;
    +
    349 ++perm_idx;
    +
    350 }
    +
    351 if (xtl::cmp_not_equal(i, src_norm))
    +
    352 {
    +
    353 perm[perm_idx] = i;
    +
    354 ++perm_idx;
    +
    355 }
    +
    356 }
    +
    357 return perm;
    +
    358 }
    +
    359 }
    +
    360
    +
    369 template <class E>
    +
    +
    370 inline auto moveaxis(E&& e, std::ptrdiff_t src, std::ptrdiff_t dest)
    +
    371 {
    +
    372 const auto dim = e.dimension();
    +
    373 check_axis_in_dim(src, dim, "Parameter src");
    +
    374 check_axis_in_dim(dest, dim, "Parameter dest");
    +
    375
    +
    376 using strides_t = get_strides_t<typename std::decay_t<E>::shape_type>;
    +
    377 return xt::transpose(std::forward<E>(e), detail::moveaxis_perm<strides_t>(e.dimension(), src, dest));
    +
    378 }
    +
    +
    379
    +
    380 /************************************
    +
    381 * ravel and flatten implementation *
    +
    382 ************************************/
    +
    383
    +
    384 namespace detail
    +
    385 {
    +
    386 template <class E, layout_type L>
    +
    387 struct expression_iterator_getter
    +
    388 {
    +
    389 using iterator = decltype(std::declval<E>().template begin<L>());
    +
    390 using const_iterator = decltype(std::declval<E>().template cbegin<L>());
    +
    391
    +
    392 inline static iterator begin(E& e)
    +
    393 {
    +
    394 return e.template begin<L>();
    +
    395 }
    +
    396
    +
    397 inline static const_iterator cbegin(E& e)
    +
    398 {
    +
    399 return e.template cbegin<L>();
    +
    400 }
    +
    401
    +
    402 inline static auto size(E& e)
    +
    403 {
    +
    404 return e.size();
    +
    405 }
    +
    406 };
    +
    407 }
    +
    408
    +
    418 template <layout_type L, class E>
    +
    +
    419 inline auto ravel(E&& e)
    +
    420 {
    +
    421 using iterator = decltype(e.template begin<L>());
    +
    422 using iterator_getter = detail::expression_iterator_getter<std::remove_reference_t<E>, L>;
    +
    423 auto size = e.size();
    +
    424 auto adaptor = make_xiterator_adaptor(std::forward<E>(e), iterator_getter());
    +
    425 constexpr layout_type layout = std::is_pointer<iterator>::value ? L : layout_type::dynamic;
    +
    426 using type = xtensor_view<decltype(adaptor), 1, layout, extension::get_expression_tag_t<E>>;
    +
    427 return type(std::move(adaptor), {size});
    +
    428 }
    +
    +
    429
    +
    443 template <layout_type L, class E>
    +
    +
    444 inline auto flatten(E&& e)
    +
    445 {
    +
    446 return ravel<L>(std::forward<E>(e));
    +
    447 }
    +
    +
    448
    +
    457 template <layout_type L, class T>
    +
    +
    458 inline auto flatnonzero(const T& arr)
    +
    459 {
    +
    460 return nonzero(ravel<L>(arr))[0];
    +
    461 }
    +
    +
    462
    +
    463 /*****************************
    +
    464 * trim_zeros implementation *
    +
    465 *****************************/
    +
    466
    +
    476 template <class E>
    +
    +
    477 inline auto trim_zeros(E&& e, const std::string& direction)
    +
    478 {
    +
    479 XTENSOR_ASSERT_MSG(e.dimension() == 1, "Dimension for trim_zeros has to be 1.");
    +
    480
    +
    481 std::ptrdiff_t begin = 0, end = static_cast<std::ptrdiff_t>(e.size());
    +
    482
    +
    483 auto find_fun = [](const auto& i)
    +
    484 {
    +
    485 return i != 0;
    +
    486 };
    +
    487
    +
    488 if (direction.find("f") != std::string::npos)
    +
    489 {
    +
    490 begin = std::find_if(e.cbegin(), e.cend(), find_fun) - e.cbegin();
    +
    491 }
    +
    492
    +
    493 if (direction.find("b") != std::string::npos && begin != end)
    +
    494 {
    +
    495 end -= std::find_if(e.crbegin(), e.crend(), find_fun) - e.crbegin();
    +
    496 }
    +
    497
    +
    498 return strided_view(std::forward<E>(e), {range(begin, end)});
    +
    499 }
    +
    +
    500
    +
    501 /**************************
    +
    502 * squeeze implementation *
    +
    503 **************************/
    +
    504
    +
    514 template <class E>
    +
    +
    515 inline auto squeeze(E&& e)
    +
    516 {
    +
    517 dynamic_shape<std::size_t> new_shape;
    +
    518 dynamic_shape<std::ptrdiff_t> new_strides;
    +
    519 std::copy_if(
    +
    520 e.shape().cbegin(),
    +
    521 e.shape().cend(),
    +
    522 std::back_inserter(new_shape),
    +
    523 [](std::size_t i)
    +
    524 {
    +
    525 return i != 1;
    +
    526 }
    +
    527 );
    +
    528 decltype(auto) old_strides = detail::get_strides<XTENSOR_DEFAULT_LAYOUT>(e);
    +
    529 std::copy_if(
    +
    530 old_strides.cbegin(),
    +
    531 old_strides.cend(),
    +
    532 std::back_inserter(new_strides),
    +
    533 [](std::ptrdiff_t i)
    +
    534 {
    +
    535 return i != 0;
    +
    536 }
    +
    537 );
    +
    538
    +
    539 return strided_view(std::forward<E>(e), std::move(new_shape), std::move(new_strides), 0, e.layout());
    +
    540 }
    +
    +
    541
    +
    542 namespace detail
    +
    543 {
    +
    544 template <class E, class S>
    +
    545 inline auto squeeze_impl(E&& e, S&& axis, check_policy::none)
    +
    546 {
    +
    547 std::size_t new_dim = e.dimension() - axis.size();
    +
    548 dynamic_shape<std::size_t> new_shape(new_dim);
    +
    549 dynamic_shape<std::ptrdiff_t> new_strides(new_dim);
    +
    550
    +
    551 decltype(auto) old_strides = detail::get_strides<XTENSOR_DEFAULT_LAYOUT>(e);
    +
    552
    +
    553 for (std::size_t i = 0, ix = 0; i < e.dimension(); ++i)
    +
    554 {
    +
    555 if (axis.cend() == std::find(axis.cbegin(), axis.cend(), i))
    +
    556 {
    +
    557 new_shape[ix] = e.shape()[i];
    +
    558 new_strides[ix++] = old_strides[i];
    +
    559 }
    +
    560 }
    +
    561
    +
    562 return strided_view(std::forward<E>(e), std::move(new_shape), std::move(new_strides), 0, e.layout());
    +
    563 }
    +
    564
    +
    565 template <class E, class S>
    +
    566 inline auto squeeze_impl(E&& e, S&& axis, check_policy::full)
    +
    567 {
    +
    568 for (auto ix : axis)
    +
    569 {
    +
    570 if (static_cast<std::size_t>(ix) > e.dimension())
    +
    571 {
    +
    572 XTENSOR_THROW(std::runtime_error, "Axis argument to squeeze > dimension of expression");
    +
    573 }
    +
    574 if (e.shape()[static_cast<std::size_t>(ix)] != 1)
    +
    575 {
    +
    576 XTENSOR_THROW(std::runtime_error, "Trying to squeeze axis != 1");
    +
    577 }
    +
    578 }
    +
    579 return squeeze_impl(std::forward<E>(e), std::forward<S>(axis), check_policy::none());
    +
    580 }
    +
    581 }
    +
    582
    +
    593 template <class E, xtl::non_integral_concept S, class Tag>
    +
    +
    594 inline auto squeeze(E&& e, S&& axis, Tag check_policy)
    +
    595 {
    +
    596 return detail::squeeze_impl(std::forward<E>(e), std::forward<S>(axis), check_policy);
    +
    597 }
    +
    +
    598
    +
    600 template <class E, class I, std::size_t N, class Tag = check_policy::none>
    +
    601 inline auto squeeze(E&& e, const I (&axis)[N], Tag check_policy = Tag())
    +
    602 {
    +
    603 using arr_t = std::array<I, N>;
    +
    604 return detail::squeeze_impl(
    +
    605 std::forward<E>(e),
    +
    606 xtl::forward_sequence<arr_t, decltype(axis)>(axis),
    +
    607 check_policy
    +
    608 );
    +
    609 }
    +
    610
    +
    611 template <class E, class Tag = check_policy::none>
    +
    612 inline auto squeeze(E&& e, std::size_t axis, Tag check_policy = Tag())
    +
    613 {
    +
    614 return squeeze(std::forward<E>(e), std::array<std::size_t, 1>{{axis}}, check_policy);
    +
    615 }
    +
    616
    +
    618
    +
    619 /******************************
    +
    620 * expand_dims implementation *
    +
    621 ******************************/
    +
    622
    +
    634 template <class E>
    +
    +
    635 inline auto expand_dims(E&& e, std::size_t axis)
    +
    636 {
    +
    637 xstrided_slice_vector sv(e.dimension() + 1, all());
    +
    638 sv[axis] = newaxis();
    +
    639 return strided_view(std::forward<E>(e), std::move(sv));
    +
    640 }
    +
    +
    641
    +
    642 /*****************************
    +
    643 * atleast_Nd implementation *
    +
    644 *****************************/
    +
    645
    +
    659 template <std::size_t N, class E>
    +
    +
    660 inline auto atleast_Nd(E&& e)
    +
    661 {
    +
    662 xstrided_slice_vector sv((std::max)(e.dimension(), N), all());
    +
    663 if (e.dimension() < N)
    +
    664 {
    +
    665 std::size_t i = 0;
    +
    666 std::size_t end = static_cast<std::size_t>(std::round(double(N - e.dimension()) / double(N)));
    +
    667 for (; i < end; ++i)
    +
    668 {
    +
    669 sv[i] = newaxis();
    +
    670 }
    +
    671 i += e.dimension();
    +
    672 for (; i < N; ++i)
    +
    673 {
    +
    674 sv[i] = newaxis();
    +
    675 }
    +
    676 }
    +
    677 return strided_view(std::forward<E>(e), std::move(sv));
    +
    678 }
    +
    +
    679
    +
    686 template <class E>
    +
    +
    687 inline auto atleast_1d(E&& e)
    +
    688 {
    +
    689 return atleast_Nd<1>(std::forward<E>(e));
    +
    690 }
    +
    +
    691
    +
    698 template <class E>
    +
    +
    699 inline auto atleast_2d(E&& e)
    +
    700 {
    +
    701 return atleast_Nd<2>(std::forward<E>(e));
    +
    702 }
    +
    +
    703
    +
    710 template <class E>
    +
    +
    711 inline auto atleast_3d(E&& e)
    +
    712 {
    +
    713 return atleast_Nd<3>(std::forward<E>(e));
    +
    714 }
    +
    +
    715
    +
    716 /************************
    +
    717 * split implementation *
    +
    718 ************************/
    +
    719
    +
    733 template <class E>
    +
    +
    734 inline auto split(E& e, std::size_t n, std::size_t axis)
    +
    735 {
    +
    736 if (axis >= e.dimension())
    +
    737 {
    +
    738 XTENSOR_THROW(std::runtime_error, "Split along axis > dimension.");
    +
    739 }
    +
    740
    +
    741 std::size_t ax_sz = e.shape()[axis];
    +
    742 xstrided_slice_vector sv(e.dimension(), all());
    +
    743 std::size_t step = ax_sz / n;
    +
    744 std::size_t rest = ax_sz % n;
    +
    745
    +
    746 if (rest)
    +
    747 {
    +
    748 XTENSOR_THROW(std::runtime_error, "Split does not result in equal division.");
    +
    749 }
    +
    750
    +
    751 std::vector<decltype(strided_view(e, sv))> result;
    +
    752 for (std::size_t i = 0; i < n; ++i)
    +
    753 {
    +
    754 sv[axis] = range(i * step, (i + 1) * step);
    +
    755 result.emplace_back(strided_view(e, sv));
    +
    756 }
    +
    757 return result;
    +
    758 }
    +
    +
    759
    +
    769 template <class E>
    +
    +
    770 inline auto hsplit(E& e, std::size_t n)
    +
    771 {
    +
    772 return split(e, n, std::size_t(1));
    +
    773 }
    +
    +
    774
    +
    784 template <class E>
    +
    +
    785 inline auto vsplit(E& e, std::size_t n)
    +
    786 {
    +
    787 return split(e, n, std::size_t(0));
    +
    788 }
    +
    +
    789
    +
    790 /***********************
    +
    791 * flip implementation *
    +
    792 ***********************/
    +
    793
    +
    801 template <class E>
    +
    +
    802 inline auto flip(E&& e)
    +
    803 {
    +
    804 using size_type = typename std::decay_t<E>::size_type;
    +
    805 auto r = flip(e, 0);
    +
    806 for (size_type d = 1; d < e.dimension(); ++d)
    +
    807 {
    +
    808 r = flip(r, d);
    +
    809 }
    +
    810 return r;
    +
    811 }
    +
    +
    812
    +
    824 template <class E>
    +
    +
    825 inline auto flip(E&& e, std::size_t axis)
    +
    826 {
    +
    827 using shape_type = xindex_type_t<typename std::decay_t<E>::shape_type>;
    +
    828
    +
    829 shape_type shape;
    +
    830 resize_container(shape, e.shape().size());
    +
    831 std::copy(e.shape().cbegin(), e.shape().cend(), shape.begin());
    +
    832
    +
    833 get_strides_t<shape_type> strides;
    +
    834 decltype(auto) old_strides = detail::get_strides<XTENSOR_DEFAULT_LAYOUT>(e);
    +
    835 resize_container(strides, old_strides.size());
    +
    836 std::copy(old_strides.cbegin(), old_strides.cend(), strides.begin());
    +
    837
    +
    838 strides[axis] *= -1;
    +
    839 std::size_t offset = static_cast<std::size_t>(
    +
    840 static_cast<std::ptrdiff_t>(e.data_offset())
    +
    841 + old_strides[axis] * (static_cast<std::ptrdiff_t>(e.shape()[axis]) - 1)
    +
    842 );
    +
    843
    +
    844 return strided_view(std::forward<E>(e), std::move(shape), std::move(strides), offset);
    +
    845 }
    +
    +
    846
    +
    847 /************************
    +
    848 * rot90 implementation *
    +
    849 ************************/
    +
    850
    +
    851 namespace detail
    +
    852 {
    +
    853 template <std::ptrdiff_t N>
    +
    854 struct rot90_impl;
    +
    855
    +
    856 template <>
    +
    857 struct rot90_impl<0>
    +
    858 {
    +
    859 template <class E>
    +
    860 inline auto operator()(E&& e, const std::array<std::size_t, 2>& /*axes*/)
    +
    861 {
    +
    862 return std::forward<E>(e);
    +
    863 }
    +
    864 };
    +
    865
    +
    866 template <>
    +
    867 struct rot90_impl<1>
    +
    868 {
    +
    869 template <class E>
    +
    870 inline auto operator()(E&& e, const std::array<std::size_t, 2>& axes)
    +
    871 {
    +
    872 using std::swap;
    +
    873
    +
    874 dynamic_shape<std::ptrdiff_t> axes_list(e.shape().size());
    +
    875 std::iota(axes_list.begin(), axes_list.end(), 0);
    +
    876 swap(axes_list[axes[0]], axes_list[axes[1]]);
    +
    877
    +
    878 return transpose(flip(std::forward<E>(e), axes[1]), std::move(axes_list));
    +
    879 }
    +
    880 };
    +
    881
    +
    882 template <>
    +
    883 struct rot90_impl<2>
    +
    884 {
    +
    885 template <class E>
    +
    886 inline auto operator()(E&& e, const std::array<std::size_t, 2>& axes)
    +
    887 {
    +
    888 return flip(flip(std::forward<E>(e), axes[0]), axes[1]);
    +
    889 }
    +
    890 };
    +
    891
    +
    892 template <>
    +
    893 struct rot90_impl<3>
    +
    894 {
    +
    895 template <class E>
    +
    896 inline auto operator()(E&& e, const std::array<std::size_t, 2>& axes)
    +
    897 {
    +
    898 using std::swap;
    +
    899
    +
    900 dynamic_shape<std::ptrdiff_t> axes_list(e.shape().size());
    +
    901 std::iota(axes_list.begin(), axes_list.end(), 0);
    +
    902 swap(axes_list[axes[0]], axes_list[axes[1]]);
    +
    903
    +
    904 return flip(transpose(std::forward<E>(e), std::move(axes_list)), axes[1]);
    +
    905 }
    +
    906 };
    +
    907 }
    +
    908
    +
    920 template <std::ptrdiff_t N, class E>
    +
    +
    921 inline auto rot90(E&& e, const std::array<std::ptrdiff_t, 2>& axes)
    +
    922 {
    +
    923 auto ndim = static_cast<std::ptrdiff_t>(e.shape().size());
    +
    924
    +
    925 if (axes[0] == axes[1] || std::abs(axes[0] - axes[1]) == ndim)
    +
    926 {
    +
    927 XTENSOR_THROW(std::runtime_error, "Axes must be different");
    +
    928 }
    +
    929
    +
    930 auto norm_axes = forward_normalize<std::array<std::size_t, 2>>(e, axes);
    +
    931 constexpr std::ptrdiff_t n = (4 + (N % 4)) % 4;
    +
    932
    +
    933 return detail::rot90_impl<n>()(std::forward<E>(e), norm_axes);
    +
    934 }
    +
    +
    935
    +
    936 /***********************
    +
    937 * roll implementation *
    +
    938 ***********************/
    +
    939
    +
    953 template <class E>
    +
    +
    954 inline auto roll(E&& e, std::ptrdiff_t shift)
    +
    955 {
    +
    956 auto cpy = empty_like(e);
    +
    957 auto flat_size = std::accumulate(
    +
    958 cpy.shape().begin(),
    +
    959 cpy.shape().end(),
    +
    960 1L,
    +
    961 std::multiplies<std::size_t>()
    +
    962 );
    +
    963 while (shift < 0)
    +
    964 {
    +
    965 shift += flat_size;
    +
    966 }
    +
    967
    +
    968 shift %= flat_size;
    +
    969 std::copy(e.begin(), e.end() - shift, std::copy(e.end() - shift, e.end(), cpy.begin()));
    +
    970
    +
    971 return cpy;
    +
    972 }
    +
    +
    973
    +
    974 namespace detail
    +
    975 {
    +
    979
    +
    980 template <class To, class From, class S>
    +
    981 To roll(To to, From from, std::ptrdiff_t shift, std::size_t axis, const S& shape, std::size_t M)
    +
    982 {
    +
    983 std::ptrdiff_t dim = std::ptrdiff_t(shape[M]);
    +
    984 std::ptrdiff_t offset = std::accumulate(
    +
    985 shape.begin() + M + 1,
    +
    986 shape.end(),
    +
    987 std::ptrdiff_t(1),
    +
    988 std::multiplies<std::ptrdiff_t>()
    +
    989 );
    +
    990 if (shape.size() == M + 1)
    +
    991 {
    +
    992 if (axis == M)
    +
    993 {
    +
    994 const auto split = from + (dim - shift) * offset;
    +
    995 for (auto iter = split, end = from + dim * offset; iter != end; iter += offset, ++to)
    +
    996 {
    +
    997 *to = *iter;
    +
    998 }
    +
    999 for (auto iter = from, end = split; iter != end; iter += offset, ++to)
    +
    1000 {
    +
    1001 *to = *iter;
    +
    1002 }
    +
    1003 }
    +
    1004 else
    +
    1005 {
    +
    1006 for (auto iter = from, end = from + dim * offset; iter != end; iter += offset, ++to)
    +
    1007 {
    +
    1008 *to = *iter;
    +
    1009 }
    +
    1010 }
    +
    1011 }
    +
    1012 else
    +
    1013 {
    +
    1014 if (axis == M)
    +
    1015 {
    +
    1016 const auto split = from + (dim - shift) * offset;
    +
    1017 for (auto iter = split, end = from + dim * offset; iter != end; iter += offset)
    +
    1018 {
    +
    1019 to = roll(to, iter, shift, axis, shape, M + 1);
    +
    1020 }
    +
    1021 for (auto iter = from, end = split; iter != end; iter += offset)
    +
    1022 {
    +
    1023 to = roll(to, iter, shift, axis, shape, M + 1);
    +
    1024 }
    +
    1025 }
    +
    1026 else
    +
    1027 {
    +
    1028 for (auto iter = from, end = from + dim * offset; iter != end; iter += offset)
    +
    1029 {
    +
    1030 to = roll(to, iter, shift, axis, shape, M + 1);
    +
    1031 }
    +
    1032 }
    +
    1033 }
    +
    1034 return to;
    +
    1035 }
    +
    1036 }
    +
    1037
    +
    1050 template <class E>
    +
    +
    1051 inline auto roll(E&& e, std::ptrdiff_t shift, std::ptrdiff_t axis)
    +
    1052 {
    +
    1053 auto cpy = empty_like(e);
    +
    1054 const auto& shape = cpy.shape();
    +
    1055 std::size_t saxis = static_cast<std::size_t>(axis);
    +
    1056 if (axis < 0)
    +
    1057 {
    +
    1058 axis += std::ptrdiff_t(cpy.dimension());
    +
    1059 }
    +
    1060
    +
    1061 if (saxis >= cpy.dimension() || axis < 0)
    +
    1062 {
    +
    1063 XTENSOR_THROW(std::runtime_error, "axis is no within shape dimension.");
    +
    1064 }
    +
    1065
    +
    1066 const auto axis_dim = static_cast<std::ptrdiff_t>(shape[saxis]);
    +
    1067 while (shift < 0)
    +
    1068 {
    +
    1069 shift += axis_dim;
    +
    1070 }
    +
    1071
    +
    1072 detail::roll(cpy.begin(), e.begin(), shift, saxis, shape, 0);
    +
    1073 return cpy;
    +
    1074 }
    +
    +
    1075
    +
    1076 /****************************
    +
    1077 * repeat implementation *
    +
    1078 ****************************/
    +
    1079
    +
    1080 namespace detail
    +
    1081 {
    +
    1082 template <class E, class R>
    +
    1083 inline auto make_xrepeat(E&& e, R&& r, typename std::decay_t<E>::size_type axis)
    +
    1084 {
    +
    1085 const auto casted_axis = static_cast<typename std::decay_t<E>::size_type>(axis);
    +
    1086 if (r.size() != e.shape(casted_axis))
    +
    1087 {
    +
    1088 XTENSOR_THROW(std::invalid_argument, "repeats must have the same size as the specified axis");
    +
    1089 }
    +
    1090 return xrepeat<const_xclosure_t<E>, R>(std::forward<E>(e), std::forward<R>(r), axis);
    +
    1091 }
    +
    1092 }
    +
    1093
    +
    1104 template <class E>
    +
    +
    1105 inline auto repeat(E&& e, std::size_t repeats, std::size_t axis)
    +
    1106 {
    +
    1107 const auto casted_axis = static_cast<typename std::decay_t<E>::size_type>(axis);
    +
    1108 std::vector<std::size_t> broadcasted_repeats(e.shape(casted_axis));
    +
    1109 std::fill(broadcasted_repeats.begin(), broadcasted_repeats.end(), repeats);
    +
    1110 return repeat(std::forward<E>(e), std::move(broadcasted_repeats), axis);
    +
    1111 }
    +
    +
    1112
    +
    1124 template <class E>
    +
    +
    1125 inline auto repeat(E&& e, const std::vector<std::size_t>& repeats, std::size_t axis)
    +
    1126 {
    +
    1127 return detail::make_xrepeat(std::forward<E>(e), repeats, axis);
    +
    1128 }
    +
    +
    1129
    +
    1140 template <class E>
    +
    +
    1141 inline auto repeat(E&& e, std::vector<std::size_t>&& repeats, std::size_t axis)
    +
    1142 {
    +
    1143 return detail::make_xrepeat(std::forward<E>(e), std::move(repeats), axis);
    +
    1144 }
    +
    +
    1145}
    +
    1146
    +
    1147#endif
    +
    Dense multidimensional container adaptor with view semantics and fixed dimension.
    Definition xtensor.hpp:329
    +
    bool all(E &&e)
    Any.
    +
    auto nonzero(const T &arr)
    return vector of indices where T is not zero
    +
    auto flatten(E &&e)
    Return a flatten view of the given expression.
    +
    auto atleast_1d(E &&e)
    Expand to at least 1D.
    +
    auto roll(E &&e, std::ptrdiff_t shift)
    Roll an expression.
    +
    auto squeeze(E &&e)
    Returns a squeeze view of the given expression.
    +
    auto moveaxis(E &&e, std::ptrdiff_t src, std::ptrdiff_t dest)
    Return a new expression with an axis move to a new position.
    +
    auto ravel(E &&e)
    Return a flatten view of the given expression.
    +
    auto transpose(E &&e) noexcept
    Returns a transpose view by reversing the dimensions of xexpression e.
    +
    auto atleast_Nd(E &&e)
    Expand dimensions of xexpression to at least N
    +
    auto repeat(E &&e, std::size_t repeats, std::size_t axis)
    Repeat elements of an expression along a given axis.
    +
    auto trim_zeros(E &&e, const std::string &direction="fb")
    Trim zeros at beginning, end or both of 1D sequence.
    +
    auto split(E &e, std::size_t n, std::size_t axis=0)
    Split xexpression along axis into subexpressions.
    +
    auto rot90(E &&e, const std::array< std::ptrdiff_t, 2 > &axes={0, 1})
    Rotate an array by 90 degrees in the plane specified by axes.
    +
    auto expand_dims(E &&e, std::size_t axis)
    Expand the shape of an xexpression.
    +
    auto vsplit(E &e, std::size_t n)
    Split an xexpression into subexpressions vertically (row-wise)
    +
    auto flip(E &&e)
    Reverse the order of elements in an xexpression along every axis.
    +
    auto atleast_2d(E &&e)
    Expand to at least 2D.
    +
    auto swapaxes(E &&e, std::ptrdiff_t axis1, std::ptrdiff_t axis2)
    Return a new expression with two axes interchanged.
    +
    auto hsplit(E &e, std::size_t n)
    Split an xexpression into subexpressions horizontally (column-wise)
    +
    auto atleast_3d(E &&e)
    Expand to at least 3D.
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    auto newaxis() noexcept
    Returns a slice representing a new axis of length one, to be used as an argument of view function.
    Definition xslice.hpp:297
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    auto empty_like(const xexpression< E > &e)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of the same shape,...
    Definition xbuilder.hpp:121
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto flatnonzero(const T &arr)
    Return indices that are non-zero in the flattened version of arr.
    + + +
    +
    + + + + diff --git a/xmasked__view_8hpp_source.html b/xmasked__view_8hpp_source.html new file mode 100644 index 000000000..2c8cedc9e --- /dev/null +++ b/xmasked__view_8hpp_source.html @@ -0,0 +1,735 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xmasked_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xmasked_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_XMASKED_VIEW_HPP
    +
    11#define XTENSOR_XMASKED_VIEW_HPP
    +
    12
    +
    13#include "../core/xaccessible.hpp"
    +
    14#include "../core/xexpression.hpp"
    +
    15#include "../core/xiterable.hpp"
    +
    16#include "../core/xsemantic.hpp"
    +
    17#include "../core/xshape.hpp"
    +
    18#include "../core/xtensor_forward.hpp"
    +
    19#include "../utils/xutils.hpp"
    +
    20#include "xtl/xmasked_value.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24 /****************************
    +
    25 * xmasked_view declaration *
    +
    26 *****************************/
    +
    27
    +
    28 template <class CTD, class CTM>
    +
    29 class xmasked_view;
    +
    30
    +
    31 template <class D, bool is_const>
    + +
    33
    +
    34 template <class T>
    + +
    36
    +
    37 template <class CTD, class CTM>
    +
    + +
    39 {
    +
    40 using data_type = std::decay_t<CTD>;
    +
    41 using mask_type = std::decay_t<CTM>;
    +
    42 using base_value_type = typename data_type::value_type;
    +
    43 using flag_type = typename mask_type::value_type;
    +
    44 using val_reference = inner_reference_t<CTD>;
    +
    45 using mask_reference = inner_reference_t<CTM>;
    +
    46 using value_type = xtl::xmasked_value<base_value_type, flag_type>;
    +
    47 using reference = xtl::xmasked_value<val_reference, mask_reference>;
    +
    48 using const_reference = xtl::xmasked_value<typename data_type::const_reference, typename mask_type::const_reference>;
    +
    49 using size_type = typename data_type::size_type;
    + +
    51 };
    +
    +
    52
    +
    53 template <class CTD, class CTM>
    +
    + +
    55 {
    +
    56 using masked_view_type = xmasked_view<CTD, CTM>;
    +
    57 using inner_shape_type = typename std::decay_t<CTD>::inner_shape_type;
    + + +
    60 };
    +
    +
    61
    +
    77 template <class CTD, class CTM>
    +
    +
    78 class xmasked_view : public xview_semantic<xmasked_view<CTD, CTM>>,
    +
    79 private xaccessible<xmasked_view<CTD, CTM>>,
    +
    80 private xiterable<xmasked_view<CTD, CTM>>
    +
    81 {
    +
    82 public:
    +
    83
    +
    84 using self_type = xmasked_view<CTD, CTM>;
    +
    85 using semantic_base = xview_semantic<xmasked_view<CTD, CTM>>;
    +
    86 using accessible_base = xaccessible<self_type>;
    +
    87 using inner_types = xcontainer_inner_types<self_type>;
    +
    88 using temporary_type = typename inner_types::temporary_type;
    +
    89
    +
    90 using data_type = typename inner_types::data_type;
    +
    91 using mask_type = typename inner_types::mask_type;
    +
    92 using value_expression = CTD;
    +
    93 using mask_expression = CTM;
    +
    94
    +
    95 static constexpr bool is_data_const = std::is_const<std::remove_reference_t<value_expression>>::value;
    +
    96
    +
    97 using base_value_type = typename inner_types::base_value_type;
    +
    98 using base_reference = typename data_type::reference;
    +
    99 using base_const_reference = typename data_type::const_reference;
    +
    100
    +
    101 using flag_type = typename inner_types::flag_type;
    +
    102 using flag_reference = typename mask_type::reference;
    +
    103 using flag_const_reference = typename mask_type::const_reference;
    +
    104
    +
    105 using val_reference = typename inner_types::val_reference;
    +
    106 using mask_reference = typename inner_types::mask_reference;
    +
    107
    +
    108 using value_type = typename inner_types::value_type;
    +
    109 using reference = typename inner_types::reference;
    +
    110 using const_reference = typename inner_types::const_reference;
    +
    111
    +
    112 using pointer = xtl::xclosure_pointer<reference>;
    +
    113 using const_pointer = xtl::xclosure_pointer<const_reference>;
    +
    114
    +
    115 using size_type = typename inner_types::size_type;
    +
    116 using difference_type = typename data_type::difference_type;
    +
    117
    +
    118 using bool_load_type = xtl::xmasked_value<typename data_type::bool_load_type, mask_type>;
    +
    119
    +
    120 using shape_type = typename data_type::shape_type;
    +
    121 using strides_type = typename data_type::strides_type;
    +
    122
    +
    123 static constexpr layout_type static_layout = data_type::static_layout;
    +
    124 static constexpr bool contiguous_layout = false;
    +
    125
    +
    126 using inner_shape_type = typename data_type::inner_shape_type;
    +
    127 using inner_strides_type = typename data_type::inner_strides_type;
    +
    128 using inner_backstrides_type = typename data_type::inner_backstrides_type;
    +
    129
    +
    130 using expression_tag = xtensor_expression_tag;
    +
    131
    +
    132 using iterable_base = xiterable<xmasked_view<CTD, CTM>>;
    +
    133 using stepper = typename iterable_base::stepper;
    +
    134 using const_stepper = typename iterable_base::const_stepper;
    +
    135
    +
    136 template <layout_type L>
    +
    137 using layout_iterator = typename iterable_base::template layout_iterator<L>;
    +
    138 template <layout_type L>
    +
    139 using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>;
    +
    140 template <layout_type L>
    +
    141 using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>;
    +
    142 template <layout_type L>
    +
    143 using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>;
    +
    144
    +
    145 template <class S, layout_type L>
    +
    146 using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>;
    +
    147 template <class S, layout_type L>
    +
    148 using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>;
    +
    149 template <class S, layout_type L>
    +
    150 using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>;
    +
    151 template <class S, layout_type L>
    +
    152 using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>;
    +
    153
    +
    154 using iterator = typename iterable_base::iterator;
    +
    155 using const_iterator = typename iterable_base::const_iterator;
    +
    156 using reverse_iterator = typename iterable_base::reverse_iterator;
    +
    157 using const_reverse_iterator = typename iterable_base::const_reverse_iterator;
    +
    158
    +
    159 template <class D, class M>
    +
    160 xmasked_view(D&& data, M&& mask);
    +
    161
    +
    162 xmasked_view(const xmasked_view&) = default;
    +
    163
    +
    164 size_type size() const noexcept;
    +
    165 const inner_shape_type& shape() const noexcept;
    +
    166 const inner_strides_type& strides() const noexcept;
    +
    167 const inner_backstrides_type& backstrides() const noexcept;
    + + +
    170
    +
    171 layout_type layout() const noexcept;
    +
    172 bool is_contiguous() const noexcept;
    +
    173
    +
    174 template <class T>
    +
    175 void fill(const T& value);
    +
    176
    +
    177 template <class... Args>
    +
    178 reference operator()(Args... args);
    +
    179
    +
    180 template <class... Args>
    +
    181 const_reference operator()(Args... args) const;
    +
    182
    +
    183 template <class... Args>
    +
    184 reference unchecked(Args... args);
    +
    185
    +
    186 template <class... Args>
    +
    187 const_reference unchecked(Args... args) const;
    +
    188
    +
    189 using accessible_base::at;
    +
    190 using accessible_base::operator[];
    + + + +
    194 using accessible_base::periodic;
    +
    195
    +
    196 template <class It>
    +
    197 reference element(It first, It last);
    +
    198
    +
    199 template <class It>
    +
    200 const_reference element(It first, It last) const;
    +
    201
    +
    202 template <class S>
    +
    203 bool has_linear_assign(const S& strides) const noexcept;
    +
    204
    +
    205 data_type& value() noexcept;
    +
    206 const data_type& value() const noexcept;
    +
    207
    +
    208 mask_type& visible() noexcept;
    +
    209 const mask_type& visible() const noexcept;
    +
    210
    +
    211 using iterable_base::begin;
    +
    212 using iterable_base::cbegin;
    +
    213 using iterable_base::cend;
    +
    214 using iterable_base::crbegin;
    +
    215 using iterable_base::crend;
    +
    216 using iterable_base::end;
    +
    217 using iterable_base::rbegin;
    +
    218 using iterable_base::rend;
    +
    219
    +
    220 template <class S>
    +
    221 stepper stepper_begin(const S& shape) noexcept;
    +
    222 template <class S>
    +
    223 stepper stepper_end(const S& shape, layout_type l) noexcept;
    +
    224
    +
    225 template <class S>
    +
    226 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    227 template <class S>
    +
    228 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    229
    +
    230 self_type& operator=(const self_type& rhs);
    +
    231
    +
    232 template <class E>
    +
    233 self_type& operator=(const xexpression<E>& e);
    +
    234
    +
    235 template <class E>
    +
    236 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    237
    +
    238 private:
    +
    239
    +
    240 CTD m_data;
    +
    241 CTM m_mask;
    +
    242
    +
    243 void assign_temporary_impl(temporary_type&& tmp);
    +
    244
    +
    245 friend class xiterable<self_type>;
    +
    246 friend class xconst_iterable<self_type>;
    +
    247 friend class xview_semantic<self_type>;
    +
    248 friend class xaccessible<self_type>;
    +
    249 friend class xconst_accessible<self_type>;
    +
    250 };
    +
    +
    251
    +
    252 template <class D, bool is_const>
    +
    +
    253 class xmasked_view_stepper
    +
    254 {
    +
    255 public:
    +
    256
    +
    257 using self_type = xmasked_view_stepper<D, is_const>;
    +
    258 using masked_view_type = std::decay_t<D>;
    +
    259 using value_type = typename masked_view_type::value_type;
    +
    260 using reference = std::
    +
    261 conditional_t<is_const, typename masked_view_type::const_reference, typename masked_view_type::reference>;
    +
    262 using pointer = std::
    +
    263 conditional_t<is_const, typename masked_view_type::const_pointer, typename masked_view_type::pointer>;
    +
    264 using size_type = typename masked_view_type::size_type;
    +
    265 using difference_type = typename masked_view_type::difference_type;
    +
    266 using data_type = typename masked_view_type::data_type;
    +
    267 using mask_type = typename masked_view_type::mask_type;
    +
    268 using value_stepper = std::conditional_t<is_const, typename data_type::const_stepper, typename data_type::stepper>;
    +
    269 using mask_stepper = std::conditional_t<is_const, typename mask_type::const_stepper, typename mask_type::stepper>;
    +
    270
    +
    271 xmasked_view_stepper(value_stepper vs, mask_stepper fs) noexcept;
    +
    272
    +
    273
    +
    274 void step(size_type dim);
    +
    275 void step_back(size_type dim);
    +
    276 void step(size_type dim, size_type n);
    +
    277 void step_back(size_type dim, size_type n);
    +
    278 void reset(size_type dim);
    +
    279 void reset_back(size_type dim);
    +
    280
    +
    281 void to_begin();
    +
    282 void to_end(layout_type l);
    +
    283
    +
    284 reference operator*() const;
    +
    285
    +
    286 private:
    +
    287
    +
    288 value_stepper m_vs;
    +
    289 mask_stepper m_ms;
    +
    290 };
    +
    +
    291
    +
    292 /*******************************
    +
    293 * xmasked_view implementation *
    +
    294 *******************************/
    +
    295
    +
    300
    +
    307 template <class CTD, class CTM>
    +
    308 template <class D, class M>
    +
    +
    309 inline xmasked_view<CTD, CTM>::xmasked_view(D&& data, M&& mask)
    +
    310 : m_data(std::forward<D>(data))
    +
    311 , m_mask(std::forward<M>(mask))
    +
    312 {
    +
    313 }
    +
    +
    314
    +
    319
    +
    322 template <class CTD, class CTM>
    +
    +
    323 inline auto xmasked_view<CTD, CTM>::size() const noexcept -> size_type
    +
    324 {
    +
    325 return m_data.size();
    +
    326 }
    +
    +
    327
    +
    331 template <class CTD, class CTM>
    +
    +
    332 inline auto xmasked_view<CTD, CTM>::shape() const noexcept -> const inner_shape_type&
    +
    333 {
    +
    334 return m_data.shape();
    +
    335 }
    +
    +
    336
    +
    340 template <class CTD, class CTM>
    +
    +
    341 inline auto xmasked_view<CTD, CTM>::strides() const noexcept -> const inner_strides_type&
    +
    342 {
    +
    343 return m_data.strides();
    +
    344 }
    +
    +
    345
    +
    349 template <class CTD, class CTM>
    +
    +
    350 inline auto xmasked_view<CTD, CTM>::backstrides() const noexcept -> const inner_backstrides_type&
    +
    351 {
    +
    352 return m_data.backstrides();
    +
    353 }
    +
    +
    354
    +
    356
    +
    361 template <class CTD, class CTM>
    +
    + +
    363 {
    +
    364 return m_data.layout();
    +
    365 }
    +
    +
    366
    +
    367 template <class CTD, class CTM>
    +
    368 inline bool xmasked_view<CTD, CTM>::is_contiguous() const noexcept
    +
    369 {
    +
    370 return false;
    +
    371 }
    +
    372
    +
    377 template <class CTD, class CTM>
    +
    378 template <class T>
    +
    + +
    380 {
    +
    381 std::fill(this->begin(), this->end(), value);
    +
    382 }
    +
    +
    383
    +
    388
    +
    394 template <class CTD, class CTM>
    +
    395 template <class... Args>
    +
    +
    396 inline auto xmasked_view<CTD, CTM>::operator()(Args... args) -> reference
    +
    397 {
    +
    398 return reference(m_data(args...), m_mask(args...));
    +
    399 }
    +
    +
    400
    +
    407 template <class CTD, class CTM>
    +
    408 template <class... Args>
    +
    +
    409 inline auto xmasked_view<CTD, CTM>::operator()(Args... args) const -> const_reference
    +
    410 {
    +
    411 return const_reference(m_data(args...), m_mask(args...));
    +
    412 }
    +
    +
    413
    +
    433 template <class CTD, class CTM>
    +
    434 template <class... Args>
    +
    +
    435 inline auto xmasked_view<CTD, CTM>::unchecked(Args... args) -> reference
    +
    436 {
    +
    437 return reference(m_data.unchecked(args...), m_mask.unchecked(args...));
    +
    438 }
    +
    +
    439
    +
    459 template <class CTD, class CTM>
    +
    460 template <class... Args>
    +
    +
    461 inline auto xmasked_view<CTD, CTM>::unchecked(Args... args) const -> const_reference
    +
    462 {
    +
    463 return const_reference(m_data.unchecked(args...), m_mask.unchecked(args...));
    +
    464 }
    +
    +
    465
    +
    473 template <class CTD, class CTM>
    +
    474 template <class It>
    +
    +
    475 inline auto xmasked_view<CTD, CTM>::element(It first, It last) -> reference
    +
    476 {
    +
    477 return reference(m_data.element(first, last), m_mask.element(first, last));
    +
    478 }
    +
    +
    479
    +
    487 template <class CTD, class CTM>
    +
    488 template <class It>
    +
    +
    489 inline auto xmasked_view<CTD, CTM>::element(It first, It last) const -> const_reference
    +
    490 {
    +
    491 return const_reference(m_data.element(first, last), m_mask.element(first, last));
    +
    492 }
    +
    +
    493
    +
    495
    +
    496 template <class CTD, class CTM>
    +
    497 template <class S>
    +
    498 inline bool xmasked_view<CTD, CTM>::has_linear_assign(const S& strides) const noexcept
    +
    499 {
    +
    500 return m_data.has_linear_assign(strides) && m_mask.has_linear_assign(strides);
    +
    501 }
    +
    502
    +
    506 template <class CTD, class CTM>
    +
    +
    507 inline auto xmasked_view<CTD, CTM>::value() noexcept -> data_type&
    +
    508 {
    +
    509 return m_data;
    +
    510 }
    +
    +
    511
    +
    515 template <class CTD, class CTM>
    +
    +
    516 inline auto xmasked_view<CTD, CTM>::value() const noexcept -> const data_type&
    +
    517 {
    +
    518 return m_data;
    +
    519 }
    +
    +
    520
    +
    524 template <class CTD, class CTM>
    +
    +
    525 inline auto xmasked_view<CTD, CTM>::visible() noexcept -> mask_type&
    +
    526 {
    +
    527 return m_mask;
    +
    528 }
    +
    +
    529
    +
    533 template <class CTD, class CTM>
    +
    +
    534 inline auto xmasked_view<CTD, CTM>::visible() const noexcept -> const mask_type&
    +
    535 {
    +
    536 return m_mask;
    +
    537 }
    +
    +
    538
    +
    539 template <class CTD, class CTM>
    +
    540 template <class S>
    +
    541 inline auto xmasked_view<CTD, CTM>::stepper_begin(const S& shape) noexcept -> stepper
    +
    542 {
    +
    543 return stepper(value().stepper_begin(shape), visible().stepper_begin(shape));
    +
    544 }
    +
    545
    +
    546 template <class CTD, class CTM>
    +
    547 template <class S>
    +
    548 inline auto xmasked_view<CTD, CTM>::stepper_end(const S& shape, layout_type l) noexcept -> stepper
    +
    549 {
    +
    550 return stepper(value().stepper_end(shape, l), visible().stepper_end(shape, l));
    +
    551 }
    +
    552
    +
    553 template <class CTD, class CTM>
    +
    554 template <class S>
    +
    555 inline auto xmasked_view<CTD, CTM>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    556 {
    +
    557 return const_stepper(value().stepper_begin(shape), visible().stepper_begin(shape));
    +
    558 }
    +
    559
    +
    560 template <class CTD, class CTM>
    +
    561 template <class S>
    +
    562 inline auto xmasked_view<CTD, CTM>::stepper_end(const S& shape, layout_type l) const noexcept
    +
    563 -> const_stepper
    +
    564 {
    +
    565 return const_stepper(value().stepper_end(shape, l), visible().stepper_end(shape, l));
    +
    566 }
    +
    567
    +
    568 template <class CTD, class CTM>
    +
    569 inline auto xmasked_view<CTD, CTM>::operator=(const self_type& rhs) -> self_type&
    +
    570 {
    +
    571 temporary_type tmp(rhs);
    +
    572 return this->assign_temporary(std::move(tmp));
    +
    573 }
    +
    574
    +
    575 template <class CTD, class CTM>
    +
    576 template <class E>
    +
    577 inline auto xmasked_view<CTD, CTM>::operator=(const xexpression<E>& e) -> self_type&
    +
    578 {
    +
    579 return semantic_base::operator=(e);
    +
    580 }
    +
    581
    +
    582 template <class CTD, class CTM>
    +
    583 template <class E>
    +
    584 inline auto xmasked_view<CTD, CTM>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    585 {
    +
    586 std::fill(this->begin(), this->end(), e);
    +
    587 return *this;
    +
    588 }
    +
    589
    +
    590 template <class CTD, class CTM>
    +
    591 inline void xmasked_view<CTD, CTM>::assign_temporary_impl(temporary_type&& tmp)
    +
    592 {
    +
    593 std::copy(tmp.cbegin(), tmp.cend(), this->begin());
    +
    594 }
    +
    595
    +
    596 template <class CTD, class CTM>
    +
    597 inline xmasked_view<CTD, CTM> masked_view(CTD&& data, CTM&& mask)
    +
    598 {
    +
    599 return xmasked_view<CTD, CTM>(std::forward<CTD>(data), std::forward<CTM>(mask));
    +
    600 }
    +
    601
    +
    602 /***************************************
    +
    603 * xmasked_view_stepper implementation *
    +
    604 ***************************************/
    +
    605
    +
    606 template <class D, bool C>
    +
    607 inline xmasked_view_stepper<D, C>::xmasked_view_stepper(value_stepper vs, mask_stepper ms) noexcept
    +
    608 : m_vs(vs)
    +
    609 , m_ms(ms)
    +
    610 {
    +
    611 }
    +
    612
    +
    613 template <class D, bool C>
    +
    614 inline void xmasked_view_stepper<D, C>::step(size_type dim)
    +
    615 {
    +
    616 m_vs.step(dim);
    +
    617 m_ms.step(dim);
    +
    618 }
    +
    619
    +
    620 template <class D, bool C>
    +
    621 inline void xmasked_view_stepper<D, C>::step_back(size_type dim)
    +
    622 {
    +
    623 m_vs.step_back(dim);
    +
    624 m_ms.step_back(dim);
    +
    625 }
    +
    626
    +
    627 template <class D, bool C>
    +
    628 inline void xmasked_view_stepper<D, C>::step(size_type dim, size_type n)
    +
    629 {
    +
    630 m_vs.step(dim, n);
    +
    631 m_ms.step(dim, n);
    +
    632 }
    +
    633
    +
    634 template <class D, bool C>
    +
    635 inline void xmasked_view_stepper<D, C>::step_back(size_type dim, size_type n)
    +
    636 {
    +
    637 m_vs.step_back(dim, n);
    +
    638 m_ms.step_back(dim, n);
    +
    639 }
    +
    640
    +
    641 template <class D, bool C>
    +
    642 inline void xmasked_view_stepper<D, C>::reset(size_type dim)
    +
    643 {
    +
    644 m_vs.reset(dim);
    +
    645 m_ms.reset(dim);
    +
    646 }
    +
    647
    +
    648 template <class D, bool C>
    +
    649 inline void xmasked_view_stepper<D, C>::reset_back(size_type dim)
    +
    650 {
    +
    651 m_vs.reset_back(dim);
    +
    652 m_ms.reset_back(dim);
    +
    653 }
    +
    654
    +
    655 template <class D, bool C>
    +
    656 inline void xmasked_view_stepper<D, C>::to_begin()
    +
    657 {
    +
    658 m_vs.to_begin();
    +
    659 m_ms.to_begin();
    +
    660 }
    +
    661
    +
    662 template <class D, bool C>
    +
    663 inline void xmasked_view_stepper<D, C>::to_end(layout_type l)
    +
    664 {
    +
    665 m_vs.to_end(l);
    +
    666 m_ms.to_end(l);
    +
    667 }
    +
    668
    +
    669 template <class D, bool C>
    +
    670 inline auto xmasked_view_stepper<D, C>::operator*() const -> reference
    +
    671 {
    +
    672 return reference(*m_vs, *m_ms);
    +
    673 }
    +
    674}
    +
    675
    +
    676#endif
    + + +
    Base class for implementation of common expression constant access methods.
    +
    size_type dimension() const noexcept
    +
    bool in_bounds(Args... args) const
    +
    size_type shape(size_type index) const
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    Base class for xexpressions.
    +
    Base class for multidimensional iterable expressions.
    + +
    View on an xoptional_assembly or xoptional_assembly_adaptor hiding values depending on a given mask.
    +
    const inner_strides_type & strides() const noexcept
    Returns the strides of the xmasked_view.
    +
    const inner_backstrides_type & backstrides() const noexcept
    Returns the backstrides of the xmasked_view.
    +
    const inner_shape_type & shape() const noexcept
    Returns the shape of the xmasked_view.
    +
    mask_type & visible() noexcept
    Return an expression for the mask of the xmasked_view.
    +
    void fill(const T &value)
    Fills the data with the given value.
    +
    layout_type layout() const noexcept
    Return the layout_type of the xmasked_view.
    +
    data_type & value() noexcept
    Return an expression for the values of the xmasked_view.
    +
    size_type size() const noexcept
    Returns the number of elements in the xmasked_view.
    +
    xmasked_view(D &&data, M &&mask)
    Creates an xmasked_view, given the xoptional_assembly or xoptional_assembly_adaptor and the mask.
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + +
    +
    + + + + diff --git a/xmath_8hpp_source.html b/xmath_8hpp_source.html new file mode 100644 index 000000000..e6933d335 --- /dev/null +++ b/xmath_8hpp_source.html @@ -0,0 +1,2722 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xmath.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xmath.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    13
    +
    14#ifndef XTENSOR_MATH_HPP
    +
    15#define XTENSOR_MATH_HPP
    +
    16
    +
    17#include <algorithm>
    +
    18#include <array>
    +
    19#include <cmath>
    +
    20#include <complex>
    +
    21#include <type_traits>
    +
    22
    +
    23#include <xtl/xcomplex.hpp>
    +
    24#include <xtl/xsequence.hpp>
    +
    25#include <xtl/xtype_traits.hpp>
    +
    26
    +
    27#include "../core/xeval.hpp"
    +
    28#include "../core/xoperation.hpp"
    +
    29#include "../core/xtensor_config.hpp"
    +
    30#include "../misc/xmanipulation.hpp"
    +
    31#include "../reducers/xaccumulator.hpp"
    +
    32#include "../reducers/xreducer.hpp"
    +
    33#include "../views/xslice.hpp"
    +
    34#include "../views/xstrided_view.hpp"
    +
    35
    +
    36namespace xt
    +
    37{
    +
    38 template <class T = double>
    +
    + +
    40 {
    +
    41 static constexpr T PI = 3.141592653589793238463;
    +
    42 static constexpr T PI_2 = 1.57079632679489661923;
    +
    43 static constexpr T PI_4 = 0.785398163397448309616;
    +
    44 static constexpr T D_1_PI = 0.318309886183790671538;
    +
    45 static constexpr T D_2_PI = 0.636619772367581343076;
    +
    46 static constexpr T D_2_SQRTPI = 1.12837916709551257390;
    +
    47 static constexpr T SQRT2 = 1.41421356237309504880;
    +
    48 static constexpr T SQRT1_2 = 0.707106781186547524401;
    +
    49 static constexpr T E = 2.71828182845904523536;
    +
    50 static constexpr T LOG2E = 1.44269504088896340736;
    +
    51 static constexpr T LOG10E = 0.434294481903251827651;
    +
    52 static constexpr T LN2 = 0.693147180559945309417;
    +
    53 };
    +
    +
    54
    +
    55 /***********
    +
    56 * Helpers *
    +
    57 ***********/
    +
    58
    +
    59#define XTENSOR_UNSIGNED_ABS_FUNC(T) \
    +
    60 constexpr inline T abs(const T& x) \
    +
    61 { \
    +
    62 return x; \
    +
    63 }
    +
    64
    +
    65#define XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, T) \
    +
    66 constexpr inline bool FUNC_NAME(const T& /*x*/) noexcept \
    +
    67 { \
    +
    68 return RETURN_VAL; \
    +
    69 }
    +
    70
    +
    71#define XTENSOR_INT_SPECIALIZATION(FUNC_NAME, RETURN_VAL) \
    +
    72 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, char); \
    +
    73 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, short); \
    +
    74 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, int); \
    +
    75 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, long); \
    +
    76 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, long long); \
    +
    77 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, unsigned char); \
    +
    78 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, unsigned short); \
    +
    79 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, unsigned int); \
    +
    80 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, unsigned long); \
    +
    81 XTENSOR_INT_SPECIALIZATION_IMPL(FUNC_NAME, RETURN_VAL, unsigned long long);
    +
    82
    +
    83
    +
    84#define XTENSOR_UNARY_MATH_FUNCTOR(NAME) \
    +
    85 struct NAME##_fun \
    +
    86 { \
    +
    87 template <class T> \
    +
    88 constexpr auto operator()(const T& arg) const \
    +
    89 { \
    +
    90 using math::NAME; \
    +
    91 return NAME(arg); \
    +
    92 } \
    +
    93 template <class B> \
    +
    94 constexpr auto simd_apply(const B& arg) const \
    +
    95 { \
    +
    96 using math::NAME; \
    +
    97 return NAME(arg); \
    +
    98 } \
    +
    99 }
    +
    100
    +
    101#define XTENSOR_UNARY_MATH_FUNCTOR_COMPLEX_REDUCING(NAME) \
    +
    102 struct NAME##_fun \
    +
    103 { \
    +
    104 template <class T> \
    +
    105 constexpr auto operator()(const T& arg) const \
    +
    106 { \
    +
    107 using math::NAME; \
    +
    108 return NAME(arg); \
    +
    109 } \
    +
    110 template <class B> \
    +
    111 constexpr auto simd_apply(const B& arg) const \
    +
    112 { \
    +
    113 using math::NAME; \
    +
    114 return NAME(arg); \
    +
    115 } \
    +
    116 }
    +
    117
    +
    118#define XTENSOR_BINARY_MATH_FUNCTOR(NAME) \
    +
    119 struct NAME##_fun \
    +
    120 { \
    +
    121 template <class T1, class T2> \
    +
    122 constexpr auto operator()(const T1& arg1, const T2& arg2) const \
    +
    123 { \
    +
    124 using math::NAME; \
    +
    125 return NAME(arg1, arg2); \
    +
    126 } \
    +
    127 template <class B> \
    +
    128 constexpr auto simd_apply(const B& arg1, const B& arg2) const \
    +
    129 { \
    +
    130 using math::NAME; \
    +
    131 return NAME(arg1, arg2); \
    +
    132 } \
    +
    133 }
    +
    134
    +
    135#define XTENSOR_TERNARY_MATH_FUNCTOR(NAME) \
    +
    136 struct NAME##_fun \
    +
    137 { \
    +
    138 template <class T1, class T2, class T3> \
    +
    139 constexpr auto operator()(const T1& arg1, const T2& arg2, const T3& arg3) const \
    +
    140 { \
    +
    141 using math::NAME; \
    +
    142 return NAME(arg1, arg2, arg3); \
    +
    143 } \
    +
    144 template <class B> \
    +
    145 auto simd_apply(const B& arg1, const B& arg2, const B& arg3) const \
    +
    146 { \
    +
    147 using math::NAME; \
    +
    148 return NAME(arg1, arg2, arg3); \
    +
    149 } \
    +
    150 }
    +
    151
    +
    152 namespace math
    +
    153 {
    +
    154 using std::abs;
    +
    155 using std::fabs;
    +
    156
    +
    157 using std::acos;
    +
    158 using std::asin;
    +
    159 using std::atan;
    +
    160 using std::cos;
    +
    161 using std::sin;
    +
    162 using std::tan;
    +
    163
    +
    164 using std::acosh;
    +
    165 using std::asinh;
    +
    166 using std::atanh;
    +
    167 using std::cosh;
    +
    168 using std::sinh;
    +
    169 using std::tanh;
    +
    170
    +
    171 using std::cbrt;
    +
    172 using std::sqrt;
    +
    173
    +
    174 using std::exp;
    +
    175 using std::exp2;
    +
    176 using std::expm1;
    +
    177 using std::ilogb;
    +
    178 using std::log;
    +
    179 using std::log10;
    +
    180 using std::log1p;
    +
    181 using std::log2;
    +
    182 using std::logb;
    +
    183
    +
    184 using std::ceil;
    +
    185 using std::floor;
    +
    186 using std::llround;
    +
    187 using std::lround;
    +
    188 using std::nearbyint;
    +
    189 using std::remainder;
    +
    190 using std::rint;
    +
    191 using std::round;
    +
    192 using std::trunc;
    +
    193
    +
    194 using std::erf;
    +
    195 using std::erfc;
    +
    196 using std::lgamma;
    +
    197 using std::tgamma;
    +
    198
    +
    199 using std::arg;
    +
    200 using std::conj;
    +
    201 using std::imag;
    +
    202 using std::real;
    +
    203
    +
    204 using std::atan2;
    +
    205
    +
    206// copysign is not in the std namespace for MSVC
    +
    207#if !defined(_MSC_VER)
    +
    208 using std::copysign;
    +
    209#endif
    +
    210 using std::fdim;
    +
    211 using std::fmax;
    +
    212 using std::fmin;
    +
    213 using std::fmod;
    +
    214 using std::hypot;
    +
    215 using std::pow;
    +
    216
    +
    217 using std::fma;
    +
    218 using std::fpclassify;
    +
    219
    +
    220 // Overload isinf, isnan and isfinite because glibc implementation
    +
    221 // might return int instead of bool and the SIMD detection requires
    +
    222 // bool return type.
    +
    223 template <class T>
    +
    224 inline std::enable_if_t<xtl::is_arithmetic<T>::value, bool> isinf(const T& t)
    +
    225 {
    +
    226 return bool(std::isinf(t));
    +
    227 }
    +
    228
    +
    229 template <class T>
    +
    230 inline std::enable_if_t<xtl::is_arithmetic<T>::value, bool> isnan(const T& t)
    +
    231 {
    +
    232 return bool(std::isnan(t));
    +
    233 }
    +
    234
    +
    235 template <class T>
    +
    236 inline std::enable_if_t<xtl::is_arithmetic<T>::value, bool> isfinite(const T& t)
    +
    237 {
    +
    238 return bool(std::isfinite(t));
    +
    239 }
    +
    240
    +
    241 // Overload isinf, isnan and isfinite for complex datatypes,
    +
    242 // following the Python specification:
    +
    243 template <class T>
    +
    244 inline bool isinf(const std::complex<T>& c)
    +
    245 {
    +
    246 return std::isinf(std::real(c)) || std::isinf(std::imag(c));
    +
    247 }
    +
    248
    +
    249 template <class T>
    +
    250 inline bool isnan(const std::complex<T>& c)
    +
    251 {
    +
    252 return std::isnan(std::real(c)) || std::isnan(std::imag(c));
    +
    253 }
    +
    254
    +
    255 template <class T>
    +
    256 inline bool isfinite(const std::complex<T>& c)
    +
    257 {
    +
    258 return !isinf(c) && !isnan(c);
    +
    259 }
    +
    260
    +
    261 // VS2015 STL defines isnan, isinf and isfinite as template
    +
    262 // functions, breaking ADL.
    +
    263#if defined(_WIN32) && defined(XTENSOR_USE_XSIMD)
    +
    264 /*template <class T, class A>
    +
    265 inline xsimd::batch_bool<T, A> isinf(const xsimd::batch<T, A>& b)
    +
    266 {
    +
    267 return xsimd::isinf(b);
    +
    268 }
    +
    269 template <class T, class A>
    +
    270 inline xsimd::batch_bool<T, A> isnan(const xsimd::batch<T, A>& b)
    +
    271 {
    +
    272 return xsimd::isnan(b);
    +
    273 }
    +
    274 template <class T, class A>
    +
    275 inline xsimd::batch_bool<T, A> isfinite(const xsimd::batch<T, A>& b)
    +
    276 {
    +
    277 return xsimd::isfinite(b);
    +
    278 }*/
    +
    279#endif
    +
    280 // The following specializations are needed to avoid 'ambiguous overload' errors,
    +
    281 // whereas 'unsigned char' and 'unsigned short' are automatically converted to 'int'.
    +
    282 // we're still adding those functions to silence warnings
    +
    283 XTENSOR_UNSIGNED_ABS_FUNC(unsigned char)
    +
    284 XTENSOR_UNSIGNED_ABS_FUNC(unsigned short)
    +
    285 XTENSOR_UNSIGNED_ABS_FUNC(unsigned int)
    +
    286 XTENSOR_UNSIGNED_ABS_FUNC(unsigned long)
    +
    287 XTENSOR_UNSIGNED_ABS_FUNC(unsigned long long)
    +
    288
    +
    289#ifdef _WIN32
    +
    290 XTENSOR_INT_SPECIALIZATION(isinf, false);
    +
    291 XTENSOR_INT_SPECIALIZATION(isnan, false);
    +
    292 XTENSOR_INT_SPECIALIZATION(isfinite, true);
    +
    293#endif
    +
    294
    +
    295 XTENSOR_UNARY_MATH_FUNCTOR_COMPLEX_REDUCING(abs);
    +
    296
    +
    297 XTENSOR_UNARY_MATH_FUNCTOR(fabs);
    +
    298 XTENSOR_BINARY_MATH_FUNCTOR(fmod);
    +
    299 XTENSOR_BINARY_MATH_FUNCTOR(remainder);
    +
    300 XTENSOR_TERNARY_MATH_FUNCTOR(fma);
    +
    301 XTENSOR_BINARY_MATH_FUNCTOR(fmax);
    +
    302 XTENSOR_BINARY_MATH_FUNCTOR(fmin);
    +
    303 XTENSOR_BINARY_MATH_FUNCTOR(fdim);
    +
    304 XTENSOR_UNARY_MATH_FUNCTOR(exp);
    +
    305 XTENSOR_UNARY_MATH_FUNCTOR(exp2);
    +
    306 XTENSOR_UNARY_MATH_FUNCTOR(expm1);
    +
    307 XTENSOR_UNARY_MATH_FUNCTOR(log);
    +
    308 XTENSOR_UNARY_MATH_FUNCTOR(log10);
    +
    309 XTENSOR_UNARY_MATH_FUNCTOR(log2);
    +
    310 XTENSOR_UNARY_MATH_FUNCTOR(log1p);
    +
    311 XTENSOR_BINARY_MATH_FUNCTOR(pow);
    +
    312 XTENSOR_UNARY_MATH_FUNCTOR(sqrt);
    +
    313 XTENSOR_UNARY_MATH_FUNCTOR(cbrt);
    +
    314 XTENSOR_BINARY_MATH_FUNCTOR(hypot);
    +
    315 XTENSOR_UNARY_MATH_FUNCTOR(sin);
    +
    316 XTENSOR_UNARY_MATH_FUNCTOR(cos);
    +
    317 XTENSOR_UNARY_MATH_FUNCTOR(tan);
    +
    318 XTENSOR_UNARY_MATH_FUNCTOR(asin);
    +
    319 XTENSOR_UNARY_MATH_FUNCTOR(acos);
    +
    320 XTENSOR_UNARY_MATH_FUNCTOR(atan);
    +
    321 XTENSOR_BINARY_MATH_FUNCTOR(atan2);
    +
    322 XTENSOR_UNARY_MATH_FUNCTOR(sinh);
    +
    323 XTENSOR_UNARY_MATH_FUNCTOR(cosh);
    +
    324 XTENSOR_UNARY_MATH_FUNCTOR(tanh);
    +
    325 XTENSOR_UNARY_MATH_FUNCTOR(asinh);
    +
    326 XTENSOR_UNARY_MATH_FUNCTOR(acosh);
    +
    327 XTENSOR_UNARY_MATH_FUNCTOR(atanh);
    +
    328 XTENSOR_UNARY_MATH_FUNCTOR(erf);
    +
    329 XTENSOR_UNARY_MATH_FUNCTOR(erfc);
    +
    330 XTENSOR_UNARY_MATH_FUNCTOR(tgamma);
    +
    331 XTENSOR_UNARY_MATH_FUNCTOR(lgamma);
    +
    332 XTENSOR_UNARY_MATH_FUNCTOR(ceil);
    +
    333 XTENSOR_UNARY_MATH_FUNCTOR(floor);
    +
    334 XTENSOR_UNARY_MATH_FUNCTOR(trunc);
    +
    335 XTENSOR_UNARY_MATH_FUNCTOR(round);
    +
    336 XTENSOR_UNARY_MATH_FUNCTOR(nearbyint);
    +
    337 XTENSOR_UNARY_MATH_FUNCTOR(rint);
    +
    338 XTENSOR_UNARY_MATH_FUNCTOR(isfinite);
    +
    339 XTENSOR_UNARY_MATH_FUNCTOR(isinf);
    +
    340 XTENSOR_UNARY_MATH_FUNCTOR(isnan);
    +
    341 XTENSOR_UNARY_MATH_FUNCTOR(conj);
    +
    342 }
    +
    343
    +
    344#undef XTENSOR_UNARY_MATH_FUNCTOR
    +
    345#undef XTENSOR_BINARY_MATH_FUNCTOR
    +
    346#undef XTENSOR_TERNARY_MATH_FUNCTOR
    +
    347#undef XTENSOR_UNARY_MATH_FUNCTOR_COMPLEX_REDUCING
    +
    348#undef XTENSOR_UNSIGNED_ABS_FUNC
    +
    349
    +
    350 namespace detail
    +
    351 {
    +
    352 template <class R, class T>
    +
    353 std::enable_if_t<!has_iterator_interface<R>::value, R> fill_init(T init)
    +
    354 {
    +
    355 return R(init);
    +
    356 }
    +
    357
    +
    358 template <class R, class T>
    +
    359 std::enable_if_t<has_iterator_interface<R>::value, R> fill_init(T init)
    +
    360 {
    +
    361 R result;
    +
    362 std::fill(std::begin(result), std::end(result), init);
    +
    363 return result;
    +
    364 }
    +
    365 }
    +
    366
    +
    367#define XTENSOR_REDUCER_FUNCTION(NAME, FUNCTOR, INIT_VALUE_TYPE, INIT) \
    +
    368 template < \
    +
    369 class T = void, \
    +
    370 class E, \
    +
    371 class X, \
    +
    372 class EVS = DEFAULT_STRATEGY_REDUCERS, \
    +
    373 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<std::decay_t<X>>>)> \
    +
    374 inline auto NAME(E&& e, X&& axes, EVS es = EVS()) \
    +
    375 { \
    +
    376 using init_value_type = std::conditional_t<std::is_same<T, void>::value, INIT_VALUE_TYPE, T>; \
    +
    377 using functor_type = FUNCTOR; \
    +
    378 using init_value_fct = xt::const_value<init_value_type>; \
    +
    379 return xt::reduce( \
    +
    380 make_xreducer_functor(functor_type(), init_value_fct(detail::fill_init<init_value_type>(INIT))), \
    +
    381 std::forward<E>(e), \
    +
    382 std::forward<X>(axes), \
    +
    383 es \
    +
    384 ); \
    +
    385 } \
    +
    386 \
    +
    387 template < \
    +
    388 class T = void, \
    +
    389 class E, \
    +
    390 class X, \
    +
    391 class EVS = DEFAULT_STRATEGY_REDUCERS, \
    +
    392 XTL_REQUIRES(std::negation<is_reducer_options<X>>, xtl::is_integral<std::decay_t<X>>)> \
    +
    393 inline auto NAME(E&& e, X axis, EVS es = EVS()) \
    +
    394 { \
    +
    395 return NAME(std::forward<E>(e), {axis}, es); \
    +
    396 } \
    +
    397 \
    +
    398 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)> \
    +
    399 inline auto NAME(E&& e, EVS es = EVS()) \
    +
    400 { \
    +
    401 using init_value_type = std::conditional_t<std::is_same<T, void>::value, INIT_VALUE_TYPE, T>; \
    +
    402 using functor_type = FUNCTOR; \
    +
    403 using init_value_fct = xt::const_value<init_value_type>; \
    +
    404 return xt::reduce( \
    +
    405 make_xreducer_functor(functor_type(), init_value_fct(detail::fill_init<init_value_type>(INIT))), \
    +
    406 std::forward<E>(e), \
    +
    407 es \
    +
    408 ); \
    +
    409 } \
    +
    410 \
    +
    411 template <class T = void, class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS> \
    +
    412 inline auto NAME(E&& e, const I(&axes)[N], EVS es = EVS()) \
    +
    413 { \
    +
    414 using init_value_type = std::conditional_t<std::is_same<T, void>::value, INIT_VALUE_TYPE, T>; \
    +
    415 using functor_type = FUNCTOR; \
    +
    416 using init_value_fct = xt::const_value<init_value_type>; \
    +
    417 return xt::reduce( \
    +
    418 make_xreducer_functor(functor_type(), init_value_fct(detail::fill_init<init_value_type>(INIT))), \
    +
    419 std::forward<E>(e), \
    +
    420 axes, \
    +
    421 es \
    +
    422 ); \
    +
    423 }
    +
    424
    +
    425 /*******************
    +
    426 * basic functions *
    +
    427 *******************/
    +
    428
    +
    432
    +
    442 template <class E>
    +
    +
    443 inline auto abs(E&& e) noexcept -> detail::xfunction_type_t<math::abs_fun, E>
    +
    444 {
    +
    445 return detail::make_xfunction<math::abs_fun>(std::forward<E>(e));
    +
    446 }
    +
    +
    447
    +
    457 template <class E>
    +
    +
    458 inline auto fabs(E&& e) noexcept -> detail::xfunction_type_t<math::fabs_fun, E>
    +
    459 {
    +
    460 return detail::make_xfunction<math::fabs_fun>(std::forward<E>(e));
    +
    461 }
    +
    +
    462
    +
    474 template <class E1, class E2>
    +
    +
    475 inline auto fmod(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::fmod_fun, E1, E2>
    +
    476 {
    +
    477 return detail::make_xfunction<math::fmod_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    478 }
    +
    +
    479
    +
    491 template <class E1, class E2>
    +
    +
    492 inline auto remainder(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::remainder_fun, E1, E2>
    +
    493 {
    +
    494 return detail::make_xfunction<math::remainder_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    495 }
    +
    +
    496
    +
    509 template <class E1, class E2, class E3>
    +
    +
    510 inline auto fma(E1&& e1, E2&& e2, E3&& e3) noexcept -> detail::xfunction_type_t<math::fma_fun, E1, E2, E3>
    +
    511 {
    +
    512 return detail::make_xfunction<math::fma_fun>(
    +
    513 std::forward<E1>(e1),
    +
    514 std::forward<E2>(e2),
    +
    515 std::forward<E3>(e3)
    +
    516 );
    +
    517 }
    +
    +
    518
    +
    530 template <class E1, class E2>
    +
    +
    531 inline auto fmax(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::fmax_fun, E1, E2>
    +
    532 {
    +
    533 return detail::make_xfunction<math::fmax_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    534 }
    +
    +
    535
    +
    547 template <class E1, class E2>
    +
    +
    548 inline auto fmin(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::fmin_fun, E1, E2>
    +
    549 {
    +
    550 return detail::make_xfunction<math::fmin_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    551 }
    +
    +
    552
    +
    564 template <class E1, class E2>
    +
    +
    565 inline auto fdim(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::fdim_fun, E1, E2>
    +
    566 {
    +
    567 return detail::make_xfunction<math::fdim_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    568 }
    +
    +
    569
    +
    570 namespace math
    +
    571 {
    +
    572 template <class T = void>
    +
    +
    573 struct minimum
    +
    574 {
    +
    575 template <class A1, class A2>
    +
    576 constexpr auto operator()(const A1& t1, const A2& t2) const noexcept
    +
    577 {
    +
    578 return xtl::select(t1 < t2, t1, t2);
    +
    579 }
    +
    580
    +
    581 template <class A1, class A2>
    +
    582 constexpr auto simd_apply(const A1& t1, const A2& t2) const noexcept
    +
    583 {
    +
    584 return xt_simd::select(t1 < t2, t1, t2);
    +
    585 }
    +
    586 };
    +
    +
    587
    +
    588 template <class T = void>
    +
    +
    589 struct maximum
    +
    590 {
    +
    591 template <class A1, class A2>
    +
    592 constexpr auto operator()(const A1& t1, const A2& t2) const noexcept
    +
    593 {
    +
    594 return xtl::select(t1 > t2, t1, t2);
    +
    595 }
    +
    596
    +
    597 template <class A1, class A2>
    +
    598 constexpr auto simd_apply(const A1& t1, const A2& t2) const noexcept
    +
    599 {
    +
    600 return xt_simd::select(t1 > t2, t1, t2);
    +
    601 }
    +
    602 };
    +
    +
    603
    +
    + +
    605 {
    +
    606 template <class A1, class A2, class A3>
    +
    607 constexpr auto operator()(const A1& v, const A2& lo, const A3& hi) const
    +
    608 {
    +
    609 return xtl::select(v < lo, lo, xtl::select(hi < v, hi, v));
    +
    610 }
    +
    611
    +
    612 template <class A1, class A2, class A3>
    +
    613 constexpr auto simd_apply(const A1& v, const A2& lo, const A3& hi) const
    +
    614 {
    +
    615 return xt_simd::select(v < lo, lo, xt_simd::select(hi < v, hi, v));
    +
    616 }
    +
    617 };
    +
    +
    618
    +
    +
    619 struct deg2rad
    +
    620 {
    +
    621 template <class A, std::enable_if_t<xtl::is_integral<A>::value, int> = 0>
    +
    622 constexpr double operator()(const A& a) const noexcept
    +
    623 {
    +
    624 return a * xt::numeric_constants<double>::PI / 180.0;
    +
    625 }
    +
    626
    +
    627 template <class A, std::enable_if_t<std::is_floating_point<A>::value, int> = 0>
    +
    628 constexpr auto operator()(const A& a) const noexcept
    +
    629 {
    +
    630 return a * xt::numeric_constants<A>::PI / A(180.0);
    +
    631 }
    +
    632
    +
    633 template <class A, std::enable_if_t<xtl::is_integral<A>::value, int> = 0>
    +
    634 constexpr double simd_apply(const A& a) const noexcept
    +
    635 {
    +
    636 return a * xt::numeric_constants<double>::PI / 180.0;
    +
    637 }
    +
    638
    +
    639 template <class A, std::enable_if_t<std::is_floating_point<A>::value, int> = 0>
    +
    640 constexpr auto simd_apply(const A& a) const noexcept
    +
    641 {
    +
    642 return a * xt::numeric_constants<A>::PI / A(180.0);
    +
    643 }
    +
    644 };
    +
    +
    645
    +
    +
    646 struct rad2deg
    +
    647 {
    +
    648 template <class A, std::enable_if_t<xtl::is_integral<A>::value, int> = 0>
    +
    649 constexpr double operator()(const A& a) const noexcept
    +
    650 {
    +
    651 return a * 180.0 / xt::numeric_constants<double>::PI;
    +
    652 }
    +
    653
    +
    654 template <class A, std::enable_if_t<std::is_floating_point<A>::value, int> = 0>
    +
    655 constexpr auto operator()(const A& a) const noexcept
    +
    656 {
    +
    657 return a * A(180.0) / xt::numeric_constants<A>::PI;
    +
    658 }
    +
    659
    +
    660 template <class A, std::enable_if_t<xtl::is_integral<A>::value, int> = 0>
    +
    661 constexpr double simd_apply(const A& a) const noexcept
    +
    662 {
    +
    663 return a * 180.0 / xt::numeric_constants<double>::PI;
    +
    664 }
    +
    665
    +
    666 template <class A, std::enable_if_t<std::is_floating_point<A>::value, int> = 0>
    +
    667 constexpr auto simd_apply(const A& a) const noexcept
    +
    668 {
    +
    669 return a * A(180.0) / xt::numeric_constants<A>::PI;
    +
    670 }
    +
    671 };
    +
    +
    672 }
    +
    673
    +
    683 template <class E>
    +
    +
    684 inline auto deg2rad(E&& e) noexcept -> detail::xfunction_type_t<math::deg2rad, E>
    +
    685 {
    +
    686 return detail::make_xfunction<math::deg2rad>(std::forward<E>(e));
    +
    687 }
    +
    +
    688
    +
    698 template <class E>
    +
    +
    699 inline auto radians(E&& e) noexcept -> detail::xfunction_type_t<math::deg2rad, E>
    +
    700 {
    +
    701 return detail::make_xfunction<math::deg2rad>(std::forward<E>(e));
    +
    702 }
    +
    +
    703
    +
    713 template <class E>
    +
    +
    714 inline auto rad2deg(E&& e) noexcept -> detail::xfunction_type_t<math::rad2deg, E>
    +
    715 {
    +
    716 return detail::make_xfunction<math::rad2deg>(std::forward<E>(e));
    +
    717 }
    +
    +
    718
    +
    728 template <class E>
    +
    +
    729 inline auto degrees(E&& e) noexcept -> detail::xfunction_type_t<math::rad2deg, E>
    +
    730 {
    +
    731 return detail::make_xfunction<math::rad2deg>(std::forward<E>(e));
    +
    732 }
    +
    +
    733
    +
    744 template <class E1, class E2>
    +
    +
    745 inline auto maximum(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::maximum<void>, E1, E2>
    +
    746 {
    +
    747 return detail::make_xfunction<math::maximum<void>>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    748 }
    +
    +
    749
    +
    760 template <class E1, class E2>
    +
    +
    761 inline auto minimum(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::minimum<void>, E1, E2>
    +
    762 {
    +
    763 return detail::make_xfunction<math::minimum<void>>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    764 }
    +
    +
    765
    +
    777 XTENSOR_REDUCER_FUNCTION(
    +
    778 amax,
    +
    779 math::maximum<void>,
    +
    780 typename std::decay_t<E>::value_type,
    +
    781 std::numeric_limits<xvalue_type_t<std::decay_t<E>>>::lowest()
    + +
    783
    +
    784
    +
    795 XTENSOR_REDUCER_FUNCTION(
    +
    796 amin,
    +
    797 math::minimum<void>,
    +
    798 typename std::decay_t<E>::value_type,
    +
    799 std::numeric_limits<xvalue_type_t<std::decay_t<E>>>::max()
    + +
    801
    +
    814 template <class E1, class E2, class E3>
    +
    +
    815 inline auto clip(E1&& e1, E2&& lo, E3&& hi) noexcept
    +
    816 -> detail::xfunction_type_t<math::clamp_fun, E1, E2, E3>
    +
    817 {
    +
    818 return detail::make_xfunction<math::clamp_fun>(
    +
    819 std::forward<E1>(e1),
    +
    820 std::forward<E2>(lo),
    +
    821 std::forward<E3>(hi)
    +
    822 );
    +
    823 }
    +
    +
    824
    +
    825 namespace math
    +
    826 {
    +
    827 template <class T>
    +
    + +
    829 {
    +
    830 template <class XT = T>
    +
    831 static constexpr std::enable_if_t<xtl::is_signed<XT>::value, T> run(T x)
    +
    832 {
    +
    833 return std::isnan(x) ? std::numeric_limits<T>::quiet_NaN()
    +
    834 : x == 0 ? T(copysign(T(0), x))
    +
    835 : T(copysign(T(1), x));
    +
    836 }
    +
    837
    +
    838 template <class XT = T>
    +
    839 static constexpr std::enable_if_t<xtl::is_complex<XT>::value, T> run(T x)
    +
    840 {
    +
    841 return T(
    +
    842 sign_impl<typename T::value_type>::run(
    +
    843 (x.real() != typename T::value_type(0)) ? x.real() : x.imag()
    +
    844 ),
    +
    845 0
    +
    846 );
    +
    847 }
    +
    848
    +
    849 template <class XT = T>
    +
    850 static constexpr std::enable_if_t<std::is_unsigned<XT>::value, T> run(T x)
    +
    851 {
    +
    852 return T(x > T(0));
    +
    853 }
    +
    854 };
    +
    +
    855
    +
    +
    856 struct sign_fun
    +
    857 {
    +
    858 template <class T>
    +
    859 constexpr auto operator()(const T& x) const
    +
    860 {
    +
    861 return sign_impl<T>::run(x);
    +
    862 }
    +
    863 };
    +
    +
    864 }
    +
    865
    +
    876 template <class E>
    +
    +
    877 inline auto sign(E&& e) noexcept -> detail::xfunction_type_t<math::sign_fun, E>
    +
    878 {
    +
    879 return detail::make_xfunction<math::sign_fun>(std::forward<E>(e));
    +
    880 }
    +
    +
    881
    +
    882 /*************************
    +
    883 * exponential functions *
    +
    884 *************************/
    +
    885
    +
    889
    +
    899 template <class E>
    +
    +
    900 inline auto exp(E&& e) noexcept -> detail::xfunction_type_t<math::exp_fun, E>
    +
    901 {
    +
    902 return detail::make_xfunction<math::exp_fun>(std::forward<E>(e));
    +
    903 }
    +
    +
    904
    +
    914 template <class E>
    +
    +
    915 inline auto exp2(E&& e) noexcept -> detail::xfunction_type_t<math::exp2_fun, E>
    +
    916 {
    +
    917 return detail::make_xfunction<math::exp2_fun>(std::forward<E>(e));
    +
    918 }
    +
    +
    919
    +
    929 template <class E>
    +
    +
    930 inline auto expm1(E&& e) noexcept -> detail::xfunction_type_t<math::expm1_fun, E>
    +
    931 {
    +
    932 return detail::make_xfunction<math::expm1_fun>(std::forward<E>(e));
    +
    933 }
    +
    +
    934
    +
    944 template <class E>
    +
    +
    945 inline auto log(E&& e) noexcept -> detail::xfunction_type_t<math::log_fun, E>
    +
    946 {
    +
    947 return detail::make_xfunction<math::log_fun>(std::forward<E>(e));
    +
    948 }
    +
    +
    949
    +
    959 template <class E>
    +
    +
    960 inline auto log10(E&& e) noexcept -> detail::xfunction_type_t<math::log10_fun, E>
    +
    961 {
    +
    962 return detail::make_xfunction<math::log10_fun>(std::forward<E>(e));
    +
    963 }
    +
    +
    964
    +
    974 template <class E>
    +
    +
    975 inline auto log2(E&& e) noexcept -> detail::xfunction_type_t<math::log2_fun, E>
    +
    976 {
    +
    977 return detail::make_xfunction<math::log2_fun>(std::forward<E>(e));
    +
    978 }
    +
    +
    979
    +
    989 template <class E>
    +
    +
    990 inline auto log1p(E&& e) noexcept -> detail::xfunction_type_t<math::log1p_fun, E>
    +
    991 {
    +
    992 return detail::make_xfunction<math::log1p_fun>(std::forward<E>(e));
    +
    993 }
    +
    +
    994
    +
    995 /*******************
    +
    996 * power functions *
    +
    997 *******************/
    +
    998
    +
    1002
    +
    1014 template <class E1, class E2>
    +
    +
    1015 inline auto pow(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::pow_fun, E1, E2>
    +
    1016 {
    +
    1017 return detail::make_xfunction<math::pow_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    1018 }
    +
    +
    1019
    +
    1020 namespace detail
    +
    1021 {
    +
    1022 template <class F, class... T, typename = decltype(std::declval<F>()(std::declval<T>()...))>
    +
    1023 std::true_type supports_test(const F&, const T&...);
    +
    1024 std::false_type supports_test(...);
    +
    1025
    +
    1026 template <class... T>
    +
    1027 struct supports;
    +
    1028
    +
    1029 template <class F, class... T>
    +
    1030 struct supports<F(T...)> : decltype(supports_test(std::declval<F>(), std::declval<T>()...))
    +
    1031 {
    +
    1032 };
    +
    1033
    +
    1034 template <class F>
    +
    1035 struct lambda_adapt
    +
    1036 {
    +
    1037 explicit lambda_adapt(F&& lmbd)
    +
    1038 : m_lambda(std::move(lmbd))
    +
    1039 {
    +
    1040 }
    +
    1041
    +
    1042 template <class... T>
    +
    1043 auto operator()(T... args) const
    +
    1044 {
    +
    1045 return m_lambda(args...);
    +
    1046 }
    +
    1047
    +
    1048 template <class... T, XTL_REQUIRES(detail::supports<F(T...)>)>
    +
    1049 auto simd_apply(T... args) const
    +
    1050 {
    +
    1051 return m_lambda(args...);
    +
    1052 }
    +
    1053
    +
    1054 F m_lambda;
    +
    1055 };
    +
    1056 }
    +
    1057
    +
    1084 template <class F, class... E>
    +
    +
    1085 inline auto make_lambda_xfunction(F&& lambda, E&&... args)
    +
    1086 {
    +
    1087 using xfunction_type = typename detail::xfunction_type<detail::lambda_adapt<F>, E...>::type;
    +
    1088 return xfunction_type(detail::lambda_adapt<F>(std::forward<F>(lambda)), std::forward<E>(args)...);
    +
    1089 }
    +
    +
    1090
    +
    1091// Workaround for MSVC 2015 & GCC 4.9
    +
    1092#if (defined(_MSC_VER) && _MSC_VER < 1910) || (defined(__GNUC__) && __GNUC__ < 5)
    +
    1093#define XTENSOR_DISABLE_LAMBDA_FCT
    +
    1094#endif
    +
    1095
    +
    1096#ifdef XTENSOR_DISABLE_LAMBDA_FCT
    +
    1097 struct square_fct
    +
    1098 {
    +
    1099 template <class T>
    +
    1100 auto operator()(T x) const -> decltype(x * x)
    +
    1101 {
    +
    1102 return x * x;
    +
    1103 }
    +
    1104 };
    +
    1105
    +
    1106 struct cube_fct
    +
    1107 {
    +
    1108 template <class T>
    +
    1109 auto operator()(T x) const -> decltype(x * x * x)
    +
    1110 {
    +
    1111 return x * x * x;
    +
    1112 }
    +
    1113 };
    +
    1114#endif
    +
    1115
    +
    1125 template <class E1>
    +
    +
    1126 inline auto square(E1&& e1) noexcept
    +
    1127 {
    +
    1128#ifdef XTENSOR_DISABLE_LAMBDA_FCT
    +
    1129 return make_lambda_xfunction(square_fct{}, std::forward<E1>(e1));
    +
    1130#else
    +
    1131 auto fnct = [](auto x) -> decltype(x * x)
    +
    1132 {
    +
    1133 return x * x;
    +
    1134 };
    +
    1135 return make_lambda_xfunction(std::move(fnct), std::forward<E1>(e1));
    +
    1136#endif
    +
    1137 }
    +
    +
    1138
    +
    1148 template <class E1>
    +
    +
    1149 inline auto cube(E1&& e1) noexcept
    +
    1150 {
    +
    1151#ifdef XTENSOR_DISABLE_LAMBDA_FCT
    +
    1152 return make_lambda_xfunction(cube_fct{}, std::forward<E1>(e1));
    +
    1153#else
    +
    1154 auto fnct = [](auto x) -> decltype(x * x * x)
    +
    1155 {
    +
    1156 return x * x * x;
    +
    1157 };
    +
    1158 return make_lambda_xfunction(std::move(fnct), std::forward<E1>(e1));
    +
    1159#endif
    +
    1160 }
    +
    +
    1161
    +
    1162#undef XTENSOR_DISABLE_LAMBDA_FCT
    +
    1163
    +
    1164 namespace detail
    +
    1165 {
    +
    1166 // Thanks to Matt Pharr in http://pbrt.org/hair.pdf
    +
    1167 template <std::size_t N>
    +
    1168 struct pow_impl;
    +
    1169
    +
    1170 template <std::size_t N>
    +
    1171 struct pow_impl
    +
    1172 {
    +
    1173 template <class T>
    +
    1174 auto operator()(T v) const -> decltype(v * v)
    +
    1175 {
    +
    1176 T temp = pow_impl<N / 2>{}(v);
    +
    1177 return temp * temp * pow_impl<N & 1>{}(v);
    +
    1178 }
    +
    1179 };
    +
    1180
    +
    1181 template <>
    +
    1182 struct pow_impl<1>
    +
    1183 {
    +
    1184 template <class T>
    +
    1185 auto operator()(T v) const -> T
    +
    1186 {
    +
    1187 return v;
    +
    1188 }
    +
    1189 };
    +
    1190
    +
    1191 template <>
    +
    1192 struct pow_impl<0>
    +
    1193 {
    +
    1194 template <class T>
    +
    1195 auto operator()(T /*v*/) const -> T
    +
    1196 {
    +
    1197 return T(1);
    +
    1198 }
    +
    1199 };
    +
    1200 }
    +
    1201
    +
    1219 template <std::size_t N, class E>
    +
    +
    1220 inline auto pow(E&& e) noexcept
    +
    1221 {
    +
    1222 static_assert(N > 0, "integer power cannot be negative");
    +
    1223 return make_lambda_xfunction(detail::pow_impl<N>{}, std::forward<E>(e));
    +
    1224 }
    +
    +
    1225
    +
    1235 template <class E>
    +
    +
    1236 inline auto sqrt(E&& e) noexcept -> detail::xfunction_type_t<math::sqrt_fun, E>
    +
    1237 {
    +
    1238 return detail::make_xfunction<math::sqrt_fun>(std::forward<E>(e));
    +
    1239 }
    +
    +
    1240
    +
    1250 template <class E>
    +
    +
    1251 inline auto cbrt(E&& e) noexcept -> detail::xfunction_type_t<math::cbrt_fun, E>
    +
    1252 {
    +
    1253 return detail::make_xfunction<math::cbrt_fun>(std::forward<E>(e));
    +
    1254 }
    +
    +
    1255
    +
    1268 template <class E1, class E2>
    +
    +
    1269 inline auto hypot(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::hypot_fun, E1, E2>
    +
    1270 {
    +
    1271 return detail::make_xfunction<math::hypot_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    1272 }
    +
    +
    1273
    +
    1274 /***************************
    +
    1275 * trigonometric functions *
    +
    1276 ***************************/
    +
    1277
    +
    1281
    +
    1291 template <class E>
    +
    +
    1292 inline auto sin(E&& e) noexcept -> detail::xfunction_type_t<math::sin_fun, E>
    +
    1293 {
    +
    1294 return detail::make_xfunction<math::sin_fun>(std::forward<E>(e));
    +
    1295 }
    +
    +
    1296
    +
    1306 template <class E>
    +
    +
    1307 inline auto cos(E&& e) noexcept -> detail::xfunction_type_t<math::cos_fun, E>
    +
    1308 {
    +
    1309 return detail::make_xfunction<math::cos_fun>(std::forward<E>(e));
    +
    1310 }
    +
    +
    1311
    +
    1321 template <class E>
    +
    +
    1322 inline auto tan(E&& e) noexcept -> detail::xfunction_type_t<math::tan_fun, E>
    +
    1323 {
    +
    1324 return detail::make_xfunction<math::tan_fun>(std::forward<E>(e));
    +
    1325 }
    +
    +
    1326
    +
    1336 template <class E>
    +
    +
    1337 inline auto asin(E&& e) noexcept -> detail::xfunction_type_t<math::asin_fun, E>
    +
    1338 {
    +
    1339 return detail::make_xfunction<math::asin_fun>(std::forward<E>(e));
    +
    1340 }
    +
    +
    1341
    +
    1351 template <class E>
    +
    +
    1352 inline auto acos(E&& e) noexcept -> detail::xfunction_type_t<math::acos_fun, E>
    +
    1353 {
    +
    1354 return detail::make_xfunction<math::acos_fun>(std::forward<E>(e));
    +
    1355 }
    +
    +
    1356
    +
    1366 template <class E>
    +
    +
    1367 inline auto atan(E&& e) noexcept -> detail::xfunction_type_t<math::atan_fun, E>
    +
    1368 {
    +
    1369 return detail::make_xfunction<math::atan_fun>(std::forward<E>(e));
    +
    1370 }
    +
    +
    1371
    +
    1384 template <class E1, class E2>
    +
    +
    1385 inline auto atan2(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<math::atan2_fun, E1, E2>
    +
    1386 {
    +
    1387 return detail::make_xfunction<math::atan2_fun>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    1388 }
    +
    +
    1389
    +
    1390 /************************
    +
    1391 * hyperbolic functions *
    +
    1392 ************************/
    +
    1393
    +
    1397
    +
    1407 template <class E>
    +
    +
    1408 inline auto sinh(E&& e) noexcept -> detail::xfunction_type_t<math::sinh_fun, E>
    +
    1409 {
    +
    1410 return detail::make_xfunction<math::sinh_fun>(std::forward<E>(e));
    +
    1411 }
    +
    +
    1412
    +
    1422 template <class E>
    +
    +
    1423 inline auto cosh(E&& e) noexcept -> detail::xfunction_type_t<math::cosh_fun, E>
    +
    1424 {
    +
    1425 return detail::make_xfunction<math::cosh_fun>(std::forward<E>(e));
    +
    1426 }
    +
    +
    1427
    +
    1437 template <class E>
    +
    +
    1438 inline auto tanh(E&& e) noexcept -> detail::xfunction_type_t<math::tanh_fun, E>
    +
    1439 {
    +
    1440 return detail::make_xfunction<math::tanh_fun>(std::forward<E>(e));
    +
    1441 }
    +
    +
    1442
    +
    1452 template <class E>
    +
    +
    1453 inline auto asinh(E&& e) noexcept -> detail::xfunction_type_t<math::asinh_fun, E>
    +
    1454 {
    +
    1455 return detail::make_xfunction<math::asinh_fun>(std::forward<E>(e));
    +
    1456 }
    +
    +
    1457
    +
    1467 template <class E>
    +
    +
    1468 inline auto acosh(E&& e) noexcept -> detail::xfunction_type_t<math::acosh_fun, E>
    +
    1469 {
    +
    1470 return detail::make_xfunction<math::acosh_fun>(std::forward<E>(e));
    +
    1471 }
    +
    +
    1472
    +
    1482 template <class E>
    +
    +
    1483 inline auto atanh(E&& e) noexcept -> detail::xfunction_type_t<math::atanh_fun, E>
    +
    1484 {
    +
    1485 return detail::make_xfunction<math::atanh_fun>(std::forward<E>(e));
    +
    1486 }
    +
    +
    1487
    +
    1488 /*****************************
    +
    1489 * error and gamma functions *
    +
    1490 *****************************/
    +
    1491
    +
    1495
    +
    1505 template <class E>
    +
    +
    1506 inline auto erf(E&& e) noexcept -> detail::xfunction_type_t<math::erf_fun, E>
    +
    1507 {
    +
    1508 return detail::make_xfunction<math::erf_fun>(std::forward<E>(e));
    +
    1509 }
    +
    +
    1510
    +
    1520 template <class E>
    +
    +
    1521 inline auto erfc(E&& e) noexcept -> detail::xfunction_type_t<math::erfc_fun, E>
    +
    1522 {
    +
    1523 return detail::make_xfunction<math::erfc_fun>(std::forward<E>(e));
    +
    1524 }
    +
    +
    1525
    +
    1535 template <class E>
    +
    +
    1536 inline auto tgamma(E&& e) noexcept -> detail::xfunction_type_t<math::tgamma_fun, E>
    +
    1537 {
    +
    1538 return detail::make_xfunction<math::tgamma_fun>(std::forward<E>(e));
    +
    1539 }
    +
    +
    1540
    +
    1550 template <class E>
    +
    +
    1551 inline auto lgamma(E&& e) noexcept -> detail::xfunction_type_t<math::lgamma_fun, E>
    +
    1552 {
    +
    1553 return detail::make_xfunction<math::lgamma_fun>(std::forward<E>(e));
    +
    1554 }
    +
    +
    1555
    +
    1556 /*********************************************
    +
    1557 * nearest integer floating point operations *
    +
    1558 *********************************************/
    +
    1559
    +
    1563
    +
    1573 template <class E>
    +
    +
    1574 inline auto ceil(E&& e) noexcept -> detail::xfunction_type_t<math::ceil_fun, E>
    +
    1575 {
    +
    1576 return detail::make_xfunction<math::ceil_fun>(std::forward<E>(e));
    +
    1577 }
    +
    +
    1578
    +
    1588 template <class E>
    +
    +
    1589 inline auto floor(E&& e) noexcept -> detail::xfunction_type_t<math::floor_fun, E>
    +
    1590 {
    +
    1591 return detail::make_xfunction<math::floor_fun>(std::forward<E>(e));
    +
    1592 }
    +
    +
    1593
    +
    1603 template <class E>
    +
    +
    1604 inline auto trunc(E&& e) noexcept -> detail::xfunction_type_t<math::trunc_fun, E>
    +
    1605 {
    +
    1606 return detail::make_xfunction<math::trunc_fun>(std::forward<E>(e));
    +
    1607 }
    +
    +
    1608
    +
    1619 template <class E>
    +
    +
    1620 inline auto round(E&& e) noexcept -> detail::xfunction_type_t<math::round_fun, E>
    +
    1621 {
    +
    1622 return detail::make_xfunction<math::round_fun>(std::forward<E>(e));
    +
    1623 }
    +
    +
    1624
    +
    1635 template <class E>
    +
    +
    1636 inline auto nearbyint(E&& e) noexcept -> detail::xfunction_type_t<math::nearbyint_fun, E>
    +
    1637 {
    +
    1638 return detail::make_xfunction<math::nearbyint_fun>(std::forward<E>(e));
    +
    1639 }
    +
    +
    1640
    +
    1651 template <class E>
    +
    +
    1652 inline auto rint(E&& e) noexcept -> detail::xfunction_type_t<math::rint_fun, E>
    +
    1653 {
    +
    1654 return detail::make_xfunction<math::rint_fun>(std::forward<E>(e));
    +
    1655 }
    +
    +
    1656
    +
    1657 /****************************
    +
    1658 * classification functions *
    +
    1659 ****************************/
    +
    1660
    +
    1664
    +
    1674 template <class E>
    +
    +
    1675 inline auto isfinite(E&& e) noexcept -> detail::xfunction_type_t<math::isfinite_fun, E>
    +
    1676 {
    +
    1677 return detail::make_xfunction<math::isfinite_fun>(std::forward<E>(e));
    +
    1678 }
    +
    +
    1679
    +
    1689 template <class E>
    +
    +
    1690 inline auto isinf(E&& e) noexcept -> detail::xfunction_type_t<math::isinf_fun, E>
    +
    1691 {
    +
    1692 return detail::make_xfunction<math::isinf_fun>(std::forward<E>(e));
    +
    1693 }
    +
    +
    1694
    +
    1704 template <class E>
    +
    +
    1705 inline auto isnan(E&& e) noexcept -> detail::xfunction_type_t<math::isnan_fun, E>
    +
    1706 {
    +
    1707 return detail::make_xfunction<math::isnan_fun>(std::forward<E>(e));
    +
    1708 }
    +
    +
    1709
    +
    1710 namespace detail
    +
    1711 {
    +
    1712 template <class FUNCTOR, class T, std::size_t... Is>
    +
    1713 inline auto get_functor(T&& args, std::index_sequence<Is...>)
    +
    1714 {
    +
    1715 return FUNCTOR(std::get<Is>(args)...);
    +
    1716 }
    +
    1717
    +
    1718 template <class F, class... A, class... E>
    +
    1719 inline auto make_xfunction(std::tuple<A...>&& f_args, E&&... e) noexcept
    +
    1720 {
    +
    1721 using functor_type = F;
    +
    1722 using expression_tag = xexpression_tag_t<E...>;
    +
    1723 using type = select_xfunction_expression_t<expression_tag, functor_type, const_xclosure_t<E>...>;
    +
    1724 auto functor = get_functor<functor_type>(
    +
    1725 std::forward<std::tuple<A...>>(f_args),
    +
    1726 std::make_index_sequence<sizeof...(A)>{}
    +
    1727 );
    +
    1728 return type(std::move(functor), std::forward<E>(e)...);
    +
    1729 }
    +
    1730
    +
    1731 struct isclose
    +
    1732 {
    +
    1733 using result_type = bool;
    +
    1734
    +
    1735 isclose(double rtol, double atol, bool equal_nan)
    +
    1736 : m_rtol(rtol)
    +
    1737 , m_atol(atol)
    +
    1738 , m_equal_nan(equal_nan)
    +
    1739 {
    +
    1740 }
    +
    1741
    +
    1742 template <class A1, class A2>
    +
    1743 bool operator()(const A1& a, const A2& b) const
    +
    1744 {
    +
    1745 using internal_type = xtl::promote_type_t<A1, A2, double>;
    +
    1746 if (math::isnan(a) && math::isnan(b))
    +
    1747 {
    +
    1748 return m_equal_nan;
    +
    1749 }
    +
    1750 if (math::isinf(a) && math::isinf(b))
    +
    1751 {
    +
    1752 // check for both infinity signs equal
    +
    1753 return a == b;
    +
    1754 }
    +
    1755 auto d = math::abs(internal_type(a) - internal_type(b));
    +
    1756 return d <= m_atol
    +
    1757 || d <= m_rtol
    +
    1758 * double((std::max)(math::abs(internal_type(a)), math::abs(internal_type(b)))
    +
    1759 );
    +
    1760 }
    +
    1761
    +
    1762 private:
    +
    1763
    +
    1764 double m_rtol;
    +
    1765 double m_atol;
    +
    1766 bool m_equal_nan;
    +
    1767 };
    +
    1768 }
    +
    1769
    +
    1785 template <class E1, class E2>
    +
    1786 inline auto
    +
    +
    1787 isclose(E1&& e1, E2&& e2, double rtol = 1e-05, double atol = 1e-08, bool equal_nan = false) noexcept
    +
    1788 {
    +
    1789 return detail::make_xfunction<detail::isclose>(
    +
    1790 std::make_tuple(rtol, atol, equal_nan),
    +
    1791 std::forward<E1>(e1),
    +
    1792 std::forward<E2>(e2)
    +
    1793 );
    +
    1794 }
    +
    +
    1795
    +
    1809 template <class E1, class E2>
    +
    +
    1810 inline auto allclose(E1&& e1, E2&& e2, double rtol = 1e-05, double atol = 1e-08) noexcept
    +
    1811 {
    +
    1812 return xt::all(isclose(std::forward<E1>(e1), std::forward<E2>(e2), rtol, atol));
    +
    1813 }
    +
    +
    1814
    +
    1815 /**********************
    +
    1816 * Reducing functions *
    +
    1817 **********************/
    +
    1818
    +
    1822
    +
    1838 XTENSOR_REDUCER_FUNCTION(sum, detail::plus, typename std::decay_t<E>::value_type, 0)
    +
    1839
    +
    1840
    +
    1858 XTENSOR_REDUCER_FUNCTION(prod, detail::multiplies, typename std::decay_t<E>::value_type, 1)
    +
    1859
    +
    1860 namespace detail
    +
    1861 {
    +
    1862 template <class T, class S, class ST>
    +
    1863 inline auto mean_division(S&& s, ST e_size)
    +
    1864 {
    +
    1865 using value_type = typename std::conditional_t<std::is_same<T, void>::value, double, T>;
    +
    1866 // Avoids floating point exception when s.size is 0
    +
    1867 value_type div = s.size() != ST(0) ? static_cast<value_type>(e_size / s.size()) : value_type(0);
    +
    1868 return std::move(s) / std::move(div);
    +
    1869 }
    +
    1870
    +
    1871 template <
    +
    1872 class T,
    +
    1873 class E,
    +
    1874 class X,
    +
    1875 class D,
    +
    1876 class EVS,
    +
    1877 XTL_REQUIRES(std::negation<is_reducer_options<X>>, xtl::is_integral<D>)>
    +
    1878 inline auto mean(E&& e, X&& axes, const D& ddof, EVS es)
    +
    1879 {
    +
    1880 // sum cannot always be a double. It could be a complex number which cannot operate on
    +
    1881 // std::plus<double>.
    +
    1882 using size_type = typename std::decay_t<E>::size_type;
    +
    1883 const size_type size = e.size();
    +
    1884 XTENSOR_ASSERT(static_cast<size_type>(ddof) <= size);
    +
    1885 auto s = sum<T>(std::forward<E>(e), std::forward<X>(axes), es);
    +
    1886 return mean_division<T>(std::move(s), size - static_cast<size_type>(ddof));
    +
    1887 }
    +
    1888
    +
    1889 template <class T, class E, class I, std::size_t N, class D, class EVS>
    +
    1890 inline auto mean(E&& e, const I (&axes)[N], const D& ddof, EVS es)
    +
    1891 {
    +
    1892 using size_type = typename std::decay_t<E>::size_type;
    +
    1893 const size_type size = e.size();
    +
    1894 XTENSOR_ASSERT(static_cast<size_type>(ddof) <= size);
    +
    1895 auto s = sum<T>(std::forward<E>(e), axes, es);
    +
    1896 return mean_division<T>(std::move(s), size - static_cast<size_type>(ddof));
    +
    1897 }
    +
    1898
    +
    1899 template <class T, class E, class D, class EVS, XTL_REQUIRES(is_reducer_options<EVS>, xtl::is_integral<D>)>
    +
    1900 inline auto mean_noaxis(E&& e, const D& ddof, EVS es)
    +
    1901 {
    +
    1902 using value_type = typename std::conditional_t<std::is_same<T, void>::value, double, T>;
    +
    1903 using size_type = typename std::decay_t<E>::size_type;
    +
    1904 const size_type size = e.size();
    +
    1905 XTENSOR_ASSERT(static_cast<size_type>(ddof) <= size);
    +
    1906 auto s = sum<T>(std::forward<E>(e), es);
    +
    1907 return std::move(s) / static_cast<value_type>((size - static_cast<size_type>(ddof)));
    +
    1908 }
    +
    1909 }
    +
    1910
    +
    1926 template <
    +
    1927 class T = void,
    +
    1928 class E,
    +
    1929 class X,
    +
    1930 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1931 XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    1932 inline auto mean(E&& e, X&& axes, EVS es = EVS())
    +
    1933 {
    +
    1934 return detail::mean<T>(std::forward<E>(e), std::forward<X>(axes), 0u, es);
    +
    1935 }
    +
    +
    1936
    +
    1937 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    1938 inline auto mean(E&& e, EVS es = EVS())
    +
    1939 {
    +
    1940 return detail::mean_noaxis<T>(std::forward<E>(e), 0u, es);
    +
    1941 }
    +
    1942
    +
    1943 template <class T = void, class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    1944 inline auto mean(E&& e, const I (&axes)[N], EVS es = EVS())
    +
    1945 {
    +
    1946 return detail::mean<T>(std::forward<E>(e), axes, 0u, es);
    +
    1947 }
    +
    1948
    +
    1966 template <
    +
    1967 class T = void,
    +
    1968 class E,
    +
    1969 class W,
    +
    1970 class X,
    +
    1971 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1972 XTL_REQUIRES(is_reducer_options<EVS>, std::negation<xtl::is_integral<X>>)>
    +
    +
    1973 inline auto average(E&& e, W&& weights, X&& axes, EVS ev = EVS())
    +
    1974 {
    +
    1975 xindex_type_t<typename std::decay_t<E>::shape_type> broadcast_shape;
    +
    1976 xt::resize_container(broadcast_shape, e.dimension());
    +
    1977 auto ax = normalize_axis(e, axes);
    +
    1978 if (weights.dimension() == 1)
    +
    1979 {
    +
    1980 if (weights.size() != e.shape()[ax[0]])
    +
    1981 {
    +
    1982 XTENSOR_THROW(std::runtime_error, "Weights need to have the same shape as expression at axes.");
    +
    1983 }
    +
    1984
    +
    1985 std::fill(broadcast_shape.begin(), broadcast_shape.end(), std::size_t(1));
    +
    1986 broadcast_shape[ax[0]] = weights.size();
    +
    1987 }
    +
    1988 else
    +
    1989 {
    +
    1990 if (!same_shape(e.shape(), weights.shape()))
    +
    1991 {
    +
    1992 XTENSOR_THROW(
    +
    1993 std::runtime_error,
    +
    1994 "Weights with dim > 1 need to have the same shape as expression."
    +
    1995 );
    +
    1996 }
    +
    1997
    +
    1998 std::copy(e.shape().begin(), e.shape().end(), broadcast_shape.begin());
    +
    1999 }
    +
    2000
    +
    2001 constexpr layout_type L = default_assignable_layout(std::decay_t<W>::static_layout);
    +
    2002 auto weights_view = reshape_view<L>(std::forward<W>(weights), std::move(broadcast_shape));
    +
    2003 auto scl = sum<T>(weights_view, ax, xt::evaluation_strategy::immediate);
    +
    2004 return sum<T>(std::forward<E>(e) * std::move(weights_view), std::move(ax), ev) / std::move(scl);
    +
    2005 }
    +
    +
    2006
    +
    2007 template <
    +
    2008 class T = void,
    +
    2009 class E,
    +
    2010 class W,
    +
    2011 class X,
    +
    2012 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2013 XTL_REQUIRES(is_reducer_options<EVS>, xtl::is_integral<X>)>
    +
    2014 inline auto average(E&& e, W&& weights, X axis, EVS ev = EVS())
    +
    2015 {
    +
    2016 return average(std::forward<E>(e), std::forward<W>(weights), {axis}, std::forward<EVS>(ev));
    +
    2017 }
    +
    2018
    +
    2019 template <class T = void, class E, class W, class X, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2020 inline auto average(E&& e, W&& weights, const X (&axes)[N], EVS ev = EVS())
    +
    2021 {
    +
    2022 // need to select the X&& overload and forward to different type
    +
    2023 using ax_t = std::array<std::size_t, N>;
    +
    2024 return average<T>(std::forward<E>(e), std::forward<W>(weights), xt::forward_normalize<ax_t>(e, axes), ev);
    +
    2025 }
    +
    2026
    +
    2027 template <class T = void, class E, class W, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2028 inline auto average(E&& e, W&& weights, EVS ev = EVS())
    +
    2029 {
    +
    2030 if (weights.dimension() != e.dimension()
    +
    2031 || !std::equal(weights.shape().begin(), weights.shape().end(), e.shape().begin()))
    +
    2032 {
    +
    2033 XTENSOR_THROW(std::runtime_error, "Weights need to have the same shape as expression.");
    +
    2034 }
    +
    2035
    +
    2036 auto div = sum<T>(weights, evaluation_strategy::immediate)();
    +
    2037 auto s = sum<T>(std::forward<E>(e) * std::forward<W>(weights), ev) / std::move(div);
    +
    2038 return s;
    +
    2039 }
    +
    2040
    +
    2041 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2042 inline auto average(E&& e, EVS ev = EVS())
    +
    2043 {
    +
    2044 return mean<T>(e, ev);
    +
    2045 }
    +
    2046
    +
    2047 namespace detail
    +
    2048 {
    +
    2049 template <typename E>
    +
    2050 std::enable_if_t<std::is_lvalue_reference<E>::value, E> shared_forward(E e) noexcept
    +
    2051 {
    +
    2052 return e;
    +
    2053 }
    +
    2054
    +
    2055 template <typename E>
    +
    2056 std::enable_if_t<!std::is_lvalue_reference<E>::value, xshared_expression<E>> shared_forward(E e) noexcept
    +
    2057 {
    +
    2058 return make_xshared(std::move(e));
    +
    2059 }
    +
    2060 }
    +
    2061
    +
    2062 template <
    +
    2063 class T = void,
    +
    2064 class E,
    +
    2065 class D,
    +
    2066 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2067 XTL_REQUIRES(is_reducer_options<EVS>, xtl::is_integral<D>)>
    +
    2068 inline auto variance(E&& e, const D& ddof, EVS es = EVS())
    +
    2069 {
    +
    2070 auto cached_mean = mean<T>(e, es)();
    +
    2071 return detail::mean_noaxis<T>(square(std::forward<E>(e) - std::move(cached_mean)), ddof, es);
    +
    2072 }
    +
    2073
    +
    2074 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2075 inline auto variance(E&& e, EVS es = EVS())
    +
    2076 {
    +
    2077 return variance<T>(std::forward<E>(e), 0u, es);
    +
    2078 }
    +
    2079
    +
    2080 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2081 inline auto stddev(E&& e, EVS es = EVS())
    +
    2082 {
    +
    2083 return sqrt(variance<T>(std::forward<E>(e), es));
    +
    2084 }
    +
    2085
    +
    2110 template <
    +
    2111 class T = void,
    +
    2112 class E,
    +
    2113 class X,
    +
    2114 class D,
    +
    2115 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2116 XTL_REQUIRES(std::negation<is_reducer_options<X>>, xtl::is_integral<D>)>
    +
    +
    2117 inline auto variance(E&& e, X&& axes, const D& ddof, EVS es = EVS())
    +
    2118 {
    +
    2119 decltype(auto) sc = detail::shared_forward<E>(e);
    +
    2120 // note: forcing copy of first axes argument -- is there a better solution?
    +
    2121 auto axes_copy = axes;
    +
    2122 // always eval to prevent repeated evaluations in the next calls
    +
    2123 auto inner_mean = eval(mean<T>(sc, std::move(axes_copy), evaluation_strategy::immediate));
    +
    2124
    +
    2125 // fake keep_dims = 1
    +
    2126 // Since the inner_shape might have a reference semantic (e.g. xbuffer_adaptor in bindings)
    +
    2127 // We need to map it to another type before modifying it.
    +
    2128 // We pragmatically abuse `get_strides_t`
    +
    2129 using tmp_shape_t = get_strides_t<typename std::decay_t<E>::shape_type>;
    +
    2130 tmp_shape_t keep_dim_shape = xtl::forward_sequence<tmp_shape_t, decltype(e.shape())>(e.shape());
    +
    2131 for (const auto& el : axes)
    +
    2132 {
    +
    2133 keep_dim_shape[el] = 1u;
    +
    2134 }
    +
    2135
    +
    2136 auto mrv = reshape_view<XTENSOR_DEFAULT_LAYOUT>(std::move(inner_mean), std::move(keep_dim_shape));
    +
    2137 return detail::mean<T>(square(sc - std::move(mrv)), std::forward<X>(axes), ddof, es);
    +
    2138 }
    +
    +
    2139
    +
    2140 template <
    +
    2141 class T = void,
    +
    2142 class E,
    +
    2143 class X,
    +
    2144 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2145 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<std::decay_t<X>>>, is_reducer_options<EVS>)>
    +
    2146 inline auto variance(E&& e, X&& axes, EVS es = EVS())
    +
    2147 {
    +
    2148 return variance<T>(std::forward<E>(e), std::forward<X>(axes), 0u, es);
    +
    2149 }
    +
    2150
    +
    2172 template <
    +
    2173 class T = void,
    +
    2174 class E,
    +
    2175 class X,
    +
    2176 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2177 XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    2178 inline auto stddev(E&& e, X&& axes, EVS es = EVS())
    +
    2179 {
    +
    2180 return sqrt(variance<T>(std::forward<E>(e), std::forward<X>(axes), es));
    +
    2181 }
    +
    +
    2182
    +
    2183 template <class T = void, class E, class A, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2184 inline auto stddev(E&& e, const A (&axes)[N], EVS es = EVS())
    +
    2185 {
    +
    2186 return stddev<T>(
    +
    2187 std::forward<E>(e),
    +
    2188 xtl::forward_sequence<std::array<std::size_t, N>, decltype(axes)>(axes),
    +
    2189 es
    +
    2190 );
    +
    2191 }
    +
    2192
    +
    2193 template <
    +
    2194 class T = void,
    +
    2195 class E,
    +
    2196 class A,
    +
    2197 std::size_t N,
    +
    2198 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2199 XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2200 inline auto variance(E&& e, const A (&axes)[N], EVS es = EVS())
    +
    2201 {
    +
    2202 return variance<T>(
    +
    2203 std::forward<E>(e),
    +
    2204 xtl::forward_sequence<std::array<std::size_t, N>, decltype(axes)>(axes),
    +
    2205 es
    +
    2206 );
    +
    2207 }
    +
    2208
    +
    2209 template <class T = void, class E, class A, std::size_t N, class D, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2210 inline auto variance(E&& e, const A (&axes)[N], const D& ddof, EVS es = EVS())
    +
    2211 {
    +
    2212 return variance<T>(
    +
    2213 std::forward<E>(e),
    +
    2214 xtl::forward_sequence<std::array<std::size_t, N>, decltype(axes)>(axes),
    +
    2215 ddof,
    +
    2216 es
    +
    2217 );
    +
    2218 }
    +
    2219
    +
    2230 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    +
    2231 inline auto minmax(E&& e, EVS es = EVS())
    +
    2232 {
    +
    2233 using std::max;
    +
    2234 using std::min;
    +
    2235 using value_type = typename std::decay_t<E>::value_type;
    +
    2236 using result_type = std::array<value_type, 2>;
    +
    2237 using init_value_fct = xt::const_value<result_type>;
    +
    2238
    +
    2239 auto reduce_func = [](auto r, const auto& v)
    +
    2240 {
    +
    2241 r[0] = (min) (r[0], v);
    +
    2242 r[1] = (max) (r[1], v);
    +
    2243 return r;
    +
    2244 };
    +
    2245
    +
    2246 auto init_func = init_value_fct(
    +
    2247 result_type{std::numeric_limits<value_type>::max(), std::numeric_limits<value_type>::lowest()}
    +
    2248 );
    +
    2249
    +
    2250 auto merge_func = [](auto r, const auto& s)
    +
    2251 {
    +
    2252 r[0] = (min) (r[0], s[0]);
    +
    2253 r[1] = (max) (r[1], s[1]);
    +
    2254 return r;
    +
    2255 };
    +
    2256 return xt::reduce(
    +
    2257 make_xreducer_functor(std::move(reduce_func), std::move(init_func), std::move(merge_func)),
    +
    2258 std::forward<E>(e),
    +
    2259 arange(e.dimension()),
    +
    2260 es
    +
    2261 );
    +
    2262 }
    +
    +
    2263
    +
    2267
    +
    2282 template <class T = void, class E>
    +
    +
    2283 inline auto cumsum(E&& e, std::ptrdiff_t axis)
    +
    2284 {
    +
    2285 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2286 return accumulate(
    +
    2287 make_xaccumulator_functor(detail::plus(), detail::accumulator_identity<init_value_type>()),
    +
    2288 std::forward<E>(e),
    +
    2289 axis
    +
    2290 );
    +
    2291 }
    +
    +
    2292
    +
    2293 template <class T = void, class E>
    +
    2294 inline auto cumsum(E&& e)
    +
    2295 {
    +
    2296 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2297 return accumulate(
    +
    2298 make_xaccumulator_functor(detail::plus(), detail::accumulator_identity<init_value_type>()),
    +
    2299 std::forward<E>(e)
    +
    2300 );
    +
    2301 }
    +
    2302
    +
    2317 template <class T = void, class E>
    +
    +
    2318 inline auto cumprod(E&& e, std::ptrdiff_t axis)
    +
    2319 {
    +
    2320 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2321 return accumulate(
    +
    2322 make_xaccumulator_functor(detail::multiplies(), detail::accumulator_identity<init_value_type>()),
    +
    2323 std::forward<E>(e),
    +
    2324 axis
    +
    2325 );
    +
    2326 }
    +
    +
    2327
    +
    2328 template <class T = void, class E>
    +
    2329 inline auto cumprod(E&& e)
    +
    2330 {
    +
    2331 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2332 return accumulate(
    +
    2333 make_xaccumulator_functor(detail::multiplies(), detail::accumulator_identity<init_value_type>()),
    +
    2334 std::forward<E>(e)
    +
    2335 );
    +
    2336 }
    +
    2337
    +
    2338 /*****************
    +
    2339 * nan functions *
    +
    2340 *****************/
    +
    2341
    +
    2342 namespace detail
    +
    2343 {
    +
    2344 struct nan_to_num_functor
    +
    2345 {
    +
    2346 template <class A>
    +
    2347 inline auto operator()(const A& a) const
    +
    2348 {
    +
    2349 if (math::isnan(a))
    +
    2350 {
    +
    2351 return A(0);
    +
    2352 }
    +
    2353 if (math::isinf(a))
    +
    2354 {
    +
    2355 if (a < 0)
    +
    2356 {
    +
    2357 return std::numeric_limits<A>::lowest();
    +
    2358 }
    +
    2359 else
    +
    2360 {
    +
    2361 return (std::numeric_limits<A>::max)();
    +
    2362 }
    +
    2363 }
    +
    2364 return a;
    +
    2365 }
    +
    2366 };
    +
    2367
    +
    2368 struct nan_min
    +
    2369 {
    +
    2370 template <class T, class U>
    +
    2371 constexpr auto operator()(const T lhs, const U rhs) const
    +
    2372 {
    +
    2373 // Clunky expression for working with GCC 4.9
    +
    2374 return math::isnan(lhs)
    +
    2375 ? rhs
    +
    2376 : (math::isnan(rhs) ? lhs
    +
    2377 : std::common_type_t<T, U>(
    +
    2378 detail::make_xfunction<math::minimum<void>>(lhs, rhs)
    +
    2379 ));
    +
    2380 }
    +
    2381 };
    +
    2382
    +
    2383 struct nan_max
    +
    2384 {
    +
    2385 template <class T, class U>
    +
    2386 constexpr auto operator()(const T lhs, const U rhs) const
    +
    2387 {
    +
    2388 // Clunky expression for working with GCC 4.9
    +
    2389 return math::isnan(lhs)
    +
    2390 ? rhs
    +
    2391 : (math::isnan(rhs) ? lhs
    +
    2392 : std::common_type_t<T, U>(
    +
    2393 detail::make_xfunction<math::maximum<void>>(lhs, rhs)
    +
    2394 ));
    +
    2395 }
    +
    2396 };
    +
    2397
    +
    2398 struct nan_plus
    +
    2399 {
    +
    2400 template <class T, class U>
    +
    2401 constexpr auto operator()(const T lhs, const U rhs) const
    +
    2402 {
    +
    2403 return !math::isnan(rhs) ? lhs + rhs : lhs;
    +
    2404 }
    +
    2405 };
    +
    2406
    +
    2407 struct nan_multiplies
    +
    2408 {
    +
    2409 template <class T, class U>
    +
    2410 constexpr auto operator()(const T lhs, const U rhs) const
    +
    2411 {
    +
    2412 return !math::isnan(rhs) ? lhs * rhs : lhs;
    +
    2413 }
    +
    2414 };
    +
    2415
    +
    2416 template <class T, int V>
    +
    2417 struct nan_init
    +
    2418 {
    +
    2419 using value_type = T;
    +
    2420 using result_type = T;
    +
    2421
    +
    2422 constexpr result_type operator()(const value_type lhs) const
    +
    2423 {
    +
    2424 return math::isnan(lhs) ? result_type(V) : lhs;
    +
    2425 }
    +
    2426 };
    +
    2427 }
    +
    2428
    +
    2432
    +
    2443 template <class E>
    +
    +
    2444 inline auto nan_to_num(E&& e)
    +
    2445 {
    +
    2446 return detail::make_xfunction<detail::nan_to_num_functor>(std::forward<E>(e));
    +
    2447 }
    +
    +
    2448
    +
    2462 XTENSOR_REDUCER_FUNCTION(nanmin, detail::nan_min, typename std::decay_t<E>::value_type, std::nan("0"))
    +
    2463
    +
    2464
    +
    2477 XTENSOR_REDUCER_FUNCTION(nanmax, detail::nan_max, typename std::decay_t<E>::value_type, std::nan("0"))
    +
    2478
    +
    2494 XTENSOR_REDUCER_FUNCTION(nansum, detail::nan_plus, typename std::decay_t<E>::value_type, 0)
    +
    2495
    +
    2511 XTENSOR_REDUCER_FUNCTION(nanprod, detail::nan_multiplies, typename std::decay_t<E>::value_type, 1)
    +
    2512
    +
    2513#define COUNT_NON_ZEROS_CONTENT \
    +
    2514 using value_type = typename std::decay_t<E>::value_type; \
    +
    2515 using result_type = xt::detail::xreducer_size_type_t<value_type>; \
    +
    2516 using init_value_fct = xt::const_value<result_type>; \
    +
    2517 \
    +
    2518 auto init_fct = init_value_fct(0); \
    +
    2519 \
    +
    2520 auto reduce_fct = [](const auto& lhs, const auto& rhs) \
    +
    2521 { \
    +
    2522 using value_t = xt::detail::xreducer_temporary_type_t<std::decay_t<decltype(rhs)>>; \
    +
    2523 using result_t = std::decay_t<decltype(lhs)>; \
    +
    2524 \
    +
    2525 return (rhs != value_t(0)) ? lhs + result_t(1) : lhs; \
    +
    2526 }; \
    +
    2527 auto merge_func = detail::plus();
    +
    2528
    +
    2529 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2530 inline auto count_nonzero(E&& e, EVS es = EVS())
    +
    2531 {
    +
    2532 COUNT_NON_ZEROS_CONTENT;
    +
    2533 return xt::reduce(
    +
    2534 make_xreducer_functor(std::move(reduce_fct), std::move(init_fct), std::move(merge_func)),
    +
    2535 std::forward<E>(e),
    +
    2536 es
    +
    2537 );
    +
    2538 }
    +
    2539
    +
    2540 template <
    +
    2541 class E,
    +
    2542 class X,
    +
    2543 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2544 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<X>>)>
    +
    2545 inline auto count_nonzero(E&& e, X&& axes, EVS es = EVS())
    +
    2546 {
    +
    2547 COUNT_NON_ZEROS_CONTENT;
    +
    2548 return xt::reduce(
    +
    2549 make_xreducer_functor(std::move(reduce_fct), std::move(init_fct), std::move(merge_func)),
    +
    2550 std::forward<E>(e),
    +
    2551 std::forward<X>(axes),
    +
    2552 es
    +
    2553 );
    +
    2554 }
    +
    2555
    +
    2556 template <
    +
    2557 class E,
    +
    2558 class X,
    +
    2559 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2560 XTL_REQUIRES(std::negation<is_reducer_options<X>>, xtl::is_integral<X>)>
    +
    2561 inline auto count_nonzero(E&& e, X axis, EVS es = EVS())
    +
    2562 {
    +
    2563 return count_nonzero(std::forward<E>(e), {axis}, es);
    +
    2564 }
    +
    2565
    +
    2566 template <class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2567 inline auto count_nonzero(E&& e, const I (&axes)[N], EVS es = EVS())
    +
    2568 {
    +
    2569 COUNT_NON_ZEROS_CONTENT;
    +
    2570 return xt::reduce(
    +
    2571 make_xreducer_functor(std::move(reduce_fct), std::move(init_fct), std::move(merge_func)),
    +
    2572 std::forward<E>(e),
    +
    2573 axes,
    +
    2574 es
    +
    2575 );
    +
    2576 }
    +
    2577
    +
    2578#undef COUNT_NON_ZEROS_CONTENT
    +
    2579
    +
    2580 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2581 inline auto count_nonnan(E&& e, EVS es = EVS())
    +
    2582 {
    +
    2583 return xt::count_nonzero(!xt::isnan(std::forward<E>(e)), es);
    +
    2584 }
    +
    2585
    +
    2586 template <
    +
    2587 class E,
    +
    2588 class X,
    +
    2589 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2590 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<xtl::is_integral<X>>)>
    +
    2591 inline auto count_nonnan(E&& e, X&& axes, EVS es = EVS())
    +
    2592 {
    +
    2593 return xt::count_nonzero(!xt::isnan(std::forward<E>(e)), std::forward<X>(axes), es);
    +
    2594 }
    +
    2595
    +
    2596 template <
    +
    2597 class E,
    +
    2598 class X,
    +
    2599 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2600 XTL_REQUIRES(std::negation<is_reducer_options<X>>, xtl::is_integral<X>)>
    +
    2601 inline auto count_nonnan(E&& e, X&& axes, EVS es = EVS())
    +
    2602 {
    +
    2603 return xt::count_nonzero(!xt::isnan(std::forward<E>(e)), {axes}, es);
    +
    2604 }
    +
    2605
    +
    2606 template <class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2607 inline auto count_nonnan(E&& e, const I (&axes)[N], EVS es = EVS())
    +
    2608 {
    +
    2609 return xt::count_nonzero(!xt::isnan(std::forward<E>(e)), axes, es);
    +
    2610 }
    +
    2611
    +
    2626 template <class T = void, class E>
    +
    +
    2627 inline auto nancumsum(E&& e, std::ptrdiff_t axis)
    +
    2628 {
    +
    2629 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2630 return accumulate(
    +
    2631 make_xaccumulator_functor(detail::nan_plus(), detail::nan_init<init_value_type, 0>()),
    +
    2632 std::forward<E>(e),
    +
    2633 axis
    +
    2634 );
    +
    2635 }
    +
    +
    2636
    +
    2637 template <class T = void, class E>
    +
    2638 inline auto nancumsum(E&& e)
    +
    2639 {
    +
    2640 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2641 return accumulate(
    +
    2642 make_xaccumulator_functor(detail::nan_plus(), detail::nan_init<init_value_type, 0>()),
    +
    2643 std::forward<E>(e)
    +
    2644 );
    +
    2645 }
    +
    2646
    +
    2661 template <class T = void, class E>
    +
    +
    2662 inline auto nancumprod(E&& e, std::ptrdiff_t axis)
    +
    2663 {
    +
    2664 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2665 return accumulate(
    +
    2666 make_xaccumulator_functor(detail::nan_multiplies(), detail::nan_init<init_value_type, 1>()),
    +
    2667 std::forward<E>(e),
    +
    2668 axis
    +
    2669 );
    +
    2670 }
    +
    +
    2671
    +
    2672 template <class T = void, class E>
    +
    2673 inline auto nancumprod(E&& e)
    +
    2674 {
    +
    2675 using init_value_type = std::conditional_t<std::is_same<T, void>::value, typename std::decay_t<E>::value_type, T>;
    +
    2676 return accumulate(
    +
    2677 make_xaccumulator_functor(detail::nan_multiplies(), detail::nan_init<init_value_type, 1>()),
    +
    2678 std::forward<E>(e)
    +
    2679 );
    +
    2680 }
    +
    2681
    +
    2682 namespace detail
    +
    2683 {
    +
    2684 template <class T>
    +
    2685 struct diff_impl
    +
    2686 {
    +
    2687 template <class Arg>
    +
    2688 inline void operator()(
    +
    2689 Arg& ad,
    +
    2690 const std::size_t& n,
    +
    2691 xstrided_slice_vector& slice1,
    +
    2692 xstrided_slice_vector& slice2,
    +
    2693 std::size_t saxis
    +
    2694 )
    +
    2695 {
    +
    2696 for (std::size_t i = 0; i < n; ++i)
    +
    2697 {
    +
    2698 slice2[saxis] = range(xnone(), ad.shape()[saxis] - 1);
    +
    2699 ad = strided_view(ad, slice1) - strided_view(ad, slice2);
    +
    2700 }
    +
    2701 }
    +
    2702 };
    +
    2703
    +
    2704 template <>
    +
    2705 struct diff_impl<bool>
    +
    2706 {
    +
    2707 template <class Arg>
    +
    2708 inline void operator()(
    +
    2709 Arg& ad,
    +
    2710 const std::size_t& n,
    +
    2711 xstrided_slice_vector& slice1,
    +
    2712 xstrided_slice_vector& slice2,
    +
    2713 std::size_t saxis
    +
    2714 )
    +
    2715 {
    +
    2716 for (std::size_t i = 0; i < n; ++i)
    +
    2717 {
    +
    2718 slice2[saxis] = range(xnone(), ad.shape()[saxis] - 1);
    +
    2719 ad = not_equal(strided_view(ad, slice1), strided_view(ad, slice2));
    +
    2720 }
    +
    2721 }
    +
    2722 };
    +
    2723 }
    +
    2724
    +
    2740 template <
    +
    2741 class T = void,
    +
    2742 class E,
    +
    2743 class X,
    +
    2744 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2745 XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    2746 inline auto nanmean(E&& e, X&& axes, EVS es = EVS())
    +
    2747 {
    +
    2748 decltype(auto) sc = detail::shared_forward<E>(e);
    +
    2749 // note: forcing copy of first axes argument -- is there a better solution?
    +
    2750 auto axes_copy = axes;
    +
    2751 using value_type = typename std::conditional_t<std::is_same<T, void>::value, double, T>;
    +
    2752 using sum_type = typename std::conditional_t<
    +
    2753 std::is_same<T, void>::value,
    +
    2754 typename std::common_type_t<typename std::decay_t<E>::value_type, value_type>,
    +
    2755 T>;
    +
    2756 // sum cannot always be a double. It could be a complex number which cannot operate on
    +
    2757 // std::plus<double>.
    +
    2758 return nansum<sum_type>(sc, std::forward<X>(axes), es)
    +
    2759 / xt::cast<value_type>(count_nonnan(sc, std::move(axes_copy), es));
    +
    2760 }
    +
    +
    2761
    +
    2762 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2763 inline auto nanmean(E&& e, EVS es = EVS())
    +
    2764 {
    +
    2765 decltype(auto) sc = detail::shared_forward<E>(e);
    +
    2766 using value_type = typename std::conditional_t<std::is_same<T, void>::value, double, T>;
    +
    2767 using sum_type = typename std::conditional_t<
    +
    2768 std::is_same<T, void>::value,
    +
    2769 typename std::common_type_t<typename std::decay_t<E>::value_type, value_type>,
    +
    2770 T>;
    +
    2771 return nansum<sum_type>(sc, es) / xt::cast<value_type>(count_nonnan(sc, es));
    +
    2772 }
    +
    2773
    +
    2774 template <class T = void, class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2775 inline auto nanmean(E&& e, const I (&axes)[N], EVS es = EVS())
    +
    2776 {
    +
    2777 return nanmean<T>(
    +
    2778 std::forward<E>(e),
    +
    2779 xtl::forward_sequence<std::array<std::size_t, N>, decltype(axes)>(axes),
    +
    2780 es
    +
    2781 );
    +
    2782 }
    +
    2783
    +
    2784 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2785 inline auto nanvar(E&& e, EVS es = EVS())
    +
    2786 {
    +
    2787 decltype(auto) sc = detail::shared_forward<E>(e);
    +
    2788 return nanmean<T>(square(sc - nanmean<T>(sc)), es);
    +
    2789 }
    +
    2790
    +
    2791 template <class T = void, class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_reducer_options<EVS>)>
    +
    2792 inline auto nanstd(E&& e, EVS es = EVS())
    +
    2793 {
    +
    2794 return sqrt(nanvar<T>(std::forward<E>(e), es));
    +
    2795 }
    +
    2796
    +
    2817 template <
    +
    2818 class T = void,
    +
    2819 class E,
    +
    2820 class X,
    +
    2821 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2822 XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    2823 inline auto nanvar(E&& e, X&& axes, EVS es = EVS())
    +
    2824 {
    +
    2825 decltype(auto) sc = detail::shared_forward<E>(e);
    +
    2826 // note: forcing copy of first axes argument -- is there a better solution?
    +
    2827 auto axes_copy = axes;
    +
    2828 using result_type = typename std::conditional_t<std::is_same<T, void>::value, double, T>;
    +
    2829 auto inner_mean = nanmean<result_type>(sc, std::move(axes_copy));
    +
    2830
    +
    2831 // fake keep_dims = 1
    +
    2832 // Since the inner_shape might have a reference semantic (e.g. xbuffer_adaptor in bindings)
    +
    2833 // We need to map it to another type before modifying it.
    +
    2834 // We pragmatically abuse `get_strides_t`
    +
    2835 using tmp_shape_t = get_strides_t<typename std::decay_t<E>::shape_type>;
    +
    2836 tmp_shape_t keep_dim_shape = xtl::forward_sequence<tmp_shape_t, decltype(e.shape())>(e.shape());
    +
    2837 for (const auto& el : axes)
    +
    2838 {
    +
    2839 keep_dim_shape[el] = 1;
    +
    2840 }
    +
    2841 auto mrv = reshape_view<XTENSOR_DEFAULT_LAYOUT>(std::move(inner_mean), std::move(keep_dim_shape));
    +
    2842 return nanmean<result_type>(square(cast<result_type>(sc) - std::move(mrv)), std::forward<X>(axes), es);
    +
    2843 }
    +
    +
    2844
    +
    2865 template <
    +
    2866 class T = void,
    +
    2867 class E,
    +
    2868 class X,
    +
    2869 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    2870 XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    2871 inline auto nanstd(E&& e, X&& axes, EVS es = EVS())
    +
    2872 {
    +
    2873 return sqrt(nanvar<T>(std::forward<E>(e), std::forward<X>(axes), es));
    +
    2874 }
    +
    +
    2875
    +
    2876 template <class T = void, class E, class A, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2877 inline auto nanstd(E&& e, const A (&axes)[N], EVS es = EVS())
    +
    2878 {
    +
    2879 return nanstd<T>(
    +
    2880 std::forward<E>(e),
    +
    2881 xtl::forward_sequence<std::array<std::size_t, N>, decltype(axes)>(axes),
    +
    2882 es
    +
    2883 );
    +
    2884 }
    +
    2885
    +
    2886 template <class T = void, class E, class A, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    2887 inline auto nanvar(E&& e, const A (&axes)[N], EVS es = EVS())
    +
    2888 {
    +
    2889 return nanvar<T>(
    +
    2890 std::forward<E>(e),
    +
    2891 xtl::forward_sequence<std::array<std::size_t, N>, decltype(axes)>(axes),
    +
    2892 es
    +
    2893 );
    +
    2894 }
    +
    2895
    +
    2907 template <class T>
    +
    +
    2908 auto diff(const xexpression<T>& a, std::size_t n = 1, std::ptrdiff_t axis = -1)
    +
    2909 {
    +
    2910 typename std::decay_t<T>::temporary_type ad = a.derived_cast();
    +
    2911 std::size_t saxis = normalize_axis(ad.dimension(), axis);
    +
    2912 if (n <= ad.size())
    +
    2913 {
    +
    2914 if (n != std::size_t(0))
    +
    2915 {
    +
    2916 xstrided_slice_vector slice1(ad.dimension(), all());
    +
    2917 xstrided_slice_vector slice2(ad.dimension(), all());
    +
    2918 slice1[saxis] = range(1, xnone());
    +
    2919
    +
    2920 detail::diff_impl<typename T::value_type> impl;
    +
    2921 impl(ad, n, slice1, slice2, saxis);
    +
    2922 }
    +
    2923 }
    +
    2924 else
    +
    2925 {
    +
    2926 auto shape = ad.shape();
    +
    2927 shape[saxis] = std::size_t(0);
    +
    2928 ad.resize(shape);
    +
    2929 }
    +
    2930 return ad;
    +
    2931 }
    +
    +
    2932
    +
    2944 template <class T>
    +
    +
    2945 auto trapz(const xexpression<T>& y, double dx = 1.0, std::ptrdiff_t axis = -1)
    +
    2946 {
    +
    2947 auto& yd = y.derived_cast();
    +
    2948 std::size_t saxis = normalize_axis(yd.dimension(), axis);
    +
    2949
    +
    2950 xstrided_slice_vector slice1(yd.dimension(), all());
    +
    2951 xstrided_slice_vector slice2(yd.dimension(), all());
    +
    2952 slice1[saxis] = range(1, xnone());
    +
    2953 slice2[saxis] = range(xnone(), yd.shape()[saxis] - 1);
    +
    2954
    +
    2955 auto trap = dx * (strided_view(yd, slice1) + strided_view(yd, slice2)) * 0.5;
    +
    2956
    +
    2957 return eval(sum(trap, {saxis}));
    +
    2958 }
    +
    +
    2959
    +
    2971 template <class T, class E>
    +
    +
    2972 auto trapz(const xexpression<T>& y, const xexpression<E>& x, std::ptrdiff_t axis = -1)
    +
    2973 {
    +
    2974 auto& yd = y.derived_cast();
    +
    2975 auto& xd = x.derived_cast();
    +
    2976 decltype(diff(x)) dx;
    +
    2977
    +
    2978 std::size_t saxis = normalize_axis(yd.dimension(), axis);
    +
    2979
    +
    2980 if (xd.dimension() == 1)
    +
    2981 {
    +
    2982 dx = diff(x);
    +
    2983 typename std::decay_t<decltype(yd)>::shape_type shape;
    +
    2984 resize_container(shape, yd.dimension());
    +
    2985 std::fill(shape.begin(), shape.end(), 1);
    +
    2986 shape[saxis] = dx.shape()[0];
    +
    2987 dx.reshape(shape);
    +
    2988 }
    +
    2989 else
    +
    2990 {
    +
    2991 dx = diff(x, 1, axis);
    +
    2992 }
    +
    2993
    +
    2994 xstrided_slice_vector slice1(yd.dimension(), all());
    +
    2995 xstrided_slice_vector slice2(yd.dimension(), all());
    +
    2996 slice1[saxis] = range(1, xnone());
    +
    2997 slice2[saxis] = range(xnone(), yd.shape()[saxis] - 1);
    +
    2998
    +
    2999 auto trap = dx * (strided_view(yd, slice1) + strided_view(yd, slice2)) * 0.5;
    +
    3000
    +
    3001 return eval(sum(trap, {saxis}));
    +
    3002 }
    +
    +
    3003
    +
    3016 template <class E1, class E2, class E3, typename T>
    +
    +
    3017 inline auto interp(const E1& x, const E2& xp, const E3& fp, T left, T right)
    +
    3018 {
    +
    3019 using size_type = common_size_type_t<E1, E2, E3>;
    +
    3020 using value_type = typename E3::value_type;
    +
    3021
    +
    3022 // basic checks
    +
    3023 XTENSOR_ASSERT(xp.dimension() == 1);
    +
    3024 XTENSOR_ASSERT(std::is_sorted(x.cbegin(), x.cend()));
    +
    3025 XTENSOR_ASSERT(std::is_sorted(xp.cbegin(), xp.cend()));
    +
    3026
    +
    3027 // allocate output
    +
    3028 auto f = xtensor<value_type, 1>::from_shape(x.shape());
    +
    3029
    +
    3030 // counter in "x": from left
    +
    3031 size_type i = 0;
    +
    3032
    +
    3033 // fill f[i] for x[i] <= xp[0]
    +
    3034 for (; i < x.size(); ++i)
    +
    3035 {
    +
    3036 if (x[i] > xp[0])
    +
    3037 {
    +
    3038 break;
    +
    3039 }
    +
    3040 f[i] = static_cast<value_type>(left);
    +
    3041 }
    +
    3042
    +
    3043 // counter in "x": from right
    +
    3044 // (index counts one right, to terminate the reverse loop, without risking being negative)
    +
    3045 size_type imax = x.size();
    +
    3046
    +
    3047 // fill f[i] for x[-1] >= xp[-1]
    +
    3048 for (; imax > 0; --imax)
    +
    3049 {
    +
    3050 if (x[imax - 1] < xp[xp.size() - 1])
    +
    3051 {
    +
    3052 break;
    +
    3053 }
    +
    3054 f[imax - 1] = static_cast<value_type>(right);
    +
    3055 }
    +
    3056
    +
    3057 // catch edge case: all entries are "right"
    +
    3058 if (imax == 0)
    +
    3059 {
    +
    3060 return f;
    +
    3061 }
    +
    3062
    +
    3063 // set "imax" as actual index
    +
    3064 // (counted one right, see above)
    +
    3065 --imax;
    +
    3066
    +
    3067 // counter in "xp"
    +
    3068 size_type ip = 1;
    +
    3069
    +
    3070 // fill f[i] for the interior
    +
    3071 for (; i <= imax; ++i)
    +
    3072 {
    +
    3073 // - search next value in "xp"
    +
    3074 while (x[i] > xp[ip])
    +
    3075 {
    +
    3076 ++ip;
    +
    3077 }
    +
    3078 // - distances as doubles
    +
    3079 double dfp = static_cast<double>(fp[ip] - fp[ip - 1]);
    +
    3080 double dxp = static_cast<double>(xp[ip] - xp[ip - 1]);
    +
    3081 double dx = static_cast<double>(x[i] - xp[ip - 1]);
    +
    3082 // - interpolate
    +
    3083 f[i] = fp[ip - 1] + static_cast<value_type>(dfp / dxp * dx);
    +
    3084 }
    +
    3085
    +
    3086 return f;
    +
    3087 }
    +
    +
    3088
    +
    3089 namespace detail
    +
    3090 {
    +
    3091 template <class E1, class E2>
    +
    3092 auto calculate_discontinuity(E1&& discontinuity, E2&&)
    +
    3093 {
    +
    3094 return discontinuity;
    +
    3095 }
    +
    3096
    +
    3097 template <class E2>
    +
    3098 auto calculate_discontinuity(xt::placeholders::xtuph, E2&& period)
    +
    3099 {
    +
    3100 return 0.5 * period;
    +
    3101 }
    +
    3102
    +
    3103 template <class E1, class E2>
    +
    3104 auto
    +
    3105 calculate_interval(E2&& period, typename std::enable_if<std::is_integral<E1>::value, E1>::type* = 0)
    +
    3106 {
    +
    3107 auto interval_high = 0.5 * period;
    +
    3108 uint64_t remainder = static_cast<uint64_t>(period) % 2;
    +
    3109 auto boundary_ambiguous = (remainder == 0);
    +
    3110 return std::make_tuple(interval_high, boundary_ambiguous);
    +
    3111 }
    +
    3112
    +
    3113 template <class E1, class E2>
    +
    3114 auto
    +
    3115 calculate_interval(E2&& period, typename std::enable_if<std::is_floating_point<E1>::value, E1>::type* = 0)
    +
    3116 {
    +
    3117 auto interval_high = 0.5 * period;
    +
    3118 auto boundary_ambiguous = true;
    +
    3119 return std::make_tuple(interval_high, boundary_ambiguous);
    +
    3120 }
    +
    3121 }
    +
    3122
    +
    3135
    +
    3136 template <class E1, class E2 = xt::placeholders::xtuph, class E3 = double>
    +
    +
    3137 inline auto unwrap(
    +
    3138 E1&& p,
    +
    3139 E2 discontinuity = xnone(),
    +
    3140 std::ptrdiff_t axis = -1,
    +
    3141 E3 period = 2.0 * xt::numeric_constants<double>::PI
    +
    3142 )
    +
    3143 {
    +
    3144 auto discont = detail::calculate_discontinuity(discontinuity, period);
    +
    3145 using value_type = typename std::decay_t<E1>::value_type;
    +
    3146 std::size_t saxis = normalize_axis(p.dimension(), axis);
    +
    3147 auto dd = diff(p, 1, axis);
    +
    3148 xstrided_slice_vector slice(p.dimension(), all());
    +
    3149 slice[saxis] = range(1, xnone());
    +
    3150 auto interval_tuple = detail::calculate_interval<value_type>(period);
    +
    3151 auto interval_high = std::get<0>(interval_tuple);
    +
    3152 auto boundary_ambiguous = std::get<1>(interval_tuple);
    +
    3153 auto interval_low = -interval_high;
    +
    3154 auto ddmod = xt::eval(xt::fmod(xt::fmod(dd - interval_low, period) + period, period) + interval_low);
    +
    3155 if (boundary_ambiguous)
    +
    3156 {
    +
    3157 // for `mask = (abs(dd) == period/2)`, the above line made
    +
    3158 //`ddmod[mask] == -period/2`. correct these such that
    +
    3159 //`ddmod[mask] == sign(dd[mask])*period/2`.
    +
    3160 auto boolmap = xt::equal(ddmod, interval_low) && (xt::greater(dd, 0.0));
    +
    3161 ddmod = xt::where(boolmap, interval_high, ddmod);
    +
    3162 }
    +
    3163 auto ph_correct = xt::eval(ddmod - dd);
    +
    3164 ph_correct = xt::where(xt::abs(dd) < discont, 0.0, ph_correct);
    +
    3165 E1 up(p);
    +
    3166 strided_view(up, slice) = strided_view(p, slice)
    +
    3167 + xt::cumsum(ph_correct, static_cast<std::ptrdiff_t>(saxis));
    +
    3168 return up;
    +
    3169 }
    +
    +
    3170
    +
    3181 template <class E1, class E2, class E3>
    +
    +
    3182 inline auto interp(const E1& x, const E2& xp, const E3& fp)
    +
    3183 {
    +
    3184 return interp(x, xp, fp, fp[0], fp[fp.size() - 1]);
    +
    3185 }
    +
    +
    3186
    +
    3193 template <class E1>
    +
    +
    3194 inline auto cov(const E1& x, const E1& y = E1())
    +
    3195 {
    +
    3196 using value_type = typename E1::value_type;
    +
    3197
    +
    3198 if (y.dimension() == 0)
    +
    3199 {
    +
    3200 auto s = x.shape();
    +
    3201 using size_type = std::decay_t<decltype(s[0])>;
    +
    3202 if (x.dimension() == 1)
    +
    3203 {
    +
    3204 auto covar = eval(zeros<value_type>({1, 1}));
    +
    3205 auto x_norm = x - eval(mean(x));
    +
    3206 covar(0, 0) = std::inner_product(x_norm.begin(), x_norm.end(), x_norm.begin(), 0.0)
    +
    3207 / value_type(s[0] - 1);
    +
    3208 return covar;
    +
    3209 }
    +
    3210
    +
    3211 XTENSOR_ASSERT(x.dimension() == 2);
    +
    3212
    +
    3213 auto covar = eval(zeros<value_type>({s[0], s[0]}));
    +
    3214 auto m = eval(mean(x, {1}));
    +
    3215 m.reshape({m.shape()[0], 1});
    +
    3216 auto x_norm = x - m;
    +
    3217 for (size_type i = 0; i < s[0]; i++)
    +
    3218 {
    +
    3219 auto xi = strided_view(x_norm, {range(i, i + 1), all()});
    +
    3220 for (size_type j = i; j < s[0]; j++)
    +
    3221 {
    +
    3222 auto xj = strided_view(x_norm, {range(j, j + 1), all()});
    +
    3223 covar(j, i) = std::inner_product(xi.begin(), xi.end(), xj.begin(), 0.0)
    +
    3224 / value_type(s[1] - 1);
    +
    3225 }
    +
    3226 }
    +
    3227 return eval(covar + transpose(covar) - diag(diagonal(covar)));
    +
    3228 }
    +
    3229 else
    +
    3230 {
    +
    3231 return cov(eval(stack(xtuple(x, y))));
    +
    3232 }
    +
    3233 }
    +
    +
    3234
    +
    3235 /*
    +
    3236 * convolution mode placeholders for selecting the algorithm
    +
    3237 * used in computing a 1D convolution.
    +
    3238 * Same as NumPy's mode parameter.
    +
    3239 */
    +
    3240 namespace convolve_mode
    +
    3241 {
    +
    +
    3242 struct valid
    +
    3243 {
    +
    3244 };
    +
    +
    3245
    +
    +
    3246 struct full
    +
    3247 {
    +
    3248 };
    +
    +
    3249 }
    +
    3250
    +
    3251 namespace detail
    +
    3252 {
    +
    3253 template <class E1, class E2>
    +
    3254 inline auto convolve_impl(E1&& e1, E2&& e2, convolve_mode::valid)
    +
    3255 {
    +
    3256 using value_type = typename std::decay<E1>::type::value_type;
    +
    3257
    +
    3258 const std::size_t na = e1.size();
    +
    3259 const std::size_t nv = e2.size();
    +
    3260 const std::size_t n = na - nv + 1;
    + +
    3262 for (std::size_t i = 0; i < n; i++)
    +
    3263 {
    +
    3264 for (std::size_t j = 0; j < nv; j++)
    +
    3265 {
    +
    3266 out(i) += e1(j) * e2(j + i);
    +
    3267 }
    +
    3268 }
    +
    3269 return out;
    +
    3270 }
    +
    3271
    +
    3272 template <class E1, class E2>
    +
    3273 inline auto convolve_impl(E1&& e1, E2&& e2, convolve_mode::full)
    +
    3274 {
    +
    3275 using value_type = typename std::decay<E1>::type::value_type;
    +
    3276
    +
    3277 const std::size_t na = e1.size();
    +
    3278 const std::size_t nv = e2.size();
    +
    3279 const std::size_t n = na + nv - 1;
    + +
    3281 for (std::size_t i = 0; i < n; i++)
    +
    3282 {
    +
    3283 const std::size_t jmn = (i >= nv - 1) ? i - (nv - 1) : 0;
    +
    3284 const std::size_t jmx = (i < na - 1) ? i : na - 1;
    +
    3285 for (std::size_t j = jmn; j <= jmx; ++j)
    +
    3286 {
    +
    3287 out(i) += e1(j) * e2(i - j);
    +
    3288 }
    +
    3289 }
    +
    3290 return out;
    +
    3291 }
    +
    3292 }
    +
    3293
    +
    3294 /*
    +
    3295 * @brief computes the 1D convolution between two 1D expressions
    +
    3296 *
    +
    3297 * @param a 1D expression
    +
    3298 * @param v 1D expression
    +
    3299 * @param mode placeholder Select algorithm #convolve_mode
    +
    3300 *
    +
    3301 * @detail the algorithm convolves a with v and will incur a copy overhead
    +
    3302 * should v be longer than a.
    +
    3303 */
    +
    3304 template <class E1, class E2, class E3>
    +
    3305 inline auto convolve(E1&& a, E2&& v, E3 mode)
    +
    3306 {
    +
    3307 if (a.dimension() != 1 || v.dimension() != 1)
    +
    3308 {
    +
    3309 XTENSOR_THROW(std::runtime_error, "Invalid dimentions convolution arguments must be 1D expressions");
    +
    3310 }
    +
    3311
    +
    3312 XTENSOR_ASSERT(a.size() > 0 && v.size() > 0);
    +
    3313
    +
    3314 // swap them so a is always the longest one
    +
    3315 if (a.size() < v.size())
    +
    3316 {
    +
    3317 return detail::convolve_impl(std::forward<E2>(v), std::forward<E1>(a), mode);
    +
    3318 }
    +
    3319 else
    +
    3320 {
    +
    3321 return detail::convolve_impl(std::forward<E1>(a), std::forward<E2>(v), mode);
    +
    3322 }
    +
    3323 }
    +
    3324}
    +
    3325
    +
    3326
    +
    3327#endif
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    auto cumprod(E &&e, std::ptrdiff_t axis)
    Cumulative product.
    Definition xmath.hpp:2318
    +
    auto cumsum(E &&e, std::ptrdiff_t axis)
    Cumulative sum.
    Definition xmath.hpp:2283
    +
    auto fma(E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< math::fma_fun, E1, E2, E3 >
    Fused multiply-add operation.
    Definition xmath.hpp:510
    +
    auto deg2rad(E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >
    Convert angles from degrees to radians.
    Definition xmath.hpp:684
    +
    auto amax(E &&e, X &&axes, EVS es=EVS())
    Maximum element along given axis.
    Definition xmath.hpp:782
    +
    auto remainder(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::remainder_fun, E1, E2 >
    Signed remainder of the division operation.
    Definition xmath.hpp:492
    +
    auto degrees(E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >
    Convert angles from radians to degrees.
    Definition xmath.hpp:729
    +
    auto interp(const E1 &x, const E2 &xp, const E3 &fp, T left, T right)
    Returns the one-dimensional piecewise linear interpolant to a function with given discrete data point...
    Definition xmath.hpp:3017
    +
    auto fmod(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmod_fun, E1, E2 >
    Remainder of the floating point division operation.
    Definition xmath.hpp:475
    +
    auto abs(E &&e) noexcept -> detail::xfunction_type_t< math::abs_fun, E >
    Absolute value function.
    Definition xmath.hpp:443
    +
    auto fabs(E &&e) noexcept -> detail::xfunction_type_t< math::fabs_fun, E >
    Absolute value function.
    Definition xmath.hpp:458
    +
    auto minimum(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::minimum< void >, E1, E2 >
    Elementwise minimum.
    Definition xmath.hpp:761
    +
    auto maximum(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::maximum< void >, E1, E2 >
    Elementwise maximum.
    Definition xmath.hpp:745
    +
    auto fmax(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmax_fun, E1, E2 >
    Maximum function.
    Definition xmath.hpp:531
    +
    auto clip(E1 &&e1, E2 &&lo, E3 &&hi) noexcept -> detail::xfunction_type_t< math::clamp_fun, E1, E2, E3 >
    Clip values between hi and lo.
    Definition xmath.hpp:815
    +
    auto radians(E &&e) noexcept -> detail::xfunction_type_t< math::deg2rad, E >
    Convert angles from degrees to radians.
    Definition xmath.hpp:699
    +
    auto fdim(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fdim_fun, E1, E2 >
    Positive difference function.
    Definition xmath.hpp:565
    +
    auto amin(E &&e, X &&axes, EVS es=EVS())
    Minimum element along given axis.
    Definition xmath.hpp:800
    +
    auto rad2deg(E &&e) noexcept -> detail::xfunction_type_t< math::rad2deg, E >
    Convert angles from radians to degrees.
    Definition xmath.hpp:714
    +
    auto fmin(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::fmin_fun, E1, E2 >
    Minimum function.
    Definition xmath.hpp:548
    +
    auto sign(E &&e) noexcept -> detail::xfunction_type_t< math::sign_fun, E >
    Returns an element-wise indication of the sign of a number.
    Definition xmath.hpp:877
    +
    auto unwrap(E1 &&p, E2 discontinuity=xnone(), std::ptrdiff_t axis=-1, E3 period=2.0 *xt::numeric_constants< double >::PI)
    Unwrap by taking the complement of large deltas with respect to the period.
    Definition xmath.hpp:3137
    +
    auto cast(E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
    Element-wise static_cast.
    +
    auto allclose(E1 &&e1, E2 &&e2, double rtol=1e-05, double atol=1e-08) noexcept
    Check if all elements in e1 are close to the corresponding elements in e2.
    Definition xmath.hpp:1810
    +
    auto isfinite(E &&e) noexcept -> detail::xfunction_type_t< math::isfinite_fun, E >
    finite value check
    Definition xmath.hpp:1675
    +
    auto isnan(E &&e) noexcept -> detail::xfunction_type_t< math::isnan_fun, E >
    NaN check.
    Definition xmath.hpp:1705
    +
    auto isclose(E1 &&e1, E2 &&e2, double rtol=1e-05, double atol=1e-08, bool equal_nan=false) noexcept
    Element-wise closeness detection.
    Definition xmath.hpp:1787
    +
    auto isinf(E &&e) noexcept -> detail::xfunction_type_t< math::isinf_fun, E >
    infinity check
    Definition xmath.hpp:1690
    +
    auto not_equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::not_equal_to, E1, E2 >
    Element-wise inequality.
    +
    auto equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >
    Element-wise equality.
    +
    auto greater(E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) > std::forward< E2 >(e2))
    Greater than.
    +
    auto lgamma(E &&e) noexcept -> detail::xfunction_type_t< math::lgamma_fun, E >
    Natural logarithm of the gamma function.
    Definition xmath.hpp:1551
    +
    auto erfc(E &&e) noexcept -> detail::xfunction_type_t< math::erfc_fun, E >
    Complementary error function.
    Definition xmath.hpp:1521
    +
    auto erf(E &&e) noexcept -> detail::xfunction_type_t< math::erf_fun, E >
    Error function.
    Definition xmath.hpp:1506
    +
    auto tgamma(E &&e) noexcept -> detail::xfunction_type_t< math::tgamma_fun, E >
    Gamma function.
    Definition xmath.hpp:1536
    +
    auto log1p(E &&e) noexcept -> detail::xfunction_type_t< math::log1p_fun, E >
    Natural logarithm of one plus function.
    Definition xmath.hpp:990
    +
    auto expm1(E &&e) noexcept -> detail::xfunction_type_t< math::expm1_fun, E >
    Natural exponential minus one function.
    Definition xmath.hpp:930
    +
    auto exp2(E &&e) noexcept -> detail::xfunction_type_t< math::exp2_fun, E >
    Base 2 exponential function.
    Definition xmath.hpp:915
    +
    auto log(E &&e) noexcept -> detail::xfunction_type_t< math::log_fun, E >
    Natural logarithm function.
    Definition xmath.hpp:945
    +
    auto log2(E &&e) noexcept -> detail::xfunction_type_t< math::log2_fun, E >
    Base 2 logarithm function.
    Definition xmath.hpp:975
    +
    auto exp(E &&e) noexcept -> detail::xfunction_type_t< math::exp_fun, E >
    Natural exponential function.
    Definition xmath.hpp:900
    +
    auto log10(E &&e) noexcept -> detail::xfunction_type_t< math::log10_fun, E >
    Base 10 logarithm function.
    Definition xmath.hpp:960
    +
    auto asinh(E &&e) noexcept -> detail::xfunction_type_t< math::asinh_fun, E >
    Inverse hyperbolic sine function.
    Definition xmath.hpp:1453
    +
    auto tanh(E &&e) noexcept -> detail::xfunction_type_t< math::tanh_fun, E >
    Hyperbolic tangent function.
    Definition xmath.hpp:1438
    +
    auto cosh(E &&e) noexcept -> detail::xfunction_type_t< math::cosh_fun, E >
    Hyperbolic cosine function.
    Definition xmath.hpp:1423
    +
    auto sinh(E &&e) noexcept -> detail::xfunction_type_t< math::sinh_fun, E >
    Hyperbolic sine function.
    Definition xmath.hpp:1408
    +
    auto acosh(E &&e) noexcept -> detail::xfunction_type_t< math::acosh_fun, E >
    Inverse hyperbolic cosine function.
    Definition xmath.hpp:1468
    +
    auto atanh(E &&e) noexcept -> detail::xfunction_type_t< math::atanh_fun, E >
    Inverse hyperbolic tangent function.
    Definition xmath.hpp:1483
    +
    bool all(E &&e)
    Any.
    +
    auto where(E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< detail::conditional_ternary, E1, E2, E3 >
    Ternary selection.
    +
    auto nanmax(E &&e, X &&axes, EVS es=EVS())
    Maximum element along given axes, ignoring NaNs.
    Definition xmath.hpp:2477
    +
    auto nancumsum(E &&e, std::ptrdiff_t axis)
    Cumulative sum, replacing nan with 0.
    Definition xmath.hpp:2627
    +
    auto nancumprod(E &&e, std::ptrdiff_t axis)
    Cumulative product, replacing nan with 1.
    Definition xmath.hpp:2662
    +
    auto nanmean(E &&e, X &&axes, EVS es=EVS())
    Mean of elements over given axes, excluding NaNs.
    Definition xmath.hpp:2746
    +
    auto nanmin(E &&e, X &&axes, EVS es=EVS())
    Minimum element over given axes, ignoring NaNs.
    Definition xmath.hpp:2462
    +
    auto nanprod(E &&e, X &&axes, EVS es=EVS())
    Product of elements over given axes, replacing NaN with 1.
    Definition xmath.hpp:2511
    +
    auto nansum(E &&e, X &&axes, EVS es=EVS())
    Sum of elements over given axes, replacing NaN with 0.
    Definition xmath.hpp:2494
    +
    auto nan_to_num(E &&e)
    Convert nan or +/- inf to numbers.
    Definition xmath.hpp:2444
    +
    auto ceil(E &&e) noexcept -> detail::xfunction_type_t< math::ceil_fun, E >
    ceil function.
    Definition xmath.hpp:1574
    +
    auto trunc(E &&e) noexcept -> detail::xfunction_type_t< math::trunc_fun, E >
    trunc function.
    Definition xmath.hpp:1604
    +
    auto nearbyint(E &&e) noexcept -> detail::xfunction_type_t< math::nearbyint_fun, E >
    nearbyint function.
    Definition xmath.hpp:1636
    +
    auto floor(E &&e) noexcept -> detail::xfunction_type_t< math::floor_fun, E >
    floor function.
    Definition xmath.hpp:1589
    +
    auto round(E &&e) noexcept -> detail::xfunction_type_t< math::round_fun, E >
    round function.
    Definition xmath.hpp:1620
    +
    auto rint(E &&e) noexcept -> detail::xfunction_type_t< math::rint_fun, E >
    rint function.
    Definition xmath.hpp:1652
    +
    auto cube(E1 &&e1) noexcept
    Cube power function, equivalent to e1 * e1 * e1.
    Definition xmath.hpp:1149
    +
    auto sqrt(E &&e) noexcept -> detail::xfunction_type_t< math::sqrt_fun, E >
    Square root function.
    Definition xmath.hpp:1236
    +
    auto square(E1 &&e1) noexcept
    Square power function, equivalent to e1 * e1.
    Definition xmath.hpp:1126
    +
    auto pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
    Power function.
    Definition xmath.hpp:1015
    +
    auto hypot(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::hypot_fun, E1, E2 >
    Hypotenuse function.
    Definition xmath.hpp:1269
    +
    auto cbrt(E &&e) noexcept -> detail::xfunction_type_t< math::cbrt_fun, E >
    Cubic root function.
    Definition xmath.hpp:1251
    +
    auto sum(E &&e, X &&axes, EVS es=EVS())
    Sum of elements over given axes.
    Definition xmath.hpp:1838
    +
    auto prod(E &&e, X &&axes, EVS es=EVS())
    Product of elements over given axes.
    Definition xmath.hpp:1858
    +
    auto trapz(const xexpression< T > &y, double dx=1.0, std::ptrdiff_t axis=-1)
    Integrate along the given axis using the composite trapezoidal rule.
    Definition xmath.hpp:2945
    +
    auto diff(const xexpression< T > &a, std::size_t n=1, std::ptrdiff_t axis=-1)
    Calculate the n-th discrete difference along the given axis.
    Definition xmath.hpp:2908
    +
    auto minmax(E &&e, EVS es=EVS())
    Minimum and maximum among the elements of an array or expression.
    Definition xmath.hpp:2231
    +
    auto average(E &&e, W &&weights, X &&axes, EVS ev=EVS())
    Average of elements over given axes using weights.
    Definition xmath.hpp:1973
    +
    auto mean(E &&e, X &&axes, EVS es=EVS())
    Mean of elements over given axes.
    Definition xmath.hpp:1932
    +
    auto atan(E &&e) noexcept -> detail::xfunction_type_t< math::atan_fun, E >
    Arctangent function.
    Definition xmath.hpp:1367
    +
    auto atan2(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::atan2_fun, E1, E2 >
    Artangent function, using signs to determine quadrants.
    Definition xmath.hpp:1385
    +
    auto asin(E &&e) noexcept -> detail::xfunction_type_t< math::asin_fun, E >
    Arcsine function.
    Definition xmath.hpp:1337
    +
    auto cos(E &&e) noexcept -> detail::xfunction_type_t< math::cos_fun, E >
    Cosine function.
    Definition xmath.hpp:1307
    +
    auto sin(E &&e) noexcept -> detail::xfunction_type_t< math::sin_fun, E >
    Sine function.
    Definition xmath.hpp:1292
    +
    auto tan(E &&e) noexcept -> detail::xfunction_type_t< math::tan_fun, E >
    Tangent function.
    Definition xmath.hpp:1322
    +
    auto acos(E &&e) noexcept -> detail::xfunction_type_t< math::acos_fun, E >
    Arccosine function.
    Definition xmath.hpp:1352
    +
    auto conj(E &&e) noexcept
    Return an xt::xfunction evaluating to the complex conjugate of the given expression.
    Definition xcomplex.hpp:207
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    auto transpose(E &&e) noexcept
    Returns a transpose view by reversing the dimensions of xexpression e.
    +
    bool same_shape(const S1 &s1, const S2 &s2) noexcept
    Check if two objects have the same shape.
    Definition xshape.hpp:109
    +
    standard mathematical functions for xexpressions
    +
    auto stack(std::tuple< CT... > &&t, std::size_t axis=0)
    Stack xexpressions along axis.
    Definition xbuilder.hpp:883
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    auto make_lambda_xfunction(F &&lambda, E &&... args)
    Create a xfunction from a lambda.
    Definition xmath.hpp:1085
    +
    auto reduce(F &&f, E &&e, X &&axes, EVS &&options=EVS())
    Returns an xexpression applying the specified reducing function to an expression over the given axes.
    Definition xreducer.hpp:993
    +
    layout_type
    Definition xlayout.hpp:24
    +
    auto zeros(S shape) noexcept
    Returns an xexpression containing zeros of the specified shape.
    Definition xbuilder.hpp:66
    +
    auto accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())
    Accumulate and flatten array NOTE This function is not lazy!
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    auto diagonal(E &&arr, int offset=0, std::size_t axis_1=0, std::size_t axis_2=1)
    Returns the elements on the diagonal of arr If arr has more than two dimensions, then the axes specif...
    +
    xshared_expression< E > make_xshared(xexpression< E > &&expr)
    Helper function to create shared expression from any xexpression.
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto diag(E &&arr, int k=0)
    xexpression with values of arr on the diagonal, zeroes otherwise
    +
    auto xtuple(Types &&... args)
    Creates tuples from arguments for concatenate and stack.
    Definition xbuilder.hpp:707
    +
    auto cov(const E1 &x, const E1 &y=E1())
    Returns the covariance matrix.
    Definition xmath.hpp:3194
    + + + + + + + + + + + + +
    +
    + + + + diff --git a/xmime_8hpp_source.html b/xmime_8hpp_source.html new file mode 100644 index 000000000..85aed8a01 --- /dev/null +++ b/xmime_8hpp_source.html @@ -0,0 +1,566 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io/xmime.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xmime.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_MIME_HPP
    +
    11#define XTENSOR_MIME_HPP
    +
    12
    +
    13#include <cstddef>
    +
    14#include <sstream>
    +
    15#include <string>
    +
    16#include <vector>
    +
    17
    +
    18#include <nlohmann/json.hpp>
    +
    19
    +
    20#include "../io/xio.hpp"
    +
    21
    +
    22namespace xt
    +
    23{
    +
    24 template <class P, class T>
    +
    25 void compute_0d_table(std::stringstream& out, P& /*printer*/, const T& expr)
    +
    26 {
    +
    27 out << "<table style='border-style:solid;border-width:1px;'><tbody>";
    +
    28 out << "<tr><td style='font-family:monospace;'><pre>";
    +
    29 out << expr();
    +
    30 out << "</pre></td></tr>";
    +
    31 out << "</tbody></table>";
    +
    32 }
    +
    33
    +
    34 template <class P>
    +
    35 void compute_1d_row(std::stringstream& out, P& printer, const std::size_t& row_idx)
    +
    36 {
    +
    37 out << "<tr><td style='font-family:monospace;' title='" << row_idx << "'><pre>";
    +
    38 printer.print_next(out);
    +
    39 out << "</pre></td></tr>";
    +
    40 }
    +
    41
    +
    42 template <class P, class T>
    +
    43 void compute_1d_table(std::stringstream& out, P& printer, const T& expr, const std::size_t& edgeitems)
    +
    44 {
    +
    45 const auto& dim = expr.shape()[0];
    +
    46
    +
    47 out << "<table style='border-style:solid;border-width:1px;'><tbody>";
    +
    48 if (edgeitems == 0 || 2 * edgeitems >= dim)
    +
    49 {
    +
    50 for (std::size_t row_idx = 0; row_idx < dim; ++row_idx)
    +
    51 {
    +
    52 compute_1d_row(out, printer, row_idx);
    +
    53 }
    +
    54 }
    +
    55 else
    +
    56 {
    +
    57 for (std::size_t row_idx = 0; row_idx < edgeitems; ++row_idx)
    +
    58 {
    +
    59 compute_1d_row(out, printer, row_idx);
    +
    60 }
    +
    61 out << "<tr><td><center>\u22ee</center></td></tr>";
    +
    62 for (std::size_t row_idx = dim - edgeitems; row_idx < dim; ++row_idx)
    +
    63 {
    +
    64 compute_1d_row(out, printer, row_idx);
    +
    65 }
    +
    66 }
    +
    67 out << "</tbody></table>";
    +
    68 }
    +
    69
    +
    70 template <class P>
    +
    71 void compute_2d_element(
    +
    72 std::stringstream& out,
    +
    73 P& printer,
    +
    74 const std::string& idx_str,
    +
    75 const std::size_t& row_idx,
    +
    76 const std::size_t& column_idx
    +
    77 )
    +
    78 {
    +
    79 out << "<td style='font-family:monospace;' title='(" << idx_str << row_idx << ", " << column_idx
    +
    80 << ")'><pre>";
    +
    81 printer.print_next(out);
    +
    82 out << "</pre></td>";
    +
    83 }
    +
    84
    +
    85 template <class P, class T>
    +
    86 void compute_2d_row(
    +
    87 std::stringstream& out,
    +
    88 P& printer,
    +
    89 const T& expr,
    +
    90 const std::size_t& edgeitems,
    +
    91 const std::string& idx_str,
    +
    92 const std::size_t& row_idx
    +
    93 )
    +
    94 {
    +
    95 const auto& dim = expr.shape()[expr.dimension() - 1];
    +
    96
    +
    97 out << "<tr>";
    +
    98 if (edgeitems == 0 || 2 * edgeitems >= dim)
    +
    99 {
    +
    100 for (std::size_t column_idx = 0; column_idx < dim; ++column_idx)
    +
    101 {
    +
    102 compute_2d_element(out, printer, idx_str, row_idx, column_idx);
    +
    103 }
    +
    104 }
    +
    105 else
    +
    106 {
    +
    107 for (std::size_t column_idx = 0; column_idx < edgeitems; ++column_idx)
    +
    108 {
    +
    109 compute_2d_element(out, printer, idx_str, row_idx, column_idx);
    +
    110 }
    +
    111 out << "<td><center>\u22ef</center></td>";
    +
    112 for (std::size_t column_idx = dim - edgeitems; column_idx < dim; ++column_idx)
    +
    113 {
    +
    114 compute_2d_element(out, printer, idx_str, row_idx, column_idx);
    +
    115 }
    +
    116 }
    +
    117 out << "</tr>";
    +
    118 }
    +
    119
    +
    120 template <class P, class T, class I>
    +
    121 void compute_2d_table(
    +
    122 std::stringstream& out,
    +
    123 P& printer,
    +
    124 const T& expr,
    +
    125 const std::size_t& edgeitems,
    +
    126 const std::vector<I>& idx
    +
    127 )
    +
    128 {
    +
    129 const auto& dim = expr.shape()[expr.dimension() - 2];
    +
    130 const auto& last_dim = expr.shape()[expr.dimension() - 1];
    +
    131 std::string idx_str;
    +
    132 std::for_each(
    +
    133 idx.cbegin(),
    +
    134 idx.cend(),
    +
    135 [&idx_str](const auto& i)
    +
    136 {
    +
    137 idx_str += std::to_string(i) + ", ";
    +
    138 }
    +
    139 );
    +
    140
    +
    141 std::size_t nb_ellipsis = 2 * edgeitems + 1;
    +
    142 if (last_dim <= 2 * edgeitems + 1)
    +
    143 {
    +
    144 nb_ellipsis = last_dim;
    +
    145 }
    +
    146
    +
    147 out << "<table style='border-style:solid;border-width:1px;'><tbody>";
    +
    148 if (edgeitems == 0 || 2 * edgeitems >= dim)
    +
    149 {
    +
    150 for (std::size_t row_idx = 0; row_idx < dim; ++row_idx)
    +
    151 {
    +
    152 compute_2d_row(out, printer, expr, edgeitems, idx_str, row_idx);
    +
    153 }
    +
    154 }
    +
    155 else
    +
    156 {
    +
    157 for (std::size_t row_idx = 0; row_idx < edgeitems; ++row_idx)
    +
    158 {
    +
    159 compute_2d_row(out, printer, expr, edgeitems, idx_str, row_idx);
    +
    160 }
    +
    161 out << "<tr>";
    +
    162 for (std::size_t column_idx = 0; column_idx < nb_ellipsis; ++column_idx)
    +
    163 {
    +
    164 if (column_idx == edgeitems && nb_ellipsis != last_dim)
    +
    165 {
    +
    166 out << "<td><center>\u22f1</center></td>";
    +
    167 }
    +
    168 else
    +
    169 {
    +
    170 out << "<td><center>\u22ee</center></td>";
    +
    171 }
    +
    172 }
    +
    173 out << "</tr>";
    +
    174 for (std::size_t row_idx = dim - edgeitems; row_idx < dim; ++row_idx)
    +
    175 {
    +
    176 compute_2d_row(out, printer, expr, edgeitems, idx_str, row_idx);
    +
    177 }
    +
    178 }
    +
    179 out << "</tbody></table>";
    +
    180 }
    +
    181
    +
    182 template <class P, class T, class I>
    +
    183 void compute_nd_row(
    +
    184 std::stringstream& out,
    +
    185 P& printer,
    +
    186 const T& expr,
    +
    187 const std::size_t& edgeitems,
    +
    188 const std::vector<I>& idx
    +
    189 )
    +
    190 {
    +
    191 out << "<tr><td>";
    +
    192 compute_nd_table_impl(out, printer, expr, edgeitems, idx);
    +
    193 out << "</td></tr>";
    +
    194 }
    +
    195
    +
    196 template <class P, class T, class I>
    +
    197 void compute_nd_table_impl(
    +
    198 std::stringstream& out,
    +
    199 P& printer,
    +
    200 const T& expr,
    +
    201 const std::size_t& edgeitems,
    +
    202 const std::vector<I>& idx
    +
    203 )
    +
    204 {
    +
    205 const auto& displayed_dimension = idx.size();
    +
    206 const auto& expr_dim = expr.dimension();
    +
    207 const auto& dim = expr.shape()[displayed_dimension];
    +
    208
    +
    209 if (expr_dim - displayed_dimension == 2)
    +
    210 {
    +
    211 return compute_2d_table(out, printer, expr, edgeitems, idx);
    +
    212 }
    +
    213
    +
    214 std::vector<I> idx2 = idx;
    +
    215 idx2.resize(displayed_dimension + 1);
    +
    216
    +
    217 out << "<table style='border-style:solid;border-width:1px;'>";
    +
    218 if (edgeitems == 0 || 2 * edgeitems >= dim)
    +
    219 {
    +
    220 for (std::size_t i = 0; i < dim; ++i)
    +
    221 {
    +
    222 idx2[displayed_dimension] = i;
    +
    223 compute_nd_row(out, printer, expr, edgeitems, idx2);
    +
    224 }
    +
    225 }
    +
    226 else
    +
    227 {
    +
    228 for (std::size_t i = 0; i < edgeitems; ++i)
    +
    229 {
    +
    230 idx2[displayed_dimension] = i;
    +
    231 compute_nd_row(out, printer, expr, edgeitems, idx2);
    +
    232 }
    +
    233 out << "<tr><td><center>\u22ef</center></td></tr>";
    +
    234 for (std::size_t i = dim - edgeitems; i < dim; ++i)
    +
    235 {
    +
    236 idx2[displayed_dimension] = i;
    +
    237 compute_nd_row(out, printer, expr, edgeitems, idx2);
    +
    238 }
    +
    239 }
    +
    240 out << "</table>";
    +
    241 }
    +
    242
    +
    243 template <class P, class T>
    +
    244 void compute_nd_table(std::stringstream& out, P& printer, const T& expr, const std::size_t& edgeitems)
    +
    245 {
    +
    246 if (expr.dimension() == 0)
    +
    247 {
    +
    248 compute_0d_table(out, printer, expr);
    +
    249 }
    +
    250 else if (expr.dimension() == 1)
    +
    251 {
    +
    252 compute_1d_table(out, printer, expr, edgeitems);
    +
    253 }
    +
    254 else
    +
    255 {
    +
    256 std::vector<std::size_t> empty_vector;
    +
    257 compute_nd_table_impl(out, printer, expr, edgeitems, empty_vector);
    +
    258 }
    +
    259 }
    +
    260
    +
    261 template <class E>
    +
    262 nlohmann::json mime_bundle_repr_impl(const E& expr)
    +
    263 {
    +
    264 std::stringstream out;
    +
    265
    +
    266 std::size_t edgeitems = 0;
    +
    267 std::size_t size = compute_size(expr.shape());
    +
    268 if (size > static_cast<std::size_t>(print_options::print_options().threshold))
    +
    269 {
    +
    270 edgeitems = static_cast<std::size_t>(print_options::print_options().edge_items);
    +
    271 }
    +
    272
    +
    273 if (print_options::print_options().precision != -1)
    +
    274 {
    +
    275 out.precision(print_options::print_options().precision);
    +
    276 }
    +
    277
    +
    278 detail::printer<E> printer(out.precision());
    +
    279
    +
    280 xstrided_slice_vector slice_vector;
    +
    281 detail::recurser_run(printer, expr, slice_vector, edgeitems);
    +
    282 printer.init();
    +
    283
    +
    284 compute_nd_table(out, printer, expr, edgeitems);
    +
    285
    +
    286 auto bundle = nlohmann::json::object();
    +
    287 bundle["text/html"] = out.str();
    +
    288 return bundle;
    +
    289 }
    +
    290
    +
    291 template <class F, class CT>
    +
    292 class xfunctor_view;
    +
    293
    +
    294 template <class F, class CT>
    +
    295 nlohmann::json mime_bundle_repr(const xfunctor_view<F, CT>& expr)
    +
    296 {
    +
    297 return mime_bundle_repr_impl(expr);
    +
    298 }
    +
    299
    +
    300 template <class F, class... CT>
    +
    301 class xfunction;
    +
    302
    +
    303 template <class F, class... CT>
    +
    304 nlohmann::json mime_bundle_repr(const xfunction<F, CT...>& expr)
    +
    305 {
    +
    306 return mime_bundle_repr_impl(expr);
    +
    307 }
    +
    308
    +
    309 template <class EC, layout_type L, class SC, class Tag>
    +
    310 class xarray_container;
    +
    311
    +
    312 template <class EC, layout_type L, class SC, class Tag>
    +
    313 nlohmann::json mime_bundle_repr(const xarray_container<EC, L, SC, Tag>& expr)
    +
    314 {
    +
    315 return mime_bundle_repr_impl(expr);
    +
    316 }
    +
    317
    +
    318 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    319 class xtensor_container;
    +
    320
    +
    321 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    322 nlohmann::json mime_bundle_repr(const xtensor_container<EC, N, L, Tag>& expr)
    +
    323 {
    +
    324 return mime_bundle_repr_impl(expr);
    +
    325 }
    +
    326
    +
    327 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    328 class xfixed_container;
    +
    329
    +
    330 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    331 nlohmann::json mime_bundle_repr(const xfixed_container<ET, S, L, SH, Tag>& expr)
    +
    332 {
    +
    333 return mime_bundle_repr_impl(expr);
    +
    334 }
    +
    335
    +
    336 template <class F, class CT, class X, class O>
    +
    337 class xreducer;
    +
    338
    +
    339 template <class F, class CT, class X, class O>
    +
    340 nlohmann::json mime_bundle_repr(const xreducer<F, CT, X, O>& expr)
    +
    341 {
    +
    342 return mime_bundle_repr_impl(expr);
    +
    343 }
    +
    344
    +
    345 template <class VE, class FE>
    +
    346 class xoptional_assembly;
    +
    347
    +
    348 template <class VE, class FE>
    +
    349 nlohmann::json mime_bundle_repr(const xoptional_assembly<VE, FE>& expr)
    +
    350 {
    +
    351 return mime_bundle_repr_impl(expr);
    +
    352 }
    +
    353
    +
    354 template <class VEC, class FEC>
    + +
    356
    +
    357 template <class VEC, class FEC>
    +
    358 nlohmann::json mime_bundle_repr(const xoptional_assembly_adaptor<VEC, FEC>& expr)
    +
    359 {
    +
    360 return mime_bundle_repr_impl(expr);
    +
    361 }
    +
    362
    +
    363 template <class CT>
    +
    364 class xscalar;
    +
    365
    +
    366 template <class CT>
    +
    367 nlohmann::json mime_bundle_repr(const xscalar<CT>& expr)
    +
    368 {
    +
    369 return mime_bundle_repr_impl(expr);
    +
    370 }
    +
    371
    +
    372 template <class CT, class X>
    +
    373 class xbroadcast;
    +
    374
    +
    375 template <class CT, class X>
    +
    376 nlohmann::json mime_bundle_repr(const xbroadcast<CT, X>& expr)
    +
    377 {
    +
    378 return mime_bundle_repr_impl(expr);
    +
    379 }
    +
    380
    +
    381 template <class F, class R, class S>
    +
    382 class xgenerator;
    +
    383
    +
    384 template <class F, class R, class S>
    +
    385 nlohmann::json mime_bundle_repr(const xgenerator<F, R, S>& expr)
    +
    386 {
    +
    387 return mime_bundle_repr_impl(expr);
    +
    388 }
    +
    389
    +
    390 template <class CT, class... S>
    +
    391 class xview;
    +
    392
    +
    393 template <class CT, class... S>
    +
    394 nlohmann::json mime_bundle_repr(const xview<CT, S...>& expr)
    +
    395 {
    +
    396 return mime_bundle_repr_impl(expr);
    +
    397 }
    +
    398
    +
    399 template <class CT, class S, layout_type L, class FST>
    +
    400 class xstrided_view;
    +
    401
    +
    402 template <class CT, class S, layout_type L, class FST>
    +
    403 nlohmann::json mime_bundle_repr(const xstrided_view<CT, S, L, FST>& expr)
    +
    404 {
    +
    405 return mime_bundle_repr_impl(expr);
    +
    406 }
    +
    407
    +
    408 template <class CTD, class CTM>
    +
    409 class xmasked_view;
    +
    410
    +
    411 template <class CTD, class CTM>
    +
    412 nlohmann::json mime_bundle_repr(const xmasked_view<CTD, CTM>& expr)
    +
    413 {
    +
    414 return mime_bundle_repr_impl(expr);
    +
    415 }
    +
    416
    +
    417 template <class T, class B>
    + +
    419
    +
    420 template <class T, class B>
    +
    421 nlohmann::json mime_bundle_repr(const xmasked_value<T, B>& v)
    +
    422 {
    +
    423 auto bundle = nlohmann::json::object();
    +
    424 std::stringstream tmp;
    +
    425 tmp << v;
    +
    426 bundle["text/plain"] = tmp.str();
    +
    427 return bundle;
    +
    428 }
    +
    429}
    +
    430
    +
    431#endif
    +
    Dense multidimensional container with tensor semantic.
    Definition xarray.hpp:84
    +
    Broadcasted xexpression to a specified shape.
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xfixed.hpp:297
    +
    Multidimensional function operating on xtensor expressions.
    +
    View of an xexpression .
    +
    Multidimensional function operating on indices.
    + +
    View on an xoptional_assembly or xoptional_assembly_adaptor hiding values depending on a given mask.
    +
    Dense multidimensional adaptor holding optional values, optimized for tensor operations.
    +
    Dense multidimensional container holding optional values, optimized for tensor operations.
    +
    Reducing function operating over specified axes.
    Definition xreducer.hpp:808
    + +
    View of an xexpression using strides.
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    Multidimensional view with tensor semantic.
    Definition xview.hpp:365
    +
    standard mathematical functions for xexpressions
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    +
    + + + + diff --git a/xmultiindex__iterator_8hpp_source.html b/xmultiindex__iterator_8hpp_source.html new file mode 100644 index 000000000..19b4fc842 --- /dev/null +++ b/xmultiindex__iterator_8hpp_source.html @@ -0,0 +1,253 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xmultiindex_iterator.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xmultiindex_iterator.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_XMULTIINDEX_ITERATOR
    +
    11#define XTENSOR_XMULTIINDEX_ITERATOR
    +
    12
    +
    13#include "../views/xstrided_view.hpp"
    +
    14#include "xtl/xsequence.hpp"
    +
    15
    +
    16namespace xt
    +
    17{
    +
    18
    +
    19 template <class S>
    +
    +
    20 class xmultiindex_iterator
    +
    21 {
    +
    22 public:
    +
    23
    +
    24 using self_type = xmultiindex_iterator<S>;
    +
    25 using shape_type = S;
    +
    26
    +
    27 using value_type = shape_type;
    +
    28 using reference = value_type&;
    +
    29 using pointer = value_type*;
    +
    30 using difference_type = std::size_t;
    +
    31 using iterator_category = std::forward_iterator_tag;
    +
    32
    +
    33 xmultiindex_iterator() = default;
    +
    34
    +
    35 template <class B, class E, class C>
    +
    36 xmultiindex_iterator(B&& begin, E&& end, C&& current, const std::size_t linear_index)
    +
    37 : m_begin(std::forward<B>(begin))
    +
    38 , m_end(std::forward<E>(end))
    +
    39 , m_current(std::forward<C>(current))
    +
    40 , m_linear_index(linear_index)
    +
    41 {
    +
    42 }
    +
    43
    +
    44 self_type& operator++()
    +
    45 {
    +
    46 std::size_t i = m_begin.size();
    +
    47 while (i != 0)
    +
    48 {
    +
    49 --i;
    +
    50 if (m_current[i] + 1u == m_end[i])
    +
    51 {
    +
    52 m_current[i] = m_begin[i];
    +
    53 }
    +
    54 else
    +
    55 {
    +
    56 m_current[i] += 1;
    +
    57 break;
    +
    58 }
    +
    59 }
    +
    60 m_linear_index++;
    +
    61 return *this;
    +
    62 }
    +
    63
    +
    64 self_type operator++(int)
    +
    65 {
    +
    66 self_type it = *this;
    +
    67 ++(*this);
    +
    68 return it;
    +
    69 }
    +
    70
    +
    71 shape_type& operator*()
    +
    72 {
    +
    73 return m_current;
    +
    74 }
    +
    75
    +
    76 const shape_type& operator*() const
    +
    77 {
    +
    78 return m_current;
    +
    79 }
    +
    80
    +
    81 bool operator==(const self_type& rhs) const
    +
    82 {
    +
    83 return m_linear_index == rhs.m_linear_index;
    +
    84 }
    +
    85
    +
    86 bool operator!=(const self_type& rhs) const
    +
    87 {
    +
    88 return !this->operator==(rhs);
    +
    89 }
    +
    90
    +
    91 private:
    +
    92
    +
    93 shape_type m_begin;
    +
    94 shape_type m_end;
    +
    95 shape_type m_current;
    +
    96 std::size_t m_linear_index{0};
    +
    97 };
    +
    +
    98
    +
    99 template <class S, class B, class E>
    +
    100 auto multiindex_iterator_begin(B&& roi_begin, E&& roi_end)
    +
    101 {
    +
    102 S current;
    +
    103 resize_container(current, roi_begin.size());
    +
    104 std::copy(roi_begin.begin(), roi_begin.end(), current.begin());
    +
    105 return xmultiindex_iterator<S>(std::forward<B>(roi_begin), std::forward<E>(roi_end), std::move(current), 0);
    +
    106 }
    +
    107
    +
    108 template <class S, class B, class E>
    +
    109 auto multiindex_iterator_end(B&& roi_begin, E&& roi_end)
    +
    110 {
    +
    111 S current;
    +
    112 resize_container(current, roi_begin.size());
    +
    113 std::copy(roi_end.begin(), roi_end.end(), current.begin());
    +
    114
    +
    115 std::size_t linear_index = 1;
    +
    116 for (std::size_t i = 0; i < roi_begin.size(); ++i)
    +
    117 {
    +
    118 linear_index *= roi_end[i] - roi_begin[i];
    +
    119 }
    +
    120
    + +
    122 std::forward<B>(roi_begin),
    +
    123 std::forward<E>(roi_end),
    +
    124 std::move(current),
    +
    125 linear_index
    +
    126 );
    +
    127 }
    +
    128
    +
    129}
    +
    130
    +
    131#endif
    + +
    standard mathematical functions for xexpressions
    +
    +
    + + + + diff --git a/xnoalias_8hpp_source.html b/xnoalias_8hpp_source.html new file mode 100644 index 000000000..a1ee9b7a9 --- /dev/null +++ b/xnoalias_8hpp_source.html @@ -0,0 +1,353 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xnoalias.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xnoalias.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_NOALIAS_HPP
    +
    11#define XTENSOR_NOALIAS_HPP
    +
    12
    +
    13#include "../core/xsemantic.hpp"
    +
    14
    +
    15namespace xt
    +
    16{
    +
    17
    +
    18 template <class A>
    +
    +
    19 class noalias_proxy
    +
    20 {
    +
    21 public:
    +
    22
    +
    23 noalias_proxy(A a) noexcept;
    +
    24
    +
    25 template <class E>
    +
    26 disable_xexpression<E, A> operator=(const E&);
    +
    27
    +
    28 template <class E>
    +
    29 disable_xexpression<E, A> operator+=(const E&);
    +
    30
    +
    31 template <class E>
    +
    32 disable_xexpression<E, A> operator-=(const E&);
    +
    33
    +
    34 template <class E>
    +
    35 disable_xexpression<E, A> operator*=(const E&);
    +
    36
    +
    37 template <class E>
    +
    38 disable_xexpression<E, A> operator/=(const E&);
    +
    39
    +
    40 template <class E>
    +
    41 disable_xexpression<E, A> operator%=(const E&);
    +
    42
    +
    43 template <class E>
    +
    44 disable_xexpression<E, A> operator&=(const E&);
    +
    45
    +
    46 template <class E>
    +
    47 disable_xexpression<E, A> operator|=(const E&);
    +
    48
    +
    49 template <class E>
    +
    50 disable_xexpression<E, A> operator^=(const E&);
    +
    51
    +
    52 template <class E>
    +
    53 A operator=(const xexpression<E>& e);
    +
    54
    +
    55 template <class E>
    +
    56 A operator+=(const xexpression<E>& e);
    +
    57
    +
    58 template <class E>
    +
    59 A operator-=(const xexpression<E>& e);
    +
    60
    +
    61 template <class E>
    +
    62 A operator*=(const xexpression<E>& e);
    +
    63
    +
    64 template <class E>
    +
    65 A operator/=(const xexpression<E>& e);
    +
    66
    +
    67 template <class E>
    +
    68 A operator%=(const xexpression<E>& e);
    +
    69
    +
    70 template <class E>
    +
    71 A operator&=(const xexpression<E>&);
    +
    72
    +
    73 template <class E>
    +
    74 A operator|=(const xexpression<E>&);
    +
    75
    +
    76 template <class E>
    +
    77 A operator^=(const xexpression<E>&);
    +
    78
    +
    79 private:
    +
    80
    +
    81 A m_array;
    +
    82 };
    +
    +
    83
    +
    84 template <class A>
    +
    85 noalias_proxy<xtl::closure_type_t<A>> noalias(A&& a) noexcept;
    +
    86
    +
    87 /********************************
    +
    88 * noalias_proxy implementation *
    +
    89 ********************************/
    +
    90
    +
    91 template <class A>
    +
    92 inline noalias_proxy<A>::noalias_proxy(A a) noexcept
    +
    93 : m_array(std::forward<A>(a))
    +
    94 {
    +
    95 }
    +
    96
    +
    97 template <class A>
    +
    98 template <class E>
    +
    99 inline auto noalias_proxy<A>::operator=(const E& e) -> disable_xexpression<E, A>
    +
    100 {
    +
    101 return m_array.assign(xscalar<E>(e));
    +
    102 }
    +
    103
    +
    104 template <class A>
    +
    105 template <class E>
    +
    106 inline auto noalias_proxy<A>::operator+=(const E& e) -> disable_xexpression<E, A>
    +
    107 {
    +
    108 return m_array.scalar_computed_assign(e, std::plus<>());
    +
    109 }
    +
    110
    +
    111 template <class A>
    +
    112 template <class E>
    +
    113 inline auto noalias_proxy<A>::operator-=(const E& e) -> disable_xexpression<E, A>
    +
    114 {
    +
    115 return m_array.scalar_computed_assign(e, std::minus<>());
    +
    116 }
    +
    117
    +
    118 template <class A>
    +
    119 template <class E>
    +
    120 inline auto noalias_proxy<A>::operator*=(const E& e) -> disable_xexpression<E, A>
    +
    121 {
    +
    122 return m_array.scalar_computed_assign(e, std::multiplies<>());
    +
    123 }
    +
    124
    +
    125 template <class A>
    +
    126 template <class E>
    +
    127 inline auto noalias_proxy<A>::operator/=(const E& e) -> disable_xexpression<E, A>
    +
    128 {
    +
    129 return m_array.scalar_computed_assign(e, std::divides<>());
    +
    130 }
    +
    131
    +
    132 template <class A>
    +
    133 template <class E>
    +
    134 inline auto noalias_proxy<A>::operator%=(const E& e) -> disable_xexpression<E, A>
    +
    135 {
    +
    136 return m_array.scalar_computed_assign(e, std::modulus<>());
    +
    137 }
    +
    138
    +
    139 template <class A>
    +
    140 template <class E>
    +
    141 inline auto noalias_proxy<A>::operator&=(const E& e) -> disable_xexpression<E, A>
    +
    142 {
    +
    143 return m_array.scalar_computed_assign(e, std::bit_and<>());
    +
    144 }
    +
    145
    +
    146 template <class A>
    +
    147 template <class E>
    +
    148 inline auto noalias_proxy<A>::operator|=(const E& e) -> disable_xexpression<E, A>
    +
    149 {
    +
    150 return m_array.scalar_computed_assign(e, std::bit_or<>());
    +
    151 }
    +
    152
    +
    153 template <class A>
    +
    154 template <class E>
    +
    155 inline auto noalias_proxy<A>::operator^=(const E& e) -> disable_xexpression<E, A>
    +
    156 {
    +
    157 return m_array.scalar_computed_assign(e, std::bit_xor<>());
    +
    158 }
    +
    159
    +
    160 template <class A>
    +
    161 template <class E>
    +
    162 inline A noalias_proxy<A>::operator=(const xexpression<E>& e)
    +
    163 {
    +
    164 return m_array.assign(e);
    +
    165 }
    +
    166
    +
    167 template <class A>
    +
    168 template <class E>
    +
    169 inline A noalias_proxy<A>::operator+=(const xexpression<E>& e)
    +
    170 {
    +
    171 return m_array.plus_assign(e);
    +
    172 }
    +
    173
    +
    174 template <class A>
    +
    175 template <class E>
    +
    176 inline A noalias_proxy<A>::operator-=(const xexpression<E>& e)
    +
    177 {
    +
    178 return m_array.minus_assign(e);
    +
    179 }
    +
    180
    +
    181 template <class A>
    +
    182 template <class E>
    +
    183 inline A noalias_proxy<A>::operator*=(const xexpression<E>& e)
    +
    184 {
    +
    185 return m_array.multiplies_assign(e);
    +
    186 }
    +
    187
    +
    188 template <class A>
    +
    189 template <class E>
    +
    190 inline A noalias_proxy<A>::operator/=(const xexpression<E>& e)
    +
    191 {
    +
    192 return m_array.divides_assign(e);
    +
    193 }
    +
    194
    +
    195 template <class A>
    +
    196 template <class E>
    +
    197 inline A noalias_proxy<A>::operator%=(const xexpression<E>& e)
    +
    198 {
    +
    199 return m_array.modulus_assign(e);
    +
    200 }
    +
    201
    +
    202 template <class A>
    +
    203 template <class E>
    +
    204 inline A noalias_proxy<A>::operator&=(const xexpression<E>& e)
    +
    205 {
    +
    206 return m_array.bit_and_assign(e);
    +
    207 }
    +
    208
    +
    209 template <class A>
    +
    210 template <class E>
    +
    211 inline A noalias_proxy<A>::operator|=(const xexpression<E>& e)
    +
    212 {
    +
    213 return m_array.bit_or_assign(e);
    +
    214 }
    +
    215
    +
    216 template <class A>
    +
    217 template <class E>
    +
    218 inline A noalias_proxy<A>::operator^=(const xexpression<E>& e)
    +
    219 {
    +
    220 return m_array.bit_xor_assign(e);
    +
    221 }
    +
    222
    +
    223 template <class A>
    +
    224 inline noalias_proxy<xtl::closure_type_t<A>> noalias(A&& a) noexcept
    +
    225 {
    + +
    227 }
    +
    228}
    +
    229
    +
    230#endif
    + +
    Base class for xexpressions.
    +
    standard mathematical functions for xexpressions
    +
    +
    + + + + diff --git a/xnorm_8hpp_source.html b/xnorm_8hpp_source.html new file mode 100644 index 000000000..92f64ee04 --- /dev/null +++ b/xnorm_8hpp_source.html @@ -0,0 +1,662 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xnorm.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xnorm.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) Ullrich Koethe
    +
    4 * Copyright (c) QuantStack *
    +
    5 * *
    +
    6 * Distributed under the terms of the BSD 3-Clause License. *
    +
    7 * *
    +
    8 * The full license is in the file LICENSE, distributed with this software. *
    +
    9 ****************************************************************************/
    +
    10
    +
    11#ifndef XTENSOR_NORM_HPP
    +
    12#define XTENSOR_NORM_HPP
    +
    13
    +
    14#include <cmath>
    +
    15// std::abs(int) prior to C++ 17
    +
    16#include <complex>
    +
    17#include <cstdlib>
    +
    18
    +
    19#include <xtl/xtype_traits.hpp>
    +
    20
    +
    21#include "../core/xmath.hpp"
    +
    22#include "../core/xoperation.hpp"
    +
    23#include "../utils/xutils.hpp"
    +
    24
    +
    25namespace xt
    +
    26{
    +
    27 /********************************************
    +
    28 * type inference for norm and squared norm *
    +
    29 ********************************************/
    +
    30
    +
    31 template <class T>
    +
    32 struct norm_type;
    +
    33
    +
    34 template <class T>
    +
    35 struct squared_norm_type;
    +
    36
    +
    37 namespace traits_detail
    +
    38 {
    +
    39
    +
    40 template <class T, bool scalar = xtl::is_arithmetic<T>::value>
    + +
    42
    +
    43 template <class T>
    +
    +
    44 struct norm_of_scalar_impl<T, false>
    +
    45 {
    +
    46 static const bool value = false;
    +
    47 using norm_type = void*;
    +
    48 using squared_norm_type = void*;
    +
    49 };
    +
    +
    50
    +
    51 template <class T>
    +
    +
    52 struct norm_of_scalar_impl<T, true>
    +
    53 {
    +
    54 static const bool value = true;
    +
    55 using norm_type = xtl::promote_type_t<T>;
    +
    56 using squared_norm_type = xtl::promote_type_t<T>;
    +
    57 };
    +
    +
    58
    +
    59 template <class T, bool integral = xtl::is_integral<T>::value, bool floating = std::is_floating_point<T>::value>
    + +
    61
    +
    62 template <>
    +
    +
    63 struct norm_of_array_elements_impl<void*, false, false>
    +
    64 {
    +
    65 using norm_type = void*;
    +
    66 using squared_norm_type = void*;
    +
    67 };
    +
    +
    68
    +
    69 template <class T>
    +
    +
    70 struct norm_of_array_elements_impl<T, false, false>
    +
    71 {
    +
    72 using norm_type = typename norm_type<T>::type;
    +
    73 using squared_norm_type = typename squared_norm_type<T>::type;
    +
    74 };
    +
    +
    75
    +
    76 template <class T>
    +
    +
    77 struct norm_of_array_elements_impl<T, true, false>
    +
    78 {
    +
    79 static_assert(
    +
    80 !std::is_same<T, char>::value,
    +
    81 "'char' is not a numeric type, use 'signed char' or 'unsigned char'."
    +
    82 );
    +
    83
    +
    84 using norm_type = double;
    +
    85 using squared_norm_type = uint64_t;
    +
    86 };
    +
    +
    87
    +
    88 template <class T>
    +
    +
    89 struct norm_of_array_elements_impl<T, false, true>
    +
    90 {
    +
    91 using norm_type = double;
    +
    92 using squared_norm_type = double;
    +
    93 };
    +
    +
    94
    +
    95 template <>
    +
    +
    96 struct norm_of_array_elements_impl<long double, false, true>
    +
    97 {
    +
    98 using norm_type = long double;
    +
    99 using squared_norm_type = long double;
    +
    100 };
    +
    +
    101
    +
    102 template <class ARRAY>
    +
    + +
    104 {
    +
    105 static void* test(...);
    +
    106
    +
    107 template <class U>
    +
    108 static typename U::value_type test(U*, typename U::value_type* = 0);
    +
    109
    +
    110 using T = decltype(test(std::declval<ARRAY*>()));
    +
    111
    +
    112 static const bool value = !std::is_same<T, void*>::value;
    +
    113
    +
    114 using norm_type = typename norm_of_array_elements_impl<T>::norm_type;
    +
    115 using squared_norm_type = typename norm_of_array_elements_impl<T>::squared_norm_type;
    +
    116 };
    +
    +
    117
    +
    118 template <class U>
    +
    + +
    120 {
    +
    121 using T = std::decay_t<U>;
    +
    122
    +
    123 static_assert(
    +
    124 !std::is_same<T, char>::value,
    +
    125 "'char' is not a numeric type, use 'signed char' or 'unsigned char'."
    +
    126 );
    +
    127
    +
    128 using norm_of_scalar = norm_of_scalar_impl<T>;
    +
    129 using norm_of_vector = norm_of_vector_impl<T>;
    +
    130
    +
    131 static const bool value = norm_of_scalar::value || norm_of_vector::value;
    +
    132
    +
    133 static_assert(value, "norm_type<T> are undefined for type U.");
    +
    134 };
    +
    +
    135 } // namespace traits_detail
    +
    136
    +
    152 template <class T>
    +
    + +
    154 {
    +
    155 using base_type = traits_detail::norm_type_base<T>;
    +
    156
    +
    157 using type = typename std::conditional<
    +
    158 base_type::norm_of_vector::value,
    +
    159 typename base_type::norm_of_vector::norm_type,
    +
    160 typename base_type::norm_of_scalar::norm_type>::type;
    +
    161 };
    +
    +
    162
    +
    166 template <class T>
    +
    167 using norm_type_t = typename norm_type<T>::type;
    +
    168
    +
    185 template <class T>
    +
    + +
    187 {
    +
    188 using base_type = traits_detail::norm_type_base<T>;
    +
    189
    +
    190 using type = typename std::conditional<
    +
    191 base_type::norm_of_vector::value,
    +
    192 typename base_type::norm_of_vector::squared_norm_type,
    +
    193 typename base_type::norm_of_scalar::squared_norm_type>::type;
    +
    194 };
    +
    +
    195
    +
    199 template <class T>
    +
    200 using squared_norm_type_t = typename squared_norm_type<T>::type;
    +
    201
    +
    202 /*************************************
    +
    203 * norm functions for built-in types *
    +
    204 *************************************/
    +
    205
    +
    207#define XTENSOR_DEFINE_SIGNED_NORMS(T) \
    +
    208 inline auto norm_lp(T t, double p) noexcept \
    +
    209 { \
    +
    210 using rt = decltype(std::abs(t)); \
    +
    211 return p == 0.0 ? static_cast<rt>(t != 0) : std::abs(t); \
    +
    212 } \
    +
    213 inline auto norm_lp_to_p(T t, double p) noexcept \
    +
    214 { \
    +
    215 using rt = xtl::real_promote_type_t<T>; \
    +
    216 return p == 0.0 ? static_cast<rt>(t != 0) \
    +
    217 : std::pow(static_cast<rt>(std::abs(t)), static_cast<rt>(p)); \
    +
    218 } \
    +
    219 inline std::size_t norm_l0(T t) noexcept \
    +
    220 { \
    +
    221 return (t != 0); \
    +
    222 } \
    +
    223 inline auto norm_l1(T t) noexcept \
    +
    224 { \
    +
    225 return std::abs(t); \
    +
    226 } \
    +
    227 inline auto norm_l2(T t) noexcept \
    +
    228 { \
    +
    229 return std::abs(t); \
    +
    230 } \
    +
    231 inline auto norm_linf(T t) noexcept \
    +
    232 { \
    +
    233 return std::abs(t); \
    +
    234 } \
    +
    235 inline auto norm_sq(T t) noexcept \
    +
    236 { \
    +
    237 return t * t; \
    +
    238 }
    +
    239
    +
    240 XTENSOR_DEFINE_SIGNED_NORMS(signed char)
    +
    241 XTENSOR_DEFINE_SIGNED_NORMS(short)
    +
    242 XTENSOR_DEFINE_SIGNED_NORMS(int)
    +
    243 XTENSOR_DEFINE_SIGNED_NORMS(long)
    +
    244 XTENSOR_DEFINE_SIGNED_NORMS(long long)
    +
    245 XTENSOR_DEFINE_SIGNED_NORMS(float)
    +
    246 XTENSOR_DEFINE_SIGNED_NORMS(double)
    +
    247 XTENSOR_DEFINE_SIGNED_NORMS(long double)
    +
    248
    +
    249#undef XTENSOR_DEFINE_SIGNED_NORMS
    +
    250
    +
    251#define XTENSOR_DEFINE_UNSIGNED_NORMS(T) \
    +
    252 inline T norm_lp(T t, double p) noexcept \
    +
    253 { \
    +
    254 return p == 0.0 ? (t != 0) : t; \
    +
    255 } \
    +
    256 inline auto norm_lp_to_p(T t, double p) noexcept \
    +
    257 { \
    +
    258 using rt = xtl::real_promote_type_t<T>; \
    +
    259 return p == 0.0 ? static_cast<rt>(t != 0) : std::pow(static_cast<rt>(t), static_cast<rt>(p)); \
    +
    260 } \
    +
    261 inline T norm_l0(T t) noexcept \
    +
    262 { \
    +
    263 return t != 0 ? 1 : 0; \
    +
    264 } \
    +
    265 inline T norm_l1(T t) noexcept \
    +
    266 { \
    +
    267 return t; \
    +
    268 } \
    +
    269 inline T norm_l2(T t) noexcept \
    +
    270 { \
    +
    271 return t; \
    +
    272 } \
    +
    273 inline T norm_linf(T t) noexcept \
    +
    274 { \
    +
    275 return t; \
    +
    276 } \
    +
    277 inline auto norm_sq(T t) noexcept \
    +
    278 { \
    +
    279 return t * t; \
    +
    280 }
    +
    281
    +
    282 XTENSOR_DEFINE_UNSIGNED_NORMS(unsigned char)
    +
    283 XTENSOR_DEFINE_UNSIGNED_NORMS(unsigned short)
    +
    284 XTENSOR_DEFINE_UNSIGNED_NORMS(unsigned int)
    +
    285 XTENSOR_DEFINE_UNSIGNED_NORMS(unsigned long)
    +
    286 XTENSOR_DEFINE_UNSIGNED_NORMS(unsigned long long)
    +
    287
    +
    288#undef XTENSOR_DEFINE_UNSIGNED_NORMS
    +
    289
    +
    290 /***********************************
    +
    291 * norm functions for std::complex *
    +
    292 ***********************************/
    +
    293
    +
    298 template <class T>
    +
    299 inline uint64_t norm_l0(const std::complex<T>& t) noexcept
    +
    300 {
    +
    301 return t.real() != 0 || t.imag() != 0;
    +
    302 }
    +
    303
    +
    307 template <class T>
    +
    308 inline auto norm_l1(const std::complex<T>& t) noexcept
    +
    309 {
    +
    310 return std::abs(t.real()) + std::abs(t.imag());
    +
    311 }
    +
    312
    +
    317 template <class T>
    +
    318 inline auto norm_l2(const std::complex<T>& t) noexcept
    +
    319 {
    +
    320 return std::abs(t);
    +
    321 }
    +
    322
    +
    328 template <class T>
    +
    329 inline auto norm_sq(const std::complex<T>& t) noexcept
    +
    330 {
    +
    331 // Does not use std::norm since it returns a std::complex on OSX
    +
    332 return t.real() * t.real() + t.imag() * t.imag();
    +
    333 }
    +
    334
    +
    338 template <class T>
    +
    339 inline auto norm_linf(const std::complex<T>& t) noexcept
    +
    340 {
    +
    341 return (std::max)(std::abs(t.real()), std::abs(t.imag()));
    +
    342 }
    +
    343
    +
    347 template <class T>
    +
    348 inline auto norm_lp_to_p(const std::complex<T>& t, double p) noexcept
    +
    349 {
    +
    350 using rt = decltype(std::pow(std::abs(t.real()), static_cast<T>(p)));
    +
    351 return p == 0 ? static_cast<rt>(t.real() != 0 || t.imag() != 0)
    +
    352 : std::pow(std::abs(t.real()), static_cast<T>(p))
    +
    353 + std::pow(std::abs(t.imag()), static_cast<T>(p));
    +
    354 }
    +
    355
    +
    359 template <class T>
    +
    360 inline auto norm_lp(const std::complex<T>& t, double p) noexcept
    +
    361 {
    +
    362 return p == 0 ? norm_lp_to_p(t, p) : std::pow(norm_lp_to_p(t, p), 1.0 / p);
    +
    363 }
    +
    364
    +
    365 /***********************************
    +
    366 * norm functions for xexpressions *
    +
    367 ***********************************/
    +
    368
    +
    369#define XTENSOR_NORM_FUNCTION_AXES(NAME) \
    +
    370 template <class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS> \
    +
    371 inline auto NAME(E&& e, const I(&axes)[N], EVS es = EVS()) noexcept \
    +
    372 { \
    +
    373 using axes_type = std::array<typename std::decay_t<E>::size_type, N>; \
    +
    374 return NAME(std::forward<E>(e), xtl::forward_sequence<axes_type, decltype(axes)>(axes), es); \
    +
    375 }
    +
    376
    +
    377 namespace detail
    +
    378 {
    +
    379 template <class T>
    +
    380 struct norm_value_type
    +
    381 {
    +
    382 using type = T;
    +
    383 };
    +
    384
    +
    385 template <class T>
    +
    386 struct norm_value_type<std::complex<T>>
    +
    387 {
    +
    388 using type = T;
    +
    389 };
    +
    390
    +
    391 template <class T>
    +
    392 using norm_value_type_t = typename norm_value_type<T>::type;
    +
    393 }
    +
    394
    +
    395#define XTENSOR_EMPTY
    +
    396#define XTENSOR_COMMA ,
    +
    397#define XTENSOR_NORM_FUNCTION(NAME, RESULT_TYPE, REDUCE_EXPR, REDUCE_OP, MERGE_FUNC) \
    +
    398 template <class E, class X, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(std::negation<is_reducer_options<X>>)> \
    +
    399 inline auto NAME(E&& e, X&& axes, EVS es = EVS()) noexcept \
    +
    400 { \
    +
    401 using value_type = typename std::decay_t<E>::value_type; \
    +
    402 using result_type = detail::norm_value_type_t<RESULT_TYPE>; \
    +
    403 \
    +
    404 auto reduce_func = [](result_type const& r, value_type const& v) \
    +
    405 { \
    +
    406 return REDUCE_EXPR(r REDUCE_OP NAME(v)); \
    +
    407 }; \
    +
    408 \
    +
    409 return xt::reduce( \
    +
    410 make_xreducer_functor(std::move(reduce_func), const_value<result_type>(0), MERGE_FUNC<result_type>()), \
    +
    411 std::forward<E>(e), \
    +
    412 std::forward<X>(axes), \
    +
    413 es \
    +
    414 ); \
    +
    415 } \
    +
    416 \
    +
    417 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_xexpression<E>)> \
    +
    418 inline auto NAME(E&& e, EVS es = EVS()) noexcept \
    +
    419 { \
    +
    420 return NAME(std::forward<E>(e), arange(e.dimension()), es); \
    +
    421 } \
    +
    422 XTENSOR_NORM_FUNCTION_AXES(NAME)
    +
    423
    +
    424 XTENSOR_NORM_FUNCTION(norm_l0, unsigned long long, XTENSOR_EMPTY, +, std::plus)
    +
    425 XTENSOR_NORM_FUNCTION(norm_l1, xtl::big_promote_type_t<value_type>, XTENSOR_EMPTY, +, std::plus)
    +
    426 XTENSOR_NORM_FUNCTION(norm_sq, xtl::big_promote_type_t<value_type>, XTENSOR_EMPTY, +, std::plus)
    +
    427 XTENSOR_NORM_FUNCTION(
    +
    428 norm_linf,
    +
    429 decltype(norm_linf(std::declval<value_type>())),
    +
    430 (std::max<result_type>),
    +
    431 XTENSOR_COMMA,
    + +
    433 )
    +
    434
    +
    435#undef XTENSOR_EMPTY
    +
    436#undef XTENSOR_COMMA
    +
    437#undef XTENSOR_NORM_FUNCTION
    +
    438#undef XTENSOR_NORM_FUNCTION_AXES
    +
    440
    +
    452 template <class E, class X, class EVS, class>
    +
    453 auto norm_l0(E&& e, X&& axes, EVS es) noexcept;
    +
    454
    +
    467 template <class E, class X, class EVS, class>
    +
    468 auto norm_l1(E&& e, X&& axes, EVS es) noexcept;
    +
    469
    +
    482 template <class E, class X, class EVS, class>
    +
    483 auto norm_sq(E&& e, X&& axes, EVS es) noexcept;
    +
    484
    +
    493 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_xexpression<E>)>
    +
    +
    494 inline auto norm_l2(E&& e, EVS es = EVS()) noexcept
    +
    495 {
    +
    496 using std::sqrt;
    +
    497 return sqrt(norm_sq(std::forward<E>(e), es));
    +
    498 }
    +
    +
    499
    +
    511 template <
    +
    512 class E,
    +
    513 class X,
    +
    514 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    515 XTL_REQUIRES(is_xexpression<E>, std::negation<is_reducer_options<X>>)>
    +
    +
    516 inline auto norm_l2(E&& e, X&& axes, EVS es = EVS()) noexcept
    +
    517 {
    +
    518 return sqrt(norm_sq(std::forward<E>(e), std::forward<X>(axes), es));
    +
    519 }
    +
    +
    520
    +
    521 template <class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    522 inline auto norm_l2(E&& e, const I (&axes)[N], EVS es = EVS()) noexcept
    +
    523 {
    +
    524 using axes_type = std::array<typename std::decay_t<E>::size_type, N>;
    +
    525 return sqrt(norm_sq(std::forward<E>(e), xtl::forward_sequence<axes_type, decltype(axes)>(axes), es));
    +
    526 }
    +
    527
    +
    540 template <class E, class X, class EVS, class>
    +
    541 auto norm_linf(E&& e, X&& axes, EVS es) noexcept;
    +
    542
    +
    556 template <class E, class X, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    557 inline auto norm_lp_to_p(E&& e, double p, X&& axes, EVS es = EVS()) noexcept
    +
    558 {
    +
    559 using value_type = typename std::decay_t<E>::value_type;
    +
    560 using result_type = norm_type_t<std::decay_t<E>>;
    +
    561
    +
    562 auto reduce_func = [p](const result_type& r, const value_type& v)
    +
    563 {
    +
    564 return r + norm_lp_to_p(v, p);
    +
    565 };
    +
    566 return xt::reduce(
    +
    567 make_xreducer_functor(std::move(reduce_func), xt::const_value<result_type>(0), std::plus<result_type>()),
    +
    568 std::forward<E>(e),
    +
    569 std::forward<X>(axes),
    +
    570 es
    +
    571 );
    +
    572 }
    +
    +
    573
    +
    574 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_xexpression<E>)>
    +
    575 inline auto norm_lp_to_p(E&& e, double p, EVS es = EVS()) noexcept
    +
    576 {
    +
    577 return norm_lp_to_p(std::forward<E>(e), p, arange(e.dimension()), es);
    +
    578 }
    +
    579
    +
    580 template <class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    581 inline auto norm_lp_to_p(E&& e, double p, const I (&axes)[N], EVS es = EVS()) noexcept
    +
    582 {
    +
    583 using axes_type = std::array<typename std::decay_t<E>::size_type, N>;
    +
    584 return norm_lp_to_p(std::forward<E>(e), p, xtl::forward_sequence<axes_type, decltype(axes)>(axes), es);
    +
    585 }
    +
    586
    +
    600 template <class E, class X, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(std::negation<is_reducer_options<X>>)>
    +
    +
    601 inline auto norm_lp(E&& e, double p, X&& axes, EVS es = EVS())
    +
    602 {
    +
    603 XTENSOR_PRECONDITION(p != 0, "norm_lp(): p must be nonzero, use norm_l0() instead.");
    +
    604 return pow(norm_lp_to_p(std::forward<E>(e), p, std::forward<X>(axes), es), 1.0 / p);
    +
    605 }
    +
    +
    606
    +
    607 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_xexpression<E>)>
    +
    608 inline auto norm_lp(E&& e, double p, EVS es = EVS())
    +
    609 {
    +
    610 return norm_lp(std::forward<E>(e), p, arange(e.dimension()), es);
    +
    611 }
    +
    612
    +
    613 template <class E, class I, std::size_t N, class EVS = DEFAULT_STRATEGY_REDUCERS>
    +
    614 inline auto norm_lp(E&& e, double p, const I (&axes)[N], EVS es = EVS())
    +
    615 {
    +
    616 using axes_type = std::array<typename std::decay_t<E>::size_type, N>;
    +
    617 return norm_lp(std::forward<E>(e), p, xtl::forward_sequence<axes_type, decltype(axes)>(axes), es);
    +
    618 }
    +
    619
    +
    629 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_xexpression<E>)>
    +
    +
    630 inline auto norm_induced_l1(E&& e, EVS es = EVS())
    +
    631 {
    +
    632 XTENSOR_PRECONDITION(
    +
    633 e.dimension() == 2,
    +
    634 "norm_induced_l1(): only applicable to matrices (e.dimension() must be 2)."
    +
    635 );
    +
    636 return norm_linf(norm_l1(std::forward<E>(e), {0}, es), es);
    +
    637 }
    +
    +
    638
    +
    649 template <class E, class EVS = DEFAULT_STRATEGY_REDUCERS, XTL_REQUIRES(is_xexpression<E>)>
    +
    +
    650 inline auto norm_induced_linf(E&& e, EVS es = EVS())
    +
    651 {
    +
    652 XTENSOR_PRECONDITION(
    +
    653 e.dimension() == 2,
    +
    654 "norm_induced_linf(): only applicable to matrices (e.dimension() must be 2)."
    +
    655 );
    +
    656 return norm_linf(norm_l1(std::forward<E>(e), {1}, es), es);
    +
    657 }
    +
    +
    658
    +
    659} // namespace xt
    +
    660
    +
    661#endif
    +
    auto sqrt(E &&e) noexcept -> detail::xfunction_type_t< math::sqrt_fun, E >
    Square root function.
    Definition xmath.hpp:1236
    +
    auto pow(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< math::pow_fun, E1, E2 >
    Power function.
    Definition xmath.hpp:1015
    +
    auto norm_sq(E &&e, X &&axes, EVS es) noexcept
    Squared L2 norm of an array-like argument over given axes.
    +
    auto norm_induced_linf(E &&e, EVS es=EVS())
    Induced L-infinity norm of a matrix.
    Definition xnorm.hpp:650
    +
    auto norm_lp(E &&e, double p, X &&axes, EVS es=EVS())
    Lp norm of an array-like argument over given axes.
    Definition xnorm.hpp:601
    +
    auto norm_l2(E &&e, EVS es=EVS()) noexcept
    L2 norm of a scalar or array-like argument.
    Definition xnorm.hpp:494
    +
    auto norm_induced_l1(E &&e, EVS es=EVS())
    Induced L1 norm of a matrix.
    Definition xnorm.hpp:630
    +
    auto norm_l1(E &&e, X &&axes, EVS es) noexcept
    L1 norm of an array-like argument over given axes.
    +
    auto norm_lp_to_p(E &&e, double p, X &&axes, EVS es=EVS()) noexcept
    p-th power of the Lp norm of an array-like argument over given axes.
    Definition xnorm.hpp:557
    +
    auto norm_l0(E &&e, X &&axes, EVS es) noexcept
    L0 (count) pseudo-norm of an array-like argument over given axes.
    +
    auto norm_linf(E &&e, X &&axes, EVS es) noexcept
    Infinity (maximum) norm of an array-like argument over given axes.
    +
    standard mathematical functions for xexpressions
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    auto reduce(F &&f, E &&e, X &&axes, EVS &&options=EVS())
    Returns an xexpression applying the specified reducing function to an expression over the given axes.
    Definition xreducer.hpp:993
    +
    typename squared_norm_type< T >::type squared_norm_type_t
    Abbreviation of 'typename squared_norm_type<T>::type'.
    Definition xnorm.hpp:200
    +
    typename norm_type< T >::type norm_type_t
    Abbreviation of 'typename norm_type<T>::type'.
    Definition xnorm.hpp:167
    + + +
    Traits class for the result type of the norm_l2() function.
    Definition xnorm.hpp:154
    +
    Traits class for the result type of the norm_sq() function.
    Definition xnorm.hpp:187
    + + + + +
    +
    + + + + diff --git a/xnpy_8hpp_source.html b/xnpy_8hpp_source.html new file mode 100644 index 000000000..de463d1c6 --- /dev/null +++ b/xnpy_8hpp_source.html @@ -0,0 +1,909 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/io/xnpy.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xnpy.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright Leon Merten Lohse
    +
    4 * Copyright (c) QuantStack *
    +
    5 * *
    +
    6 * Distributed under the terms of the BSD 3-Clause License. *
    +
    7 * *
    +
    8 * The full license is in the file LICENSE, distributed with this software. *
    +
    9 ****************************************************************************/
    +
    10
    +
    11#ifndef XTENSOR_NPY_HPP
    +
    12#define XTENSOR_NPY_HPP
    +
    13
    +
    14// Derived from https://github.com/llohse/libnpy by Leon Merten Lohse,
    +
    15// relicensed from MIT License with permission
    +
    16
    +
    17#include <algorithm>
    +
    18#include <complex>
    +
    19#include <cstdint>
    +
    20#include <fstream>
    +
    21#include <memory>
    +
    22#include <regex>
    +
    23#include <sstream>
    +
    24#include <stdexcept>
    +
    25#include <string>
    +
    26#include <vector>
    +
    27
    +
    28#include <xtl/xplatform.hpp>
    +
    29#include <xtl/xsequence.hpp>
    +
    30
    +
    31#include "../containers/xadapt.hpp"
    +
    32#include "../containers/xarray.hpp"
    +
    33#include "../core/xeval.hpp"
    +
    34#include "../core/xstrides.hpp"
    +
    35#include "../core/xtensor_config.hpp"
    +
    36
    +
    37namespace xt
    +
    38{
    +
    39 using namespace std::string_literals;
    +
    40
    +
    41 namespace detail
    +
    42 {
    +
    43
    +
    44 const char magic_string[] = "\x93NUMPY";
    +
    45 const std::size_t magic_string_length = sizeof(magic_string) - 1;
    +
    46
    +
    47 template <class O>
    +
    48 inline void write_magic(O& ostream, unsigned char v_major = 1, unsigned char v_minor = 0)
    +
    49 {
    +
    50 ostream.write(magic_string, magic_string_length);
    +
    51 ostream.put(char(v_major));
    +
    52 ostream.put(char(v_minor));
    +
    53 }
    +
    54
    +
    55 inline void read_magic(std::istream& istream, unsigned char* v_major, unsigned char* v_minor)
    +
    56 {
    +
    57 std::unique_ptr<char[]> buf(new char[magic_string_length + 2]);
    +
    58 istream.read(buf.get(), magic_string_length + 2);
    +
    59
    +
    60 if (!istream)
    +
    61 {
    +
    62 XTENSOR_THROW(std::runtime_error, "io error: failed reading file");
    +
    63 }
    +
    64
    +
    65 for (std::size_t i = 0; i < magic_string_length; i++)
    +
    66 {
    +
    67 if (buf[i] != magic_string[i])
    +
    68 {
    +
    69 XTENSOR_THROW(std::runtime_error, "this file do not have a valid npy format.");
    +
    70 }
    +
    71 }
    +
    72
    +
    73 *v_major = static_cast<unsigned char>(buf[magic_string_length]);
    +
    74 *v_minor = static_cast<unsigned char>(buf[magic_string_length + 1]);
    +
    75 }
    +
    76
    +
    77 template <class T>
    +
    78 inline char map_type()
    +
    79 {
    +
    80 if (std::is_same<T, float>::value)
    +
    81 {
    +
    82 return 'f';
    +
    83 }
    +
    84 if (std::is_same<T, double>::value)
    +
    85 {
    +
    86 return 'f';
    +
    87 }
    +
    88 if (std::is_same<T, long double>::value)
    +
    89 {
    +
    90 return 'f';
    +
    91 }
    +
    92
    +
    93 if (std::is_same<T, char>::value)
    +
    94 {
    +
    95 return 'i';
    +
    96 }
    +
    97 if (std::is_same<T, signed char>::value)
    +
    98 {
    +
    99 return 'i';
    +
    100 }
    +
    101 if (std::is_same<T, short>::value)
    +
    102 {
    +
    103 return 'i';
    +
    104 }
    +
    105 if (std::is_same<T, int>::value)
    +
    106 {
    +
    107 return 'i';
    +
    108 }
    +
    109 if (std::is_same<T, long>::value)
    +
    110 {
    +
    111 return 'i';
    +
    112 }
    +
    113 if (std::is_same<T, long long>::value)
    +
    114 {
    +
    115 return 'i';
    +
    116 }
    +
    117
    +
    118 if (std::is_same<T, unsigned char>::value)
    +
    119 {
    +
    120 return 'u';
    +
    121 }
    +
    122 if (std::is_same<T, unsigned short>::value)
    +
    123 {
    +
    124 return 'u';
    +
    125 }
    +
    126 if (std::is_same<T, unsigned int>::value)
    +
    127 {
    +
    128 return 'u';
    +
    129 }
    +
    130 if (std::is_same<T, unsigned long>::value)
    +
    131 {
    +
    132 return 'u';
    +
    133 }
    +
    134 if (std::is_same<T, unsigned long long>::value)
    +
    135 {
    +
    136 return 'u';
    +
    137 }
    +
    138
    +
    139 if (std::is_same<T, bool>::value)
    +
    140 {
    +
    141 return 'b';
    +
    142 }
    +
    143
    +
    144 if (std::is_same<T, std::complex<float>>::value)
    +
    145 {
    +
    146 return 'c';
    +
    147 }
    +
    148 if (std::is_same<T, std::complex<double>>::value)
    +
    149 {
    +
    150 return 'c';
    +
    151 }
    +
    152 if (std::is_same<T, std::complex<long double>>::value)
    +
    153 {
    +
    154 return 'c';
    +
    155 }
    +
    156
    +
    157 XTENSOR_THROW(std::runtime_error, "Type not known.");
    +
    158 }
    +
    159
    +
    160 template <class T>
    +
    161 inline char get_endianess()
    +
    162 {
    +
    163 constexpr char little_endian_char = '<';
    +
    164 constexpr char big_endian_char = '>';
    +
    165 constexpr char no_endian_char = '|';
    +
    166
    +
    167 if (sizeof(T) <= sizeof(char))
    +
    168 {
    +
    169 return no_endian_char;
    +
    170 }
    +
    171
    +
    172 switch (xtl::endianness())
    +
    173 {
    +
    174 case xtl::endian::little_endian:
    +
    175 return little_endian_char;
    +
    176 case xtl::endian::big_endian:
    +
    177 return big_endian_char;
    +
    178 default:
    +
    179 return no_endian_char;
    +
    180 }
    +
    181 }
    +
    182
    +
    183 template <class T>
    +
    184 inline std::string build_typestring()
    +
    185 {
    +
    186 std::stringstream ss;
    +
    187 ss << get_endianess<T>() << map_type<T>() << sizeof(T);
    +
    188 return ss.str();
    +
    189 }
    +
    190
    +
    191 // Safety check function
    +
    192 inline void parse_typestring(std::string typestring)
    +
    193 {
    +
    194 std::regex re("'([<>|])([ifucb])(\\d+)'");
    +
    195 std::smatch sm;
    +
    196
    +
    197 std::regex_match(typestring, sm, re);
    +
    198 if (sm.size() != 4)
    +
    199 {
    +
    200 XTENSOR_THROW(std::runtime_error, "invalid typestring");
    +
    201 }
    +
    202 }
    +
    203
    +
    204 // Helpers for the improvised parser
    +
    205 inline std::string unwrap_s(std::string s, char delim_front, char delim_back)
    +
    206 {
    +
    207 if ((s.back() == delim_back) && (s.front() == delim_front))
    +
    208 {
    +
    209 return s.substr(1, s.length() - 2);
    +
    210 }
    +
    211 else
    +
    212 {
    +
    213 XTENSOR_THROW(std::runtime_error, "unable to unwrap");
    +
    214 }
    +
    215 }
    +
    216
    +
    217 inline std::string get_value_from_map(std::string mapstr)
    +
    218 {
    +
    219 std::size_t sep_pos = mapstr.find_first_of(":");
    +
    220 if (sep_pos == std::string::npos)
    +
    221 {
    +
    222 return "";
    +
    223 }
    +
    224
    +
    225 return mapstr.substr(sep_pos + 1);
    +
    226 }
    +
    227
    +
    228 inline void pop_char(std::string& s, char c)
    +
    229 {
    +
    230 if (s.back() == c)
    +
    231 {
    +
    232 s.pop_back();
    +
    233 }
    +
    234 }
    +
    235
    +
    236 inline void
    +
    237 parse_header(std::string header, std::string& descr, bool* fortran_order, std::vector<std::size_t>& shape)
    +
    238 {
    +
    239 // The first 6 bytes are a magic string: exactly "x93NUMPY".
    +
    240 //
    +
    241 // The next 1 byte is an unsigned byte: the major version number of the file
    +
    242 // format, e.g. x01.
    +
    243 //
    +
    244 // The next 1 byte is an unsigned byte: the minor version number of the file
    +
    245 // format, e.g. x00. Note: the version of the file format is not tied to the
    +
    246 // version of the NumPy package.
    +
    247 //
    +
    248 // The next 2 bytes form a little-endian unsigned short int: the length of the
    +
    249 // header data HEADER_LEN.
    +
    250 //
    +
    251 // The next HEADER_LEN bytes form the header data describing the array's
    +
    252 // format. It is an ASCII string which contains a Python literal expression of
    +
    253 // a dictionary. It is terminated by a newline ('n') and padded with spaces
    +
    254 // ('x20') to make the total length of the magic string + 4 + HEADER_LEN be
    +
    255 // evenly divisible by 16 for alignment purposes.
    +
    256 //
    +
    257 // The dictionary contains three keys:
    +
    258 //
    +
    259 // "descr" : dtype.descr
    +
    260 // An object that can be passed as an argument to the numpy.dtype()
    +
    261 // constructor to create the array's dtype.
    +
    262 // "fortran_order" : bool
    +
    263 // Whether the array data is Fortran-contiguous or not. Since
    +
    264 // Fortran-contiguous arrays are a common form of non-C-contiguity, we allow
    +
    265 // them to be written directly to disk for efficiency.
    +
    266 // "shape" : tuple of int
    +
    267 // The shape of the array.
    +
    268 // For repeatability and readability, this dictionary is formatted using
    +
    269 // pprint.pformat() so the keys are in alphabetic order.
    +
    270
    +
    271 // remove trailing newline
    +
    272 if (header.back() != '\n')
    +
    273 {
    +
    274 XTENSOR_THROW(std::runtime_error, "invalid header");
    +
    275 }
    +
    276 header.pop_back();
    +
    277
    +
    278 // remove all whitespaces
    +
    279 header.erase(std::remove(header.begin(), header.end(), ' '), header.end());
    +
    280
    +
    281 // unwrap dictionary
    +
    282 header = unwrap_s(header, '{', '}');
    +
    283
    +
    284 // find the positions of the 3 dictionary keys
    +
    285 std::size_t keypos_descr = header.find("'descr'");
    +
    286 std::size_t keypos_fortran = header.find("'fortran_order'");
    +
    287 std::size_t keypos_shape = header.find("'shape'");
    +
    288
    +
    289 // make sure all the keys are present
    +
    290 if (keypos_descr == std::string::npos)
    +
    291 {
    +
    292 XTENSOR_THROW(std::runtime_error, "missing 'descr' key");
    +
    293 }
    +
    294 if (keypos_fortran == std::string::npos)
    +
    295 {
    +
    296 XTENSOR_THROW(std::runtime_error, "missing 'fortran_order' key");
    +
    297 }
    +
    298 if (keypos_shape == std::string::npos)
    +
    299 {
    +
    300 XTENSOR_THROW(std::runtime_error, "missing 'shape' key");
    +
    301 }
    +
    302
    +
    303 // Make sure the keys are in order.
    +
    304 // Note that this violates the standard, which states that readers *must* not
    +
    305 // depend on the correct order here.
    +
    306 // TODO: fix
    +
    307 if (keypos_descr >= keypos_fortran || keypos_fortran >= keypos_shape)
    +
    308 {
    +
    309 XTENSOR_THROW(std::runtime_error, "header keys in wrong order");
    +
    310 }
    +
    311
    +
    312 // get the 3 key-value pairs
    +
    313 std::string keyvalue_descr;
    +
    314 keyvalue_descr = header.substr(keypos_descr, keypos_fortran - keypos_descr);
    +
    315 pop_char(keyvalue_descr, ',');
    +
    316
    +
    317 std::string keyvalue_fortran;
    +
    318 keyvalue_fortran = header.substr(keypos_fortran, keypos_shape - keypos_fortran);
    +
    319 pop_char(keyvalue_fortran, ',');
    +
    320
    +
    321 std::string keyvalue_shape;
    +
    322 keyvalue_shape = header.substr(keypos_shape, std::string::npos);
    +
    323 pop_char(keyvalue_shape, ',');
    +
    324
    +
    325 // get the values (right side of `:')
    +
    326 std::string descr_s = get_value_from_map(keyvalue_descr);
    +
    327 std::string fortran_s = get_value_from_map(keyvalue_fortran);
    +
    328 std::string shape_s = get_value_from_map(keyvalue_shape);
    +
    329
    +
    330 parse_typestring(descr_s);
    +
    331 descr = unwrap_s(descr_s, '\'', '\'');
    +
    332
    +
    333 // convert literal Python bool to C++ bool
    +
    334 if (fortran_s == "True")
    +
    335 {
    +
    336 *fortran_order = true;
    +
    337 }
    +
    338 else if (fortran_s == "False")
    +
    339 {
    +
    340 *fortran_order = false;
    +
    341 }
    +
    342 else
    +
    343 {
    +
    344 XTENSOR_THROW(std::runtime_error, "invalid fortran_order value");
    +
    345 }
    +
    346
    +
    347 // parse the shape Python tuple ( x, y, z,)
    +
    348
    +
    349 // first clear the vector
    +
    350 shape.clear();
    +
    351 shape_s = unwrap_s(shape_s, '(', ')');
    +
    352
    +
    353 // a tokenizer would be nice...
    +
    354 std::size_t pos = 0;
    +
    355 for (;;)
    +
    356 {
    +
    357 std::size_t pos_next = shape_s.find_first_of(',', pos);
    +
    358 std::string dim_s;
    +
    359
    +
    360 if (pos_next != std::string::npos)
    +
    361 {
    +
    362 dim_s = shape_s.substr(pos, pos_next - pos);
    +
    363 }
    +
    364 else
    +
    365 {
    +
    366 dim_s = shape_s.substr(pos);
    +
    367 }
    +
    368
    +
    369 if (dim_s.length() == 0)
    +
    370 {
    +
    371 if (pos_next != std::string::npos)
    +
    372 {
    +
    373 XTENSOR_THROW(std::runtime_error, "invalid shape");
    +
    374 }
    +
    375 }
    +
    376 else
    +
    377 {
    +
    378 std::stringstream ss;
    +
    379 ss << dim_s;
    +
    380 std::size_t tmp;
    +
    381 ss >> tmp;
    +
    382 shape.push_back(tmp);
    +
    383 }
    +
    384
    +
    385 if (pos_next != std::string::npos)
    +
    386 {
    +
    387 pos = ++pos_next;
    +
    388 }
    +
    389 else
    +
    390 {
    +
    391 break;
    +
    392 }
    +
    393 }
    +
    394 }
    +
    395
    +
    396 template <class O, class S>
    +
    397 inline void write_header(O& out, const std::string& descr, bool fortran_order, const S& shape)
    +
    398 {
    +
    399 std::ostringstream ss_header;
    +
    400 std::string s_fortran_order;
    +
    401 if (fortran_order)
    +
    402 {
    +
    403 s_fortran_order = "True";
    +
    404 }
    +
    405 else
    +
    406 {
    +
    407 s_fortran_order = "False";
    +
    408 }
    +
    409
    +
    410 std::string s_shape;
    +
    411 std::ostringstream ss_shape;
    +
    412 ss_shape << "(";
    +
    413 for (auto shape_it = std::begin(shape); shape_it != std::end(shape); ++shape_it)
    +
    414 {
    +
    415 ss_shape << *shape_it << ", ";
    +
    416 }
    +
    417 s_shape = ss_shape.str();
    +
    418 if (std::size(shape) > 1)
    +
    419 {
    +
    420 s_shape = s_shape.erase(s_shape.size() - 2);
    +
    421 }
    +
    422 else if (std::size(shape) == 1)
    +
    423 {
    +
    424 s_shape = s_shape.erase(s_shape.size() - 1);
    +
    425 }
    +
    426 s_shape += ")";
    +
    427
    +
    428 ss_header << "{'descr': '" << descr << "', 'fortran_order': " << s_fortran_order
    +
    429 << ", 'shape': " << s_shape << ", }";
    +
    430
    +
    431 std::size_t header_len_pre = ss_header.str().length() + 1;
    +
    432 std::size_t metadata_len = magic_string_length + 2 + 2 + header_len_pre;
    +
    433
    +
    434 unsigned char version[2] = {1, 0};
    +
    435 if (metadata_len >= 255 * 255)
    +
    436 {
    +
    437 metadata_len = magic_string_length + 2 + 4 + header_len_pre;
    +
    438 version[0] = 2;
    +
    439 version[1] = 0;
    +
    440 }
    +
    441 std::size_t padding_len = 64 - (metadata_len % 64);
    +
    442 std::string padding(padding_len, ' ');
    +
    443 ss_header << padding;
    +
    444 ss_header << std::endl;
    +
    445
    +
    446 std::string header = ss_header.str();
    +
    447
    +
    448 // write magic
    +
    449 write_magic(out, version[0], version[1]);
    +
    450
    +
    451 // write header length
    +
    452 if (version[0] == 1 && version[1] == 0)
    +
    453 {
    +
    454 char header_len_le16[2];
    +
    455 uint16_t header_len = uint16_t(header.length());
    +
    456
    +
    457 header_len_le16[0] = char((header_len >> 0) & 0xff);
    +
    458 header_len_le16[1] = char((header_len >> 8) & 0xff);
    +
    459 out.write(reinterpret_cast<char*>(header_len_le16), 2);
    +
    460 }
    +
    461 else
    +
    462 {
    +
    463 char header_len_le32[4];
    +
    464 uint32_t header_len = uint32_t(header.length());
    +
    465
    +
    466 header_len_le32[0] = char((header_len >> 0) & 0xff);
    +
    467 header_len_le32[1] = char((header_len >> 8) & 0xff);
    +
    468 header_len_le32[2] = char((header_len >> 16) & 0xff);
    +
    469 header_len_le32[3] = char((header_len >> 24) & 0xff);
    +
    470 out.write(reinterpret_cast<char*>(header_len_le32), 4);
    +
    471 }
    +
    472
    +
    473 out << header;
    +
    474 }
    +
    475
    +
    476 inline std::string read_header_1_0(std::istream& istream)
    +
    477 {
    +
    478 // read header length and convert from little endian
    +
    479 char header_len_le16[2];
    +
    480 istream.read(header_len_le16, 2);
    +
    481
    +
    482 uint16_t header_b0 = static_cast<uint16_t>(static_cast<uint8_t>(header_len_le16[0]));
    +
    483 uint16_t header_b1 = static_cast<uint16_t>(static_cast<uint8_t>(header_len_le16[1])) << 8;
    +
    484 uint16_t header_length = header_b0 | header_b1;
    +
    485
    +
    486 if ((magic_string_length + 2 + 2 + header_length) % 16 != 0)
    +
    487 {
    +
    488 // TODO: display warning
    +
    489 }
    +
    490
    +
    491 std::unique_ptr<char[]> buf(new char[header_length]);
    +
    492 istream.read(buf.get(), header_length);
    +
    493 std::string header(buf.get(), header_length);
    +
    494
    +
    495 return header;
    +
    496 }
    +
    497
    +
    498 inline std::string read_header_2_0(std::istream& istream)
    +
    499 {
    +
    500 // read header length and convert from little endian
    +
    501 char header_len_le32[4];
    +
    502 istream.read(header_len_le32, 4);
    +
    503
    +
    504 uint32_t header_b0 = static_cast<uint32_t>(static_cast<uint8_t>(header_len_le32[0]));
    +
    505 uint32_t header_b1 = static_cast<uint32_t>(static_cast<uint8_t>(header_len_le32[1])) << 8;
    +
    506 uint32_t header_b2 = static_cast<uint32_t>(static_cast<uint8_t>(header_len_le32[2])) << 16;
    +
    507 uint32_t header_b3 = static_cast<uint32_t>(static_cast<uint8_t>(header_len_le32[3])) << 24;
    +
    508 uint32_t header_length = header_b0 | header_b1 | header_b2 | header_b3;
    +
    509
    +
    510 if ((magic_string_length + 2 + 4 + header_length) % 16 != 0)
    +
    511 {
    +
    512 // TODO: display warning
    +
    513 }
    +
    514
    +
    515 std::unique_ptr<char[]> buf(new char[header_length]);
    +
    516 istream.read(buf.get(), header_length);
    +
    517 std::string header(buf.get(), header_length);
    +
    518
    +
    519 return header;
    +
    520 }
    +
    521
    +
    522 struct npy_file
    +
    523 {
    +
    524 npy_file() = default;
    +
    525
    +
    526 npy_file(std::vector<std::size_t>& shape, bool fortran_order, std::string typestring)
    +
    527 : m_shape(shape)
    +
    528 , m_fortran_order(fortran_order)
    +
    529 , m_typestring(typestring)
    +
    530 {
    +
    531 // Allocate memory
    +
    532 m_word_size = std::size_t(atoi(&typestring[2]));
    +
    533 m_n_bytes = compute_size(shape) * m_word_size;
    +
    534 m_buffer = std::allocator<char>{}.allocate(m_n_bytes);
    +
    535 }
    +
    536
    +
    537 ~npy_file()
    +
    538 {
    +
    539 if (m_buffer != nullptr)
    +
    540 {
    +
    541 std::allocator<char>{}.deallocate(m_buffer, m_n_bytes);
    +
    542 }
    +
    543 }
    +
    544
    +
    545 // delete copy constructor
    +
    546 npy_file(const npy_file&) = delete;
    +
    547 npy_file& operator=(const npy_file&) = delete;
    +
    548
    +
    549 // implement move constructor and assignment
    +
    550 npy_file(npy_file&& rhs)
    +
    551 : m_shape(std::move(rhs.m_shape))
    +
    552 , m_fortran_order(std::move(rhs.m_fortran_order))
    +
    553 , m_word_size(std::move(rhs.m_word_size))
    +
    554 , m_n_bytes(std::move(rhs.m_n_bytes))
    +
    555 , m_typestring(std::move(rhs.m_typestring))
    +
    556 , m_buffer(rhs.m_buffer)
    +
    557 {
    +
    558 rhs.m_buffer = nullptr;
    +
    559 }
    +
    560
    +
    561 npy_file& operator=(npy_file&& rhs)
    +
    562 {
    +
    563 if (this != &rhs)
    +
    564 {
    +
    565 m_shape = std::move(rhs.m_shape);
    +
    566 m_fortran_order = std::move(rhs.m_fortran_order);
    +
    567 m_word_size = std::move(rhs.m_word_size);
    +
    568 m_n_bytes = std::move(rhs.m_n_bytes);
    +
    569 m_typestring = std::move(rhs.m_typestring);
    +
    570 m_buffer = rhs.m_buffer;
    +
    571 rhs.m_buffer = nullptr;
    +
    572 }
    +
    573 return *this;
    +
    574 }
    +
    575
    +
    576 template <class T, layout_type L>
    +
    577 auto cast_impl(bool check_type)
    +
    578 {
    +
    579 if (m_buffer == nullptr)
    +
    580 {
    +
    581 XTENSOR_THROW(std::runtime_error, "This npy_file has already been cast.");
    +
    582 }
    +
    583 T* ptr = reinterpret_cast<T*>(&m_buffer[0]);
    +
    584 std::vector<std::size_t> strides(m_shape.size());
    +
    585 std::size_t sz = compute_size(m_shape);
    +
    586
    +
    587 // check if the typestring matches the given one
    +
    588 if (check_type && m_typestring != detail::build_typestring<T>())
    +
    589 {
    +
    590 XTENSOR_THROW(
    +
    591 std::runtime_error,
    +
    592 "Cast error: formats not matching "s + m_typestring + " vs "s
    +
    593 + detail::build_typestring<T>()
    +
    594 );
    +
    595 }
    +
    596
    +
    597 if ((L == layout_type::column_major && !m_fortran_order)
    +
    598 || (L == layout_type::row_major && m_fortran_order))
    +
    599 {
    +
    600 XTENSOR_THROW(
    +
    601 std::runtime_error,
    +
    602 "Cast error: layout mismatch between npy file and requested layout."
    +
    603 );
    +
    604 }
    +
    605
    + +
    607 m_shape,
    + +
    609 strides
    +
    610 );
    +
    611 std::vector<std::size_t> shape(m_shape);
    +
    612
    +
    613 return std::make_tuple(ptr, sz, std::move(shape), std::move(strides));
    +
    614 }
    +
    615
    +
    616 template <class T, layout_type L = layout_type::dynamic>
    +
    617 auto cast(bool check_type = true) &&
    +
    618 {
    +
    619 auto cast_elems = cast_impl<T, L>(check_type);
    +
    620 m_buffer = nullptr;
    +
    621 return adapt(
    +
    622 std::move(std::get<0>(cast_elems)),
    +
    623 std::get<1>(cast_elems),
    +
    624 acquire_ownership(),
    +
    625 std::get<2>(cast_elems),
    +
    626 std::get<3>(cast_elems)
    +
    627 );
    +
    628 }
    +
    629
    +
    630 template <class T, layout_type L = layout_type::dynamic>
    +
    631 auto cast(bool check_type = true) const&
    +
    632 {
    +
    633 auto cast_elems = cast_impl<T, L>(check_type);
    +
    634 return adapt(
    +
    635 std::get<0>(cast_elems),
    +
    636 std::get<1>(cast_elems),
    +
    637 no_ownership(),
    +
    638 std::get<2>(cast_elems),
    +
    639 std::get<3>(cast_elems)
    +
    640 );
    +
    641 }
    +
    642
    +
    643 template <class T, layout_type L = layout_type::dynamic>
    +
    644 auto cast(bool check_type = true) &
    +
    645 {
    +
    646 auto cast_elems = cast_impl<T, L>(check_type);
    +
    647 return adapt(
    +
    648 std::get<0>(cast_elems),
    +
    649 std::get<1>(cast_elems),
    +
    650 no_ownership(),
    +
    651 std::get<2>(cast_elems),
    +
    652 std::get<3>(cast_elems)
    +
    653 );
    +
    654 }
    +
    655
    +
    656 char* ptr()
    +
    657 {
    +
    658 return m_buffer;
    +
    659 }
    +
    660
    +
    661 std::size_t n_bytes()
    +
    662 {
    +
    663 return m_n_bytes;
    +
    664 }
    +
    665
    +
    666 std::vector<std::size_t> m_shape;
    +
    667 bool m_fortran_order;
    +
    668 std::size_t m_word_size;
    +
    669 std::size_t m_n_bytes;
    +
    670 std::string m_typestring;
    +
    671 char* m_buffer;
    +
    672 };
    +
    673
    +
    674 inline npy_file load_npy_file(std::istream& stream)
    +
    675 {
    +
    676 // check magic bytes an version number
    +
    677 unsigned char v_major, v_minor;
    +
    678 detail::read_magic(stream, &v_major, &v_minor);
    +
    679
    +
    680 std::string header;
    +
    681
    +
    682 if (v_major == 1 && v_minor == 0)
    +
    683 {
    +
    684 header = detail::read_header_1_0(stream);
    +
    685 }
    +
    686 else if (v_major == 2 && v_minor == 0)
    +
    687 {
    +
    688 header = detail::read_header_2_0(stream);
    +
    689 }
    +
    690 else
    +
    691 {
    +
    692 XTENSOR_THROW(std::runtime_error, "unsupported file format version");
    +
    693 }
    +
    694
    +
    695 // parse header
    +
    696 bool fortran_order;
    +
    697 std::string typestr;
    +
    698
    +
    699 std::vector<std::size_t> shape;
    +
    700 detail::parse_header(header, typestr, &fortran_order, shape);
    +
    701
    +
    702 npy_file result(shape, fortran_order, typestr);
    +
    703 // read the data
    +
    704 stream.read(result.ptr(), std::streamsize((result.n_bytes())));
    +
    705 return result;
    +
    706 }
    +
    707
    +
    708 template <class O, class E>
    +
    709 inline void dump_npy_stream(O& stream, const xexpression<E>& e)
    +
    710 {
    +
    711 using value_type = typename E::value_type;
    +
    712 const E& ex = e.derived_cast();
    +
    713 auto&& eval_ex = eval(ex);
    +
    714 bool fortran_order = false;
    +
    715 if (eval_ex.layout() == layout_type::column_major && eval_ex.dimension() > 1)
    +
    716 {
    +
    717 fortran_order = true;
    +
    718 }
    +
    719
    +
    720 std::string typestring = detail::build_typestring<value_type>();
    +
    721
    +
    722 auto shape = eval_ex.shape();
    +
    723 detail::write_header(stream, typestring, fortran_order, shape);
    +
    724
    +
    725 std::size_t size = compute_size(shape);
    +
    726 stream.write(
    +
    727 reinterpret_cast<const char*>(eval_ex.data()),
    +
    728 std::streamsize((sizeof(value_type) * size))
    +
    729 );
    +
    730 }
    +
    731 } // namespace detail
    +
    732
    +
    739 template <typename E>
    +
    +
    740 inline void dump_npy(const std::string& filename, const xexpression<E>& e)
    +
    741 {
    +
    742 std::ofstream stream(filename, std::ofstream::binary);
    +
    743 if (!stream)
    +
    744 {
    +
    745 XTENSOR_THROW(std::runtime_error, "IO Error: failed to open file: "s + filename);
    +
    746 }
    +
    747
    +
    748 detail::dump_npy_stream(stream, e);
    +
    749 }
    +
    +
    750
    +
    756 template <typename E>
    +
    +
    757 inline std::string dump_npy(const xexpression<E>& e)
    +
    758 {
    +
    759 std::stringstream stream;
    +
    760 detail::dump_npy_stream(stream, e);
    +
    761 return stream.str();
    +
    762 }
    +
    +
    763
    +
    774 template <typename T, layout_type L = layout_type::dynamic>
    +
    +
    775 inline auto load_npy(std::istream& stream)
    +
    776 {
    +
    777 detail::npy_file file = detail::load_npy_file(stream);
    +
    778 return std::move(file).cast<T, L>();
    +
    779 }
    +
    +
    780
    +
    791 template <typename T, layout_type L = layout_type::dynamic>
    +
    +
    792 inline auto load_npy(const std::string& filename)
    +
    793 {
    +
    794 std::ifstream stream(filename, std::ifstream::binary);
    +
    795 if (!stream)
    +
    796 {
    +
    797 XTENSOR_THROW(std::runtime_error, "io error: failed to open a file.");
    +
    798 }
    +
    799 return load_npy<T, L>(stream);
    +
    800 }
    +
    +
    801
    +
    802} // namespace xt
    +
    803
    +
    804#endif
    +
    Base class for xexpressions.
    +
    auto adapt(C &&container, const SC &shape, layout_type l=L)
    Constructs:
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto load_npy(std::istream &stream)
    Loads a npy file (the NumPy storage format)
    Definition xnpy.hpp:775
    + + +
    void dump_npy(const std::string &filename, const xexpression< E > &e)
    Save xexpression to NumPy npy format.
    Definition xnpy.hpp:740
    +
    +
    + + + + diff --git a/xoffset__view_8hpp_source.html b/xoffset__view_8hpp_source.html new file mode 100644 index 000000000..9507cff48 --- /dev/null +++ b/xoffset__view_8hpp_source.html @@ -0,0 +1,203 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xoffset_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xoffset_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_OFFSET_VIEW_HPP
    +
    11#define XTENSOR_OFFSET_VIEW_HPP
    +
    12
    +
    13#include <xtl/xcomplex.hpp>
    +
    14
    +
    15#include "../views/xfunctor_view.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19 namespace detail
    +
    20 {
    +
    21 template <class M, std::size_t I>
    +
    22 struct offset_forwarder
    +
    23 {
    +
    24 using value_type = M;
    +
    25 using reference = M&;
    +
    26 using const_reference = const M&;
    +
    27 using pointer = M*;
    +
    28 using const_pointer = const M*;
    +
    29
    +
    30 using proxy = xtl::xproxy_wrapper<M>;
    +
    31
    +
    32 template <class value_type, class requested_type>
    +
    33 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    34
    +
    35 template <class T>
    +
    36 decltype(auto) operator()(T&& t) const
    +
    37 {
    +
    38 return xtl::forward_offset<M, I>(std::forward<T>(t));
    +
    39 }
    +
    40
    +
    41 template <class align, class requested_type, std::size_t N, class E, class MF = M>
    +
    42 auto proxy_simd_load(const E& expr, std::size_t n) const
    +
    43 requires((std::is_same<MF, double>::value || std::is_same<MF, float>::value) && I <= sizeof(MF))
    +
    44 {
    +
    45 // TODO refactor using shuffle only
    +
    46 auto batch = expr.template load_simd<align, requested_type, N>(n);
    +
    47 if (I == 0)
    +
    48 {
    +
    49 return batch.real();
    +
    50 }
    +
    51 else
    +
    52 {
    +
    53 return batch.imag();
    +
    54 }
    +
    55 }
    +
    56
    +
    57 template <class align, class simd, class E, class MF = M>
    +
    58 auto proxy_simd_store(E& expr, std::size_t n, const simd& batch) const
    +
    59 requires((std::is_same<MF, double>::value || std::is_same<MF, float>::value) && I <= sizeof(MF))
    +
    60 {
    +
    61 auto x = expr.template load_simd<align, double, simd::size>(n);
    +
    62 if (I == 0)
    +
    63 {
    +
    64 x.real() = batch;
    +
    65 }
    +
    66 else
    +
    67 {
    +
    68 x.imag() = batch;
    +
    69 }
    +
    70 expr.template store_simd<align>(n, x);
    +
    71 }
    +
    72 };
    +
    73 }
    +
    74
    +
    75 template <class CT, class M, std::size_t I>
    +
    76 using xoffset_view = xfunctor_view<detail::offset_forwarder<M, I>, CT>;
    +
    77
    +
    78 template <class CT, class M, std::size_t I>
    +
    79 using xoffset_adaptor = xfunctor_adaptor<detail::offset_forwarder<M, I>, CT>;
    +
    80}
    +
    81
    +
    82#endif
    +
    Adapt a container with a functor, forwarding methods such as resize / reshape.
    +
    View of an xexpression .
    +
    standard mathematical functions for xexpressions
    +
    +
    + + + + diff --git a/xoperation_8hpp_source.html b/xoperation_8hpp_source.html new file mode 100644 index 000000000..a950d397c --- /dev/null +++ b/xoperation_8hpp_source.html @@ -0,0 +1,838 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xoperation.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xoperation.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_OPERATION_HPP
    +
    11#define XTENSOR_OPERATION_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <type_traits>
    +
    15
    +
    16#include <xtl/xsequence.hpp>
    +
    17
    +
    18#include "../containers/xscalar.hpp"
    +
    19#include "../core/xfunction.hpp"
    +
    20#include "../core/xstrides.hpp"
    +
    21#include "../views/xstrided_view.hpp"
    +
    22
    +
    23namespace xt
    +
    24{
    +
    25
    +
    26 /***********
    +
    27 * helpers *
    +
    28 ***********/
    +
    29
    +
    30#define UNARY_OPERATOR_FUNCTOR(NAME, OP) \
    +
    31 struct NAME \
    +
    32 { \
    +
    33 template <class A1> \
    +
    34 constexpr auto operator()(const A1& arg) const \
    +
    35 { \
    +
    36 return OP arg; \
    +
    37 } \
    +
    38 template <class B> \
    +
    39 constexpr auto simd_apply(const B& arg) const \
    +
    40 { \
    +
    41 return OP arg; \
    +
    42 } \
    +
    43 }
    +
    44
    +
    45#define DEFINE_COMPLEX_OVERLOAD(OP) \
    +
    46 template <class T1, class T2, XTL_REQUIRES(std::negation<std::is_same<T1, T2>>)> \
    +
    47 constexpr auto operator OP(const std::complex<T1>& arg1, const std::complex<T2>& arg2) \
    +
    48 { \
    +
    49 using result_type = typename xtl::promote_type_t<std::complex<T1>, std::complex<T2>>; \
    +
    50 return (result_type(arg1) OP result_type(arg2)); \
    +
    51 } \
    +
    52 \
    +
    53 template <class T1, class T2, XTL_REQUIRES(std::negation<std::is_same<T1, T2>>)> \
    +
    54 constexpr auto operator OP(const T1& arg1, const std::complex<T2>& arg2) \
    +
    55 { \
    +
    56 using result_type = typename xtl::promote_type_t<T1, std::complex<T2>>; \
    +
    57 return (result_type(arg1) OP result_type(arg2)); \
    +
    58 } \
    +
    59 \
    +
    60 template <class T1, class T2, XTL_REQUIRES(std::negation<std::is_same<T1, T2>>)> \
    +
    61 constexpr auto operator OP(const std::complex<T1>& arg1, const T2& arg2) \
    +
    62 { \
    +
    63 using result_type = typename xtl::promote_type_t<std::complex<T1>, T2>; \
    +
    64 return (result_type(arg1) OP result_type(arg2)); \
    +
    65 }
    +
    66
    +
    67#define BINARY_OPERATOR_FUNCTOR(NAME, OP) \
    +
    68 struct NAME \
    +
    69 { \
    +
    70 template <class T1, class T2> \
    +
    71 constexpr auto operator()(T1&& arg1, T2&& arg2) const \
    +
    72 { \
    +
    73 using xt::detail::operator OP; \
    +
    74 return (std::forward<T1>(arg1) OP std::forward<T2>(arg2)); \
    +
    75 } \
    +
    76 template <class B> \
    +
    77 constexpr auto simd_apply(const B& arg1, const B& arg2) const \
    +
    78 { \
    +
    79 return (arg1 OP arg2); \
    +
    80 } \
    +
    81 }
    +
    82
    +
    83 namespace detail
    +
    84 {
    +
    85 DEFINE_COMPLEX_OVERLOAD(+);
    +
    86 DEFINE_COMPLEX_OVERLOAD(-);
    +
    87 DEFINE_COMPLEX_OVERLOAD(*);
    +
    88 DEFINE_COMPLEX_OVERLOAD(/);
    +
    89 DEFINE_COMPLEX_OVERLOAD(%);
    +
    90 DEFINE_COMPLEX_OVERLOAD(||);
    +
    91 DEFINE_COMPLEX_OVERLOAD(&&);
    +
    92 DEFINE_COMPLEX_OVERLOAD(|);
    +
    93 DEFINE_COMPLEX_OVERLOAD(&);
    +
    94 DEFINE_COMPLEX_OVERLOAD(^);
    +
    95 DEFINE_COMPLEX_OVERLOAD(<<);
    +
    96 DEFINE_COMPLEX_OVERLOAD(>>);
    +
    97 DEFINE_COMPLEX_OVERLOAD(<);
    +
    98 DEFINE_COMPLEX_OVERLOAD(<=);
    +
    99 DEFINE_COMPLEX_OVERLOAD(>);
    +
    100 DEFINE_COMPLEX_OVERLOAD(>=);
    +
    101 DEFINE_COMPLEX_OVERLOAD(==);
    +
    102 DEFINE_COMPLEX_OVERLOAD(!=);
    +
    103
    +
    104 UNARY_OPERATOR_FUNCTOR(identity, +);
    +
    105 UNARY_OPERATOR_FUNCTOR(negate, -);
    +
    106 BINARY_OPERATOR_FUNCTOR(plus, +);
    +
    107 BINARY_OPERATOR_FUNCTOR(minus, -);
    +
    108 BINARY_OPERATOR_FUNCTOR(multiplies, *);
    +
    109 BINARY_OPERATOR_FUNCTOR(divides, /);
    +
    110 BINARY_OPERATOR_FUNCTOR(modulus, %);
    +
    111 BINARY_OPERATOR_FUNCTOR(logical_or, ||);
    +
    112 BINARY_OPERATOR_FUNCTOR(logical_and, &&);
    +
    113 UNARY_OPERATOR_FUNCTOR(logical_not, !);
    +
    114 BINARY_OPERATOR_FUNCTOR(bitwise_or, |);
    +
    115 BINARY_OPERATOR_FUNCTOR(bitwise_and, &);
    +
    116 BINARY_OPERATOR_FUNCTOR(bitwise_xor, ^);
    +
    117 UNARY_OPERATOR_FUNCTOR(bitwise_not, ~);
    +
    118 BINARY_OPERATOR_FUNCTOR(left_shift, <<);
    +
    119 BINARY_OPERATOR_FUNCTOR(right_shift, >>);
    +
    120 BINARY_OPERATOR_FUNCTOR(less, <);
    +
    121 BINARY_OPERATOR_FUNCTOR(less_equal, <=);
    +
    122 BINARY_OPERATOR_FUNCTOR(greater, >);
    +
    123 BINARY_OPERATOR_FUNCTOR(greater_equal, >=);
    +
    124 BINARY_OPERATOR_FUNCTOR(equal_to, ==);
    +
    125 BINARY_OPERATOR_FUNCTOR(not_equal_to, !=);
    +
    126
    +
    127 struct conditional_ternary
    +
    128 {
    +
    129 template <class B>
    +
    130 using get_batch_bool = typename xt_simd::simd_traits<typename xt_simd::revert_simd_traits<B>::type>::bool_type;
    +
    131
    +
    132 template <class B, class A1, class A2>
    +
    133 constexpr auto operator()(const B& cond, const A1& v1, const A2& v2) const noexcept
    +
    134 {
    +
    135 return xtl::select(cond, v1, v2);
    +
    136 }
    +
    137
    +
    138 template <class B>
    +
    139 constexpr B simd_apply(const get_batch_bool<B>& t1, const B& t2, const B& t3) const noexcept
    +
    140 {
    +
    141 return xt_simd::select(t1, t2, t3);
    +
    142 }
    +
    143 };
    +
    144
    +
    145 template <class R>
    +
    146 struct cast
    +
    147 {
    +
    148 struct functor
    +
    149 {
    +
    150 using result_type = R;
    +
    151
    +
    152 template <class A1>
    +
    153 constexpr result_type operator()(const A1& arg) const
    +
    154 {
    +
    155 return static_cast<R>(arg);
    +
    156 }
    +
    157
    +
    158 // SIMD conversion disabled for now since it does not make sense
    +
    159 // in most of the cases
    +
    160 /*constexpr simd_result_type simd_apply(const simd_value_type& arg) const
    +
    161 {
    +
    162 return static_cast<R>(arg);
    +
    163 }*/
    +
    164 };
    +
    165 };
    +
    166
    +
    167 template <class Tag, class F, class... E>
    +
    168 struct select_xfunction_expression;
    +
    169
    +
    170 template <class F, class... E>
    +
    171 struct select_xfunction_expression<xtensor_expression_tag, F, E...>
    +
    172 {
    +
    173 using type = xfunction<F, E...>;
    +
    174 };
    +
    175
    +
    176 template <class F, class... E>
    +
    177 struct select_xfunction_expression<xoptional_expression_tag, F, E...>
    +
    178 {
    +
    179 using type = xfunction<F, E...>;
    +
    180 };
    +
    181
    +
    182 template <class Tag, class F, class... E>
    +
    183 using select_xfunction_expression_t = typename select_xfunction_expression<Tag, F, E...>::type;
    +
    184
    +
    185 template <class F, class... E>
    +
    186 struct xfunction_type
    +
    187 {
    +
    188 using expression_tag = xexpression_tag_t<E...>;
    +
    189 using functor_type = F;
    +
    190 using type = select_xfunction_expression_t<expression_tag, functor_type, const_xclosure_t<E>...>;
    +
    191 };
    +
    192
    +
    193 template <class F, class... E>
    +
    194 inline auto make_xfunction(E&&... e) noexcept
    +
    195 {
    +
    196 using function_type = xfunction_type<F, E...>;
    +
    197 using functor_type = typename function_type::functor_type;
    +
    198 using type = typename function_type::type;
    +
    199 return type(functor_type(), std::forward<E>(e)...);
    +
    200 }
    +
    201
    +
    202 // On MSVC, the second argument of enable_if_t is always evaluated, even if the condition is false.
    +
    203 // Wrapping the xfunction type in the xfunction_type metafunction avoids this evaluation when
    +
    204 // the condition is false, since it leads to a tricky bug preventing from using operator+ and
    +
    205 // operator- on vector and arrays iterators.
    +
    206 template <class F, class... E>
    +
    207 using xfunction_type_t = typename std::
    +
    208 enable_if_t<has_xexpression<std::decay_t<E>...>::value, xfunction_type<F, E...>>::type;
    +
    209 }
    +
    210
    +
    211#undef UNARY_OPERATOR_FUNCTOR
    +
    212#undef BINARY_OPERATOR_FUNCTOR
    +
    213
    +
    214 /*************
    +
    215 * operators *
    +
    216 *************/
    +
    217
    +
    221
    +
    231 template <class E>
    +
    +
    232 inline auto operator+(E&& e) noexcept -> detail::xfunction_type_t<detail::identity, E>
    +
    233 {
    +
    234 return detail::make_xfunction<detail::identity>(std::forward<E>(e));
    +
    235 }
    +
    +
    236
    +
    246 template <class E>
    +
    +
    247 inline auto operator-(E&& e) noexcept -> detail::xfunction_type_t<detail::negate, E>
    +
    248 {
    +
    249 return detail::make_xfunction<detail::negate>(std::forward<E>(e));
    +
    250 }
    +
    +
    251
    +
    262 template <class E1, class E2>
    +
    +
    263 inline auto operator+(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::plus, E1, E2>
    +
    264 {
    +
    265 return detail::make_xfunction<detail::plus>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    266 }
    +
    +
    267
    +
    278 template <class E1, class E2>
    +
    +
    279 inline auto operator-(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::minus, E1, E2>
    +
    280 {
    +
    281 return detail::make_xfunction<detail::minus>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    282 }
    +
    +
    283
    +
    294 template <class E1, class E2>
    +
    +
    295 inline auto operator*(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::multiplies, E1, E2>
    +
    296 {
    +
    297 return detail::make_xfunction<detail::multiplies>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    298 }
    +
    +
    299
    +
    310 template <class E1, class E2>
    +
    +
    311 inline auto operator/(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::divides, E1, E2>
    +
    312 {
    +
    313 return detail::make_xfunction<detail::divides>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    314 }
    +
    +
    315
    +
    326 template <class E1, class E2>
    +
    +
    327 inline auto operator%(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::modulus, E1, E2>
    +
    328 {
    +
    329 return detail::make_xfunction<detail::modulus>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    330 }
    +
    +
    331
    +
    335
    +
    346 template <class E1, class E2>
    +
    +
    347 inline auto operator||(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::logical_or, E1, E2>
    +
    348 {
    +
    349 return detail::make_xfunction<detail::logical_or>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    350 }
    +
    +
    351
    +
    362 template <class E1, class E2>
    +
    +
    363 inline auto operator&&(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::logical_and, E1, E2>
    +
    364 {
    +
    365 return detail::make_xfunction<detail::logical_and>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    366 }
    +
    +
    367
    +
    377 template <class E>
    +
    +
    378 inline auto operator!(E&& e) noexcept -> detail::xfunction_type_t<detail::logical_not, E>
    +
    379 {
    +
    380 return detail::make_xfunction<detail::logical_not>(std::forward<E>(e));
    +
    381 }
    +
    +
    382
    +
    386
    +
    397 template <class E1, class E2>
    +
    +
    398 inline auto operator&(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::bitwise_and, E1, E2>
    +
    399 {
    +
    400 return detail::make_xfunction<detail::bitwise_and>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    401 }
    +
    +
    402
    +
    413 template <class E1, class E2>
    +
    +
    414 inline auto operator|(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::bitwise_or, E1, E2>
    +
    415 {
    +
    416 return detail::make_xfunction<detail::bitwise_or>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    417 }
    +
    +
    418
    +
    429 template <class E1, class E2>
    +
    +
    430 inline auto operator^(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::bitwise_xor, E1, E2>
    +
    431 {
    +
    432 return detail::make_xfunction<detail::bitwise_xor>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    433 }
    +
    +
    434
    +
    444 template <class E>
    +
    +
    445 inline auto operator~(E&& e) noexcept -> detail::xfunction_type_t<detail::bitwise_not, E>
    +
    446 {
    +
    447 return detail::make_xfunction<detail::bitwise_not>(std::forward<E>(e));
    +
    448 }
    +
    +
    449
    +
    460 template <class E1, class E2>
    +
    +
    461 inline auto left_shift(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::left_shift, E1, E2>
    +
    462 {
    +
    463 return detail::make_xfunction<detail::left_shift>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    464 }
    +
    +
    465
    +
    476 template <class E1, class E2>
    +
    +
    477 inline auto right_shift(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::right_shift, E1, E2>
    +
    478 {
    +
    479 return detail::make_xfunction<detail::right_shift>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    480 }
    +
    +
    481
    +
    482 namespace detail
    +
    483 {
    +
    484 // Shift operator is not available for all the types, so the xfunction type instantiation
    +
    485 // has to be delayed, enable_if_t is not sufficient
    +
    486 template <class F, class E1, class E2>
    +
    487 struct shift_function_getter
    +
    488 {
    +
    489 using type = xfunction_type_t<F, E1, E2>;
    +
    490 };
    +
    491
    +
    492 template <bool B, class T>
    +
    493 struct eval_enable_if
    +
    494 {
    +
    495 using type = typename T::type;
    +
    496 };
    +
    497
    +
    498 template <class T>
    +
    499 struct eval_enable_if<false, T>
    +
    500 {
    +
    501 };
    +
    502
    +
    503 template <bool B, class T>
    +
    504 using eval_enable_if_t = typename eval_enable_if<B, T>::type;
    +
    505
    +
    506 template <class F, class E1, class E2>
    +
    507 using shift_return_type_t = eval_enable_if_t<
    +
    508 is_xexpression<std::decay_t<E1>>::value,
    +
    509 shift_function_getter<F, E1, E2>>;
    +
    510 }
    +
    511
    +
    523 template <class E1, class E2>
    +
    +
    524 inline auto operator<<(E1&& e1, E2&& e2) noexcept
    +
    525 -> detail::shift_return_type_t<detail::left_shift, E1, E2>
    +
    526 {
    +
    527 return left_shift(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    528 }
    +
    +
    529
    +
    541 template <class E1, class E2>
    +
    +
    542 inline auto operator>>(E1&& e1, E2&& e2) -> detail::shift_return_type_t<detail::right_shift, E1, E2>
    +
    543 {
    +
    544 return right_shift(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    545 }
    +
    +
    546
    +
    550
    +
    561 template <class E1, class E2>
    +
    +
    562 inline auto operator<(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::less, E1, E2>
    +
    563 {
    +
    564 return detail::make_xfunction<detail::less>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    565 }
    +
    +
    566
    +
    577 template <class E1, class E2>
    +
    +
    578 inline auto operator<=(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::less_equal, E1, E2>
    +
    579 {
    +
    580 return detail::make_xfunction<detail::less_equal>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    581 }
    +
    +
    582
    +
    593 template <class E1, class E2>
    +
    +
    594 inline auto operator>(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::greater, E1, E2>
    +
    595 {
    +
    596 return detail::make_xfunction<detail::greater>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    597 }
    +
    +
    598
    +
    609 template <class E1, class E2>
    +
    +
    610 inline auto operator>=(E1&& e1, E2&& e2) noexcept
    +
    611 -> detail::xfunction_type_t<detail::greater_equal, E1, E2>
    +
    612 {
    +
    613 return detail::make_xfunction<detail::greater_equal>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    614 }
    +
    +
    615
    +
    627 template <class E1, class E2>
    +
    628 inline std::enable_if_t<xoptional_comparable<E1, E2>::value, bool>
    +
    +
    629 operator==(const xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    630 {
    +
    631 const E1& de1 = e1.derived_cast();
    +
    632 const E2& de2 = e2.derived_cast();
    +
    633 bool res = de1.dimension() == de2.dimension()
    +
    634 && std::equal(de1.shape().begin(), de1.shape().end(), de2.shape().begin());
    +
    635 auto iter1 = de1.begin();
    +
    636 auto iter2 = de2.begin();
    +
    637 auto iter_end = de1.end();
    +
    638 while (res && iter1 != iter_end)
    +
    639 {
    +
    640 res = (*iter1++ == *iter2++);
    +
    641 }
    +
    642 return res;
    +
    643 }
    +
    +
    644
    +
    656 template <class E1, class E2>
    +
    +
    657 inline bool operator!=(const xexpression<E1>& e1, const xexpression<E2>& e2)
    +
    658 {
    +
    659 return !(e1 == e2);
    +
    660 }
    +
    +
    661
    +
    672 template <class E1, class E2>
    +
    +
    673 inline auto equal(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::equal_to, E1, E2>
    +
    674 {
    +
    675 return detail::make_xfunction<detail::equal_to>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    676 }
    +
    +
    677
    +
    688 template <class E1, class E2>
    +
    +
    689 inline auto not_equal(E1&& e1, E2&& e2) noexcept -> detail::xfunction_type_t<detail::not_equal_to, E1, E2>
    +
    690 {
    +
    691 return detail::make_xfunction<detail::not_equal_to>(std::forward<E1>(e1), std::forward<E2>(e2));
    +
    692 }
    +
    +
    693
    +
    705 template <class E1, class E2>
    +
    +
    706 inline auto less(E1&& e1, E2&& e2) noexcept -> decltype(std::forward<E1>(e1) < std::forward<E2>(e2))
    +
    707 {
    +
    708 return std::forward<E1>(e1) < std::forward<E2>(e2);
    +
    709 }
    +
    +
    710
    +
    722 template <class E1, class E2>
    +
    +
    723 inline auto less_equal(E1&& e1, E2&& e2) noexcept -> decltype(std::forward<E1>(e1) <= std::forward<E2>(e2))
    +
    724 {
    +
    725 return std::forward<E1>(e1) <= std::forward<E2>(e2);
    +
    726 }
    +
    +
    727
    +
    739 template <class E1, class E2>
    +
    +
    740 inline auto greater(E1&& e1, E2&& e2) noexcept -> decltype(std::forward<E1>(e1) > std::forward<E2>(e2))
    +
    741 {
    +
    742 return std::forward<E1>(e1) > std::forward<E2>(e2);
    +
    743 }
    +
    +
    744
    +
    756 template <class E1, class E2>
    +
    +
    757 inline auto greater_equal(E1&& e1, E2&& e2) noexcept
    +
    758 -> decltype(std::forward<E1>(e1) >= std::forward<E2>(e2))
    +
    759 {
    +
    760 return std::forward<E1>(e1) >= std::forward<E2>(e2);
    +
    761 }
    +
    +
    762
    +
    775 template <class E1, class E2, class E3>
    +
    +
    776 inline auto where(E1&& e1, E2&& e2, E3&& e3) noexcept
    +
    777 -> detail::xfunction_type_t<detail::conditional_ternary, E1, E2, E3>
    +
    778 {
    +
    779 return detail::make_xfunction<detail::conditional_ternary>(
    +
    780 std::forward<E1>(e1),
    +
    781 std::forward<E2>(e2),
    +
    782 std::forward<E3>(e3)
    +
    783 );
    +
    784 }
    +
    +
    785
    +
    786 namespace detail
    +
    787 {
    +
    788 template <layout_type L>
    +
    789 struct next_idx_impl;
    +
    790
    +
    791 template <>
    +
    792 struct next_idx_impl<layout_type::row_major>
    +
    793 {
    +
    794 template <class S, class I>
    +
    795 inline auto operator()(const S& shape, I& idx)
    +
    796 {
    +
    797 for (std::size_t j = shape.size(); j > 0; --j)
    +
    798 {
    +
    799 std::size_t i = j - 1;
    +
    800 if (idx[i] >= shape[i] - 1)
    +
    801 {
    +
    802 idx[i] = 0;
    +
    803 }
    +
    804 else
    +
    805 {
    +
    806 idx[i]++;
    +
    807 return idx;
    +
    808 }
    +
    809 }
    +
    810 // return empty index, happens at last iteration step, but remains unused
    +
    811 return I();
    +
    812 }
    +
    813 };
    +
    814
    +
    815 template <>
    +
    816 struct next_idx_impl<layout_type::column_major>
    +
    817 {
    +
    818 template <class S, class I>
    +
    819 inline auto operator()(const S& shape, I& idx)
    +
    820 {
    +
    821 for (std::size_t i = 0; i < shape.size(); ++i)
    +
    822 {
    +
    823 if (idx[i] >= shape[i] - 1)
    +
    824 {
    +
    825 idx[i] = 0;
    +
    826 }
    +
    827 else
    +
    828 {
    +
    829 idx[i]++;
    +
    830 return idx;
    +
    831 }
    +
    832 }
    +
    833 // return empty index, happens at last iteration step, but remains unused
    +
    834 return I();
    +
    835 }
    +
    836 };
    +
    837
    +
    838 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class S, class I>
    +
    839 inline auto next_idx(const S& shape, I& idx)
    +
    840 {
    +
    841 next_idx_impl<L> nii;
    +
    842 return nii(shape, idx);
    +
    843 }
    +
    844 }
    +
    845
    +
    854 template <class T>
    +
    +
    855 inline auto nonzero(const T& arr)
    +
    856 {
    +
    857 auto shape = arr.shape();
    +
    858 using index_type = xindex_type_t<typename T::shape_type>;
    +
    859 using size_type = typename T::size_type;
    +
    860
    +
    861 auto idx = xtl::make_sequence<index_type>(arr.dimension(), 0);
    +
    862 std::vector<std::vector<size_type>> indices(arr.dimension());
    +
    863
    +
    864 size_type total_size = compute_size(shape);
    +
    865 for (size_type i = 0; i < total_size; i++, detail::next_idx(shape, idx))
    +
    866 {
    +
    867 if (arr.element(std::begin(idx), std::end(idx)))
    +
    868 {
    +
    869 for (std::size_t n = 0; n < indices.size(); ++n)
    +
    870 {
    +
    871 indices.at(n).push_back(idx[n]);
    +
    872 }
    +
    873 }
    +
    874 }
    +
    875
    +
    876 return indices;
    +
    877 }
    +
    +
    878
    +
    887 template <class T>
    +
    +
    888 inline auto where(const T& condition)
    +
    889 {
    +
    890 return nonzero(condition);
    +
    891 }
    +
    +
    892
    +
    903 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class T>
    +
    +
    904 inline auto argwhere(const T& arr)
    +
    905 {
    +
    906 auto shape = arr.shape();
    +
    907 using index_type = xindex_type_t<typename T::shape_type>;
    +
    908 using size_type = typename T::size_type;
    +
    909
    +
    910 auto idx = xtl::make_sequence<index_type>(arr.dimension(), 0);
    +
    911 std::vector<index_type> indices;
    +
    912
    +
    913 size_type total_size = compute_size(shape);
    +
    914 for (size_type i = 0; i < total_size; i++, detail::next_idx<L>(shape, idx))
    +
    915 {
    +
    916 if (arr.element(std::begin(idx), std::end(idx)))
    +
    917 {
    +
    918 indices.push_back(idx);
    +
    919 }
    +
    920 }
    +
    921
    +
    922 return indices;
    +
    923 }
    +
    +
    924
    +
    934 template <class E>
    +
    +
    935 inline bool any(E&& e)
    +
    936 {
    +
    937 using xtype = std::decay_t<E>;
    +
    938 using value_type = typename xtype::value_type;
    +
    939 return std::any_of(
    +
    940 e.cbegin(),
    +
    941 e.cend(),
    +
    942 [](const value_type& el)
    +
    943 {
    +
    944 return el;
    +
    945 }
    +
    946 );
    +
    947 }
    +
    +
    948
    +
    958 template <class E>
    +
    +
    959 inline bool all(E&& e)
    +
    960 {
    +
    961 using xtype = std::decay_t<E>;
    +
    962 using value_type = typename xtype::value_type;
    +
    963 return std::all_of(
    +
    964 e.cbegin(),
    +
    965 e.cend(),
    +
    966 [](const value_type& el)
    +
    967 {
    +
    968 return el;
    +
    969 }
    +
    970 );
    +
    971 }
    +
    +
    972
    +
    976
    +
    987
    +
    988 template <class R, class E>
    +
    +
    989 inline auto cast(E&& e) noexcept -> detail::xfunction_type_t<typename detail::cast<R>::functor, E>
    +
    990 {
    +
    991 return detail::make_xfunction<typename detail::cast<R>::functor>(std::forward<E>(e));
    +
    992 }
    +
    +
    993
    +
    994}
    +
    995
    +
    996#endif
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    auto operator+(E &&e) noexcept -> detail::xfunction_type_t< detail::identity, E >
    Identity.
    +
    auto operator/(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::divides, E1, E2 >
    Division.
    +
    auto operator%(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::modulus, E1, E2 >
    Modulus.
    +
    auto operator-(E &&e) noexcept -> detail::xfunction_type_t< detail::negate, E >
    Opposite.
    +
    auto operator*(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
    Multiplication.
    +
    auto operator&(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_and, E1, E2 >
    Bitwise and.
    +
    auto left_shift(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::left_shift, E1, E2 >
    Bitwise left shift.
    +
    auto right_shift(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::right_shift, E1, E2 >
    Bitwise left shift.
    +
    auto operator~(E &&e) noexcept -> detail::xfunction_type_t< detail::bitwise_not, E >
    Bitwise not.
    +
    auto operator^(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_xor, E1, E2 >
    Bitwise xor.
    +
    auto operator<<(E1 &&e1, E2 &&e2) noexcept -> detail::shift_return_type_t< detail::left_shift, E1, E2 >
    Bitwise left shift.
    +
    auto operator|(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_or, E1, E2 >
    Bitwise or.
    +
    auto operator>>(E1 &&e1, E2 &&e2) -> detail::shift_return_type_t< detail::right_shift, E1, E2 >
    Bitwise right shift.
    +
    auto cast(E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
    Element-wise static_cast.
    +
    auto not_equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::not_equal_to, E1, E2 >
    Element-wise inequality.
    +
    auto less(E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1)< std::forward< E2 >(e2))
    Lesser than.
    +
    auto equal(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::equal_to, E1, E2 >
    Element-wise equality.
    +
    auto greater_equal(E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) >=std::forward< E2 >(e2))
    Greater or equal.
    +
    auto greater(E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1) > std::forward< E2 >(e2))
    Greater than.
    +
    auto less_equal(E1 &&e1, E2 &&e2) noexcept -> decltype(std::forward< E1 >(e1)<=std::forward< E2 >(e2))
    Lesser or equal.
    +
    auto operator!(E &&e) noexcept -> detail::xfunction_type_t< detail::logical_not, E >
    Not.
    +
    auto argwhere(const T &arr)
    return vector of indices where arr is not zero
    +
    auto operator&&(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::logical_and, E1, E2 >
    And.
    +
    auto nonzero(const T &arr)
    return vector of indices where T is not zero
    +
    auto operator||(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::logical_or, E1, E2 >
    Or.
    +
    auto where(E1 &&e1, E2 &&e2, E3 &&e3) noexcept -> detail::xfunction_type_t< detail::conditional_ternary, E1, E2, E3 >
    Ternary selection.
    +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    standard mathematical functions for xexpressions
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    +
    + + + + diff --git a/xoptional_8hpp_source.html b/xoptional_8hpp_source.html new file mode 100644 index 000000000..374d37b4d --- /dev/null +++ b/xoptional_8hpp_source.html @@ -0,0 +1,1617 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xoptional.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_OPTIONAL_HPP
    +
    11#define XTENSOR_OPTIONAL_HPP
    +
    12
    +
    13#include <type_traits>
    +
    14#include <utility>
    +
    15
    +
    16#include <xtl/xoptional.hpp>
    +
    17#include <xtl/xoptional_sequence.hpp>
    +
    18
    +
    19#include "../containers/xarray.hpp"
    +
    20#include "../containers/xscalar.hpp"
    +
    21#include "../containers/xtensor.hpp"
    +
    22#include "../generators/xgenerator.hpp"
    +
    23#include "../reducers/xreducer.hpp"
    +
    24#include "../views/xbroadcast.hpp"
    +
    25#include "../views/xdynamic_view.hpp"
    +
    26#include "../views/xfunctor_view.hpp"
    +
    27#include "../views/xindex_view.hpp"
    +
    28#include "../views/xrepeat.hpp"
    +
    29#include "../views/xstrided_view.hpp"
    +
    30#include "../views/xview.hpp"
    +
    31
    +
    32namespace xt
    +
    33{
    +
    34
    +
    35 /****************************************************
    +
    36 * Metafunction for splitting xoptional expressions *
    +
    37 ****************************************************/
    +
    38
    +
    39 namespace extension
    +
    40 {
    +
    41
    +
    42 /**************************************
    +
    43 * get_expression_tag specializations *
    +
    44 **************************************/
    +
    45
    +
    46 template <class T, class B>
    +
    +
    47 struct get_expression_tag<xtl::xoptional<T, B>>
    +
    48 {
    +
    49 using type = xoptional_expression_tag;
    +
    50 };
    +
    +
    51
    +
    52 /************************
    +
    53 * xoptional_empty_base *
    +
    54 ************************/
    +
    55
    +
    56 template <class D>
    +
    + +
    58 {
    +
    59 public:
    +
    60
    +
    61 using expression_tag = xoptional_expression_tag;
    +
    62
    +
    63 protected:
    +
    64
    +
    65 D& derived_cast() noexcept;
    +
    66 const D& derived_cast() const noexcept;
    +
    67 };
    +
    +
    68 }
    +
    69
    +
    70 namespace detail
    +
    71 {
    +
    72 /*****************************
    +
    73 * split_optional_expression *
    +
    74 *****************************/
    +
    75
    +
    76 template <class T, class Tag>
    +
    77 struct split_optional_expression_impl
    +
    78 {
    +
    79 using value_expression = T;
    +
    80 using flag_expression = decltype(ones<bool>(std::declval<T>().shape()));
    +
    81
    +
    82 template <class U>
    +
    83 inline static U&& value(U&& arg)
    +
    84 {
    +
    85 return std::forward<U>(arg);
    +
    86 }
    +
    87
    +
    88 template <class U>
    +
    89 inline static flag_expression has_value(U&& arg)
    +
    90 {
    +
    91 return ones<bool>(arg.shape());
    +
    92 }
    +
    93 };
    +
    94
    +
    95 template <class T, class Tag>
    +
    96 struct split_optional_expression_impl<xscalar<T>, Tag>
    +
    97 {
    +
    98 using value_expression = xscalar<T>;
    +
    99 using flag_expression = xscalar<bool>;
    +
    100
    +
    101 template <class U>
    +
    102 inline static U&& value(U&& arg)
    +
    103 {
    +
    104 return std::forward<U>(arg);
    +
    105 }
    +
    106
    +
    107 template <class U>
    +
    108 inline static flag_expression has_value(U&&)
    +
    109 {
    +
    110 return xscalar<bool>(true);
    +
    111 }
    +
    112 };
    +
    113
    +
    114 template <class T>
    +
    115 struct split_optional_expression_impl_base
    +
    116 {
    +
    117 static constexpr bool is_const = std::is_const<std::remove_reference_t<T>>::value;
    +
    118 using decay_type = std::decay_t<T>;
    +
    119
    +
    120 using value_expression = std::conditional_t<
    +
    121 is_const,
    +
    122 typename decay_type::const_value_expression,
    +
    123 typename decay_type::value_expression>;
    +
    124 using flag_expression = std::
    +
    125 conditional_t<is_const, typename decay_type::const_flag_expression, typename decay_type::flag_expression>;
    +
    126
    +
    127 template <class U>
    +
    128 inline static value_expression value(U&& arg)
    +
    129 {
    +
    130 return arg.value();
    +
    131 }
    +
    132
    +
    133 template <class U>
    +
    134 inline static flag_expression has_value(U&& arg)
    +
    135 {
    +
    136 return arg.has_value();
    +
    137 }
    +
    138 };
    +
    139
    +
    140 template <class T>
    +
    141 struct split_optional_expression_impl<T, xoptional_expression_tag>
    +
    142 : split_optional_expression_impl_base<T>
    +
    143 {
    +
    144 };
    +
    145
    +
    146 template <class T>
    +
    147 struct split_optional_expression_impl<xscalar<T>, xoptional_expression_tag>
    +
    148 : split_optional_expression_impl_base<xscalar<T>>
    +
    149 {
    +
    150 };
    +
    151
    +
    152 template <class T>
    +
    153 struct split_optional_expression
    +
    154 : split_optional_expression_impl<T, xexpression_tag_t<std::decay_t<T>>>
    +
    155 {
    +
    156 };
    +
    157
    +
    158 template <class T>
    +
    159 using value_expression_t = typename split_optional_expression<T>::value_expression;
    +
    160
    +
    161 template <class T>
    +
    162 using flag_expression_t = typename split_optional_expression<T>::flag_expression;
    +
    163
    +
    164 /********************
    +
    165 * optional_bitwise *
    +
    166 ********************/
    +
    167
    +
    168 template <class T = bool>
    +
    169 class optional_bitwise
    +
    170 {
    +
    171 public:
    +
    172
    +
    173 using return_type = T;
    +
    174 using first_argument_type = T;
    +
    175 using second_argument_type = T;
    +
    176 using result_type = T;
    +
    177 using simd_value_type = bool;
    +
    178 using simd_result_type = bool;
    +
    179
    +
    180 template <class... Args>
    +
    181 constexpr result_type operator()(const Args&... args) const
    +
    182 {
    +
    183 return apply_impl(args...);
    +
    184 }
    +
    185
    +
    186 template <class B, class... Args>
    +
    187 constexpr B simd_apply(const B& b, const Args&... args) const
    +
    188 {
    +
    189 return simd_apply_impl(b, args...);
    +
    190 }
    +
    191
    +
    192 private:
    +
    193
    +
    194 constexpr result_type apply_impl() const
    +
    195 {
    +
    196 return true;
    +
    197 }
    +
    198
    +
    199 template <class U, class... Args>
    +
    200 constexpr result_type apply_impl(const U& t, const Args&... args) const
    +
    201 {
    +
    202 return t & apply_impl(args...);
    +
    203 }
    +
    204
    +
    205 template <class B>
    +
    206 constexpr B simd_apply_impl(const B& b) const
    +
    207 {
    +
    208 return b;
    +
    209 }
    +
    210
    +
    211 template <class B1, class B2, class... Args>
    +
    212 constexpr B1 simd_apply_impl(const B1& b1, const B2& b2, const Args&... args) const
    +
    213 {
    +
    214 return b1 & simd_apply_impl(b2, args...);
    +
    215 }
    +
    216 };
    +
    217
    +
    218 /*********************************
    +
    219 * optional const_value rebinder *
    +
    220 *********************************/
    +
    221
    +
    222 template <class T, class B>
    +
    223 struct const_value_rebinder<xtl::xoptional<T, B>, T>
    +
    224 {
    +
    225 static const_value<T> run(const const_value<xtl::xoptional<T, B>>& src)
    +
    226 {
    +
    227 return const_value<T>(src.m_value.value());
    +
    228 }
    +
    229 };
    +
    230
    +
    231 /**************************
    +
    232 * xreducer types helpers *
    +
    233 **************************/
    +
    234
    +
    235 template <class T, class B>
    +
    236 struct xreducer_size_type<xtl::xoptional<T, B>>
    +
    237 {
    +
    238 using type = xtl::xoptional<std::size_t, bool>;
    +
    239 };
    +
    240
    +
    241 template <class T, class B>
    +
    242 struct xreducer_temporary_type<xtl::xoptional<T, B>>
    +
    243 {
    +
    244 using type = xtl::xoptional<std::decay_t<T>, bool>;
    +
    245 ;
    +
    246 };
    +
    247 }
    +
    248
    +
    249 /**********************
    +
    250 * optional functions *
    +
    251 **********************/
    +
    252
    +
    253 template <class T, class B>
    +
    254 auto sign(const xtl::xoptional<T, B>& e);
    +
    255
    +
    256 /*template <class E, XTL_REQUIRES(is_xexpression<E>)>
    +
    257 detail::value_expression_t<E> value(E&&);
    +
    258
    +
    259 template <class E, XTL_REQUIRES(is_xexpression<E>)>
    +
    260 detail::flag_expression_t<E> has_value(E&&);*/
    +
    261
    +
    262 template <>
    +
    + +
    264 {
    +
    265 public:
    +
    266
    +
    267 template <class E1, class E2>
    +
    268 static void assign_data(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial);
    +
    269 };
    +
    +
    270
    +
    271 /**********************************
    +
    272 * xscalar extension for optional *
    +
    273 **********************************/
    +
    274
    +
    275 namespace extension
    +
    276 {
    +
    277 template <class CT>
    +
    + +
    279 {
    +
    280 using closure_type = CT;
    +
    281 static constexpr bool is_ref = std::is_reference<closure_type>::value;
    +
    282 using unref_closure_type = std::remove_reference_t<closure_type>;
    +
    283 static constexpr bool is_const = std::is_const<unref_closure_type>::value;
    +
    284 using raw_closure_type = std::decay_t<CT>;
    +
    285
    +
    286 using raw_value_closure = typename raw_closure_type::value_closure;
    +
    287 using raw_flag_closure = typename raw_closure_type::flag_closure;
    +
    288 using const_raw_value_closure = std::add_const_t<raw_value_closure>;
    +
    289 using const_raw_flag_closure = std::add_const_t<raw_flag_closure>;
    +
    290
    +
    291 using value_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_value_closure>, raw_value_closure>;
    +
    292 using flag_closure = std::conditional_t<is_ref, std::add_lvalue_reference_t<raw_flag_closure>, raw_flag_closure>;
    +
    293 using const_value_closure = std::
    +
    294 conditional_t<is_ref, std::add_lvalue_reference_t<const_raw_value_closure>, raw_value_closure>;
    +
    295 using const_flag_closure = std::
    +
    296 conditional_t<is_ref, std::add_lvalue_reference_t<const_raw_flag_closure>, raw_flag_closure>;
    +
    297
    + + +
    300 using const_value_expression = xscalar<const_value_closure>;
    +
    301 using const_flag_expression = xscalar<const_flag_closure>;
    +
    302 };
    +
    +
    303
    +
    304 template <class CT>
    +
    +
    305 class xscalar_optional_base : public xoptional_empty_base<xscalar<CT>>
    +
    306 {
    +
    307 public:
    +
    308
    +
    309 using traits = xscalar_optional_traits<CT>;
    +
    310 using value_expression = typename traits::value_expression;
    +
    311 using flag_expression = typename traits::flag_expression;
    +
    312 using const_value_expression = typename traits::const_value_expression;
    +
    313 using const_flag_expression = typename traits::const_flag_expression;
    +
    314 using expression_tag = xoptional_expression_tag;
    +
    315
    +
    316 value_expression value();
    +
    317 const_value_expression value() const;
    +
    318
    +
    319 flag_expression has_value();
    +
    320 const_flag_expression has_value() const;
    +
    321 };
    +
    +
    322
    +
    323 template <class CT>
    +
    + +
    325 {
    +
    326 using type = xscalar_optional_base<CT>;
    +
    327 };
    +
    +
    328 }
    +
    329
    +
    330 /*************************************
    +
    331 * xcontainer extension for optional *
    +
    332 *************************************/
    +
    333
    +
    334 namespace extension
    +
    335 {
    +
    336 template <class T>
    +
    +
    337 class xcontainer_optional_base : public xoptional_empty_base<typename T::derived_type>
    +
    338 {
    +
    339 public:
    +
    340
    +
    341 using traits = T;
    +
    342 using value_expression = typename traits::value_expression;
    +
    343 using flag_expression = typename traits::flag_expression;
    +
    344 using const_value_expression = typename traits::const_value_expression;
    +
    345 using const_flag_expression = typename traits::const_flag_expression;
    +
    346 using expression_tag = xoptional_expression_tag;
    +
    347
    +
    348 value_expression value();
    +
    349 const_value_expression value() const;
    +
    350
    +
    351 flag_expression has_value();
    +
    352 const_flag_expression has_value() const;
    +
    353 };
    +
    +
    354 }
    +
    355
    +
    356 /*******************************************
    +
    357 * xarray_container extension for optional *
    +
    358 *******************************************/
    +
    359
    +
    360 namespace extension
    +
    361 {
    +
    362 template <class EC, layout_type L, class SC>
    +
    + +
    364 {
    +
    365 using value_container = typename std::remove_reference_t<EC>::base_container_type;
    +
    366 using flag_container = typename std::remove_reference_t<EC>::flag_container_type;
    +
    367 using value_expression = xarray_adaptor<value_container&, L, SC>;
    +
    368 using flag_expression = xarray_adaptor<flag_container&, L, SC>;
    +
    369 using const_value_expression = xarray_adaptor<const value_container&, L, SC>;
    +
    370 using const_flag_expression = xarray_adaptor<const flag_container&, L, SC>;
    +
    371 };
    +
    +
    372
    +
    373 template <class EC, layout_type L, class SC>
    + +
    378
    +
    379 template <class EC, layout_type L, class SC>
    +
    + +
    381 {
    + + +
    384 };
    +
    +
    385 }
    +
    386
    +
    387 /*****************************************
    +
    388 * xarray_adaptor extension for optional *
    +
    389 *****************************************/
    +
    390
    +
    391 namespace extension
    +
    392 {
    +
    393 template <class EC, layout_type L, class SC>
    +
    + +
    395 {
    + +
    397 };
    +
    +
    398
    +
    399 template <class EC, layout_type L, class SC>
    +
    + +
    401 {
    + + +
    404 };
    +
    +
    405 }
    +
    406
    +
    407 /********************************************
    +
    408 * xtensor_container extension for optional *
    +
    409 ********************************************/
    +
    410
    +
    411 namespace extension
    +
    412 {
    +
    413 template <class EC, std::size_t N, layout_type L>
    +
    + +
    415 {
    +
    416 using value_container = typename std::remove_reference_t<EC>::base_container_type;
    +
    417 using flag_container = typename std::remove_reference_t<EC>::flag_container_type;
    +
    418 using value_expression = xtensor_adaptor<value_container&, N, L>;
    +
    419 using flag_expression = xtensor_adaptor<flag_container&, N, L>;
    +
    420 using const_value_expression = xtensor_adaptor<const value_container&, N, L>;
    +
    421 using const_flag_expression = xtensor_adaptor<const flag_container&, N, L>;
    +
    422 };
    +
    +
    423
    +
    424 template <class EC, std::size_t N, layout_type L>
    + +
    429
    +
    430 template <class EC, std::size_t N, layout_type L>
    +
    + +
    432 {
    + + +
    435 };
    +
    +
    436 }
    +
    437
    +
    438 /******************************************
    +
    439 * xtensor_adaptor extension for optional *
    +
    440 ******************************************/
    +
    441
    +
    442 namespace extension
    +
    443 {
    +
    444 template <class EC, std::size_t N, layout_type L>
    + +
    449
    +
    450 template <class EC, std::size_t N, layout_type L>
    +
    + +
    452 {
    + + +
    455 };
    +
    +
    456 }
    +
    457
    +
    458 /***************************************
    +
    459 * xtensor_view extension for optional *
    +
    460 ***************************************/
    +
    461
    +
    462 namespace extension
    +
    463 {
    +
    464 template <class EC, std::size_t N, layout_type L>
    +
    + +
    466 {
    + +
    468 };
    +
    +
    469
    +
    470 template <class EC, std::size_t N, layout_type L>
    +
    + +
    472 {
    + + +
    475 };
    +
    +
    476 }
    +
    477
    +
    478 /************************************************
    +
    479 * xfunction extension for optional expressions *
    +
    480 ************************************************/
    +
    481
    +
    482 namespace extension
    +
    483 {
    +
    484 template <class F, class... CT>
    +
    +
    485 class xfunction_optional_base : public xoptional_empty_base<xfunction<F, CT...>>
    +
    486 {
    +
    487 public:
    +
    488
    +
    489 using expression_tag = xoptional_expression_tag;
    +
    490 using value_functor = F;
    +
    491 using flag_functor = xt::detail::optional_bitwise<bool>;
    +
    492
    + + +
    495 using const_value_expression = value_expression;
    +
    496 using const_flag_expression = flag_expression;
    +
    497
    +
    498 const_value_expression value() const;
    +
    499 const_flag_expression has_value() const;
    +
    500
    +
    501 private:
    +
    502
    +
    503 template <std::size_t... I>
    +
    504 const_value_expression value_impl(std::index_sequence<I...>) const;
    +
    505
    +
    506 template <std::size_t... I>
    +
    507 const_flag_expression has_value_impl(std::index_sequence<I...>) const;
    +
    508 };
    +
    +
    509
    +
    510 template <class F, class... CT>
    +
    + +
    512 {
    +
    513 using type = xfunction_optional_base<F, CT...>;
    +
    514 };
    +
    +
    515 }
    +
    516
    +
    517 /****************************************************
    +
    518 * xdynamic_view extension for optional expressions *
    +
    519 ****************************************************/
    +
    520
    +
    521 namespace extension
    +
    522 {
    +
    523 template <class CT, class S, layout_type L, class FST>
    +
    +
    524 class xdynamic_view_optional : public xoptional_empty_base<xdynamic_view<CT, S, L, FST>>
    +
    525 {
    +
    526 public:
    +
    527
    +
    528 using expression_tag = xoptional_expression_tag;
    +
    529 using uvt = typename std::decay_t<CT>::value_expression;
    +
    530 using uft = typename std::decay_t<CT>::flag_expression;
    +
    531 using ucvt = typename std::decay_t<CT>::const_value_expression;
    +
    532 using ucft = typename std::decay_t<CT>::const_flag_expression;
    + + + + +
    537
    +
    538 value_expression value();
    +
    539 const_value_expression value() const;
    +
    540
    +
    541 flag_expression has_value();
    +
    542 const_flag_expression has_value() const;
    +
    543 };
    +
    +
    544
    +
    545 template <class CT, class S, layout_type L, class FST>
    +
    + +
    547 {
    + +
    549 };
    +
    +
    550 }
    +
    551
    +
    552 /*************************************************
    +
    553 * xbroadcast extension for optional expressions *
    +
    554 *************************************************/
    +
    555
    +
    556 namespace extension
    +
    557 {
    +
    558 template <class CT, class X>
    +
    +
    559 class xbroadcast_optional : public xoptional_empty_base<xbroadcast<CT, X>>
    +
    560 {
    +
    561 public:
    +
    562
    +
    563 using expression_tag = xoptional_expression_tag;
    +
    564 using value_expression = xbroadcast<xt::detail::value_expression_t<CT>, X>;
    +
    565 using flag_expression = xbroadcast<xt::detail::flag_expression_t<CT>, X>;
    +
    566 using const_value_expression = value_expression;
    +
    567 using const_flag_expression = flag_expression;
    +
    568
    +
    569 const_value_expression value() const;
    +
    570 const_flag_expression has_value() const;
    +
    571 };
    +
    +
    572
    +
    573 template <class CT, class X>
    +
    + +
    575 {
    +
    576 using type = xbroadcast_optional<CT, X>;
    +
    577 };
    +
    +
    578 }
    +
    579
    +
    580 /***************************************************
    +
    581 * xfunctor_view extension for optional expression *
    +
    582 ***************************************************/
    +
    583
    +
    584 namespace extension
    +
    585 {
    +
    586 template <class F, class CT>
    +
    +
    587 class xfunctor_view_optional : public xoptional_empty_base<xfunctor_view<F, CT>>
    +
    588 {
    +
    589 public:
    +
    590
    +
    591 using expression_tag = xoptional_expression_tag;
    +
    592 using uvt = typename std::decay_t<CT>::value_expression;
    +
    593 using uft = typename std::decay_t<CT>::flag_expression;
    +
    594 using ucvt = typename std::decay_t<CT>::const_value_expression;
    +
    595 using ucft = typename std::decay_t<CT>::const_flag_expression;
    +
    596 using value_expression = xfunctor_view<F, uvt>;
    +
    597 using flag_expression = uft;
    +
    598 using const_value_expression = xfunctor_view<F, ucvt>;
    +
    599 using const_flag_expression = ucft;
    +
    600
    +
    601 value_expression value();
    +
    602 const_value_expression value() const;
    +
    603
    +
    604 flag_expression has_value();
    +
    605 const_flag_expression has_value() const;
    +
    606 };
    +
    +
    607
    +
    608 template <class F, class CT>
    +
    + +
    610 {
    + +
    612 };
    +
    +
    613 }
    +
    614
    +
    615 /**************************************************
    +
    616 * xindex_view extension for optional expressions *
    +
    617 **************************************************/
    +
    618
    +
    619 namespace extension
    +
    620 {
    +
    621 template <class CT, class I>
    +
    +
    622 class xindex_view_optional : public xoptional_empty_base<xindex_view<CT, I>>
    +
    623 {
    +
    624 public:
    +
    625
    +
    626 using expression_tag = xoptional_expression_tag;
    +
    627 using uvt = typename std::decay_t<CT>::value_expression;
    +
    628 using ucvt = typename std::decay_t<CT>::const_value_expression;
    +
    629 using uft = typename std::decay_t<CT>::flag_expression;
    +
    630 using ucft = typename std::decay_t<CT>::const_flag_expression;
    +
    631 using value_expression = xindex_view<uvt, I>;
    +
    632 using flag_expression = xindex_view<uft, I>;
    +
    633 using const_value_expression = xindex_view<ucvt, I>;
    +
    634 using const_flag_expression = xindex_view<ucft, I>;
    +
    635
    +
    636 value_expression value();
    +
    637 const_value_expression value() const;
    +
    638
    +
    639 flag_expression has_value();
    +
    640 const_flag_expression has_value() const;
    +
    641 };
    +
    +
    642
    +
    643 template <class CT, class I>
    +
    + +
    645 {
    +
    646 using type = xindex_view_optional<CT, I>;
    +
    647 };
    +
    +
    648 }
    +
    649
    +
    650 /***********************************************
    +
    651 * xreducer extension for optional expressions *
    +
    652 ***********************************************/
    +
    653
    +
    654 namespace extension
    +
    655 {
    +
    656 template <class F, class CT, class X, class O>
    +
    +
    657 class xreducer_optional : public xoptional_empty_base<xreducer<F, CT, X, O>>
    +
    658 {
    +
    659 public:
    +
    660
    +
    661 using expression_tag = xoptional_expression_tag;
    +
    662 using result_type = typename F::init_value_type;
    +
    663
    +
    664 using rebound_result_type = typename result_type::value_type;
    +
    665 using rebound_functors_type = typename F::template rebind_t<rebound_result_type>;
    +
    666 using rebound_reduce_options_values = typename O::template rebind_t<rebound_result_type>;
    +
    667 using rebound_reduce_options_flag = typename O::template rebind_t<bool>;
    +
    668
    + +
    670 using flag_expression = xreducer<flag_reducer, xt::detail::flag_expression_t<CT>, X, rebound_reduce_options_flag>;
    +
    671 using value_expression = xreducer<rebound_functors_type, xt::detail::value_expression_t<CT>, X, rebound_reduce_options_values>;
    +
    672
    +
    673 using const_value_expression = value_expression;
    +
    674 using const_flag_expression = flag_expression;
    +
    675
    +
    676 const_value_expression value() const;
    +
    677 const_flag_expression has_value() const;
    +
    678 };
    +
    +
    679
    +
    680 template <class F, class CT, class X, class O>
    +
    + +
    682 {
    + +
    684 };
    +
    +
    685 }
    +
    686
    +
    687 /**********************************************
    +
    688 * xrepeat extension for optional expressions *
    +
    689 **********************************************/
    +
    690
    +
    691 namespace extension
    +
    692 {
    +
    693 template <class CT, class X>
    +
    +
    694 class xrepeat_optional : public xoptional_empty_base<xrepeat<CT, X>>
    +
    695 {
    +
    696 public:
    +
    697
    +
    698 using expression_tag = xoptional_expression_tag;
    +
    699 using value_expression = xbroadcast<xt::detail::value_expression_t<CT>, X>;
    +
    700 using flag_expression = xbroadcast<xt::detail::flag_expression_t<CT>, X>;
    +
    701 using const_value_expression = value_expression;
    +
    702 using const_flag_expression = flag_expression;
    +
    703
    +
    704 const_value_expression value() const;
    +
    705 const_flag_expression has_value() const;
    +
    706 };
    +
    +
    707
    +
    708 template <class CT, class X>
    +
    + +
    710 {
    +
    711 using type = xrepeat_optional<CT, X>;
    +
    712 };
    +
    +
    713 }
    +
    714
    +
    715 /****************************************************
    +
    716 * xstrided_view extension for optional expressions *
    +
    717 ****************************************************/
    +
    718
    +
    719 namespace extension
    +
    720 {
    +
    721 template <class CT, class S, layout_type L, class FST>
    +
    +
    722 class xstrided_view_optional : public xoptional_empty_base<xstrided_view<CT, S, L, FST>>
    +
    723 {
    +
    724 public:
    +
    725
    +
    726 using expression_tag = xoptional_expression_tag;
    +
    727 using uvt = typename std::decay_t<CT>::value_expression;
    +
    728 using uft = typename std::decay_t<CT>::flag_expression;
    +
    729 using ucvt = typename std::decay_t<CT>::const_value_expression;
    +
    730 using ucft = typename std::decay_t<CT>::const_flag_expression;
    + + + + +
    735
    +
    736 value_expression value();
    +
    737 const_value_expression value() const;
    +
    738
    +
    739 flag_expression has_value();
    +
    740 const_flag_expression has_value() const;
    +
    741 };
    +
    +
    742
    +
    743 template <class CT, class S, layout_type L, class FST>
    +
    + +
    745 {
    + +
    747 };
    +
    +
    748 }
    +
    749
    +
    750 /********************************************
    +
    751 * xview extension for optional expressions *
    +
    752 ********************************************/
    +
    753
    +
    754 namespace extension
    +
    755 {
    +
    756 template <class CT, class... S>
    +
    +
    757 class xview_optional : public xoptional_empty_base<xview<CT, S...>>
    +
    758 {
    +
    759 public:
    +
    760
    +
    761 using expression_tag = xoptional_expression_tag;
    +
    762 using uvt = typename std::decay_t<CT>::value_expression;
    +
    763 using uft = typename std::decay_t<CT>::flag_expression;
    +
    764 using ucvt = typename std::decay_t<CT>::const_value_expression;
    +
    765 using ucft = typename std::decay_t<CT>::const_flag_expression;
    +
    766 using value_expression = xview<uvt, S...>;
    +
    767 using flag_expression = xview<uft, S...>;
    +
    768 using const_value_expression = xview<ucvt, S...>;
    +
    769 using const_flag_expression = xview<ucft, S...>;
    +
    770
    +
    771 value_expression value();
    +
    772 const_value_expression value() const;
    +
    773
    +
    774 flag_expression has_value();
    +
    775 const_flag_expression has_value() const;
    +
    776 };
    +
    +
    777
    +
    778 template <class CT, class... S>
    +
    + +
    780 {
    +
    781 using type = xview_optional<CT, S...>;
    +
    782 };
    +
    +
    783 }
    +
    784
    +
    785 /*************************************************
    +
    786 * xgenerator extension for generator expression *
    +
    787 *************************************************/
    +
    788
    +
    789 namespace extension
    +
    790 {
    +
    791 namespace detail
    +
    792 {
    +
    793 template <class F, class = void_t<int>>
    +
    794 struct value_functor
    +
    795 {
    +
    796 using type = F;
    +
    797
    +
    798 static type get(const F& f)
    +
    799 {
    +
    800 return f;
    +
    801 }
    +
    802 };
    +
    803
    +
    804 template <class F>
    +
    805 struct value_functor<F, void_t<typename F::value_functor_type>>
    +
    806 {
    +
    807 using type = typename F::value_functor_type;
    +
    808
    +
    809 static type get(const F& f)
    +
    810 {
    +
    811 return f.value_functor();
    +
    812 }
    +
    813 };
    +
    814
    +
    815 template <class F>
    +
    816 using value_functor_t = typename value_functor<F>::type;
    +
    817
    +
    818 struct always_true
    +
    819 {
    +
    820 template <class... T>
    +
    821 bool operator()(T...) const
    +
    822 {
    +
    823 return true;
    +
    824 }
    +
    825 };
    +
    826
    +
    827 template <class F, class = void_t<int>>
    +
    828 struct flag_functor
    +
    829 {
    +
    830 using type = always_true;
    +
    831
    +
    832 static type get(const F&)
    +
    833 {
    +
    834 return type();
    +
    835 }
    +
    836 };
    +
    837
    +
    838 template <class F>
    +
    839 struct flag_functor<F, void_t<typename F::flag_functor_type>>
    +
    840 {
    +
    841 using type = typename F::flag_functor_type;
    +
    842
    +
    843 static type get(const F& f)
    +
    844 {
    +
    845 return f.flag_functor();
    +
    846 }
    +
    847 };
    +
    848
    +
    849 template <class F>
    +
    850 using flag_functor_t = typename flag_functor<F>::type;
    +
    851 }
    +
    852
    +
    853 template <class F, class R, class S>
    +
    +
    854 class xgenerator_optional : public xoptional_empty_base<xgenerator<F, R, S>>
    +
    855 {
    +
    856 public:
    +
    857
    +
    858 using expression_tag = xoptional_expression_tag;
    +
    859 using value_closure = typename R::value_closure;
    +
    860 using flag_closure = typename R::flag_closure;
    +
    861 using value_functor = detail::value_functor_t<F>;
    +
    862 using flag_functor = detail::flag_functor_t<F>;
    +
    863 using value_expression = xgenerator<value_functor, value_closure, S>;
    +
    864 using flag_expression = xgenerator<flag_functor, flag_closure, S>;
    +
    865 using const_value_expression = value_expression;
    +
    866 using const_flag_expression = flag_expression;
    +
    867
    +
    868 const_value_expression value() const;
    +
    869 const_flag_expression has_value() const;
    +
    870 };
    +
    +
    871
    +
    872 template <class F, class R, class S>
    +
    + +
    874 {
    +
    875 using type = xgenerator_optional<F, R, S>;
    +
    876 };
    +
    +
    877 }
    +
    878
    +
    879 /***************************************
    +
    880 * xoptional_empty_base implementation *
    +
    881 ***************************************/
    +
    882
    +
    883 namespace extension
    +
    884 {
    +
    885 template <class D>
    +
    886 inline D& xoptional_empty_base<D>::derived_cast() noexcept
    +
    887 {
    +
    888 return *static_cast<D*>(this);
    +
    889 }
    +
    890
    +
    891 template <class D>
    +
    892 inline const D& xoptional_empty_base<D>::derived_cast() const noexcept
    +
    893 {
    +
    894 return *static_cast<const D*>(this);
    +
    895 }
    +
    896 }
    +
    897
    +
    898 /****************************************
    +
    899 * xscalar_optional_base implementation *
    +
    900 ****************************************/
    +
    901
    +
    902 namespace extension
    +
    903 {
    +
    904 template <class CT>
    +
    905 inline auto xscalar_optional_base<CT>::value() -> value_expression
    +
    906 {
    +
    907 return this->derived_cast().expression().value();
    +
    908 }
    +
    909
    +
    910 template <class CT>
    +
    911 inline auto xscalar_optional_base<CT>::value() const -> const_value_expression
    +
    912 {
    +
    913 return this->derived_cast().expression().value();
    +
    914 }
    +
    915
    +
    916 template <class CT>
    +
    917 inline auto xscalar_optional_base<CT>::has_value() -> flag_expression
    +
    918 {
    +
    919 return this->derived_cast().expression().has_value();
    +
    920 }
    +
    921
    +
    922 template <class CT>
    +
    923 inline auto xscalar_optional_base<CT>::has_value() const -> const_flag_expression
    +
    924 {
    +
    925 return this->derived_cast().expression().has_value();
    +
    926 }
    +
    927 }
    +
    928
    +
    929 /*******************************************
    +
    930 * xcontainer_optional_base implementation *
    +
    931 *******************************************/
    +
    932
    +
    933 namespace extension
    +
    934 {
    +
    935 template <class T>
    +
    936 inline auto xcontainer_optional_base<T>::value() -> value_expression
    +
    937 {
    +
    938 return value_expression(this->derived_cast().storage().value(), this->derived_cast().shape());
    +
    939 }
    +
    940
    +
    941 template <class T>
    +
    942 inline auto xcontainer_optional_base<T>::value() const -> const_value_expression
    +
    943 {
    +
    944 return const_value_expression(this->derived_cast().storage().value(), this->derived_cast().shape());
    +
    945 }
    +
    946
    +
    947 template <class T>
    +
    948 inline auto xcontainer_optional_base<T>::has_value() -> flag_expression
    +
    949 {
    +
    950 return flag_expression(this->derived_cast().storage().has_value(), this->derived_cast().shape());
    +
    951 }
    +
    952
    +
    953 template <class T>
    +
    954 inline auto xcontainer_optional_base<T>::has_value() const -> const_flag_expression
    +
    955 {
    +
    956 return const_flag_expression(this->derived_cast().storage().has_value(), this->derived_cast().shape());
    +
    957 }
    +
    958 }
    +
    959
    +
    960 /******************************************
    +
    961 * xfunction_optional_base implementation *
    +
    962 ******************************************/
    +
    963
    +
    964 namespace extension
    +
    965 {
    +
    966 template <class F, class... CT>
    +
    967 inline auto xfunction_optional_base<F, CT...>::value() const -> const_value_expression
    +
    968 {
    +
    969 return value_impl(std::make_index_sequence<sizeof...(CT)>());
    +
    970 }
    +
    971
    +
    972 template <class F, class... CT>
    +
    973 inline auto xfunction_optional_base<F, CT...>::has_value() const -> const_flag_expression
    +
    974 {
    +
    975 return has_value_impl(std::make_index_sequence<sizeof...(CT)>());
    +
    976 }
    +
    977
    +
    978 template <class F, class... CT>
    +
    979 template <std::size_t... I>
    +
    980 inline auto xfunction_optional_base<F, CT...>::value_impl(std::index_sequence<I...>) const
    +
    981 -> const_value_expression
    +
    982 {
    +
    983 return value_expression(
    +
    984 value_functor(),
    +
    985 xt::detail::split_optional_expression<CT>::value(std::get<I>(this->derived_cast().arguments()))...
    +
    986 );
    +
    987 }
    +
    988
    +
    989 template <class F, class... CT>
    +
    990 template <std::size_t... I>
    +
    991 inline auto xfunction_optional_base<F, CT...>::has_value_impl(std::index_sequence<I...>) const
    +
    992 -> const_flag_expression
    +
    993 {
    +
    994 return flag_expression(
    +
    995 flag_functor(),
    +
    996 xt::detail::split_optional_expression<CT>::has_value(
    +
    997 std::get<I>(this->derived_cast().arguments())
    +
    998 )...
    +
    999 );
    +
    1000 }
    +
    1001 }
    +
    1002
    +
    1003 /*****************************************
    +
    1004 * xdynamic_view_optional implementation *
    +
    1005 *****************************************/
    +
    1006
    +
    1007 namespace extension
    +
    1008 {
    +
    1009 template <class CT, class S, layout_type L, class FST>
    +
    1010 inline auto xdynamic_view_optional<CT, S, L, FST>::value() -> value_expression
    +
    1011 {
    +
    1012 return this->derived_cast().build_view(this->derived_cast().expression().value());
    +
    1013 }
    +
    1014
    +
    1015 template <class CT, class S, layout_type L, class FST>
    +
    1016 inline auto xdynamic_view_optional<CT, S, L, FST>::value() const -> const_value_expression
    +
    1017 {
    +
    1018 return this->derived_cast().build_view(this->derived_cast().expression().value());
    +
    1019 }
    +
    1020
    +
    1021 template <class CT, class S, layout_type L, class FST>
    +
    1022 inline auto xdynamic_view_optional<CT, S, L, FST>::has_value() -> flag_expression
    +
    1023 {
    +
    1024 return this->derived_cast().build_view(this->derived_cast().expression().has_value());
    +
    1025 }
    +
    1026
    +
    1027 template <class CT, class S, layout_type L, class FST>
    +
    1028 inline auto xdynamic_view_optional<CT, S, L, FST>::has_value() const -> const_flag_expression
    +
    1029 {
    +
    1030 return this->derived_cast().build_view(this->derived_cast().expression().has_value());
    +
    1031 }
    +
    1032 }
    +
    1033
    +
    1034 /**************************************
    +
    1035 * xbroadcast_optional implementation *
    +
    1036 **************************************/
    +
    1037
    +
    1038 namespace extension
    +
    1039 {
    +
    1040 template <class CT, class X>
    +
    1041 inline auto xbroadcast_optional<CT, X>::value() const -> const_value_expression
    +
    1042 {
    +
    1043 return this->derived_cast().build_broadcast(this->derived_cast().expression().value());
    +
    1044 }
    +
    1045
    +
    1046 template <class CT, class X>
    +
    1047 inline auto xbroadcast_optional<CT, X>::has_value() const -> const_flag_expression
    +
    1048 {
    +
    1049 return this->derived_cast().build_broadcast(this->derived_cast().expression().has_value());
    +
    1050 }
    +
    1051 }
    +
    1052
    +
    1053 /*****************************************
    +
    1054 * xfunctor_view_optional implementation *
    +
    1055 *****************************************/
    +
    1056
    +
    1057 namespace extension
    +
    1058 {
    +
    1059 template <class F, class CT>
    +
    1060 inline auto xfunctor_view_optional<F, CT>::value() -> value_expression
    +
    1061 {
    +
    1062 return this->derived_cast().build_functor_view(this->derived_cast().expression().value());
    +
    1063 }
    +
    1064
    +
    1065 template <class F, class CT>
    +
    1066 inline auto xfunctor_view_optional<F, CT>::value() const -> const_value_expression
    +
    1067 {
    +
    1068 return this->derived_cast().build_functor_view(this->derived_cast().expression().value());
    +
    1069 }
    +
    1070
    +
    1071 template <class F, class CT>
    +
    1072 inline auto xfunctor_view_optional<F, CT>::has_value() -> flag_expression
    +
    1073 {
    +
    1074 return this->derived_cast().expression().has_value();
    +
    1075 }
    +
    1076
    +
    1077 template <class F, class CT>
    +
    1078 inline auto xfunctor_view_optional<F, CT>::has_value() const -> const_flag_expression
    +
    1079 {
    +
    1080 return this->derived_cast().expression().has_value();
    +
    1081 }
    +
    1082 }
    +
    1083
    +
    1084 /***************************************
    +
    1085 * xindex_view_optional implementation *
    +
    1086 ***************************************/
    +
    1087
    +
    1088 namespace extension
    +
    1089 {
    +
    1090 template <class CT, class I>
    +
    1091 inline auto xindex_view_optional<CT, I>::value() -> value_expression
    +
    1092 {
    +
    1093 return this->derived_cast().build_index_view(this->derived_cast().expression().value());
    +
    1094 };
    +
    1095
    +
    1096 template <class CT, class I>
    +
    1097 inline auto xindex_view_optional<CT, I>::value() const -> const_value_expression
    +
    1098 {
    +
    1099 return this->derived_cast().build_index_view(this->derived_cast().expression().value());
    +
    1100 };
    +
    1101
    +
    1102 template <class CT, class I>
    +
    1103 inline auto xindex_view_optional<CT, I>::has_value() -> flag_expression
    +
    1104 {
    +
    1105 return this->derived_cast().build_index_view(this->derived_cast().expression().has_value());
    +
    1106 };
    +
    1107
    +
    1108 template <class CT, class I>
    +
    1109 inline auto xindex_view_optional<CT, I>::has_value() const -> const_flag_expression
    +
    1110 {
    +
    1111 return this->derived_cast().build_index_view(this->derived_cast().expression().has_value());
    +
    1112 };
    +
    1113 }
    +
    1114
    +
    1115 /************************************
    +
    1116 * xreducer_optional implementation *
    +
    1117 ************************************/
    +
    1118
    +
    1119 namespace extension
    +
    1120 {
    +
    1121 template <class F, class CT, class X, class O>
    +
    1122 inline auto xreducer_optional<F, CT, X, O>::value() const -> const_value_expression
    +
    1123 {
    +
    1124 auto func = this->derived_cast().functors();
    +
    1125 auto opts = this->derived_cast().options().template rebind<rebound_result_type>(
    +
    1126 this->derived_cast().options().initial_value.value(),
    +
    1127 this->derived_cast().options()
    +
    1128 );
    +
    1129
    +
    1130 return this->derived_cast().build_reducer(
    +
    1131 this->derived_cast().expression().value(),
    +
    1132 func.template rebind<rebound_result_type>(),
    +
    1133 std::move(opts)
    +
    1134 );
    +
    1135 }
    +
    1136
    +
    1137 template <class F, class CT, class X, class O>
    +
    1138 inline auto xreducer_optional<F, CT, X, O>::has_value() const -> const_flag_expression
    +
    1139 {
    +
    1140 auto opts = this->derived_cast().options().rebind(
    +
    1141 this->derived_cast().options().initial_value.has_value(),
    +
    1142 this->derived_cast().options()
    +
    1143 );
    +
    1144
    +
    1145 return this->derived_cast().build_reducer(
    +
    1146 this->derived_cast().expression().has_value(),
    +
    1147 make_xreducer_functor(xt::detail::optional_bitwise<bool>(), xt::const_value<bool>(true)),
    +
    1148 std::move(opts)
    +
    1149 );
    +
    1150 }
    +
    1151 }
    +
    1152
    +
    1153 /*****************************************
    +
    1154 * xstrided_view_optional implementation *
    +
    1155 *****************************************/
    +
    1156
    +
    1157 namespace extension
    +
    1158 {
    +
    1159 template <class CT, class S, layout_type L, class FST>
    +
    1160 inline auto xstrided_view_optional<CT, S, L, FST>::value() -> value_expression
    +
    1161 {
    +
    1162 return this->derived_cast().build_view(this->derived_cast().expression().value());
    +
    1163 }
    +
    1164
    +
    1165 template <class CT, class S, layout_type L, class FST>
    +
    1166 inline auto xstrided_view_optional<CT, S, L, FST>::value() const -> const_value_expression
    +
    1167 {
    +
    1168 return this->derived_cast().build_view(this->derived_cast().expression().value());
    +
    1169 }
    +
    1170
    +
    1171 template <class CT, class S, layout_type L, class FST>
    +
    1172 inline auto xstrided_view_optional<CT, S, L, FST>::has_value() -> flag_expression
    +
    1173 {
    +
    1174 return this->derived_cast().build_view(this->derived_cast().expression().has_value());
    +
    1175 }
    +
    1176
    +
    1177 template <class CT, class S, layout_type L, class FST>
    +
    1178 inline auto xstrided_view_optional<CT, S, L, FST>::has_value() const -> const_flag_expression
    +
    1179 {
    +
    1180 return this->derived_cast().build_view(this->derived_cast().expression().has_value());
    +
    1181 }
    +
    1182 }
    +
    1183
    +
    1184 /*********************************
    +
    1185 * xview_optional implementation *
    +
    1186 *********************************/
    +
    1187
    +
    1188 namespace extension
    +
    1189 {
    +
    1190 template <class CT, class... S>
    +
    1191 inline auto xview_optional<CT, S...>::value() -> value_expression
    +
    1192 {
    +
    1193 return this->derived_cast().build_view(this->derived_cast().expression().value());
    +
    1194 }
    +
    1195
    +
    1196 template <class CT, class... S>
    +
    1197 inline auto xview_optional<CT, S...>::value() const -> const_value_expression
    +
    1198 {
    +
    1199 return this->derived_cast().build_view(this->derived_cast().expression().value());
    +
    1200 }
    +
    1201
    +
    1202 template <class CT, class... S>
    +
    1203 inline auto xview_optional<CT, S...>::has_value() -> flag_expression
    +
    1204 {
    +
    1205 return this->derived_cast().build_view(this->derived_cast().expression().has_value());
    +
    1206 }
    +
    1207
    +
    1208 template <class CT, class... S>
    +
    1209 inline auto xview_optional<CT, S...>::has_value() const -> const_flag_expression
    +
    1210 {
    +
    1211 return this->derived_cast().build_view(this->derived_cast().expression().has_value());
    +
    1212 }
    +
    1213 }
    +
    1214
    +
    1215 /**************************************
    +
    1216 * xgenerator_optional implementation *
    +
    1217 **************************************/
    +
    1218
    +
    1219 namespace extension
    +
    1220 {
    +
    1221 template <class F, class R, class S>
    +
    1222 inline auto xgenerator_optional<F, R, S>::value() const -> const_value_expression
    +
    1223 {
    +
    1224 return this->derived_cast().template build_generator<value_closure>(
    +
    1225 detail::value_functor<F>::get(this->derived_cast().functor())
    +
    1226 );
    +
    1227 }
    +
    1228
    +
    1229 template <class F, class R, class S>
    +
    1230 inline auto xgenerator_optional<F, R, S>::has_value() const -> const_flag_expression
    +
    1231 {
    +
    1232 return this->derived_cast().template build_generator<flag_closure>(
    +
    1233 detail::flag_functor<F>::get(this->derived_cast().functor())
    +
    1234 );
    +
    1235 }
    +
    1236 }
    +
    1237
    +
    1238 /********************************
    +
    1239 * sign function implementation *
    +
    1240 ********************************/
    +
    1241
    +
    1242 namespace math
    +
    1243 {
    +
    1244 template <class T, class B>
    +
    +
    1245 struct sign_impl<xtl::xoptional<T, B>>
    +
    1246 {
    +
    1247 static constexpr auto run(const xtl::xoptional<T, B>& x)
    +
    1248 {
    +
    1249 return sign(x); // use overload declared above
    +
    1250 }
    +
    1251 };
    +
    +
    1252 }
    +
    1253
    +
    1254 template <class T, class B>
    +
    1255 inline auto sign(const xtl::xoptional<T, B>& e)
    +
    1256 {
    +
    1257 using value_type = std::decay_t<T>;
    +
    1258 return e.has_value() ? math::sign_impl<value_type>::run(e.value()) : xtl::missing<value_type>();
    +
    1259 }
    +
    1260
    +
    1261 /******************************************
    +
    1262 * value() and has_value() implementation *
    +
    1263 ******************************************/
    +
    1264
    +
    1265 template <class E, XTL_REQUIRES(is_xexpression<E>)>
    +
    1266 inline auto value(E&& e) -> detail::value_expression_t<E>
    +
    1267 {
    +
    1268 return detail::split_optional_expression<E>::value(std::forward<E>(e));
    +
    1269 }
    +
    1270
    +
    1271 template <class E, XTL_REQUIRES(is_xexpression<E>)>
    +
    1272 inline auto has_value(E&& e) -> detail::flag_expression_t<E>
    +
    1273 {
    +
    1274 return detail::split_optional_expression<E>::has_value(std::forward<E>(e));
    +
    1275 }
    +
    1276
    +
    1277 namespace detail
    +
    1278 {
    +
    1279 template <class T1, class T2>
    +
    1280 struct assign_data_impl
    +
    1281 {
    +
    1282 template <class E1, class E2>
    +
    1283 static void run(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial)
    +
    1284 {
    +
    1285 E1& de1 = e1.derived_cast();
    +
    1286 const E2& de2 = e2.derived_cast();
    +
    1287
    +
    1288 decltype(auto) bde1 = xt::value(de1);
    +
    1289 decltype(auto) hde1 = xt::has_value(de1);
    +
    1290 xexpression_assigner_base<xtensor_expression_tag>::assign_data(bde1, xt::value(de2), trivial);
    +
    1291 xexpression_assigner_base<xtensor_expression_tag>::assign_data(hde1, xt::has_value(de2), trivial);
    +
    1292 }
    +
    1293 };
    +
    1294
    +
    1295 template <class T>
    +
    1296 struct xarray_assigner
    +
    1297 {
    +
    1298 template <class E1, class E2>
    +
    1299 static void assign(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial)
    +
    1300 {
    +
    1301 E1& de1 = e1.derived_cast();
    +
    1302 const E2& de2 = e2.derived_cast();
    +
    1303 xarray<bool> mask = xt::full_like(de2, true);
    +
    1304
    +
    1305 decltype(auto) bde1 = xt::value(de1);
    +
    1306 decltype(auto) hde1 = xt::has_value(de1);
    +
    1307 xexpression_assigner_base<xtensor_expression_tag>::assign_data(bde1, e2, trivial);
    +
    1308 xexpression_assigner_base<xtensor_expression_tag>::assign_data(hde1, mask, trivial);
    +
    1309 }
    +
    1310 };
    +
    1311
    +
    1312 template <class T>
    +
    1313 struct xarray_assigner<xtl::xoptional<T>>
    +
    1314 {
    +
    1315 template <class E1, class E2>
    +
    1316 static void assign(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial)
    +
    1317 {
    +
    1318 xexpression_assigner_base<xtensor_expression_tag>::assign_data(e1, e2, trivial);
    +
    1319 }
    +
    1320 };
    +
    1321
    +
    1322 template <>
    +
    1323 struct assign_data_impl<xoptional_expression_tag, xtensor_expression_tag>
    +
    1324 {
    +
    1325 template <class E1, class E2>
    +
    1326 static void run(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial)
    +
    1327 {
    +
    1328 xarray_assigner<typename E2::value_type>::assign(e1, e2, trivial);
    +
    1329 }
    +
    1330 };
    +
    1331
    +
    1332 template <>
    +
    1333 struct assign_data_impl<xtensor_expression_tag, xoptional_expression_tag>
    +
    1334 {
    +
    1335 template <class E1, class E2>
    +
    1336 static void run(xexpression<E1>& e1, const xexpression<E2>& e2, bool trivial)
    +
    1337 {
    +
    1338 xexpression_assigner_base<xtensor_expression_tag>::assign_data(e1, e2, trivial);
    +
    1339 }
    +
    1340 };
    +
    1341 }
    +
    1342
    +
    1343 template <class E1, class E2>
    + +
    1345 xexpression<E1>& e1,
    +
    1346 const xexpression<E2>& e2,
    +
    1347 bool trivial
    +
    1348 )
    +
    1349 {
    +
    1350 detail::assign_data_impl<typename E1::expression_tag, typename E2::expression_tag>::run(e1, e2, trivial);
    +
    1351 }
    +
    1352}
    +
    1353
    +
    1354#endif
    + + + + + + + + + + + + + +
    Dense multidimensional container adaptor with tensor semantic.
    Definition xarray.hpp:216
    +
    Dense multidimensional container with tensor semantic.
    Definition xarray.hpp:84
    +
    Broadcasted xexpression to a specified shape.
    + + +
    Base class for xexpressions.
    +
    Multidimensional function operating on xtensor expressions.
    +
    View of an xexpression .
    +
    Multidimensional function operating on indices.
    +
    View of an xexpression from vector of indices.
    +
    Reducing function operating over specified axes.
    Definition xreducer.hpp:808
    + +
    View of an xexpression using strides.
    +
    Dense multidimensional container adaptor with tensor semantics and fixed dimension.
    Definition xtensor.hpp:212
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    Dense multidimensional container adaptor with view semantics and fixed dimension.
    Definition xtensor.hpp:329
    +
    Multidimensional view with tensor semantic.
    Definition xview.hpp:365
    +
    auto sign(E &&e) noexcept -> detail::xfunction_type_t< math::sign_fun, E >
    Returns an element-wise indication of the sign of a number.
    Definition xmath.hpp:877
    +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    auto ones(S shape) noexcept
    Returns an xexpression containing ones of the specified shape.
    Definition xbuilder.hpp:46
    +
    auto full_like(const xexpression< E > &e, typename E::value_type fill_value)
    Create a xcontainer (xarray, xtensor or xtensor_fixed), filled with fill_value and of the same shape,...
    Definition xbuilder.hpp:136
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xoptional__assembly_8hpp_source.html b/xoptional__assembly_8hpp_source.html new file mode 100644 index 000000000..5cae042e8 --- /dev/null +++ b/xoptional__assembly_8hpp_source.html @@ -0,0 +1,811 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional_assembly.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xoptional_assembly.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XOPTIONAL_ASSEMBLY_HPP
    +
    11#define XOPTIONAL_ASSEMBLY_HPP
    +
    12
    +
    13#include "../core/xsemantic.hpp"
    +
    14#include "../optional/xoptional.hpp"
    +
    15#include "../optional/xoptional_assembly_base.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19
    +
    20 /**********************************
    +
    21 * xoptional_assembly declaration *
    +
    22 **********************************/
    +
    23
    +
    24 template <class VE, class FE>
    + +
    26
    +
    27 template <class VE, class FE>
    +
    + +
    29 {
    +
    30 using raw_value_expression = VE;
    +
    31 using value_storage_type = typename raw_value_expression::storage_type&;
    +
    32 using raw_flag_expression = FE;
    +
    33 using flag_storage_type = typename raw_flag_expression::storage_type&;
    + +
    35 using temporary_type = xoptional_assembly<VE, FE>;
    +
    36 };
    +
    +
    37
    +
    38 template <class VE, class FE>
    +
    + +
    40 {
    +
    41 using assembly_type = xoptional_assembly<VE, FE>;
    +
    42 using inner_shape_type = typename VE::inner_shape_type;
    + + +
    45 };
    +
    +
    46
    +
    60 template <class VE, class FE>
    +
    +
    61 class xoptional_assembly : public xoptional_assembly_base<xoptional_assembly<VE, FE>>,
    +
    62 public xcontainer_semantic<xoptional_assembly<VE, FE>>
    +
    63 {
    +
    64 public:
    +
    65
    +
    66 using self_type = xoptional_assembly<VE, FE>;
    +
    67 using base_type = xoptional_assembly_base<self_type>;
    +
    68 using semantic_base = xcontainer_semantic<self_type>;
    +
    69 using raw_value_expression = typename base_type::raw_value_expression;
    +
    70 using raw_flag_expression = typename base_type::raw_flag_expression;
    +
    71 using value_expression = typename base_type::value_expression;
    +
    72 using flag_expression = typename base_type::flag_expression;
    +
    73 using const_value_expression = typename base_type::const_value_expression;
    +
    74 using const_flag_expression = typename base_type::const_flag_expression;
    +
    75 using storage_type = typename base_type::storage_type;
    +
    76 using value_type = typename base_type::value_type;
    +
    77 using reference = typename base_type::reference;
    +
    78 using const_reference = typename base_type::const_reference;
    +
    79 using pointer = typename base_type::pointer;
    +
    80 using const_pointer = typename base_type::const_pointer;
    +
    81 using shape_type = typename base_type::shape_type;
    +
    82 using strides_type = typename base_type::strides_type;
    +
    83
    +
    84 using assembly_type = base_type;
    +
    85
    + +
    87 explicit xoptional_assembly(const shape_type& shape, layout_type l = base_type::static_layout);
    + +
    89 const shape_type& shape,
    +
    90 const value_type& value,
    +
    91 layout_type l = base_type::static_layout
    +
    92 );
    +
    93 explicit xoptional_assembly(const shape_type& shape, const strides_type& strides);
    +
    94 explicit xoptional_assembly(const shape_type& shape, const strides_type& strides, const value_type& value);
    +
    95
    +
    96 xoptional_assembly(const VE& ve);
    + +
    98
    +
    99 template <class OVE, class OFE, typename = std::enable_if_t<is_xexpression<OVE>::value && is_xexpression<OFE>::value>>
    +
    100 xoptional_assembly(OVE&& ove, OFE&& ofe);
    +
    101
    +
    102 xoptional_assembly(const value_type& value);
    +
    103 xoptional_assembly(nested_initializer_list_t<value_type, 1> t);
    +
    104 xoptional_assembly(nested_initializer_list_t<value_type, 2> t);
    +
    105 xoptional_assembly(nested_initializer_list_t<value_type, 3> t);
    +
    106 xoptional_assembly(nested_initializer_list_t<value_type, 4> t);
    +
    107 xoptional_assembly(nested_initializer_list_t<value_type, 5> t);
    +
    108
    +
    109 template <class S = shape_type>
    +
    110 static xoptional_assembly from_shape(S&& s);
    +
    111
    +
    112 ~xoptional_assembly() = default;
    +
    113
    + +
    115 xoptional_assembly& operator=(const xoptional_assembly&);
    +
    116
    + + +
    119
    +
    120 template <class E>
    + +
    122
    +
    123 template <class E>
    +
    124 xoptional_assembly& operator=(const xexpression<E>& e);
    +
    125
    +
    126 private:
    +
    127
    +
    128 storage_type& storage_impl() noexcept;
    +
    129 const storage_type& storage_impl() const noexcept;
    +
    130
    +
    131 value_expression value_impl() noexcept;
    +
    132 const_value_expression value_impl() const noexcept;
    +
    133
    +
    134 flag_expression has_value_impl() noexcept;
    +
    135 const_flag_expression has_value_impl() const noexcept;
    +
    136
    +
    137 raw_value_expression m_value;
    +
    138 raw_flag_expression m_has_value;
    +
    139 storage_type m_storage;
    +
    140
    +
    141 friend class xoptional_assembly_base<xoptional_assembly<VE, FE>>;
    +
    142 };
    +
    +
    143
    +
    144 /******************************************
    +
    145 * xoptional_assembly_adaptor declaration *
    +
    146 ******************************************/
    +
    147
    +
    148 template <class VEC, class FEC>
    + +
    150
    +
    151 template <class VEC, class FEC>
    +
    + +
    153 {
    +
    154 using raw_value_expression = std::remove_reference_t<VEC>;
    +
    155 using value_storage_type = std::conditional_t<
    +
    156 std::is_const<raw_value_expression>::value,
    +
    157 const typename raw_value_expression::storage_type&,
    +
    158 typename raw_value_expression::storage_type&>;
    +
    159 using raw_flag_expression = std::remove_reference_t<FEC>;
    +
    160 using flag_storage_type = std::conditional_t<
    +
    161 std::is_const<raw_flag_expression>::value,
    +
    162 const typename raw_flag_expression::storage_type&,
    +
    163 typename raw_flag_expression::storage_type&>;
    + + +
    166 };
    +
    +
    167
    +
    168 template <class VEC, class FEC>
    +
    + +
    170 {
    +
    171 using assembly_type = xoptional_assembly_adaptor<VEC, FEC>;
    +
    172 using inner_shape_type = typename std::decay_t<VEC>::inner_shape_type;
    + + +
    175 };
    +
    +
    176
    +
    189 template <class VEC, class FEC>
    +
    +
    190 class xoptional_assembly_adaptor : public xoptional_assembly_base<xoptional_assembly_adaptor<VEC, FEC>>,
    +
    191 public xcontainer_semantic<xoptional_assembly_adaptor<VEC, FEC>>
    +
    192 {
    +
    193 public:
    +
    194
    +
    195 using self_type = xoptional_assembly_adaptor<VEC, FEC>;
    +
    196 using base_type = xoptional_assembly_base<self_type>;
    +
    197 using semantic_base = xcontainer_semantic<self_type>;
    +
    198 using storage_type = typename base_type::storage_type;
    +
    199 using value_expression = typename base_type::value_expression;
    +
    200 using flag_expression = typename base_type::flag_expression;
    +
    201 using const_value_expression = typename base_type::const_value_expression;
    +
    202 using const_flag_expression = typename base_type::const_flag_expression;
    +
    203 using value_type = typename base_type::value_type;
    +
    204 using reference = typename base_type::reference;
    +
    205 using const_reference = typename base_type::const_reference;
    +
    206 using pointer = typename base_type::pointer;
    +
    207 using const_pointer = typename base_type::const_pointer;
    +
    208 using shape_type = typename base_type::shape_type;
    +
    209 using strides_type = typename base_type::strides_type;
    +
    210 using temporary_type = typename semantic_base::temporary_type;
    +
    211
    +
    212 using assembly_type = base_type;
    +
    213
    +
    214 template <class OVE, class OFE>
    +
    215 xoptional_assembly_adaptor(OVE&& ve, OFE&& fe);
    +
    216
    +
    217 ~xoptional_assembly_adaptor() = default;
    +
    218
    + + +
    221
    + + +
    224 xoptional_assembly_adaptor& operator=(temporary_type&&);
    +
    225
    +
    226 template <class E>
    +
    227 xoptional_assembly_adaptor& operator=(const xexpression<E>& e);
    +
    228
    +
    229 private:
    +
    230
    +
    231 storage_type& storage_impl() noexcept;
    +
    232 const storage_type& storage_impl() const noexcept;
    +
    233
    +
    234 value_expression value_impl() noexcept;
    +
    235 const_value_expression value_impl() const noexcept;
    +
    236
    +
    237 flag_expression has_value_impl() noexcept;
    +
    238 const_flag_expression has_value_impl() const noexcept;
    +
    239
    +
    240 VEC m_value;
    +
    241 FEC m_has_value;
    +
    242 storage_type m_storage;
    +
    243
    +
    244 friend class xoptional_assembly_base<xoptional_assembly_adaptor<VEC, FEC>>;
    +
    245 };
    +
    +
    246
    +
    247 /*************************************
    +
    248 * xoptional_assembly implementation *
    +
    249 *************************************/
    +
    250
    +
    251 namespace detail
    +
    252 {
    +
    253 template <class T, class S>
    +
    254 inline void nested_optional_copy(T&& iter, const S& s)
    +
    255 {
    +
    256 iter->value() = s.value();
    +
    257 iter->has_value() = s.has_value();
    +
    258 ++iter;
    +
    259 }
    +
    260
    +
    261 template <class T, class S>
    +
    262 inline void nested_optional_copy(T&& iter, std::initializer_list<S> s)
    +
    263 {
    +
    264 for (auto it = s.begin(); it != s.end(); ++it)
    +
    265 {
    +
    266 nested_optional_copy(std::forward<T>(iter), *it);
    +
    267 }
    +
    268 }
    +
    269 }
    +
    270
    +
    275
    +
    278 template <class VE, class FE>
    +
    + +
    280 : m_value()
    +
    281 , m_has_value()
    +
    282 , m_storage(m_value.storage(), m_has_value.storage())
    +
    283 {
    +
    284 }
    +
    +
    285
    +
    292 template <class VE, class FE>
    +
    + +
    294 : m_value(shape, l)
    +
    295 , m_has_value(shape, l)
    +
    296 , m_storage(m_value.storage(), m_has_value.storage())
    +
    297 {
    +
    298 }
    +
    +
    299
    +
    307 template <class VE, class FE>
    +
    + +
    309 const shape_type& shape,
    +
    310 const value_type& value,
    + +
    312 )
    +
    313 : m_value(shape, value.value(), l)
    +
    314 , m_has_value(shape, value.has_value(), l)
    +
    315 , m_storage(m_value.storage(), m_has_value.storage())
    +
    316 {
    +
    317 }
    +
    +
    318
    +
    324 template <class VE, class FE>
    +
    +
    325 inline xoptional_assembly<VE, FE>::xoptional_assembly(const shape_type& shape, const strides_type& strides)
    +
    326 : m_value(shape, strides)
    +
    327 , m_has_value(shape, strides)
    +
    328 , m_storage(m_value.storage(), m_has_value.storage())
    +
    329 {
    +
    330 }
    +
    +
    331
    +
    339 template <class VE, class FE>
    +
    + +
    341 const shape_type& shape,
    +
    342 const strides_type& strides,
    +
    343 const value_type& value
    +
    344 )
    +
    345 : m_value(shape, strides, value.value())
    +
    346 , m_has_value(shape, strides, value.has_value())
    +
    347 , m_storage(m_value.storage(), m_has_value.storage())
    +
    348 {
    +
    349 }
    +
    +
    350
    +
    356 template <class VE, class FE>
    +
    + +
    358 : m_value(value.value())
    +
    359 , m_has_value(value.has_value())
    +
    360 , m_storage(m_value.storage(), m_has_value.storage())
    +
    361 {
    +
    362 }
    +
    +
    363
    +
    369 template <class VE, class FE>
    +
    + +
    371 : m_value(ve)
    +
    372 , m_has_value(ve.shape(), true, ve.layout())
    +
    373 , m_storage(m_value.storage(), m_has_value.storage())
    +
    374 {
    +
    375 }
    +
    +
    376
    +
    384 template <class VE, class FE>
    +
    + +
    386 : m_value(std::move(ve))
    +
    387 , m_has_value(ve.shape(), true, ve.layout())
    +
    388 , m_storage(m_value.storage(), m_has_value.storage())
    +
    389 {
    +
    390 }
    +
    +
    391
    +
    398 template <class VE, class FE>
    +
    399 template <class OVE, class OFE, typename>
    +
    + +
    401 : m_value(std::forward<OVE>(ove))
    +
    402 , m_has_value(std::forward<OFE>(ofe))
    +
    403 , m_storage(m_value.storage(), m_has_value.storage())
    +
    404 {
    +
    405 }
    +
    +
    406
    +
    408
    +
    413
    +
    417 template <class VE, class FE>
    +
    +
    418 inline xoptional_assembly<VE, FE>::xoptional_assembly(nested_initializer_list_t<value_type, 1> t)
    +
    419 : base_type()
    +
    420 , m_value()
    +
    421 , m_has_value()
    +
    422 , m_storage(m_value.storage(), m_has_value.storage())
    +
    423 {
    +
    424 base_type::resize(xt::shape<shape_type>(t));
    +
    425 bool condition = VE::static_layout == layout_type::row_major
    +
    426 && FE::static_layout == layout_type::row_major;
    +
    427 condition ? detail::nested_optional_copy(this->linear_begin(), t)
    +
    428 : nested_copy(this->template begin<layout_type::row_major>(), t);
    +
    429 }
    +
    +
    430
    +
    435 template <class VE, class FE>
    +
    +
    436 inline xoptional_assembly<VE, FE>::xoptional_assembly(nested_initializer_list_t<value_type, 2> t)
    +
    437 : base_type()
    +
    438 , m_value()
    +
    439 , m_has_value()
    +
    440 , m_storage(m_value.storage(), m_has_value.storage())
    +
    441 {
    +
    442 base_type::resize(xt::shape<shape_type>(t));
    +
    443 bool condition = VE::static_layout == layout_type::row_major
    +
    444 && FE::static_layout == layout_type::row_major;
    +
    445 condition ? detail::nested_optional_copy(this->linear_begin(), t)
    +
    446 : nested_copy(this->template begin<layout_type::row_major>(), t);
    +
    447 }
    +
    +
    448
    +
    453 template <class VE, class FE>
    +
    +
    454 inline xoptional_assembly<VE, FE>::xoptional_assembly(nested_initializer_list_t<value_type, 3> t)
    +
    455 : base_type()
    +
    456 , m_value()
    +
    457 , m_has_value()
    +
    458 , m_storage(m_value.storage(), m_has_value.storage())
    +
    459 {
    +
    460 base_type::resize(xt::shape<shape_type>(t));
    +
    461 bool condition = VE::static_layout == layout_type::row_major
    +
    462 && FE::static_layout == layout_type::row_major;
    +
    463 condition ? detail::nested_optional_copy(this->linear_begin(), t)
    +
    464 : nested_copy(this->template begin<layout_type::row_major>(), t);
    +
    465 }
    +
    +
    466
    +
    471 template <class VE, class FE>
    +
    +
    472 inline xoptional_assembly<VE, FE>::xoptional_assembly(nested_initializer_list_t<value_type, 4> t)
    +
    473 : base_type()
    +
    474 , m_value()
    +
    475 , m_has_value()
    +
    476 , m_storage(m_value.storage(), m_has_value.storage())
    +
    477 {
    +
    478 base_type::resize(xt::shape<shape_type>(t));
    +
    479 bool condition = VE::static_layout == layout_type::row_major
    +
    480 && FE::static_layout == layout_type::row_major;
    +
    481 condition ? detail::nested_optional_copy(this->linear_begin(), t)
    +
    482 : nested_copy(this->template begin<layout_type::row_major>(), t);
    +
    483 }
    +
    +
    484
    +
    489 template <class VE, class FE>
    +
    +
    490 inline xoptional_assembly<VE, FE>::xoptional_assembly(nested_initializer_list_t<value_type, 5> t)
    +
    491 : base_type()
    +
    492 , m_value()
    +
    493 , m_has_value()
    +
    494 , m_storage(m_value.storage(), m_has_value.storage())
    +
    495 {
    +
    496 base_type::resize(xt::shape<shape_type>(t));
    +
    497 bool condition = VE::static_layout == layout_type::row_major
    +
    498 && FE::static_layout == layout_type::row_major;
    +
    499 condition ? detail::nested_optional_copy(this->linear_begin(), t)
    +
    500 : nested_copy(this->template begin<layout_type::row_major>(), t);
    +
    501 }
    +
    +
    502
    +
    504
    +
    509 template <class VE, class FE>
    +
    510 template <class S>
    +
    +
    511 inline xoptional_assembly<VE, FE> xoptional_assembly<VE, FE>::from_shape(S&& s)
    +
    512 {
    +
    513 shape_type shape = xtl::forward_sequence<shape_type, S>(s);
    +
    514 return self_type(shape);
    +
    515 }
    +
    +
    516
    +
    517 template <class VE, class FE>
    +
    518 inline xoptional_assembly<VE, FE>::xoptional_assembly(const self_type& rhs)
    +
    519 : base_type()
    +
    520 , semantic_base()
    +
    521 , m_value(rhs.m_value)
    +
    522 , m_has_value(rhs.m_has_value)
    +
    523 , m_storage(m_value.storage(), m_has_value.storage())
    +
    524 {
    +
    525 }
    +
    526
    +
    527 template <class VE, class FE>
    + +
    529 : base_type()
    +
    530 , semantic_base()
    +
    531 , m_value(rhs.m_value)
    +
    532 , m_has_value(rhs.m_has_value)
    +
    533 , m_storage(m_value.storage(), m_has_value.storage())
    +
    534 {
    +
    535 }
    +
    536
    +
    537 template <class VE, class FE>
    +
    538 inline auto xoptional_assembly<VE, FE>::operator=(const self_type& rhs) -> self_type&
    +
    539 {
    +
    540 base_type::operator=(rhs);
    +
    541 m_value = rhs.m_value;
    +
    542 m_has_value = rhs.m_has_value;
    +
    543 return *this;
    +
    544 }
    +
    545
    +
    546 template <class VE, class FE>
    +
    547 inline auto xoptional_assembly<VE, FE>::operator=(self_type&& rhs) -> self_type&
    +
    548 {
    +
    549 base_type::operator=(rhs);
    +
    550 m_value = std::move(rhs.m_value);
    +
    551 m_has_value = std::move(rhs.m_has_value);
    +
    552 return *this;
    +
    553 }
    +
    554
    +
    559
    +
    562 template <class VE, class FE>
    +
    563 template <class E>
    +
    + +
    565 : base_type()
    +
    566 , m_value()
    +
    567 , m_has_value()
    +
    568 , m_storage(m_value.storage(), m_has_value.storage())
    +
    569 {
    +
    570 semantic_base::assign(e);
    +
    571 }
    +
    +
    572
    +
    576 template <class VE, class FE>
    +
    577 template <class E>
    +
    +
    578 inline auto xoptional_assembly<VE, FE>::operator=(const xexpression<E>& e) -> self_type&
    +
    579 {
    +
    580 return semantic_base::operator=(e);
    +
    581 }
    +
    +
    582
    +
    584
    +
    585 template <class VE, class FE>
    +
    586 inline auto xoptional_assembly<VE, FE>::storage_impl() noexcept -> storage_type&
    +
    587 {
    +
    588 return m_storage;
    +
    589 }
    +
    590
    +
    591 template <class VE, class FE>
    +
    592 inline auto xoptional_assembly<VE, FE>::storage_impl() const noexcept -> const storage_type&
    +
    593 {
    +
    594 return m_storage;
    +
    595 }
    +
    596
    +
    597 template <class VE, class FE>
    +
    598 inline auto xoptional_assembly<VE, FE>::value_impl() noexcept -> value_expression
    +
    599 {
    +
    600 return m_value;
    +
    601 }
    +
    602
    +
    603 template <class VE, class FE>
    +
    604 inline auto xoptional_assembly<VE, FE>::value_impl() const noexcept -> const_value_expression
    +
    605 {
    +
    606 return m_value;
    +
    607 }
    +
    608
    +
    609 template <class VE, class FE>
    +
    610 inline auto xoptional_assembly<VE, FE>::has_value_impl() noexcept -> flag_expression
    +
    611 {
    +
    612 return m_has_value;
    +
    613 }
    +
    614
    +
    615 template <class VE, class FE>
    +
    616 inline auto xoptional_assembly<VE, FE>::has_value_impl() const noexcept -> const_flag_expression
    +
    617 {
    +
    618 return m_has_value;
    +
    619 }
    +
    620
    +
    621 /*********************************************
    +
    622 * xoptional_assembly_adaptor implementation *
    +
    623 *********************************************/
    +
    624
    +
    629
    +
    635 template <class VEC, class FEC>
    +
    636 template <class OVE, class OFE>
    +
    + +
    638 : m_value(std::forward<OVE>(ve))
    +
    639 , m_has_value(std::forward<OFE>(fe))
    +
    640 , m_storage(m_value.storage(), m_has_value.storage())
    +
    641 {
    +
    642 }
    +
    +
    643
    +
    645
    +
    646 template <class VEC, class FEC>
    + +
    648 : base_type()
    +
    649 , semantic_base()
    +
    650 , m_value(rhs.m_value)
    +
    651 , m_has_value(rhs.m_has_value)
    +
    652 , m_storage(m_value.storage(), m_has_value.storage())
    +
    653 {
    +
    654 }
    +
    655
    +
    656 template <class VEC, class FEC>
    +
    657 inline auto xoptional_assembly_adaptor<VEC, FEC>::operator=(const self_type& rhs) -> self_type&
    +
    658 {
    +
    659 base_type::operator=(rhs);
    +
    660 m_value = rhs.m_value;
    +
    661 m_has_value = rhs.m_has_value;
    +
    662 return *this;
    +
    663 }
    +
    664
    +
    665 template <class VEC, class FEC>
    + +
    667 : base_type()
    +
    668 , semantic_base()
    +
    669 , m_value(rhs.m_value)
    +
    670 , m_has_value(rhs.m_has_value)
    +
    671 , m_storage(m_value.storage(), m_has_value.storage())
    +
    672 {
    +
    673 }
    +
    674
    +
    675 template <class VEC, class FEC>
    +
    676 inline auto xoptional_assembly_adaptor<VEC, FEC>::operator=(self_type&& rhs) -> self_type&
    +
    677 {
    +
    678 base_type::operator=(std::move(rhs));
    +
    679 m_value = rhs.m_value;
    +
    680 m_has_value = rhs.m_has_value;
    +
    681 return *this;
    +
    682 }
    +
    683
    +
    684 template <class VEC, class FEC>
    +
    685 inline auto xoptional_assembly_adaptor<VEC, FEC>::operator=(temporary_type&& tmp) -> self_type&
    +
    686 {
    +
    687 m_value = std::move(tmp.value());
    +
    688 m_has_value = std::move(tmp.has_value());
    +
    689 return *this;
    +
    690 }
    +
    691
    +
    696
    +
    699 template <class VEC, class FEC>
    +
    700 template <class E>
    +
    +
    701 inline auto xoptional_assembly_adaptor<VEC, FEC>::operator=(const xexpression<E>& e) -> self_type&
    +
    702 {
    +
    703 return semantic_base::operator=(e);
    +
    704 }
    +
    +
    705
    +
    707
    +
    708 template <class VEC, class FEC>
    +
    709 inline auto xoptional_assembly_adaptor<VEC, FEC>::storage_impl() noexcept -> storage_type&
    +
    710 {
    +
    711 return m_storage;
    +
    712 }
    +
    713
    +
    714 template <class VEC, class FEC>
    +
    715 inline auto xoptional_assembly_adaptor<VEC, FEC>::storage_impl() const noexcept -> const storage_type&
    +
    716 {
    +
    717 return m_storage;
    +
    718 }
    +
    719
    +
    720 template <class VEC, class FEC>
    +
    721 inline auto xoptional_assembly_adaptor<VEC, FEC>::value_impl() noexcept -> value_expression
    +
    722 {
    +
    723 return m_value;
    +
    724 }
    +
    725
    +
    726 template <class VEC, class FEC>
    +
    727 inline auto xoptional_assembly_adaptor<VEC, FEC>::value_impl() const noexcept -> const_value_expression
    +
    728 {
    +
    729 return m_value;
    +
    730 }
    +
    731
    +
    732 template <class VEC, class FEC>
    +
    733 inline auto xoptional_assembly_adaptor<VEC, FEC>::has_value_impl() noexcept -> flag_expression
    +
    734 {
    +
    735 return m_has_value;
    +
    736 }
    +
    737
    +
    738 template <class VEC, class FEC>
    +
    739 inline auto xoptional_assembly_adaptor<VEC, FEC>::has_value_impl() const noexcept -> const_flag_expression
    +
    740 {
    +
    741 return m_has_value;
    +
    742 }
    +
    743}
    +
    744
    +
    745#endif
    +
    Base class for xexpressions.
    +
    Dense multidimensional adaptor holding optional values, optimized for tensor operations.
    +
    xoptional_assembly_adaptor(OVE &&ve, OFE &&fe)
    Constructs an xoptional_assembly_adaptor of the given value and missing mask expressions.
    +
    const inner_shape_type & shape() const noexcept
    Returns the shape of the optional assembly.
    +
    value_expression value() noexcept
    Return an expression for the values of the optional assembly.
    + +
    const inner_strides_type & strides() const noexcept
    Returns the strides of the optional assembly.
    +
    void resize(const S &shape, bool force=false)
    + + + +
    Dense multidimensional container holding optional values, optimized for tensor operations.
    +
    xoptional_assembly()
    Allocates an uninitialized xoptional_assembly that holds 0 element.
    +
    xoptional_assembly(nested_initializer_list_t< value_type, 5 > t)
    Allocates a five-dimensional xoptional_assembly.
    +
    xoptional_assembly(OVE &&ove, OFE &&ofe)
    Allocates an xoptional_assembly from the specified value expression and missing mask expression.
    +
    xoptional_assembly(nested_initializer_list_t< value_type, 1 > t)
    Allocates a one-dimensional xoptional_assembly.
    +
    xoptional_assembly(const xexpression< E > &e)
    The extended copy constructor.
    +
    xoptional_assembly(const VE &ve)
    Allocates an xoptional_assembly from the specified value expression.
    +
    xoptional_assembly(nested_initializer_list_t< value_type, 3 > t)
    Allocates a three-dimensional xoptional_assembly.
    +
    xoptional_assembly(const shape_type &shape, layout_type l=base_type::static_layout)
    Allocates an uninitialized xoptional_assembly with the specified shape and layout_type.
    +
    xoptional_assembly(const shape_type &shape, const strides_type &strides, const value_type &value)
    Allocates an uninitialized xoptional_assembly with the specified shape and strides.
    +
    xoptional_assembly(VE &&ve)
    Allocates an xoptional_assembly from the specified value expression.
    +
    xoptional_assembly(nested_initializer_list_t< value_type, 4 > t)
    Allocates a four-dimensional xoptional_assembly.
    +
    xoptional_assembly(nested_initializer_list_t< value_type, 2 > t)
    Allocates a two-dimensional xoptional_assembly.
    +
    xoptional_assembly(const value_type &value)
    Allocates an xoptional_assembly that holds a single element initialized to the specified value.
    +
    xoptional_assembly(const shape_type &shape, const strides_type &strides)
    Allocates an uninitialized xoptional_assembly with the specified shape and strides.
    +
    xoptional_assembly(const shape_type &shape, const value_type &value, layout_type l=base_type::static_layout)
    Allocates an xoptional_assembly with the specified shape and layout_type.
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + +
    +
    + + + + diff --git a/xoptional__assembly__base_8hpp_source.html b/xoptional__assembly__base_8hpp_source.html new file mode 100644 index 000000000..8a37ebd4f --- /dev/null +++ b/xoptional__assembly__base_8hpp_source.html @@ -0,0 +1,1042 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional_assembly_base.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xoptional_assembly_base.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XOPTIONAL_ASSEMBLY_BASE_HPP
    +
    11#define XOPTIONAL_ASSEMBLY_BASE_HPP
    +
    12
    +
    13#include "../core/xiterable.hpp"
    +
    14#include "../core/xtensor_forward.hpp"
    +
    15#include "../optional/xoptional_assembly_storage.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19 template <class D, bool is_const>
    + +
    21
    +
    22 /***************************
    +
    23 * xoptional_assembly_base *
    +
    24 ***************************/
    +
    25
    +
    38 template <class D>
    +
    +
    39 class xoptional_assembly_base : private xiterable<D>
    +
    40 {
    +
    41 public:
    +
    42
    +
    43 using self_type = xoptional_assembly_base<D>;
    +
    44 using derived_type = D;
    +
    45 using inner_types = xcontainer_inner_types<D>;
    +
    46
    +
    47 using raw_value_expression = typename inner_types::raw_value_expression;
    +
    48 using base_value_type = typename raw_value_expression::value_type;
    +
    49 using base_reference = typename raw_value_expression::reference;
    +
    50 using base_const_reference = typename raw_value_expression::const_reference;
    +
    51
    +
    52 using raw_flag_expression = typename inner_types::raw_flag_expression;
    +
    53 using flag_type = typename raw_flag_expression::value_type;
    +
    54 using flag_reference = typename raw_flag_expression::reference;
    +
    55 using flag_const_reference = typename raw_flag_expression::const_reference;
    +
    56
    +
    57 using storage_type = typename inner_types::storage_type;
    +
    58
    +
    59 using value_type = typename storage_type::value_type;
    +
    60 using reference = typename storage_type::reference;
    +
    61 using const_reference = typename storage_type::const_reference;
    +
    62 using pointer = typename storage_type::pointer;
    +
    63 using const_pointer = typename storage_type::const_pointer;
    +
    64 using size_type = typename raw_value_expression::size_type;
    +
    65 using difference_type = typename raw_value_expression::difference_type;
    +
    66 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    67 using bool_load_type = xt::bool_load_type<value_type>;
    +
    68
    +
    69 using shape_type = typename raw_value_expression::shape_type;
    +
    70 using strides_type = typename raw_value_expression::strides_type;
    +
    71 using backstrides_type = typename raw_value_expression::backstrides_type;
    +
    72
    +
    73 using inner_shape_type = typename raw_value_expression::inner_shape_type;
    +
    74 using inner_strides_type = typename raw_value_expression::inner_strides_type;
    +
    75 using inner_backstrides_type = typename raw_value_expression::inner_backstrides_type;
    +
    76
    +
    77 using iterable_base = xiterable<D>;
    +
    78 using stepper = typename iterable_base::stepper;
    +
    79 using const_stepper = typename iterable_base::const_stepper;
    +
    80
    +
    81 static constexpr layout_type static_layout = raw_value_expression::static_layout;
    +
    82 static constexpr bool contiguous_layout = raw_value_expression::contiguous_layout;
    +
    83
    +
    84 using expression_tag = xoptional_expression_tag;
    +
    85 using value_expression = raw_value_expression&;
    +
    86 using flag_expression = raw_flag_expression&;
    +
    87 using const_value_expression = const raw_value_expression&;
    +
    88 using const_flag_expression = const raw_flag_expression&;
    +
    89
    +
    90 template <layout_type L>
    +
    91 using layout_iterator = typename iterable_base::template layout_iterator<L>;
    +
    92 template <layout_type L>
    +
    93 using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>;
    +
    94 template <layout_type L>
    +
    95 using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>;
    +
    96 template <layout_type L>
    +
    97 using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>;
    +
    98
    +
    99 template <class S, layout_type L>
    +
    100 using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>;
    +
    101 template <class S, layout_type L>
    +
    102 using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>;
    +
    103 template <class S, layout_type L>
    +
    104 using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>;
    +
    105 template <class S, layout_type L>
    +
    106 using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>;
    +
    107
    +
    108 using linear_iterator = typename storage_type::iterator;
    +
    109 using const_linear_iterator = typename storage_type::const_iterator;
    +
    110 using reverse_linear_iterator = typename storage_type::reverse_iterator;
    +
    111 using const_reverse_linear_iterator = typename storage_type::const_reverse_iterator;
    +
    112
    +
    113 using iterator = typename iterable_base::iterator;
    +
    114 using const_iterator = typename iterable_base::const_iterator;
    +
    115 using reverse_iterator = typename iterable_base::reverse_iterator;
    +
    116 using const_reverse_iterator = typename iterable_base::const_reverse_iterator;
    +
    117
    +
    118 size_type size() const noexcept;
    +
    119 constexpr size_type dimension() const noexcept;
    +
    120 const inner_shape_type& shape() const noexcept;
    +
    121 size_type shape(size_type index) const;
    +
    122 const inner_strides_type& strides() const noexcept;
    +
    123 const inner_backstrides_type& backstrides() const noexcept;
    +
    124
    +
    125 template <class S = shape_type>
    +
    126 void resize(const S& shape, bool force = false);
    +
    127 template <class S = shape_type>
    +
    128 void resize(const S& shape, layout_type l);
    +
    129 template <class S = shape_type>
    +
    130 void resize(const S& shape, const strides_type& strides);
    +
    131
    +
    132 template <class S = shape_type>
    +
    133 auto& reshape(const S& shape, layout_type layout = static_layout) &;
    +
    134
    +
    135 template <class T>
    +
    136 auto& reshape(std::initializer_list<T> shape, layout_type layout = static_layout) &;
    +
    137
    +
    138 layout_type layout() const noexcept;
    +
    139 bool is_contiguous() const noexcept;
    +
    140
    +
    141 template <class T>
    +
    142 void fill(const T& value);
    +
    143
    +
    144 template <class... Args>
    +
    145 reference operator()(Args... args);
    +
    146
    +
    147 template <class... Args>
    +
    148 const_reference operator()(Args... args) const;
    +
    149
    +
    150 template <class... Args>
    +
    151 reference at(Args... args);
    +
    152
    +
    153 template <class... Args>
    +
    154 const_reference at(Args... args) const;
    +
    155
    +
    156 template <class... Args>
    +
    157 reference unchecked(Args... args);
    +
    158
    +
    159 template <class... Args>
    +
    160 const_reference unchecked(Args... args) const;
    +
    161
    +
    162 template <class S>
    +
    163 disable_integral_t<S, reference> operator[](const S& index);
    +
    164 template <class I>
    +
    165 reference operator[](std::initializer_list<I> index);
    +
    166 reference operator[](size_type i);
    +
    167
    +
    168 template <class S>
    +
    169 disable_integral_t<S, const_reference> operator[](const S& index) const;
    +
    170 template <class I>
    +
    171 const_reference operator[](std::initializer_list<I> index) const;
    +
    172 const_reference operator[](size_type i) const;
    +
    173
    +
    174 template <class... Args>
    +
    175 reference periodic(Args... args);
    +
    176
    +
    177 template <class... Args>
    +
    178 const_reference periodic(Args... args) const;
    +
    179
    +
    180 reference front();
    +
    181 const_reference front() const;
    +
    182
    +
    183 reference back();
    +
    184 const_reference back() const;
    +
    185
    +
    186 reference flat(size_type args);
    +
    187 const_reference flat(size_type args) const;
    +
    188
    +
    189 template <class It>
    +
    190 reference element(It first, It last);
    +
    191 template <class It>
    +
    192 const_reference element(It first, It last) const;
    +
    193
    +
    194 template <class... Args>
    +
    195 bool in_bounds(Args... args) const;
    +
    196
    +
    197 storage_type& storage() noexcept;
    +
    198 const storage_type& storage() const noexcept;
    +
    199
    +
    200 value_type* data() noexcept;
    +
    201 const value_type* data() const noexcept;
    +
    202 const size_type data_offset() const noexcept;
    +
    203
    +
    204 template <class S>
    +
    205 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    206
    +
    207 template <class S>
    +
    208 bool has_linear_assign(const S& strides) const noexcept;
    +
    209
    +
    210 using iterable_base::begin;
    +
    211 using iterable_base::cbegin;
    +
    212 using iterable_base::cend;
    +
    213 using iterable_base::crbegin;
    +
    214 using iterable_base::crend;
    +
    215 using iterable_base::end;
    +
    216 using iterable_base::rbegin;
    +
    217 using iterable_base::rend;
    +
    218
    +
    219 linear_iterator linear_begin() noexcept;
    +
    220 linear_iterator linear_end() noexcept;
    +
    221
    +
    222 const_linear_iterator linear_begin() const noexcept;
    +
    223 const_linear_iterator linear_end() const noexcept;
    +
    224 const_linear_iterator linear_cbegin() const noexcept;
    +
    225 const_linear_iterator linear_cend() const noexcept;
    +
    226
    +
    227 reverse_linear_iterator linear_rbegin() noexcept;
    +
    228 reverse_linear_iterator linear_rend() noexcept;
    +
    229
    +
    230 const_reverse_linear_iterator linear_rbegin() const noexcept;
    +
    231 const_reverse_linear_iterator linear_rend() const noexcept;
    +
    232 const_reverse_linear_iterator linear_crbegin() const noexcept;
    +
    233 const_reverse_linear_iterator linear_crend() const noexcept;
    +
    234
    +
    235 template <class S>
    +
    236 stepper stepper_begin(const S& shape) noexcept;
    +
    237 template <class S>
    +
    238 stepper stepper_end(const S& shape, layout_type l) noexcept;
    +
    239
    +
    240 template <class S>
    +
    241 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    242 template <class S>
    +
    243 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    244
    +
    245 value_expression value() noexcept;
    +
    246 const_value_expression value() const noexcept;
    +
    247
    +
    248 flag_expression has_value() noexcept;
    +
    249 const_flag_expression has_value() const noexcept;
    +
    250
    +
    251 protected:
    +
    252
    +
    253 xoptional_assembly_base() = default;
    +
    254 ~xoptional_assembly_base() = default;
    +
    255
    +
    256 xoptional_assembly_base(const xoptional_assembly_base&) = default;
    +
    257 xoptional_assembly_base& operator=(const xoptional_assembly_base&) = default;
    +
    258
    +
    259 xoptional_assembly_base(xoptional_assembly_base&&) = default;
    +
    260 xoptional_assembly_base& operator=(xoptional_assembly_base&&) = default;
    +
    261
    +
    262 private:
    +
    263
    +
    264 derived_type& derived_cast() noexcept;
    +
    265 const derived_type& derived_cast() const noexcept;
    +
    266
    +
    267 friend class xiterable<D>;
    +
    268 friend class xconst_iterable<D>;
    +
    269 };
    +
    +
    270
    +
    271 /******************************
    +
    272 * xoptional_assembly_stepper *
    +
    273 ******************************/
    +
    274
    +
    275 template <class D, bool is_const>
    +
    +
    276 class xoptional_assembly_stepper
    +
    277 {
    +
    278 public:
    +
    279
    +
    280 using self_type = xoptional_assembly_stepper<D, is_const>;
    +
    281 using assembly_type = typename D::assembly_type;
    +
    282 using value_type = typename assembly_type::value_type;
    +
    283 using reference = std::
    +
    284 conditional_t<is_const, typename assembly_type::const_reference, typename assembly_type::reference>;
    +
    285 using pointer = std::conditional_t<is_const, typename assembly_type::const_pointer, typename assembly_type::pointer>;
    +
    286 using size_type = typename assembly_type::size_type;
    +
    287 using difference_type = typename assembly_type::difference_type;
    +
    288 using raw_value_expression = typename assembly_type::raw_value_expression;
    +
    289 using raw_flag_expression = typename assembly_type::raw_flag_expression;
    +
    290 using value_stepper = std::
    +
    291 conditional_t<is_const, typename raw_value_expression::const_stepper, typename raw_value_expression::stepper>;
    +
    292 using flag_stepper = std::
    +
    293 conditional_t<is_const, typename raw_flag_expression::const_stepper, typename raw_flag_expression::stepper>;
    +
    294
    +
    295 xoptional_assembly_stepper(value_stepper vs, flag_stepper fs) noexcept;
    +
    296
    +
    297
    +
    298 void step(size_type dim);
    +
    299 void step_back(size_type dim);
    +
    300 void step(size_type dim, size_type n);
    +
    301 void step_back(size_type dim, size_type n);
    +
    302 void reset(size_type dim);
    +
    303 void reset_back(size_type dim);
    +
    304
    +
    305 void to_begin();
    +
    306 void to_end(layout_type l);
    +
    307
    +
    308 reference operator*() const;
    +
    309
    +
    310 private:
    +
    311
    +
    312 value_stepper m_vs;
    +
    313 flag_stepper m_fs;
    +
    314 };
    +
    +
    315
    +
    316 /******************************************
    +
    317 * xoptional_assembly_base implementation *
    +
    318 ******************************************/
    +
    319
    +
    324
    +
    327 template <class D>
    +
    +
    328 inline auto xoptional_assembly_base<D>::size() const noexcept -> size_type
    +
    329 {
    +
    330 return value().size();
    +
    331 }
    +
    +
    332
    +
    336 template <class D>
    +
    +
    337 inline constexpr auto xoptional_assembly_base<D>::dimension() const noexcept -> size_type
    +
    338 {
    +
    339 return value().dimension();
    +
    340 }
    +
    +
    341
    +
    345 template <class D>
    +
    +
    346 inline auto xoptional_assembly_base<D>::shape() const noexcept -> const inner_shape_type&
    +
    347 {
    +
    348 return value().shape();
    +
    349 }
    +
    +
    350
    +
    354 template <class D>
    +
    +
    355 inline auto xoptional_assembly_base<D>::shape(size_type i) const -> size_type
    +
    356 {
    +
    357 return value().shape(i);
    +
    358 }
    +
    +
    359
    +
    363 template <class D>
    +
    +
    364 inline auto xoptional_assembly_base<D>::strides() const noexcept -> const inner_strides_type&
    +
    365 {
    +
    366 return value().strides();
    +
    367 }
    +
    +
    368
    +
    372 template <class D>
    +
    +
    373 inline auto xoptional_assembly_base<D>::backstrides() const noexcept -> const inner_backstrides_type&
    +
    374 {
    +
    375 return value().backstrides();
    +
    376 }
    +
    +
    377
    +
    379
    +
    385 template <class D>
    +
    386 template <class S>
    +
    +
    387 inline void xoptional_assembly_base<D>::resize(const S& shape, bool force)
    +
    388 {
    +
    389 value().resize(shape, force);
    +
    390 has_value().resize(shape, force);
    +
    391 }
    +
    +
    392
    +
    398 template <class D>
    +
    399 template <class S>
    +
    + +
    401 {
    +
    402 value().resize(shape, l);
    +
    403 has_value().resize(shape, l);
    +
    404 }
    +
    +
    405
    +
    411 template <class D>
    +
    412 template <class S>
    +
    +
    413 inline void xoptional_assembly_base<D>::resize(const S& shape, const strides_type& strides)
    +
    414 {
    +
    415 value().resize(shape, strides);
    +
    416 has_value().resize(shape, strides);
    +
    417 }
    +
    +
    418
    +
    424 template <class D>
    +
    425 template <class S>
    +
    + +
    427 {
    +
    428 value().reshape(shape, layout);
    +
    429 has_value().reshape(shape, layout);
    +
    430 return *this;
    +
    431 }
    +
    +
    432
    +
    433 template <class D>
    +
    434 template <class T>
    +
    435 inline auto& xoptional_assembly_base<D>::reshape(std::initializer_list<T> shape, layout_type layout) &
    +
    436 {
    +
    437 value().reshape(shape, layout);
    +
    438 has_value().reshape(shape, layout);
    +
    439 return *this;
    +
    440 }
    +
    441
    +
    446 template <class D>
    +
    + +
    448 {
    +
    449 return value().layout();
    +
    450 }
    +
    +
    451
    +
    452 template <class D>
    +
    453 inline bool xoptional_assembly_base<D>::is_contiguous() const noexcept
    +
    454 {
    +
    455 return value().is_contiguous();
    +
    456 }
    +
    457
    +
    462 template <class D>
    +
    463 template <class T>
    +
    + +
    465 {
    +
    466 std::fill(this->linear_begin(), this->linear_end(), value);
    +
    467 }
    +
    +
    468
    +
    473
    +
    479 template <class D>
    +
    480 template <class... Args>
    +
    +
    481 inline auto xoptional_assembly_base<D>::operator()(Args... args) -> reference
    +
    482 {
    +
    483 return reference(value()(args...), has_value()(args...));
    +
    484 }
    +
    +
    485
    +
    492 template <class D>
    +
    493 template <class... Args>
    +
    +
    494 inline auto xoptional_assembly_base<D>::operator()(Args... args) const -> const_reference
    +
    495 {
    +
    496 return const_reference(value()(args...), has_value()(args...));
    +
    497 }
    +
    +
    498
    +
    508 template <class D>
    +
    509 template <class... Args>
    +
    +
    510 inline auto xoptional_assembly_base<D>::at(Args... args) -> reference
    +
    511 {
    +
    512 return reference(value().at(args...), has_value().at(args...));
    +
    513 }
    +
    +
    514
    +
    524 template <class D>
    +
    525 template <class... Args>
    +
    +
    526 inline auto xoptional_assembly_base<D>::at(Args... args) const -> const_reference
    +
    527 {
    +
    528 return const_reference(value().at(args...), has_value().at(args...));
    +
    529 }
    +
    +
    530
    +
    550 template <class D>
    +
    551 template <class... Args>
    +
    +
    552 inline auto xoptional_assembly_base<D>::unchecked(Args... args) -> reference
    +
    553 {
    +
    554 return reference(value().unchecked(args...), has_value().unchecked(args...));
    +
    555 }
    +
    +
    556
    +
    576 template <class D>
    +
    577 template <class... Args>
    +
    +
    578 inline auto xoptional_assembly_base<D>::unchecked(Args... args) const -> const_reference
    +
    579 {
    +
    580 return const_reference(value().unchecked(args...), has_value().unchecked(args...));
    +
    581 }
    +
    +
    582
    +
    589 template <class D>
    +
    590 template <class S>
    +
    +
    591 inline auto xoptional_assembly_base<D>::operator[](const S& index) -> disable_integral_t<S, reference>
    +
    592 {
    +
    593 return reference(value()[index], has_value()[index]);
    +
    594 }
    +
    +
    595
    +
    596 template <class D>
    +
    597 template <class I>
    +
    598 inline auto xoptional_assembly_base<D>::operator[](std::initializer_list<I> index) -> reference
    +
    599 {
    +
    600 return reference(value()[index], has_value()[index]);
    +
    601 }
    +
    602
    +
    603 template <class D>
    +
    604 inline auto xoptional_assembly_base<D>::operator[](size_type i) -> reference
    +
    605 {
    +
    606 return reference(value()[i], has_value()[i]);
    +
    607 }
    +
    608
    +
    615 template <class D>
    +
    616 template <class S>
    +
    +
    617 inline auto xoptional_assembly_base<D>::operator[](const S& index) const
    +
    618 -> disable_integral_t<S, const_reference>
    +
    619 {
    +
    620 return const_reference(value()[index], has_value()[index]);
    +
    621 }
    +
    +
    622
    +
    623 template <class D>
    +
    624 template <class I>
    +
    625 inline auto xoptional_assembly_base<D>::operator[](std::initializer_list<I> index) const -> const_reference
    +
    626 {
    +
    627 return const_reference(value()[index], has_value()[index]);
    +
    628 }
    +
    629
    +
    630 template <class D>
    +
    631 inline auto xoptional_assembly_base<D>::operator[](size_type i) const -> const_reference
    +
    632 {
    +
    633 return const_reference(value()[i], has_value()[i]);
    +
    634 }
    +
    635
    +
    643 template <class D>
    +
    644 template <class... Args>
    +
    +
    645 inline auto xoptional_assembly_base<D>::periodic(Args... args) -> reference
    +
    646 {
    +
    647 return reference(value().periodic(args...), has_value().periodic(args...));
    +
    648 }
    +
    +
    649
    +
    657 template <class D>
    +
    658 template <class... Args>
    +
    +
    659 inline auto xoptional_assembly_base<D>::periodic(Args... args) const -> const_reference
    +
    660 {
    +
    661 return const_reference(value().periodic(args...), has_value().periodic(args...));
    +
    662 }
    +
    +
    663
    +
    667 template <class D>
    +
    +
    668 inline auto xoptional_assembly_base<D>::front() -> reference
    +
    669 {
    +
    670 return reference(value().front(), has_value().front());
    +
    671 }
    +
    +
    672
    +
    676 template <class D>
    +
    +
    677 inline auto xoptional_assembly_base<D>::front() const -> const_reference
    +
    678 {
    +
    679 return const_reference(value().front(), has_value().front());
    +
    680 }
    +
    +
    681
    +
    685 template <class D>
    +
    +
    686 inline auto xoptional_assembly_base<D>::back() -> reference
    +
    687 {
    +
    688 return reference(value().back(), has_value().back());
    +
    689 }
    +
    +
    690
    +
    694 template <class D>
    +
    +
    695 inline auto xoptional_assembly_base<D>::back() const -> const_reference
    +
    696 {
    +
    697 return const_reference(value().back(), has_value().back());
    +
    698 }
    +
    +
    699
    +
    705 template <class D>
    +
    +
    706 inline auto xoptional_assembly_base<D>::flat(size_type i) -> reference
    +
    707 {
    +
    708 return reference(value().flat(i), has_value().flat(i));
    +
    709 }
    +
    +
    710
    +
    716 template <class D>
    +
    +
    717 inline auto xoptional_assembly_base<D>::flat(size_type i) const -> const_reference
    +
    718 {
    +
    719 return const_reference(value().flat(i), has_value().flat(i));
    +
    720 }
    +
    +
    721
    +
    729 template <class D>
    +
    730 template <class It>
    +
    +
    731 inline auto xoptional_assembly_base<D>::element(It first, It last) -> reference
    +
    732 {
    +
    733 return reference(value().element(first, last), has_value().element(first, last));
    +
    734 }
    +
    +
    735
    +
    743 template <class D>
    +
    744 template <class It>
    +
    +
    745 inline auto xoptional_assembly_base<D>::element(It first, It last) const -> const_reference
    +
    746 {
    +
    747 return const_reference(value().element(first, last), has_value().element(first, last));
    +
    748 }
    +
    +
    749
    +
    755 template <class D>
    +
    756 template <class... Args>
    +
    +
    757 inline bool xoptional_assembly_base<D>::in_bounds(Args... args) const
    +
    758 {
    +
    759 return value().in_bounds(args...) && has_value().in_bounds(args...);
    +
    760 }
    +
    +
    761
    +
    763
    +
    764 template <class D>
    +
    765 inline auto xoptional_assembly_base<D>::storage() noexcept -> storage_type&
    +
    766 {
    +
    767 return derived_cast().storage_impl();
    +
    768 }
    +
    769
    +
    770 template <class D>
    +
    771 inline auto xoptional_assembly_base<D>::storage() const noexcept -> const storage_type&
    +
    772 {
    +
    773 return derived_cast().storage_impl();
    +
    774 }
    +
    775
    +
    776 template <class D>
    +
    777 inline auto xoptional_assembly_base<D>::data() noexcept -> value_type*
    +
    778 {
    +
    779 return storage().data();
    +
    780 }
    +
    781
    +
    782 template <class D>
    +
    783 inline auto xoptional_assembly_base<D>::data() const noexcept -> const value_type*
    +
    784 {
    +
    785 return storage().data();
    +
    786 }
    +
    787
    +
    788 template <class D>
    +
    789 inline auto xoptional_assembly_base<D>::data_offset() const noexcept -> const size_type
    +
    790 {
    +
    791 return size_type(0);
    +
    792 }
    +
    793
    +
    798
    +
    804 template <class D>
    +
    805 template <class S>
    +
    +
    806 inline bool xoptional_assembly_base<D>::broadcast_shape(S& shape, bool reuse_cache) const
    +
    807 {
    +
    808 bool res = value().broadcast_shape(shape, reuse_cache);
    +
    809 return res && has_value().broadcast_shape(shape, reuse_cache);
    +
    810 }
    +
    +
    811
    +
    817 template <class D>
    +
    818 template <class S>
    +
    +
    819 inline bool xoptional_assembly_base<D>::has_linear_assign(const S& strides) const noexcept
    +
    820 {
    +
    821 return value().has_linear_assign(strides) && has_value().has_linear_assign(strides);
    +
    822 }
    +
    +
    823
    +
    825
    +
    826 template <class D>
    +
    827 inline auto xoptional_assembly_base<D>::linear_begin() noexcept -> linear_iterator
    +
    828 {
    +
    829 return linear_iterator(value().linear_begin(), has_value().linear_begin());
    +
    830 }
    +
    831
    +
    832 template <class D>
    +
    833 inline auto xoptional_assembly_base<D>::linear_end() noexcept -> linear_iterator
    +
    834 {
    +
    835 return linear_iterator(value().linear_end(), has_value().linear_end());
    +
    836 }
    +
    837
    +
    838 template <class D>
    +
    839 inline auto xoptional_assembly_base<D>::linear_begin() const noexcept -> const_linear_iterator
    +
    840 {
    +
    841 return linear_cbegin();
    +
    842 }
    +
    843
    +
    844 template <class D>
    +
    845 inline auto xoptional_assembly_base<D>::linear_end() const noexcept -> const_linear_iterator
    +
    846 {
    +
    847 return linear_cend();
    +
    848 }
    +
    849
    +
    850 template <class D>
    +
    851 inline auto xoptional_assembly_base<D>::linear_cbegin() const noexcept -> const_linear_iterator
    +
    852 {
    +
    853 return const_linear_iterator(value().linear_cbegin(), has_value().linear_cbegin());
    +
    854 }
    +
    855
    +
    856 template <class D>
    +
    857 inline auto xoptional_assembly_base<D>::linear_cend() const noexcept -> const_linear_iterator
    +
    858 {
    +
    859 return const_linear_iterator(value().linear_cend(), has_value().linear_cend());
    +
    860 }
    +
    861
    +
    862 template <class D>
    +
    863 inline auto xoptional_assembly_base<D>::linear_rbegin() noexcept -> reverse_linear_iterator
    +
    864 {
    +
    865 return reverse_linear_iterator(linear_end());
    +
    866 }
    +
    867
    +
    868 template <class D>
    +
    869 inline auto xoptional_assembly_base<D>::linear_rend() noexcept -> reverse_linear_iterator
    +
    870 {
    +
    871 return reverse_linear_iterator(linear_begin());
    +
    872 }
    +
    873
    +
    874 template <class D>
    +
    875 inline auto xoptional_assembly_base<D>::linear_rbegin() const noexcept -> const_reverse_linear_iterator
    +
    876 {
    +
    877 return linear_crbegin();
    +
    878 }
    +
    879
    +
    880 template <class D>
    +
    881 inline auto xoptional_assembly_base<D>::linear_rend() const noexcept -> const_reverse_linear_iterator
    +
    882 {
    +
    883 return linear_crend();
    +
    884 }
    +
    885
    +
    886 template <class D>
    +
    887 inline auto xoptional_assembly_base<D>::linear_crbegin() const noexcept -> const_reverse_linear_iterator
    +
    888 {
    +
    889 return const_reverse_linear_iterator(linear_cend());
    +
    890 }
    +
    891
    +
    892 template <class D>
    +
    893 inline auto xoptional_assembly_base<D>::linear_crend() const noexcept -> const_reverse_linear_iterator
    +
    894 {
    +
    895 return const_reverse_linear_iterator(linear_cbegin());
    +
    896 }
    +
    897
    +
    898 template <class D>
    +
    899 template <class S>
    +
    900 inline auto xoptional_assembly_base<D>::stepper_begin(const S& shape) noexcept -> stepper
    +
    901 {
    +
    902 return stepper(value().stepper_begin(shape), has_value().stepper_begin(shape));
    +
    903 }
    +
    904
    +
    905 template <class D>
    +
    906 template <class S>
    +
    907 inline auto xoptional_assembly_base<D>::stepper_end(const S& shape, layout_type l) noexcept -> stepper
    +
    908 {
    +
    909 return stepper(value().stepper_end(shape, l), has_value().stepper_end(shape, l));
    +
    910 }
    +
    911
    +
    912 template <class D>
    +
    913 template <class S>
    +
    914 inline auto xoptional_assembly_base<D>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    915 {
    +
    916 return const_stepper(value().stepper_begin(shape), has_value().stepper_begin(shape));
    +
    917 }
    +
    918
    +
    919 template <class D>
    +
    920 template <class S>
    +
    921 inline auto xoptional_assembly_base<D>::stepper_end(const S& shape, layout_type l) const noexcept
    +
    922 -> const_stepper
    +
    923 {
    +
    924 return const_stepper(value().stepper_end(shape, l), has_value().stepper_end(shape, l));
    +
    925 }
    +
    926
    +
    930 template <class D>
    +
    +
    931 inline auto xoptional_assembly_base<D>::value() noexcept -> value_expression
    +
    932 {
    +
    933 return derived_cast().value_impl();
    +
    934 }
    +
    +
    935
    +
    939 template <class D>
    +
    +
    940 inline auto xoptional_assembly_base<D>::value() const noexcept -> const_value_expression
    +
    941 {
    +
    942 return derived_cast().value_impl();
    +
    943 }
    +
    +
    944
    +
    948 template <class D>
    +
    +
    949 inline auto xoptional_assembly_base<D>::has_value() noexcept -> flag_expression
    +
    950 {
    +
    951 return derived_cast().has_value_impl();
    +
    952 }
    +
    +
    953
    +
    957 template <class D>
    +
    +
    958 inline auto xoptional_assembly_base<D>::has_value() const noexcept -> const_flag_expression
    +
    959 {
    +
    960 return derived_cast().has_value_impl();
    +
    961 }
    +
    +
    962
    +
    963 template <class D>
    +
    964 inline auto xoptional_assembly_base<D>::derived_cast() noexcept -> derived_type&
    +
    965 {
    +
    966 return *static_cast<derived_type*>(this);
    +
    967 }
    +
    968
    +
    969 template <class D>
    +
    970 inline auto xoptional_assembly_base<D>::derived_cast() const noexcept -> const derived_type&
    +
    971 {
    +
    972 return *static_cast<const derived_type*>(this);
    +
    973 }
    +
    974
    +
    975 /*********************************************
    +
    976 * xoptional_assembly_stepper implementation *
    +
    977 *********************************************/
    +
    978
    +
    979 template <class D, bool C>
    +
    980 inline xoptional_assembly_stepper<D, C>::xoptional_assembly_stepper(value_stepper vs, flag_stepper fs) noexcept
    +
    981 : m_vs(vs)
    +
    982 , m_fs(fs)
    +
    983 {
    +
    984 }
    +
    985
    +
    986 template <class D, bool C>
    +
    987 inline void xoptional_assembly_stepper<D, C>::step(size_type dim)
    +
    988 {
    +
    989 m_vs.step(dim);
    +
    990 m_fs.step(dim);
    +
    991 }
    +
    992
    +
    993 template <class D, bool C>
    +
    994 inline void xoptional_assembly_stepper<D, C>::step_back(size_type dim)
    +
    995 {
    +
    996 m_vs.step_back(dim);
    +
    997 m_fs.step_back(dim);
    +
    998 }
    +
    999
    +
    1000 template <class D, bool C>
    +
    1001 inline void xoptional_assembly_stepper<D, C>::step(size_type dim, size_type n)
    +
    1002 {
    +
    1003 m_vs.step(dim, n);
    +
    1004 m_fs.step(dim, n);
    +
    1005 }
    +
    1006
    +
    1007 template <class D, bool C>
    +
    1008 inline void xoptional_assembly_stepper<D, C>::step_back(size_type dim, size_type n)
    +
    1009 {
    +
    1010 m_vs.step_back(dim, n);
    +
    1011 m_fs.step_back(dim, n);
    +
    1012 }
    +
    1013
    +
    1014 template <class D, bool C>
    +
    1015 inline void xoptional_assembly_stepper<D, C>::reset(size_type dim)
    +
    1016 {
    +
    1017 m_vs.reset(dim);
    +
    1018 m_fs.reset(dim);
    +
    1019 }
    +
    1020
    +
    1021 template <class D, bool C>
    +
    1022 inline void xoptional_assembly_stepper<D, C>::reset_back(size_type dim)
    +
    1023 {
    +
    1024 m_vs.reset_back(dim);
    +
    1025 m_fs.reset_back(dim);
    +
    1026 }
    +
    1027
    +
    1028 template <class D, bool C>
    +
    1029 inline void xoptional_assembly_stepper<D, C>::to_begin()
    +
    1030 {
    +
    1031 m_vs.to_begin();
    +
    1032 m_fs.to_begin();
    +
    1033 }
    +
    1034
    +
    1035 template <class D, bool C>
    +
    1036 inline void xoptional_assembly_stepper<D, C>::to_end(layout_type l)
    +
    1037 {
    +
    1038 m_vs.to_end(l);
    +
    1039 m_fs.to_end(l);
    +
    1040 }
    +
    1041
    +
    1042 template <class D, bool C>
    +
    1043 inline auto xoptional_assembly_stepper<D, C>::operator*() const -> reference
    +
    1044 {
    +
    1045 return reference(*m_vs, *m_fs);
    +
    1046 }
    +
    1047}
    +
    1048
    +
    1049#endif
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    Base class for multidimensional iterable expressions.
    +
    const inner_backstrides_type & backstrides() const noexcept
    + +
    bool in_bounds(Args... args) const
    +
    size_type size() const noexcept
    Returns the number of element in the optional assembly.
    + +
    const inner_shape_type & shape() const noexcept
    +
    value_expression value() noexcept
    + +
    bool has_linear_assign(const S &strides) const noexcept
    +
    layout_type layout() const noexcept
    +
    constexpr size_type dimension() const noexcept
    +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    +
    const inner_strides_type & strides() const noexcept
    + +
    void resize(const S &shape, bool force=false)
    +
    auto & reshape(const S &shape, layout_type layout=static_layout) &
    +
    flag_expression has_value() noexcept
    + +
    auto operator*(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
    Multiplication.
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + +
    +
    + + + + diff --git a/xoptional__assembly__storage_8hpp_source.html b/xoptional__assembly__storage_8hpp_source.html new file mode 100644 index 000000000..8e16ed6be --- /dev/null +++ b/xoptional__assembly__storage_8hpp_source.html @@ -0,0 +1,700 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/optional/xoptional_assembly_storage.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xoptional_assembly_storage.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XOPTIONAL_ASSEMBLY_STORAGE_HPP
    +
    11#define XOPTIONAL_ASSEMBLY_STORAGE_HPP
    +
    12
    +
    13#include "../core/xsemantic.hpp"
    +
    14#include "../optional/xoptional.hpp"
    +
    15#include "xtl/xiterator_base.hpp"
    +
    16
    +
    17namespace xt
    +
    18{
    +
    19 template <class VE, class FE, bool is_const>
    + +
    21
    +
    22 /******************************
    +
    23 * xoptional_assembly_storage *
    +
    24 ******************************/
    +
    25
    +
    26 template <class VE, class FE>
    +
    +
    27 class xoptional_assembly_storage
    +
    28 {
    +
    29 public:
    +
    30
    +
    31 using self_type = xoptional_assembly_storage<VE, FE>;
    +
    32
    +
    33 using value_storage = std::remove_reference_t<VE>;
    +
    34 using flag_storage = std::remove_reference_t<FE>;
    +
    35
    +
    36 using value_type = xtl::xoptional<typename value_storage::value_type, typename flag_storage::value_type>;
    +
    37
    +
    38 static constexpr bool is_val_const = std::is_const<value_storage>::value;
    +
    39 static constexpr bool is_flag_const = std::is_const<flag_storage>::value;
    +
    40 using val_reference = std::
    +
    41 conditional_t<is_val_const, typename value_storage::const_reference, typename value_storage::reference>;
    +
    42 using flag_reference = std::
    +
    43 conditional_t<is_flag_const, typename flag_storage::const_reference, typename flag_storage::reference>;
    +
    44 using reference = xtl::xoptional<val_reference, flag_reference>;
    +
    45 using const_reference = xtl::xoptional<typename value_storage::const_reference, typename flag_storage::const_reference>;
    +
    46
    +
    47 using pointer = xtl::xclosure_pointer<reference>;
    +
    48 using const_pointer = xtl::xclosure_pointer<const_reference>;
    +
    49
    +
    50 using size_type = typename value_storage::size_type;
    +
    51 using difference_type = typename value_storage::difference_type;
    +
    52
    + + +
    55 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    56 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    57
    +
    58 template <class VE1, class FE1>
    +
    59 xoptional_assembly_storage(const VE1& value_stor, const FE1& flag_stor);
    +
    60
    +
    61 template <class VE1, class FE1>
    +
    62 xoptional_assembly_storage(VE1& value_stor, FE1& flag_stor);
    +
    63
    +
    64 xoptional_assembly_storage(const xoptional_assembly_storage&);
    +
    65 xoptional_assembly_storage& operator=(const xoptional_assembly_storage&);
    +
    66 xoptional_assembly_storage(xoptional_assembly_storage&&);
    +
    67 xoptional_assembly_storage& operator=(xoptional_assembly_storage&&);
    +
    68
    +
    69 bool empty() const noexcept;
    +
    70 size_type size() const noexcept;
    +
    71 void resize(size_type size);
    +
    72
    +
    73 reference operator[](size_type i);
    +
    74 const_reference operator[](size_type i) const;
    +
    75
    +
    76 reference front();
    +
    77 const_reference front() const;
    +
    78
    +
    79 reference back();
    +
    80 const_reference back() const;
    +
    81
    +
    82 pointer data() noexcept;
    +
    83 const_pointer data() const noexcept;
    +
    84
    +
    85 iterator begin() noexcept;
    +
    86 iterator end() noexcept;
    +
    87
    +
    88 const_iterator begin() const noexcept;
    +
    89 const_iterator end() const noexcept;
    +
    90
    +
    91 const_iterator cbegin() const noexcept;
    +
    92 const_iterator cend() const noexcept;
    +
    93
    +
    94 reverse_iterator rbegin() noexcept;
    +
    95 reverse_iterator rend() noexcept;
    +
    96
    +
    97 const_reverse_iterator rbegin() const noexcept;
    +
    98 const_reverse_iterator rend() const noexcept;
    +
    99
    +
    100 const_reverse_iterator crbegin() const noexcept;
    +
    101 const_reverse_iterator crend() const noexcept;
    +
    102
    +
    103 void swap(self_type& rhs) noexcept;
    +
    104
    +
    105 value_storage& value() noexcept;
    +
    106 const value_storage& value() const noexcept;
    +
    107
    +
    108 flag_storage& has_value() noexcept;
    +
    109 const flag_storage& has_value() const noexcept;
    +
    110
    +
    111 private:
    +
    112
    +
    113 VE m_value;
    +
    114 FE m_has_value;
    +
    115 };
    +
    +
    116
    +
    117 template <class VE, class FE>
    +
    118 bool
    + +
    120
    +
    121 template <class VE, class FE>
    +
    122 bool
    + +
    124
    +
    125 template <class VE, class FE>
    +
    126 bool
    + +
    128
    +
    129 template <class VE, class FE>
    +
    130 bool
    + +
    132
    +
    133 template <class VE, class FE>
    +
    134 bool
    + +
    136
    +
    137 template <class VE, class FE>
    +
    138 bool
    + +
    140
    +
    141 template <class VE, class FE>
    + +
    143
    +
    144 /***************************************
    +
    145 * xoptional_assembly_linear_iterator *
    +
    146 ***************************************/
    +
    147
    +
    148 template <class VE, class FE, bool is_const>
    + +
    150
    +
    151 template <class VE, class FE, bool is_const>
    +
    + +
    153 {
    + +
    155 using xoptional_assembly_storage_type = xoptional_assembly_storage<VE, FE>;
    +
    156 using value_type = typename xoptional_assembly_storage_type::value_type;
    +
    157 using reference = std::conditional_t<
    +
    158 is_const,
    +
    159 typename xoptional_assembly_storage_type::const_reference,
    +
    160 typename xoptional_assembly_storage_type::reference>;
    +
    161 using difference_type = typename xoptional_assembly_storage_type::difference_type;
    +
    162 using pointer = std::conditional_t<
    +
    163 is_const,
    +
    164 typename xoptional_assembly_storage_type::const_pointer,
    +
    165 typename xoptional_assembly_storage_type::pointer>;
    +
    166 };
    +
    +
    167
    +
    168 template <class VE, class FE, bool is_const>
    +
    +
    169 class xoptional_assembly_linear_iterator
    +
    170 : public xtl::xrandom_access_iterator_base2<xoptional_assembly_linear_iterator_traits<VE, FE, is_const>>
    +
    171 {
    +
    172 public:
    +
    173
    +
    174 using self_type = xoptional_assembly_linear_iterator<VE, FE, is_const>;
    +
    175 using base_type = xtl::xrandom_access_iterator_base2<
    + +
    177
    +
    178 using xoptional_assembly_storage_type = xoptional_assembly_storage<VE, FE>;
    +
    179 using value_iterator = std::conditional_t<
    +
    180 is_const,
    +
    181 typename xoptional_assembly_storage_type::value_storage::const_iterator,
    +
    182 typename xoptional_assembly_storage_type::value_storage::iterator>;
    +
    183 using flag_iterator = std::conditional_t<
    +
    184 is_const,
    +
    185 typename xoptional_assembly_storage_type::flag_storage::const_iterator,
    +
    186 typename xoptional_assembly_storage_type::flag_storage::iterator>;
    +
    187
    +
    188 using value_type = typename base_type::value_type;
    +
    189 using reference = typename base_type::reference;
    +
    190 using pointer = typename base_type::pointer;
    +
    191 using difference_type = typename base_type::difference_type;
    +
    192
    +
    193 xoptional_assembly_linear_iterator(value_iterator value_it, flag_iterator flag_it);
    +
    194
    +
    195 self_type& operator++();
    +
    196 self_type& operator--();
    +
    197
    +
    198 self_type& operator+=(difference_type n);
    +
    199 self_type& operator-=(difference_type n);
    +
    200
    +
    201 difference_type operator-(const self_type& rhs) const;
    +
    202
    +
    203 reference operator*() const;
    +
    204 pointer operator->() const;
    +
    205
    +
    206 bool operator==(const self_type& rhs) const;
    +
    207 bool operator<(const self_type& rhs) const;
    +
    208
    +
    209 private:
    +
    210
    +
    211 value_iterator m_value_it;
    +
    212 flag_iterator m_flag_it;
    +
    213 };
    +
    +
    214
    +
    215 /*********************************************
    +
    216 * xoptional_assembly_storage implementation *
    +
    217 *********************************************/
    +
    218
    +
    219 template <class VE, class FE>
    +
    220 template <class VE1, class FE1>
    +
    221 inline xoptional_assembly_storage<VE, FE>::xoptional_assembly_storage(const VE1& value_stor, const FE1& flag_stor)
    +
    222 : m_value(value_stor)
    +
    223 , m_has_value(flag_stor)
    +
    224 {
    +
    225 }
    +
    226
    +
    227 template <class VE, class FE>
    +
    228 template <class VE1, class FE1>
    +
    229 inline xoptional_assembly_storage<VE, FE>::xoptional_assembly_storage(VE1& value_stor, FE1& flag_stor)
    +
    230 : m_value(value_stor)
    +
    231 , m_has_value(flag_stor)
    +
    232 {
    +
    233 }
    +
    234
    +
    235 template <class VE, class FE>
    +
    236 inline xoptional_assembly_storage<VE, FE>::xoptional_assembly_storage(const self_type& rhs)
    +
    237 : m_value(rhs.m_value)
    +
    238 , m_has_value(rhs.m_has_value)
    +
    239 {
    +
    240 }
    +
    241
    +
    242 template <class VE, class FE>
    +
    243 inline auto xoptional_assembly_storage<VE, FE>::operator=(const self_type& rhs) -> self_type&
    +
    244 {
    +
    245 m_value = rhs.m_value;
    +
    246 m_has_value = rhs.m_has_value;
    +
    247 return *this;
    +
    248 }
    +
    249
    +
    250 template <class VE, class FE>
    +
    251 inline xoptional_assembly_storage<VE, FE>::xoptional_assembly_storage(self_type&& rhs)
    +
    252 : m_value(std::forward<VE>(rhs.m_value))
    +
    253 , m_has_value(std::forward<FE>(rhs.m_has_value))
    +
    254 {
    +
    255 }
    +
    256
    +
    257 template <class VE, class FE>
    +
    258 inline auto xoptional_assembly_storage<VE, FE>::operator=(self_type&& rhs) -> self_type&
    +
    259 {
    +
    260 m_value = std::forward<VE>(rhs.m_value);
    +
    261 m_has_value = std::forward<FE>(rhs.m_has_value);
    +
    262 return *this;
    +
    263 }
    +
    264
    +
    265 template <class VE, class FE>
    +
    266 inline bool xoptional_assembly_storage<VE, FE>::empty() const noexcept
    +
    267 {
    +
    268 return value().empty();
    +
    269 }
    +
    270
    +
    271 template <class VE, class FE>
    +
    272 inline auto xoptional_assembly_storage<VE, FE>::size() const noexcept -> size_type
    +
    273 {
    +
    274 return value().size();
    +
    275 }
    +
    276
    +
    277 template <class VE, class FE>
    +
    278 inline void xoptional_assembly_storage<VE, FE>::resize(size_type size)
    +
    279 {
    +
    280 value().resize(size);
    +
    281 has_value().resize(size);
    +
    282 }
    +
    283
    +
    284 template <class VE, class FE>
    +
    285 inline auto xoptional_assembly_storage<VE, FE>::operator[](size_type i) -> reference
    +
    286 {
    +
    287 return reference(value()[i], has_value()[i]);
    +
    288 }
    +
    289
    +
    290 template <class VE, class FE>
    +
    291 inline auto xoptional_assembly_storage<VE, FE>::operator[](size_type i) const -> const_reference
    +
    292 {
    +
    293 return const_reference(value()[i], has_value()[i]);
    +
    294 }
    +
    295
    +
    296 template <class VE, class FE>
    +
    297 inline auto xoptional_assembly_storage<VE, FE>::front() -> reference
    +
    298 {
    +
    299 return reference(value()[0], has_value()[0]);
    +
    300 }
    +
    301
    +
    302 template <class VE, class FE>
    +
    303 inline auto xoptional_assembly_storage<VE, FE>::front() const -> const_reference
    +
    304 {
    +
    305 return const_reference(value()[0], has_value()[0]);
    +
    306 }
    +
    307
    +
    308 template <class VE, class FE>
    +
    309 inline auto xoptional_assembly_storage<VE, FE>::back() -> reference
    +
    310 {
    +
    311 return reference(value()[size() - 1], has_value()[size() - 1]);
    +
    312 }
    +
    313
    +
    314 template <class VE, class FE>
    +
    315 inline auto xoptional_assembly_storage<VE, FE>::back() const -> const_reference
    +
    316 {
    +
    317 return const_reference(value()[size() - 1], has_value()[size() - 1]);
    +
    318 }
    +
    319
    +
    320 template <class VE, class FE>
    +
    321 inline auto xoptional_assembly_storage<VE, FE>::data() noexcept -> pointer
    +
    322 {
    +
    323 pointer(front());
    +
    324 }
    +
    325
    +
    326 template <class VE, class FE>
    +
    327 inline auto xoptional_assembly_storage<VE, FE>::data() const noexcept -> const_pointer
    +
    328 {
    +
    329 const_pointer(front());
    +
    330 }
    +
    331
    +
    332 template <class VE, class FE>
    +
    333 inline auto xoptional_assembly_storage<VE, FE>::begin() noexcept -> iterator
    +
    334 {
    +
    335 return iterator(value().begin(), has_value().begin());
    +
    336 }
    +
    337
    +
    338 template <class VE, class FE>
    +
    339 inline auto xoptional_assembly_storage<VE, FE>::end() noexcept -> iterator
    +
    340 {
    +
    341 return iterator(value().end(), has_value().end());
    +
    342 }
    +
    343
    +
    344 template <class VE, class FE>
    +
    345 inline auto xoptional_assembly_storage<VE, FE>::begin() const noexcept -> const_iterator
    +
    346 {
    +
    347 return cbegin();
    +
    348 }
    +
    349
    +
    350 template <class VE, class FE>
    +
    351 inline auto xoptional_assembly_storage<VE, FE>::end() const noexcept -> const_iterator
    +
    352 {
    +
    353 return cend();
    +
    354 }
    +
    355
    +
    356 template <class VE, class FE>
    +
    357 inline auto xoptional_assembly_storage<VE, FE>::cbegin() const noexcept -> const_iterator
    +
    358 {
    +
    359 return const_iterator(value().begin(), has_value().begin());
    +
    360 }
    +
    361
    +
    362 template <class VE, class FE>
    +
    363 inline auto xoptional_assembly_storage<VE, FE>::cend() const noexcept -> const_iterator
    +
    364 {
    +
    365 return const_iterator(value().end(), has_value().end());
    +
    366 }
    +
    367
    +
    368 template <class VE, class FE>
    +
    369 inline auto xoptional_assembly_storage<VE, FE>::rbegin() noexcept -> reverse_iterator
    +
    370 {
    +
    371 return reverse_iterator(end());
    +
    372 }
    +
    373
    +
    374 template <class VE, class FE>
    +
    375 inline auto xoptional_assembly_storage<VE, FE>::rend() noexcept -> reverse_iterator
    +
    376 {
    +
    377 return reverse_iterator(begin());
    +
    378 }
    +
    379
    +
    380 template <class VE, class FE>
    +
    381 inline auto xoptional_assembly_storage<VE, FE>::rbegin() const noexcept -> const_reverse_iterator
    +
    382 {
    +
    383 return crbegin();
    +
    384 }
    +
    385
    +
    386 template <class VE, class FE>
    +
    387 inline auto xoptional_assembly_storage<VE, FE>::rend() const noexcept -> const_reverse_iterator
    +
    388 {
    +
    389 return crend();
    +
    390 }
    +
    391
    +
    392 template <class VE, class FE>
    +
    393 inline auto xoptional_assembly_storage<VE, FE>::crbegin() const noexcept -> const_reverse_iterator
    +
    394 {
    +
    395 return const_reverse_iterator(cend());
    +
    396 }
    +
    397
    +
    398 template <class VE, class FE>
    +
    399 inline auto xoptional_assembly_storage<VE, FE>::crend() const noexcept -> const_reverse_iterator
    +
    400 {
    +
    401 return const_reverse_iterator(cbegin());
    +
    402 }
    +
    403
    +
    404 template <class VE, class FE>
    +
    405 inline void xoptional_assembly_storage<VE, FE>::swap(self_type& rhs) noexcept
    +
    406 {
    +
    407 m_value.swap(rhs.m_value);
    +
    408 m_has_value.swap(rhs.m_has_value);
    +
    409 }
    +
    410
    +
    411 template <class VE, class FE>
    +
    412 inline auto xoptional_assembly_storage<VE, FE>::value() noexcept -> value_storage&
    +
    413 {
    +
    414 return m_value;
    +
    415 }
    +
    416
    +
    417 template <class VE, class FE>
    +
    418 inline auto xoptional_assembly_storage<VE, FE>::value() const noexcept -> const value_storage&
    +
    419 {
    +
    420 return m_value;
    +
    421 }
    +
    422
    +
    423 template <class VE, class FE>
    +
    424 inline auto xoptional_assembly_storage<VE, FE>::has_value() noexcept -> flag_storage&
    +
    425 {
    +
    426 return m_has_value;
    +
    427 }
    +
    428
    +
    429 template <class VE, class FE>
    +
    430 inline auto xoptional_assembly_storage<VE, FE>::has_value() const noexcept -> const flag_storage&
    +
    431 {
    +
    432 return m_has_value;
    +
    433 }
    +
    434
    +
    435 template <class VE, class FE>
    +
    436 bool
    + +
    438 {
    +
    439 return lhs.value() == rhs.value() && lhs.has_value() == rhs.has_value();
    +
    440 }
    +
    441
    +
    442 template <class VE, class FE>
    +
    443 bool
    + +
    445 {
    +
    446 return !(lhs == rhs);
    +
    447 }
    +
    448
    +
    449 template <class VE, class FE>
    + +
    451 {
    +
    452 return lhs.value() < rhs.value() && lhs.has_value() == rhs.has_value();
    +
    453 }
    +
    454
    +
    455 template <class VE, class FE>
    +
    456 bool
    + +
    458 {
    +
    459 return lhs.value() <= rhs.value() && lhs.has_value() == rhs.has_value();
    +
    460 }
    +
    461
    +
    462 template <class VE, class FE>
    + +
    464 {
    +
    465 return lhs.value() > rhs.value() && lhs.has_value() == rhs.has_value();
    +
    466 }
    +
    467
    +
    468 template <class VE, class FE>
    +
    469 bool
    + +
    471 {
    +
    472 return lhs.value() >= rhs.value() && lhs.has_value() == rhs.has_value();
    +
    473 }
    +
    474
    +
    475 template <class VE, class FE>
    + +
    477 {
    +
    478 lhs.swap(rhs);
    +
    479 }
    +
    480
    +
    481 /******************************************************
    +
    482 * xoptional_assembly_linear_iterator implementation *
    +
    483 ******************************************************/
    +
    484
    +
    485 template <class VE, class FE, bool C>
    +
    486 inline xoptional_assembly_linear_iterator<VE, FE, C>::xoptional_assembly_linear_iterator(
    +
    487 value_iterator value_it,
    +
    488 flag_iterator flag_it
    +
    489 )
    +
    490 : m_value_it(value_it)
    +
    491 , m_flag_it(flag_it)
    +
    492 {
    +
    493 }
    +
    494
    +
    495 template <class VE, class FE, bool C>
    +
    496 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator++() -> self_type&
    +
    497 {
    +
    498 ++m_value_it;
    +
    499 ++m_flag_it;
    +
    500 return *this;
    +
    501 }
    +
    502
    +
    503 template <class VE, class FE, bool C>
    +
    504 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator--() -> self_type&
    +
    505 {
    +
    506 --m_value_it;
    +
    507 --m_flag_it;
    +
    508 return *this;
    +
    509 }
    +
    510
    +
    511 template <class VE, class FE, bool C>
    +
    512 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator+=(difference_type n) -> self_type&
    +
    513 {
    +
    514 m_value_it += n;
    +
    515 m_flag_it += n;
    +
    516 return *this;
    +
    517 }
    +
    518
    +
    519 template <class VE, class FE, bool C>
    +
    520 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator-=(difference_type n) -> self_type&
    +
    521 {
    +
    522 m_value_it -= n;
    +
    523 m_flag_it -= n;
    +
    524 return *this;
    +
    525 }
    +
    526
    +
    527 template <class VE, class FE, bool C>
    +
    528 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator-(const self_type& rhs) const
    +
    529 -> difference_type
    +
    530 {
    +
    531 return m_value_it - rhs.m_value_it;
    +
    532 }
    +
    533
    +
    534 template <class VE, class FE, bool C>
    +
    535 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator*() const -> reference
    +
    536 {
    +
    537 return reference(*m_value_it, *m_flag_it);
    +
    538 }
    +
    539
    +
    540 template <class VE, class FE, bool C>
    +
    541 inline auto xoptional_assembly_linear_iterator<VE, FE, C>::operator->() const -> pointer
    +
    542 {
    +
    543 return &(this->operator*());
    +
    544 }
    +
    545
    +
    546 template <class VE, class FE, bool C>
    +
    547 inline bool xoptional_assembly_linear_iterator<VE, FE, C>::operator==(const self_type& rhs) const
    +
    548 {
    +
    549 return m_value_it == rhs.m_value_it;
    +
    550 }
    +
    551
    +
    552 template <class VE, class FE, bool C>
    +
    553 inline bool xoptional_assembly_linear_iterator<VE, FE, C>::operator<(const self_type& rhs) const
    +
    554 {
    +
    555 return m_value_it < rhs.m_value_it;
    +
    556 }
    +
    557
    +
    558 template <class VE, class FE>
    +
    559 inline xoptional_assembly_storage<VE, FE> optional_assembly_storage(const VE& value, const FE& flag)
    +
    560 {
    +
    561 return xoptional_assembly_storage<VE, FE>(value, flag);
    +
    562 }
    +
    563
    +
    564 template <class VE, class FE>
    +
    565 inline xoptional_assembly_storage<VE, FE> optional_assembly_storage(VE& value, FE& flag)
    +
    566 {
    +
    567 return xoptional_assembly_storage<VE, FE>(value, flag);
    +
    568 }
    +
    569}
    +
    570
    +
    571#endif
    + + +
    auto operator*(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::multiplies, E1, E2 >
    Multiplication.
    +
    standard mathematical functions for xexpressions
    + +
    +
    + + + + diff --git a/xpad_8hpp_source.html b/xpad_8hpp_source.html new file mode 100644 index 000000000..260cbe863 --- /dev/null +++ b/xpad_8hpp_source.html @@ -0,0 +1,401 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xpad.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xpad.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_PAD_HPP
    +
    11#define XTENSOR_PAD_HPP
    +
    12
    +
    13#include "../containers/xarray.hpp"
    +
    14#include "../containers/xtensor.hpp"
    +
    15#include "../views/xstrided_view.hpp"
    +
    16#include "../views/xview.hpp"
    +
    17
    +
    18using namespace xt::placeholders; // to enable _ syntax
    +
    19
    +
    20namespace xt
    +
    21{
    +
    +
    38 enum class pad_mode
    +
    39 {
    +
    40 constant,
    +
    41 symmetric,
    +
    42 reflect,
    +
    43 wrap,
    +
    44 periodic,
    +
    45 edge
    +
    46 };
    +
    +
    47
    +
    48 namespace detail
    +
    49 {
    +
    50 template <class S, class T>
    +
    51 inline bool check_pad_width(const std::vector<std::vector<S>>& pad_width, const T& shape)
    +
    52 {
    +
    53 if (pad_width.size() != shape.size())
    +
    54 {
    +
    55 return false;
    +
    56 }
    +
    57
    +
    58 return true;
    +
    59 }
    +
    60 }
    +
    61
    +
    73 template <class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    +
    74 inline auto
    +
    +
    75 pad(E&& e,
    +
    76 const std::vector<std::vector<S>>& pad_width,
    +
    77 pad_mode mode = pad_mode::constant,
    +
    78 V constant_value = 0)
    +
    79 {
    +
    80 XTENSOR_ASSERT(detail::check_pad_width(pad_width, e.shape()));
    +
    81
    +
    82 using size_type = typename std::decay_t<E>::size_type;
    +
    83 using return_type = temporary_type_t<E>;
    +
    84
    +
    85 // place the original array in the center
    +
    86
    +
    87 auto new_shape = e.shape();
    + +
    89 sv.reserve(e.shape().size());
    +
    90 for (size_type axis = 0; axis < e.shape().size(); ++axis)
    +
    91 {
    +
    92 size_type nb = static_cast<size_type>(pad_width[axis][0]);
    +
    93 size_type ne = static_cast<size_type>(pad_width[axis][1]);
    +
    94 size_type ns = nb + e.shape(axis) + ne;
    +
    95 new_shape[axis] = ns;
    +
    96 sv.push_back(xt::range(nb, nb + e.shape(axis)));
    +
    97 }
    +
    98
    +
    99 if (mode == pad_mode::constant)
    +
    100 {
    +
    101 return_type out(new_shape, constant_value);
    +
    102 xt::strided_view(out, sv) = e;
    +
    103 return out;
    +
    104 }
    +
    105
    +
    106 return_type out(new_shape);
    +
    107 xt::strided_view(out, sv) = e;
    +
    108
    +
    109 // construct padded regions based on original image
    +
    110
    +
    111 xt::xstrided_slice_vector svs(e.shape().size(), xt::all());
    +
    112 xt::xstrided_slice_vector svt(e.shape().size(), xt::all());
    +
    113
    +
    114 for (size_type axis = 0; axis < e.shape().size(); ++axis)
    +
    115 {
    +
    116 size_type nb = static_cast<size_type>(pad_width[axis][0]);
    +
    117 size_type ne = static_cast<size_type>(pad_width[axis][1]);
    +
    118
    +
    119 if (nb > static_cast<size_type>(0))
    +
    120 {
    +
    121 svt[axis] = xt::range(0, nb);
    +
    122
    +
    123 if (mode == pad_mode::wrap || mode == pad_mode::periodic)
    +
    124 {
    +
    125 XTENSOR_ASSERT(nb <= e.shape(axis));
    +
    126 svs[axis] = xt::range(e.shape(axis), nb + e.shape(axis));
    +
    127 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    128 }
    +
    129 else if (mode == pad_mode::symmetric)
    +
    130 {
    +
    131 XTENSOR_ASSERT(nb <= e.shape(axis));
    +
    132 svs[axis] = xt::range(2 * nb - 1, nb - 1, -1);
    +
    133 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    134 }
    +
    135 else if (mode == pad_mode::reflect)
    +
    136 {
    +
    137 XTENSOR_ASSERT(nb <= e.shape(axis) - 1);
    +
    138 svs[axis] = xt::range(2 * nb, nb, -1);
    +
    139 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    140 }
    +
    141 else if (mode == pad_mode::edge)
    +
    142 {
    +
    143 svs[axis] = xt::range(nb, nb + 1);
    + +
    145 xt::strided_view(out, svs),
    +
    146 xt::strided_view(out, svt).shape()
    +
    147 );
    +
    148 }
    +
    149 }
    +
    150
    +
    151 if (ne > static_cast<size_type>(0))
    +
    152 {
    +
    153 svt[axis] = xt::range(out.shape(axis) - ne, out.shape(axis));
    +
    154
    +
    155 if (mode == pad_mode::wrap || mode == pad_mode::periodic)
    +
    156 {
    +
    157 XTENSOR_ASSERT(ne <= e.shape(axis));
    +
    158 svs[axis] = xt::range(nb, nb + ne);
    +
    159 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    160 }
    +
    161 else if (mode == pad_mode::symmetric)
    +
    162 {
    +
    163 XTENSOR_ASSERT(ne <= e.shape(axis));
    +
    164 if (ne == nb + e.shape(axis))
    +
    165 {
    +
    166 svs[axis] = xt::range(nb + e.shape(axis) - 1, _, -1);
    +
    167 }
    +
    168 else
    +
    169 {
    +
    170 svs[axis] = xt::range(nb + e.shape(axis) - 1, nb + e.shape(axis) - ne - 1, -1);
    +
    171 }
    +
    172 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    173 }
    +
    174 else if (mode == pad_mode::reflect)
    +
    175 {
    +
    176 XTENSOR_ASSERT(ne <= e.shape(axis) - 1);
    +
    177 if (ne == nb + e.shape(axis) - 1)
    +
    178 {
    +
    179 svs[axis] = xt::range(nb + e.shape(axis) - 2, _, -1);
    +
    180 }
    +
    181 else
    +
    182 {
    +
    183 svs[axis] = xt::range(nb + e.shape(axis) - 2, nb + e.shape(axis) - ne - 2, -1);
    +
    184 }
    +
    185 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    186 }
    +
    187 else if (mode == pad_mode::edge)
    +
    188 {
    +
    189 svs[axis] = xt::range(out.shape(axis) - ne - 1, out.shape(axis) - ne);
    + +
    191 xt::strided_view(out, svs),
    +
    192 xt::strided_view(out, svt).shape()
    +
    193 );
    +
    194 }
    +
    195 }
    +
    196
    +
    197 svs[axis] = xt::all();
    +
    198 svt[axis] = xt::all();
    +
    199 }
    +
    200
    +
    201 return out;
    +
    202 }
    +
    +
    203
    +
    215 template <class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    +
    216 inline auto
    +
    +
    217 pad(E&& e, const std::vector<S>& pad_width, pad_mode mode = pad_mode::constant, V constant_value = 0)
    +
    218 {
    +
    219 std::vector<std::vector<S>> pw(e.shape().size(), pad_width);
    +
    220
    +
    221 return pad(e, pw, mode, constant_value);
    +
    222 }
    +
    +
    223
    +
    234 template <class E, class S = typename std::decay_t<E>::size_type, class V = typename std::decay_t<E>::value_type>
    +
    +
    235 inline auto pad(E&& e, S pad_width, pad_mode mode = pad_mode::constant, V constant_value = 0)
    +
    236 {
    +
    237 std::vector<std::vector<S>> pw(e.shape().size(), {pad_width, pad_width});
    +
    238
    +
    239 return pad(e, pw, mode, constant_value);
    +
    240 }
    +
    +
    241
    +
    242 namespace detail
    +
    243 {
    +
    244
    +
    245 template <class E, class S>
    +
    246 inline auto tile(E&& e, const S& reps)
    +
    247 {
    +
    248 using size_type = typename std::decay_t<E>::size_type;
    +
    249
    +
    250 using return_type = temporary_type_t<E>;
    +
    251
    +
    252 XTENSOR_ASSERT(e.shape().size() == reps.size());
    +
    253
    +
    254 using new_shape_type = typename return_type::shape_type;
    +
    255 auto new_shape = xtl::make_sequence<new_shape_type>(e.shape().size());
    +
    256
    +
    257 xt::xstrided_slice_vector sv(reps.size());
    +
    258
    +
    259 for (size_type axis = 0; axis < reps.size(); ++axis)
    +
    260 {
    +
    261 new_shape[axis] = e.shape(axis) * reps[axis];
    +
    262 sv[axis] = xt::range(0, e.shape(axis));
    +
    263 }
    +
    264 return_type out(new_shape);
    +
    265
    +
    266 xt::strided_view(out, sv) = e;
    +
    267
    +
    268 xt::xstrided_slice_vector svs(e.shape().size(), xt::all());
    +
    269 xt::xstrided_slice_vector svt(e.shape().size(), xt::all());
    +
    270
    +
    271 for (size_type axis = 0; axis < e.shape().size(); ++axis)
    +
    272 {
    +
    273 for (size_type i = 1; i < static_cast<size_type>(reps[axis]); ++i)
    +
    274 {
    +
    275 svs[axis] = xt::range(0, e.shape(axis));
    +
    276 svt[axis] = xt::range(i * e.shape(axis), (i + 1) * e.shape(axis));
    +
    277 xt::strided_view(out, svt) = xt::strided_view(out, svs);
    +
    278 svs[axis] = xt::all();
    +
    279 svt[axis] = xt::all();
    +
    280 }
    +
    281 }
    +
    282
    +
    283 return out;
    +
    284 }
    +
    285 }
    +
    286
    +
    294
    +
    295 template <class E, class S = typename std::decay_t<E>::size_type>
    +
    +
    296 inline auto tile(E&& e, std::initializer_list<S> reps)
    +
    297 {
    +
    298 return detail::tile(std::forward<E>(e), std::vector<S>{reps});
    +
    299 }
    +
    +
    300
    +
    301 template <class E, class C, XTL_REQUIRES(std::negation<xtl::is_integral<C>>)>
    +
    302 inline auto tile(E&& e, const C& reps)
    +
    303 {
    +
    304 return detail::tile(std::forward<E>(e), reps);
    +
    305 }
    +
    306
    +
    314 template <class E, class S = typename std::decay_t<E>::size_type, XTL_REQUIRES(xtl::is_integral<S>)>
    +
    +
    315 inline auto tile(E&& e, S reps)
    +
    316 {
    +
    317 std::vector<S> tw(e.shape().size(), static_cast<S>(1));
    +
    318 tw[0] = reps;
    +
    319 return detail::tile(std::forward<E>(e), tw);
    +
    320 }
    +
    +
    321}
    +
    322
    +
    323#endif
    +
    bool all(E &&e)
    Any.
    +
    standard mathematical functions for xexpressions
    +
    auto pad(E &&e, const std::vector< std::vector< S > > &pad_width, pad_mode mode=pad_mode::constant, V constant_value=0)
    Pad an array.
    Definition xpad.hpp:75
    +
    auto broadcast(E &&e, const S &s)
    Returns an xexpression broadcasting the given expression to a specified shape.
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    auto tile(E &&e, std::initializer_list< S > reps)
    Tile an array.
    Definition xpad.hpp:296
    +
    pad_mode
    Defines different algorithms to be used in xt::pad:
    Definition xpad.hpp:39
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    +
    + + + + diff --git a/xrandom_8hpp_source.html b/xrandom_8hpp_source.html new file mode 100644 index 000000000..7dad84639 --- /dev/null +++ b/xrandom_8hpp_source.html @@ -0,0 +1,871 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/generators/xrandom.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xrandom.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    13
    +
    14#ifndef XTENSOR_RANDOM_HPP
    +
    15#define XTENSOR_RANDOM_HPP
    +
    16
    +
    17#include <algorithm>
    +
    18#include <functional>
    +
    19#include <random>
    +
    20#include <type_traits>
    +
    21#include <utility>
    +
    22
    +
    23#include <xtl/xspan.hpp>
    +
    24
    +
    25#include "../containers/xtensor.hpp"
    +
    26#include "../core/xmath.hpp"
    +
    27#include "../core/xtensor_config.hpp"
    +
    28#include "../generators/xbuilder.hpp"
    +
    29#include "../generators/xgenerator.hpp"
    +
    30#include "../misc/xtl_concepts.hpp"
    +
    31#include "../views/xindex_view.hpp"
    +
    32#include "../views/xview.hpp"
    +
    33
    +
    34namespace xt
    +
    35{
    +
    36 /*********************
    +
    37 * Random generators *
    +
    38 *********************/
    +
    39
    +
    40 namespace random
    +
    41 {
    +
    42 using default_engine_type = std::mt19937;
    +
    43 using seed_type = default_engine_type::result_type;
    +
    44
    +
    45 default_engine_type& get_default_random_engine();
    +
    46 void seed(seed_type seed);
    +
    47
    +
    48 template <class T, class S, class E = random::default_engine_type>
    +
    49 auto rand(const S& shape, T lower = 0, T upper = 1, E& engine = random::get_default_random_engine());
    +
    50
    +
    51 template <class T, class S, class E = random::default_engine_type>
    +
    52 auto randint(
    +
    53 const S& shape,
    +
    54 T lower = 0,
    +
    55 T upper = (std::numeric_limits<T>::max)(),
    +
    56 E& engine = random::get_default_random_engine()
    +
    57 );
    +
    58
    +
    59 template <class T, class S, class E = random::default_engine_type>
    +
    60 auto randn(const S& shape, T mean = 0, T std_dev = 1, E& engine = random::get_default_random_engine());
    +
    61
    +
    62 template <class T, class S, class D = double, class E = random::default_engine_type>
    +
    63 auto
    +
    64 binomial(const S& shape, T trials = 1, D prob = 0.5, E& engine = random::get_default_random_engine());
    +
    65
    +
    66 template <class T, class S, class D = double, class E = random::default_engine_type>
    +
    67 auto geometric(const S& shape, D prob = 0.5, E& engine = random::get_default_random_engine());
    +
    68
    +
    69 template <class T, class S, class D = double, class E = random::default_engine_type>
    +
    70 auto
    +
    71 negative_binomial(const S& shape, T k = 1, D prob = 0.5, E& engine = random::get_default_random_engine());
    +
    72
    +
    73 template <class T, class S, class D = double, class E = random::default_engine_type>
    +
    74 auto poisson(const S& shape, D rate = 1.0, E& engine = random::get_default_random_engine());
    +
    75
    +
    76 template <class T, class S, class E = random::default_engine_type>
    +
    77 auto exponential(const S& shape, T rate = 1.0, E& engine = random::get_default_random_engine());
    +
    78
    +
    79 template <class T, class S, class E = random::default_engine_type>
    +
    80 auto
    +
    81 gamma(const S& shape, T alpha = 1.0, T beta = 1.0, E& engine = random::get_default_random_engine());
    +
    82
    +
    83 template <class T, class S, class E = random::default_engine_type>
    +
    84 auto weibull(const S& shape, T a = 1.0, T b = 1.0, E& engine = random::get_default_random_engine());
    +
    85
    +
    86 template <class T, class S, class E = random::default_engine_type>
    +
    87 auto
    +
    88 extreme_value(const S& shape, T a = 0.0, T b = 1.0, E& engine = random::get_default_random_engine());
    +
    89
    +
    90 template <class T, class S, class E = random::default_engine_type>
    +
    91 auto
    +
    92 lognormal(const S& shape, T mean = 0, T std_dev = 1, E& engine = random::get_default_random_engine());
    +
    93
    +
    94 template <class T, class S, class E = random::default_engine_type>
    +
    95 auto chi_squared(const S& shape, T deg = 1.0, E& engine = random::get_default_random_engine());
    +
    96
    +
    97 template <class T, class S, class E = random::default_engine_type>
    +
    98 auto cauchy(const S& shape, T a = 0.0, T b = 1.0, E& engine = random::get_default_random_engine());
    +
    99
    +
    100 template <class T, class S, class E = random::default_engine_type>
    +
    101 auto fisher_f(const S& shape, T m = 1.0, T n = 1.0, E& engine = random::get_default_random_engine());
    +
    102
    +
    103 template <class T, class S, class E = random::default_engine_type>
    +
    104 auto student_t(const S& shape, T n = 1.0, E& engine = random::get_default_random_engine());
    +
    105
    +
    106 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    107 auto
    +
    108 rand(const I (&shape)[L], T lower = 0, T upper = 1, E& engine = random::get_default_random_engine());
    +
    109
    +
    110 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    111 auto randint(
    +
    112 const I (&shape)[L],
    +
    113 T lower = 0,
    +
    114 T upper = (std::numeric_limits<T>::max)(),
    +
    115 E& engine = random::get_default_random_engine()
    +
    116 );
    +
    117
    +
    118 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    119 auto
    +
    120 randn(const I (&shape)[L], T mean = 0, T std_dev = 1, E& engine = random::get_default_random_engine());
    +
    121
    +
    122 template <class T, class I, std::size_t L, class D = double, class E = random::default_engine_type>
    +
    123 auto
    +
    124 binomial(const I (&shape)[L], T trials = 1, D prob = 0.5, E& engine = random::get_default_random_engine());
    +
    125
    +
    126 template <class T, class I, std::size_t L, class D = double, class E = random::default_engine_type>
    +
    127 auto geometric(const I (&shape)[L], D prob = 0.5, E& engine = random::get_default_random_engine());
    +
    128
    +
    129 template <class T, class I, std::size_t L, class D = double, class E = random::default_engine_type>
    +
    130 auto negative_binomial(
    +
    131 const I (&shape)[L],
    +
    132 T k = 1,
    +
    133 D prob = 0.5,
    +
    134 E& engine = random::get_default_random_engine()
    +
    135 );
    +
    136
    +
    137 template <class T, class I, std::size_t L, class D = double, class E = random::default_engine_type>
    +
    138 auto poisson(const I (&shape)[L], D rate = 1.0, E& engine = random::get_default_random_engine());
    +
    139
    +
    140 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    141 auto exponential(const I (&shape)[L], T rate = 1.0, E& engine = random::get_default_random_engine());
    +
    142
    +
    143 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    144 auto
    +
    145 gamma(const I (&shape)[L], T alpha = 1.0, T beta = 1.0, E& engine = random::get_default_random_engine());
    +
    146
    +
    147 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    148 auto
    +
    149 weibull(const I (&shape)[L], T a = 1.0, T b = 1.0, E& engine = random::get_default_random_engine());
    +
    150
    +
    151 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    152 auto
    +
    153 extreme_value(const I (&shape)[L], T a = 0.0, T b = 1.0, E& engine = random::get_default_random_engine());
    +
    154
    +
    155 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    156 auto lognormal(
    +
    157 const I (&shape)[L],
    +
    158 T mean = 0.0,
    +
    159 T std_dev = 1.0,
    +
    160 E& engine = random::get_default_random_engine()
    +
    161 );
    +
    162
    +
    163 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    164 auto chi_squared(const I (&shape)[L], T deg = 1.0, E& engine = random::get_default_random_engine());
    +
    165
    +
    166 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    167 auto cauchy(const I (&shape)[L], T a = 0.0, T b = 1.0, E& engine = random::get_default_random_engine());
    +
    168
    +
    169 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    170 auto
    +
    171 fisher_f(const I (&shape)[L], T m = 1.0, T n = 1.0, E& engine = random::get_default_random_engine());
    +
    172
    +
    173 template <class T, class I, std::size_t L, class E = random::default_engine_type>
    +
    174 auto student_t(const I (&shape)[L], T n = 1.0, E& engine = random::get_default_random_engine());
    +
    175
    +
    176 template <class T, class E = random::default_engine_type>
    +
    177 void shuffle(xexpression<T>& e, E& engine = random::get_default_random_engine());
    +
    178
    +
    179 template <xtl::integral_concept T, class E = random::default_engine_type>
    +
    180 xtensor<T, 1> permutation(T e, E& engine = random::get_default_random_engine());
    +
    181
    +
    182 template <xexpression_concept T, class E = random::default_engine_type>
    +
    183 std::decay_t<T> permutation(T&& e, E& engine = random::get_default_random_engine());
    +
    184
    +
    185 template <class T, class E = random::default_engine_type>
    + +
    187 const xexpression<T>& e,
    +
    188 std::size_t n,
    +
    189 bool replace = true,
    +
    190 E& engine = random::get_default_random_engine()
    +
    191 );
    +
    192
    +
    193 template <class T, class W, class E = random::default_engine_type>
    + +
    195 const xexpression<T>& e,
    +
    196 std::size_t n,
    +
    197 const xexpression<W>& weights,
    +
    198 bool replace = true,
    +
    199 E& engine = random::get_default_random_engine()
    +
    200 );
    +
    201 }
    +
    202
    +
    203 namespace detail
    +
    204 {
    +
    205 template <class T, class E, class D>
    +
    206 struct random_impl
    +
    207 {
    +
    208 using value_type = T;
    +
    209
    +
    210 random_impl(E& engine, D&& dist)
    +
    211 : m_engine(engine)
    +
    212 , m_dist(std::move(dist))
    +
    213 {
    +
    214 }
    +
    215
    +
    216 template <class... Args>
    +
    217 inline value_type operator()(Args...) const
    +
    218 {
    +
    219 return m_dist(m_engine);
    +
    220 }
    +
    221
    +
    222 template <class It>
    +
    223 inline value_type element(It, It) const
    +
    224 {
    +
    225 return m_dist(m_engine);
    +
    226 }
    +
    227
    +
    228 template <class EX>
    +
    229 inline void assign_to(xexpression<EX>& e) const noexcept
    +
    230 {
    +
    231 // Note: we're not going row/col major here
    +
    232 auto& ed = e.derived_cast();
    +
    233 for (auto&& el : ed.storage())
    +
    234 {
    +
    235 el = m_dist(m_engine);
    +
    236 }
    +
    237 }
    +
    238
    +
    239 private:
    +
    240
    +
    241 E& m_engine;
    +
    242 mutable D m_dist;
    +
    243 };
    +
    244 }
    +
    245
    +
    246 namespace random
    +
    247 {
    +
    251 inline default_engine_type& get_default_random_engine()
    +
    252 {
    +
    253 static default_engine_type mt;
    +
    254 return mt;
    +
    255 }
    +
    256
    +
    261 inline void seed(seed_type seed)
    +
    262 {
    +
    263 get_default_random_engine().seed(seed);
    +
    264 }
    +
    265
    +
    278 template <class T, class S, class E>
    +
    279 inline auto rand(const S& shape, T lower, T upper, E& engine)
    +
    280 {
    +
    281 std::uniform_real_distribution<T> dist(lower, upper);
    +
    282 return detail::make_xgenerator(
    +
    283 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    284 shape
    +
    285 );
    +
    286 }
    +
    287
    +
    300 template <class T, class S, class E>
    +
    301 inline auto randint(const S& shape, T lower, T upper, E& engine)
    +
    302 {
    +
    303 std::uniform_int_distribution<T> dist(lower, T(upper - 1));
    +
    304 return detail::make_xgenerator(
    +
    305 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    306 shape
    +
    307 );
    +
    308 }
    +
    309
    +
    323 template <class T, class S, class E>
    +
    324 inline auto randn(const S& shape, T mean, T std_dev, E& engine)
    +
    325 {
    +
    326 std::normal_distribution<T> dist(mean, std_dev);
    +
    327 return detail::make_xgenerator(
    +
    328 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    329 shape
    +
    330 );
    +
    331 }
    +
    332
    +
    346 template <class T, class S, class D, class E>
    +
    347 inline auto binomial(const S& shape, T trials, D prob, E& engine)
    +
    348 {
    +
    349 std::binomial_distribution<T> dist(trials, prob);
    +
    350 return detail::make_xgenerator(
    +
    351 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    352 shape
    +
    353 );
    +
    354 }
    +
    355
    +
    368 template <class T, class S, class D, class E>
    +
    369 inline auto geometric(const S& shape, D prob, E& engine)
    +
    370 {
    +
    371 std::geometric_distribution<T> dist(prob);
    +
    372 return detail::make_xgenerator(
    +
    373 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    374 shape
    +
    375 );
    +
    376 }
    +
    377
    +
    392 template <class T, class S, class D, class E>
    +
    393 inline auto negative_binomial(const S& shape, T k, D prob, E& engine)
    +
    394 {
    +
    395 std::negative_binomial_distribution<T> dist(k, prob);
    +
    396 return detail::make_xgenerator(
    +
    397 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    398 shape
    +
    399 );
    +
    400 }
    +
    401
    +
    413 template <class T, class S, class D, class E>
    +
    414 inline auto poisson(const S& shape, D rate, E& engine)
    +
    415 {
    +
    416 std::poisson_distribution<T> dist(rate);
    +
    417 return detail::make_xgenerator(
    +
    418 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    419 shape
    +
    420 );
    +
    421 }
    +
    422
    +
    434 template <class T, class S, class E>
    +
    435 inline auto exponential(const S& shape, T rate, E& engine)
    +
    436 {
    +
    437 std::exponential_distribution<T> dist(rate);
    +
    438 return detail::make_xgenerator(
    +
    439 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    440 shape
    +
    441 );
    +
    442 }
    +
    443
    +
    456 template <class T, class S, class E>
    +
    457 inline auto gamma(const S& shape, T alpha, T beta, E& engine)
    +
    458 {
    +
    459 std::gamma_distribution<T> dist(alpha, beta);
    +
    460 return detail::make_xgenerator(
    +
    461 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    462 shape
    +
    463 );
    +
    464 }
    +
    465
    +
    478 template <class T, class S, class E>
    +
    479 inline auto weibull(const S& shape, T a, T b, E& engine)
    +
    480 {
    +
    481 std::weibull_distribution<T> dist(a, b);
    +
    482 return detail::make_xgenerator(
    +
    483 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    484 shape
    +
    485 );
    +
    486 }
    +
    487
    +
    500 template <class T, class S, class E>
    +
    501 inline auto extreme_value(const S& shape, T a, T b, E& engine)
    +
    502 {
    +
    503 std::extreme_value_distribution<T> dist(a, b);
    +
    504 return detail::make_xgenerator(
    +
    505 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    506 shape
    +
    507 );
    +
    508 }
    +
    509
    +
    523 template <class T, class S, class E>
    +
    524 inline auto lognormal(const S& shape, T mean, T std_dev, E& engine)
    +
    525 {
    +
    526 std::lognormal_distribution<T> dist(mean, std_dev);
    +
    527 return detail::make_xgenerator(
    +
    528 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    529 shape
    +
    530 );
    +
    531 }
    +
    532
    +
    544 template <class T, class S, class E>
    +
    545 inline auto chi_squared(const S& shape, T deg, E& engine)
    +
    546 {
    +
    547 std::chi_squared_distribution<T> dist(deg);
    +
    548 return detail::make_xgenerator(
    +
    549 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    550 shape
    +
    551 );
    +
    552 }
    +
    553
    +
    566 template <class T, class S, class E>
    +
    567 inline auto cauchy(const S& shape, T a, T b, E& engine)
    +
    568 {
    +
    569 std::cauchy_distribution<T> dist(a, b);
    +
    570 return detail::make_xgenerator(
    +
    571 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    572 shape
    +
    573 );
    +
    574 }
    +
    575
    +
    589 template <class T, class S, class E>
    +
    590 inline auto fisher_f(const S& shape, T m, T n, E& engine)
    +
    591 {
    +
    592 std::fisher_f_distribution<T> dist(m, n);
    +
    593 return detail::make_xgenerator(
    +
    594 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    595 shape
    +
    596 );
    +
    597 }
    +
    598
    +
    611 template <class T, class S, class E>
    +
    612 inline auto student_t(const S& shape, T n, E& engine)
    +
    613 {
    +
    614 std::student_t_distribution<T> dist(n);
    +
    615 return detail::make_xgenerator(
    +
    616 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    617 shape
    +
    618 );
    +
    619 }
    +
    620
    +
    621 template <class T, class I, std::size_t L, class E>
    +
    622 inline auto rand(const I (&shape)[L], T lower, T upper, E& engine)
    +
    623 {
    +
    624 std::uniform_real_distribution<T> dist(lower, upper);
    +
    625 return detail::make_xgenerator(
    +
    626 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    627 shape
    +
    628 );
    +
    629 }
    +
    630
    +
    631 template <class T, class I, std::size_t L, class E>
    +
    632 inline auto randint(const I (&shape)[L], T lower, T upper, E& engine)
    +
    633 {
    +
    634 std::uniform_int_distribution<T> dist(lower, T(upper - 1));
    +
    635 return detail::make_xgenerator(
    +
    636 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    637 shape
    +
    638 );
    +
    639 }
    +
    640
    +
    641 template <class T, class I, std::size_t L, class E>
    +
    642 inline auto randn(const I (&shape)[L], T mean, T std_dev, E& engine)
    +
    643 {
    +
    644 std::normal_distribution<T> dist(mean, std_dev);
    +
    645 return detail::make_xgenerator(
    +
    646 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    647 shape
    +
    648 );
    +
    649 }
    +
    650
    +
    651 template <class T, class I, std::size_t L, class D, class E>
    +
    652 inline auto binomial(const I (&shape)[L], T trials, D prob, E& engine)
    +
    653 {
    +
    654 std::binomial_distribution<T> dist(trials, prob);
    +
    655 return detail::make_xgenerator(
    +
    656 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    657 shape
    +
    658 );
    +
    659 }
    +
    660
    +
    661 template <class T, class I, std::size_t L, class D, class E>
    +
    662 inline auto geometric(const I (&shape)[L], D prob, E& engine)
    +
    663 {
    +
    664 std::geometric_distribution<T> dist(prob);
    +
    665 return detail::make_xgenerator(
    +
    666 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    667 shape
    +
    668 );
    +
    669 }
    +
    670
    +
    671 template <class T, class I, std::size_t L, class D, class E>
    +
    672 inline auto negative_binomial(const I (&shape)[L], T k, D prob, E& engine)
    +
    673 {
    +
    674 std::negative_binomial_distribution<T> dist(k, prob);
    +
    675 return detail::make_xgenerator(
    +
    676 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    677 shape
    +
    678 );
    +
    679 }
    +
    680
    +
    681 template <class T, class I, std::size_t L, class D, class E>
    +
    682 inline auto poisson(const I (&shape)[L], D rate, E& engine)
    +
    683 {
    +
    684 std::poisson_distribution<T> dist(rate);
    +
    685 return detail::make_xgenerator(
    +
    686 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    687 shape
    +
    688 );
    +
    689 }
    +
    690
    +
    691 template <class T, class I, std::size_t L, class E>
    +
    692 inline auto exponential(const I (&shape)[L], T rate, E& engine)
    +
    693 {
    +
    694 std::exponential_distribution<T> dist(rate);
    +
    695 return detail::make_xgenerator(
    +
    696 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    697 shape
    +
    698 );
    +
    699 }
    +
    700
    +
    701 template <class T, class I, std::size_t L, class E>
    +
    702 inline auto gamma(const I (&shape)[L], T alpha, T beta, E& engine)
    +
    703 {
    +
    704 std::gamma_distribution<T> dist(alpha, beta);
    +
    705 return detail::make_xgenerator(
    +
    706 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    707 shape
    +
    708 );
    +
    709 }
    +
    710
    +
    711 template <class T, class I, std::size_t L, class E>
    +
    712 inline auto weibull(const I (&shape)[L], T a, T b, E& engine)
    +
    713 {
    +
    714 std::weibull_distribution<T> dist(a, b);
    +
    715 return detail::make_xgenerator(
    +
    716 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    717 shape
    +
    718 );
    +
    719 }
    +
    720
    +
    721 template <class T, class I, std::size_t L, class E>
    +
    722 inline auto extreme_value(const I (&shape)[L], T a, T b, E& engine)
    +
    723 {
    +
    724 std::extreme_value_distribution<T> dist(a, b);
    +
    725 return detail::make_xgenerator(
    +
    726 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    727 shape
    +
    728 );
    +
    729 }
    +
    730
    +
    731 template <class T, class I, std::size_t L, class E>
    +
    732 inline auto lognormal(const I (&shape)[L], T mean, T std_dev, E& engine)
    +
    733 {
    +
    734 std::lognormal_distribution<T> dist(mean, std_dev);
    +
    735 return detail::make_xgenerator(
    +
    736 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    737 shape
    +
    738 );
    +
    739 }
    +
    740
    +
    741 template <class T, class I, std::size_t L, class E>
    +
    742 inline auto chi_squared(const I (&shape)[L], T deg, E& engine)
    +
    743 {
    +
    744 std::chi_squared_distribution<T> dist(deg);
    +
    745 return detail::make_xgenerator(
    +
    746 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    747 shape
    +
    748 );
    +
    749 }
    +
    750
    +
    751 template <class T, class I, std::size_t L, class E>
    +
    752 inline auto cauchy(const I (&shape)[L], T a, T b, E& engine)
    +
    753 {
    +
    754 std::cauchy_distribution<T> dist(a, b);
    +
    755 return detail::make_xgenerator(
    +
    756 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    757 shape
    +
    758 );
    +
    759 }
    +
    760
    +
    761 template <class T, class I, std::size_t L, class E>
    +
    762 inline auto fisher_f(const I (&shape)[L], T m, T n, E& engine)
    +
    763 {
    +
    764 std::fisher_f_distribution<T> dist(m, n);
    +
    765 return detail::make_xgenerator(
    +
    766 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    767 shape
    +
    768 );
    +
    769 }
    +
    770
    +
    771 template <class T, class I, std::size_t L, class E>
    +
    772 inline auto student_t(const I (&shape)[L], T n, E& engine)
    +
    773 {
    +
    774 std::student_t_distribution<T> dist(n);
    +
    775 return detail::make_xgenerator(
    +
    776 detail::random_impl<T, E, decltype(dist)>(engine, std::move(dist)),
    +
    777 shape
    +
    778 );
    +
    779 }
    +
    780
    +
    788 template <class T, class E>
    +
    789 void shuffle(xexpression<T>& e, E& engine)
    +
    790 {
    +
    791 T& de = e.derived_cast();
    +
    792
    +
    793 if (de.dimension() == 1)
    +
    794 {
    +
    795 using size_type = typename T::size_type;
    +
    796 auto first = de.begin();
    +
    797 auto last = de.end();
    +
    798
    +
    799 for (size_type i = std::size_t((last - first) - 1); i > 0; --i)
    +
    800 {
    +
    801 std::uniform_int_distribution<size_type> dist(0, i);
    +
    802 auto j = dist(engine);
    +
    803 using std::swap;
    +
    804 swap(first[i], first[j]);
    +
    805 }
    +
    806 }
    +
    807 else
    +
    808 {
    +
    809 using size_type = typename T::size_type;
    +
    810 decltype(auto) buf = empty_like(view(de, 0));
    +
    811
    +
    812 for (size_type i = de.shape()[0] - 1; i > 0; --i)
    +
    813 {
    +
    814 std::uniform_int_distribution<size_type> dist(0, i);
    +
    815 size_type j = dist(engine);
    +
    816
    +
    817 buf = view(de, j);
    +
    818 view(de, j) = view(de, i);
    +
    819 view(de, i) = buf;
    +
    820 }
    +
    821 }
    +
    822 }
    +
    823
    +
    837 template <xtl::integral_concept T, class E>
    +
    838 xtensor<T, 1> permutation(T e, E& engine)
    +
    839 {
    + +
    841 shuffle(res, engine);
    +
    842 return res;
    +
    843 }
    +
    844
    +
    846 template <xexpression_concept T, class E>
    +
    847 std::decay_t<T> permutation(T&& e, E& engine)
    +
    848 {
    +
    849 using copy_type = std::decay_t<T>;
    +
    850 copy_type res = e;
    +
    851 shuffle(res, engine);
    +
    852 return res;
    +
    853 }
    +
    854
    +
    856
    +
    868 template <class T, class E>
    + +
    870 choice(const xexpression<T>& e, std::size_t n, bool replace, E& engine)
    +
    871 {
    +
    872 const auto& de = e.derived_cast();
    +
    873 XTENSOR_ASSERT((de.dimension() == 1));
    +
    874 XTENSOR_ASSERT((replace || n <= de.size()));
    +
    875 using result_type = xtensor<typename T::value_type, 1>;
    +
    876 using size_type = typename result_type::size_type;
    +
    877 result_type result;
    +
    878 result.resize({n});
    +
    879
    +
    880 if (replace)
    +
    881 {
    +
    882 auto dist = std::uniform_int_distribution<size_type>(0, de.size() - 1);
    +
    883 for (size_type i = 0; i < n; ++i)
    +
    884 {
    +
    885 result[i] = de.storage()[dist(engine)];
    +
    886 }
    +
    887 }
    +
    888 else
    +
    889 {
    +
    890 // Naive resevoir sampling without weighting:
    +
    891 std::copy(de.storage().begin(), de.storage().begin() + n, result.begin());
    +
    892 size_type i = n;
    +
    893 for (auto it = de.storage().begin() + n; it != de.storage().end(); ++it, ++i)
    +
    894 {
    +
    895 auto idx = std::uniform_int_distribution<size_type>(0, i)(engine);
    +
    896 if (idx < n)
    +
    897 {
    +
    898 result.storage()[idx] = *it;
    +
    899 }
    +
    900 }
    +
    901 }
    +
    902 return result;
    +
    903 }
    +
    904
    +
    933 template <class T, class W, class E>
    + +
    935 choice(const xexpression<T>& e, std::size_t n, const xexpression<W>& weights, bool replace, E& engine)
    +
    936 {
    +
    937 const auto& de = e.derived_cast();
    +
    938 const auto& dweights = weights.derived_cast();
    +
    939 XTENSOR_ASSERT((de.dimension() == 1));
    +
    940 XTENSOR_ASSERT((replace || n <= de.size()));
    +
    941 XTENSOR_ASSERT((de.size() == dweights.size()));
    +
    942 XTENSOR_ASSERT((de.dimension() == dweights.dimension()));
    +
    943 XTENSOR_ASSERT(xt::all(dweights >= 0));
    +
    944 static_assert(
    +
    945 std::is_floating_point<typename W::value_type>::value,
    +
    946 "Weight expression must be of floating point type"
    +
    947 );
    +
    948 using result_type = xtensor<typename T::value_type, 1>;
    +
    949 using size_type = typename result_type::size_type;
    +
    950 using weight_type = typename W::value_type;
    +
    951 result_type result;
    +
    952 result.resize({n});
    +
    953
    +
    954 if (replace)
    +
    955 {
    +
    956 // Sample u uniformly in the range [0, sum(weights)[
    +
    957 // The index idx of the sampled element is such that weight_cumul[idx - 1] <= u <
    +
    958 // weight_cumul[idx]. Where weight_cumul[-1] is implicitly 0, as the empty sum.
    +
    959 const auto wc = eval(cumsum(dweights));
    +
    960 std::uniform_real_distribution<weight_type> weight_dist{0, wc[wc.size() - 1]};
    +
    961 for (auto& x : result)
    +
    962 {
    +
    963 const auto u = weight_dist(engine);
    +
    964 const auto idx = static_cast<size_type>(
    +
    965 std::upper_bound(wc.cbegin(), wc.cend(), u) - wc.cbegin()
    +
    966 );
    +
    967 x = de[idx];
    +
    968 }
    +
    969 }
    +
    970 else
    +
    971 {
    +
    972 // Compute (modified) keys as weight/randexp(1).
    + +
    974 keys.resize({dweights.size()});
    +
    975 std::exponential_distribution<weight_type> randexp{weight_type(1)};
    +
    976 std::transform(
    +
    977 dweights.cbegin(),
    +
    978 dweights.cend(),
    +
    979 keys.begin(),
    +
    980 [&randexp, &engine](auto w)
    +
    981 {
    +
    982 return w / randexp(engine);
    +
    983 }
    +
    984 );
    +
    985
    +
    986 // Find indexes for the n biggest key
    +
    987 xtensor<size_type, 1> indices = arange<size_type>(0, dweights.size());
    +
    988 std::partial_sort(
    +
    989 indices.begin(),
    +
    990 indices.begin() + n,
    +
    991 indices.end(),
    +
    992 [&keys](auto i, auto j)
    +
    993 {
    +
    994 return keys[i] > keys[j];
    +
    995 }
    +
    996 );
    +
    997
    +
    998 // Return samples with the n biggest keys
    +
    999 result = index_view(de, xtl::span<size_type>{indices.data(), n});
    +
    1000 }
    +
    1001 return result;
    +
    1002 }
    +
    1003
    +
    1004 }
    +
    1005}
    +
    1006
    +
    1007#endif
    +
    void resize(S &&shape, bool force=false)
    Resizes the container.
    +
    auto cumsum(E &&e, std::ptrdiff_t axis)
    Cumulative sum.
    Definition xmath.hpp:2283
    +
    auto mean(E &&e, X &&axes, EVS es=EVS())
    Mean of elements over given axes.
    Definition xmath.hpp:1932
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    @ weibull
    Method 6 of (Hyndman and Fan, 1996) with alpha=0 and beta=0.
    Definition xsort.hpp:985
    +
    standard mathematical functions for xexpressions
    +
    auto arange(T start, T stop, S step=1) noexcept
    Generates numbers evenly spaced within given half-open interval [start, stop).
    Definition xbuilder.hpp:432
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    auto index_view(E &&e, I &&indices) noexcept
    creates an indexview from a container of indices.
    +
    auto empty_like(const xexpression< E > &e)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of the same shape,...
    Definition xbuilder.hpp:121
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    +
    +
    + + + + diff --git a/xreducer_8hpp_source.html b/xreducer_8hpp_source.html new file mode 100644 index 000000000..2ae06bc5d --- /dev/null +++ b/xreducer_8hpp_source.html @@ -0,0 +1,2035 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/reducers/xreducer.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xreducer.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_REDUCER_HPP
    +
    11#define XTENSOR_REDUCER_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <iterator>
    +
    16#include <stdexcept>
    +
    17#include <tuple>
    +
    18#include <type_traits>
    +
    19#include <utility>
    +
    20
    +
    21#include <xtl/xfunctional.hpp>
    +
    22#include <xtl/xsequence.hpp>
    +
    23
    +
    24#include "../core/xaccessible.hpp"
    +
    25#include "../core/xeval.hpp"
    +
    26#include "../core/xexpression.hpp"
    +
    27#include "../core/xiterable.hpp"
    +
    28#include "../core/xtensor_config.hpp"
    +
    29#include "../generators/xbuilder.hpp"
    +
    30#include "../generators/xgenerator.hpp"
    +
    31#include "../utils/xutils.hpp"
    +
    32
    +
    33namespace xt
    +
    34{
    +
    35 template <template <class...> class A, class... AX, class X, XTL_REQUIRES(is_evaluation_strategy<AX>..., is_evaluation_strategy<X>)>
    +
    36 auto operator|(const A<AX...>& args, const A<X>& rhs)
    +
    37 {
    +
    38 return std::tuple_cat(args, rhs);
    +
    39 }
    +
    40
    +
    +
    41 struct keep_dims_type : xt::detail::option_base
    +
    42 {
    +
    43 };
    +
    +
    44
    +
    45 constexpr auto keep_dims = std::tuple<keep_dims_type>{};
    +
    46
    +
    47 template <class T = double>
    +
    +
    48 struct xinitial : xt::detail::option_base
    +
    49 {
    +
    50 constexpr xinitial(T val)
    +
    51 : m_val(val)
    +
    52 {
    +
    53 }
    +
    54
    +
    55 constexpr T value() const
    +
    56 {
    +
    57 return m_val;
    +
    58 }
    +
    59
    +
    60 T m_val;
    +
    61 };
    +
    +
    62
    +
    63 template <class T>
    +
    64 constexpr auto initial(T val)
    +
    65 {
    +
    66 return std::make_tuple(xinitial<T>(val));
    +
    67 }
    +
    68
    +
    69 template <std::ptrdiff_t I, class T, class Tuple>
    + +
    71
    +
    72 template <std::ptrdiff_t I, class T>
    +
    +
    73 struct tuple_idx_of_impl<I, T, std::tuple<>>
    +
    74 {
    +
    75 static constexpr std::ptrdiff_t value = -1;
    +
    76 };
    +
    +
    77
    +
    78 template <std::ptrdiff_t I, class T, class... Types>
    +
    +
    79 struct tuple_idx_of_impl<I, T, std::tuple<T, Types...>>
    +
    80 {
    +
    81 static constexpr std::ptrdiff_t value = I;
    +
    82 };
    +
    +
    83
    +
    84 template <std::ptrdiff_t I, class T, class U, class... Types>
    +
    +
    85 struct tuple_idx_of_impl<I, T, std::tuple<U, Types...>>
    +
    86 {
    +
    87 static constexpr std::ptrdiff_t value = tuple_idx_of_impl<I + 1, T, std::tuple<Types...>>::value;
    +
    88 };
    +
    +
    89
    +
    90 template <class S, class... X>
    +
    91 struct decay_all;
    +
    92
    +
    93 template <template <class...> class S, class... X>
    +
    +
    94 struct decay_all<S<X...>>
    +
    95 {
    +
    96 using type = S<std::decay_t<X>...>;
    +
    97 };
    +
    +
    98
    +
    99 template <class T, class Tuple>
    +
    + +
    101 {
    +
    102 static constexpr std::ptrdiff_t
    + +
    104 };
    +
    +
    105
    +
    106 template <class R, class T>
    +
    +
    107 struct reducer_options
    +
    108 {
    +
    109 template <class X>
    +
    +
    110 struct initial_tester : std::false_type
    +
    111 {
    +
    112 };
    +
    +
    113
    +
    114 template <class X>
    +
    +
    115 struct initial_tester<xinitial<X>> : std::true_type
    +
    116 {
    +
    117 };
    +
    +
    118
    +
    119 // Workaround for Apple because tuple_cat is buggy!
    +
    120 template <class X>
    +
    +
    121 struct initial_tester<const xinitial<X>> : std::true_type
    +
    122 {
    +
    123 };
    +
    +
    124
    +
    125 using d_t = std::decay_t<T>;
    +
    126
    +
    127 static constexpr std::size_t initial_val_idx = xtl::mpl::find_if<initial_tester, d_t>::value;
    +
    128 reducer_options() = default;
    +
    129
    +
    130 reducer_options(const T& tpl)
    +
    131 {
    +
    132 if constexpr (initial_val_idx != std::tuple_size<T>::value)
    +
    133 {
    +
    134 initial_value = std::get < initial_val_idx != std::tuple_size<T>::value ? initial_val_idx
    +
    135 : 0 > (tpl).value();
    +
    136 }
    +
    137 }
    +
    138
    +
    139 using evaluation_strategy = std::conditional_t<
    +
    140 tuple_idx_of<xt::evaluation_strategy::immediate_type, d_t>::value != -1,
    + + +
    143
    +
    144 using keep_dims = std::
    +
    145 conditional_t<tuple_idx_of<xt::keep_dims_type, d_t>::value != -1, std::true_type, std::false_type>;
    +
    146
    +
    147 static constexpr bool has_initial_value = initial_val_idx != std::tuple_size<d_t>::value;
    +
    148
    +
    149 R initial_value;
    +
    150
    +
    151 template <class NR>
    +
    152 using rebind_t = reducer_options<NR, T>;
    +
    153
    +
    154 template <class NR>
    +
    155 auto rebind(NR initial, const reducer_options<R, T>&) const
    +
    156 {
    +
    157 reducer_options<NR, T> res;
    +
    158 res.initial_value = initial;
    +
    159 return res;
    +
    160 }
    +
    161 };
    +
    +
    162
    +
    163 template <class T>
    +
    +
    164 struct is_reducer_options_impl : std::false_type
    +
    165 {
    +
    166 };
    +
    +
    167
    +
    168 template <class... X>
    +
    +
    169 struct is_reducer_options_impl<std::tuple<X...>> : std::true_type
    +
    170 {
    +
    171 };
    +
    +
    172
    +
    173 template <class T>
    +
    + +
    175 {
    +
    176 };
    +
    +
    177
    +
    178 /**********
    +
    179 * reduce *
    +
    180 **********/
    +
    181
    +
    182#define DEFAULT_STRATEGY_REDUCERS std::tuple<evaluation_strategy::lazy_type>
    +
    183
    +
    184 template <class ST, class X, class KD = std::false_type>
    +
    185 struct xreducer_shape_type;
    +
    186
    +
    187 template <class S1, class S2>
    + +
    189
    +
    190 namespace detail
    +
    191 {
    +
    192 template <class O, class RS, class R, class E, class AX>
    +
    193 inline void shape_computation(
    +
    194 RS& result_shape,
    +
    195 R& result,
    +
    196 E& expr,
    +
    197 const AX& axes,
    +
    198 std::enable_if_t<!detail::is_fixed<RS>::value, int> = 0
    +
    199 )
    +
    200 {
    +
    201 if (typename O::keep_dims())
    +
    202 {
    +
    203 resize_container(result_shape, expr.dimension());
    +
    204 for (std::size_t i = 0; i < expr.dimension(); ++i)
    +
    205 {
    +
    206 if (std::find(axes.begin(), axes.end(), i) == axes.end())
    +
    207 {
    +
    208 // i not in axes!
    +
    209 result_shape[i] = expr.shape()[i];
    +
    210 }
    +
    211 else
    +
    212 {
    +
    213 result_shape[i] = 1;
    +
    214 }
    +
    215 }
    +
    216 }
    +
    217 else
    +
    218 {
    +
    219 resize_container(result_shape, expr.dimension() - axes.size());
    +
    220 for (std::size_t i = 0, idx = 0; i < expr.dimension(); ++i)
    +
    221 {
    +
    222 if (std::find(axes.begin(), axes.end(), i) == axes.end())
    +
    223 {
    +
    224 // i not in axes!
    +
    225 result_shape[idx] = expr.shape()[i];
    +
    226 ++idx;
    +
    227 }
    +
    228 }
    +
    229 }
    +
    230 result.resize(result_shape, expr.layout());
    +
    231 }
    +
    232
    +
    233 // skip shape computation if already done at compile time
    +
    234 template <class O, class RS, class R, class S, class AX>
    +
    235 inline void
    +
    236 shape_computation(RS&, R&, const S&, const AX&, std::enable_if_t<detail::is_fixed<RS>::value, int> = 0)
    +
    237 {
    +
    238 }
    +
    239 }
    +
    240
    +
    241 template <class F, class E, class R, XTL_REQUIRES(std::is_convertible<typename E::value_type, typename R::value_type>)>
    +
    242 inline void copy_to_reduced(F&, const E& e, R& result)
    +
    243 {
    +
    244 if (e.layout() == layout_type::row_major)
    +
    245 {
    +
    246 std::copy(
    +
    247 e.template cbegin<layout_type::row_major>(),
    +
    248 e.template cend<layout_type::row_major>(),
    +
    249 result.data()
    +
    250 );
    +
    251 }
    +
    252 else
    +
    253 {
    +
    254 std::copy(
    +
    255 e.template cbegin<layout_type::column_major>(),
    +
    256 e.template cend<layout_type::column_major>(),
    +
    257 result.data()
    +
    258 );
    +
    259 }
    +
    260 }
    +
    261
    +
    262 template <
    +
    263 class F,
    +
    264 class E,
    +
    265 class R,
    +
    266 XTL_REQUIRES(std::negation<std::is_convertible<typename E::value_type, typename R::value_type>>)>
    +
    267 inline void copy_to_reduced(F& f, const E& e, R& result)
    +
    268 {
    +
    269 if (e.layout() == layout_type::row_major)
    +
    270 {
    +
    271 std::transform(
    +
    272 e.template cbegin<layout_type::row_major>(),
    +
    273 e.template cend<layout_type::row_major>(),
    +
    274 result.data(),
    +
    275 f
    +
    276 );
    +
    277 }
    +
    278 else
    +
    279 {
    +
    280 std::transform(
    +
    281 e.template cbegin<layout_type::column_major>(),
    +
    282 e.template cend<layout_type::column_major>(),
    +
    283 result.data(),
    +
    284 f
    +
    285 );
    +
    286 }
    +
    287 }
    +
    288
    +
    289 template <class F, class E, class X, class O>
    +
    290 inline auto reduce_immediate(F&& f, E&& e, X&& axes, O&& raw_options)
    +
    291 {
    +
    292 using reduce_functor_type = typename std::decay_t<F>::reduce_functor_type;
    +
    293 using init_functor_type = typename std::decay_t<F>::init_functor_type;
    +
    294 using expr_value_type = typename std::decay_t<E>::value_type;
    +
    295 using result_type = std::decay_t<decltype(std::declval<reduce_functor_type>()(
    +
    296 std::declval<init_functor_type>()(),
    +
    297 std::declval<expr_value_type>()
    +
    298 ))>;
    +
    299
    + +
    301 options_t options(raw_options);
    +
    302
    +
    303 using shape_type = typename xreducer_shape_type<
    +
    304 typename std::decay_t<E>::shape_type,
    +
    305 std::decay_t<X>,
    +
    306 typename options_t::keep_dims>::type;
    +
    307 using result_container_type = typename detail::xtype_for_shape<
    +
    308 shape_type>::template type<result_type, std::decay_t<E>::static_layout>;
    +
    309 result_container_type result;
    +
    310
    +
    311 // retrieve functors from triple struct
    +
    312 auto reduce_fct = xt::get<0>(f);
    +
    313 auto init_fct = xt::get<1>(f);
    +
    314 auto merge_fct = xt::get<2>(f);
    +
    315
    +
    316 if (axes.size() == 0)
    +
    317 {
    +
    318 result.resize(e.shape(), e.layout());
    +
    319 auto cpf = [&reduce_fct, &init_fct](const auto& v)
    +
    320 {
    +
    321 return reduce_fct(static_cast<result_type>(init_fct()), v);
    +
    322 };
    +
    323 copy_to_reduced(cpf, e, result);
    +
    324 return result;
    +
    325 }
    +
    326
    +
    327 shape_type result_shape{};
    +
    328 dynamic_shape<std::size_t>
    +
    329 iter_shape = xtl::forward_sequence<dynamic_shape<std::size_t>, decltype(e.shape())>(e.shape());
    +
    330 dynamic_shape<std::size_t> iter_strides(e.dimension());
    +
    331
    +
    332 // std::less is used, because as the standard says (24.4.5):
    +
    333 // A sequence is sorted with respect to a comparator comp if for any iterator i pointing to the
    +
    334 // sequence and any non-negative integer n such that i + n is a valid iterator pointing to an element
    +
    335 // of the sequence, comp(*(i + n), *i) == false. Therefore less is required to detect duplicates.
    +
    336 if (!std::is_sorted(axes.cbegin(), axes.cend(), std::less<>()))
    +
    337 {
    +
    338 XTENSOR_THROW(std::runtime_error, "Reducing axes should be sorted.");
    +
    339 }
    +
    340 if (std::adjacent_find(axes.cbegin(), axes.cend()) != axes.cend())
    +
    341 {
    +
    342 XTENSOR_THROW(std::runtime_error, "Reducing axes should not contain duplicates.");
    +
    343 }
    +
    344 if (axes.size() != 0 && axes[axes.size() - 1] > e.dimension() - 1)
    +
    345 {
    +
    346 XTENSOR_THROW(
    +
    347 std::runtime_error,
    +
    348 "Axis " + std::to_string(axes[axes.size() - 1]) + " out of bounds for reduction."
    +
    349 );
    +
    350 }
    +
    351
    +
    352 detail::shape_computation<options_t>(result_shape, result, e, axes);
    +
    353
    +
    354 // Fast track for complete reduction
    +
    355 if (e.dimension() == axes.size())
    +
    356 {
    +
    357 result_type tmp = options_t::has_initial_value ? options.initial_value : init_fct();
    +
    358 result.data()[0] = std::accumulate(e.storage().begin(), e.storage().end(), tmp, reduce_fct);
    +
    359 return result;
    +
    360 }
    +
    361
    +
    362 std::size_t leading_ax = axes[(e.layout() == layout_type::row_major) ? axes.size() - 1 : 0];
    +
    363 auto strides_finder = e.strides().begin() + static_cast<std::ptrdiff_t>(leading_ax);
    +
    364 // The computed strides contain "0" where the shape is 1 -- therefore find the next none-zero number
    +
    365 std::size_t inner_stride = static_cast<std::size_t>(*strides_finder);
    +
    366 auto iter_bound = e.layout() == layout_type::row_major ? e.strides().begin() : (e.strides().end() - 1);
    +
    367 while (inner_stride == 0 && strides_finder != iter_bound)
    +
    368 {
    +
    369 (e.layout() == layout_type::row_major) ? --strides_finder : ++strides_finder;
    +
    370 inner_stride = static_cast<std::size_t>(*strides_finder);
    +
    371 }
    +
    372
    +
    373 if (inner_stride == 0)
    +
    374 {
    +
    375 auto cpf = [&reduce_fct, &init_fct](const auto& v)
    +
    376 {
    +
    377 return reduce_fct(static_cast<result_type>(init_fct()), v);
    +
    378 };
    +
    379 copy_to_reduced(cpf, e, result);
    +
    380 return result;
    +
    381 }
    +
    382
    +
    383 std::size_t inner_loop_size = static_cast<std::size_t>(inner_stride);
    +
    384 std::size_t outer_loop_size = e.shape()[leading_ax];
    +
    385
    +
    386 // The following code merges reduction axes "at the end" (or the beginning for col_major)
    +
    387 // together by increasing the size of the outer loop where appropriate
    +
    388 auto merge_loops = [&outer_loop_size, &e](auto it, auto end)
    +
    389 {
    +
    390 auto last_ax = *it;
    +
    391 ++it;
    +
    392 for (; it != end; ++it)
    +
    393 {
    +
    394 // note that we check is_sorted, so this condition is valid
    +
    395 if (std::abs(std::ptrdiff_t(*it) - std::ptrdiff_t(last_ax)) == 1)
    +
    396 {
    +
    397 last_ax = *it;
    +
    398 outer_loop_size *= e.shape()[last_ax];
    +
    399 }
    +
    400 }
    +
    401 return last_ax;
    +
    402 };
    +
    403
    +
    404 for (std::size_t i = 0, idx = 0; i < e.dimension(); ++i)
    +
    405 {
    +
    406 if (std::find(axes.begin(), axes.end(), i) == axes.end())
    +
    407 {
    +
    408 // i not in axes!
    +
    409 iter_strides[i] = static_cast<std::size_t>(result.strides(
    +
    410 )[typename options_t::keep_dims() ? i : idx]);
    +
    411 ++idx;
    +
    412 }
    +
    413 }
    +
    414
    +
    415 if (e.layout() == layout_type::row_major)
    +
    416 {
    +
    417 std::size_t last_ax = merge_loops(axes.rbegin(), axes.rend());
    +
    418
    +
    419 iter_shape.erase(iter_shape.begin() + std::ptrdiff_t(last_ax), iter_shape.end());
    +
    420 iter_strides.erase(iter_strides.begin() + std::ptrdiff_t(last_ax), iter_strides.end());
    +
    421 }
    +
    422 else if (e.layout() == layout_type::column_major)
    +
    423 {
    +
    424 // we got column_major here
    +
    425 std::size_t last_ax = merge_loops(axes.begin(), axes.end());
    +
    426
    +
    427 // erasing the front vs the back
    +
    428 iter_shape.erase(iter_shape.begin(), iter_shape.begin() + std::ptrdiff_t(last_ax + 1));
    +
    429 iter_strides.erase(iter_strides.begin(), iter_strides.begin() + std::ptrdiff_t(last_ax + 1));
    +
    430
    +
    431 // and reversing, to make it work with the same next_idx function
    +
    432 std::reverse(iter_shape.begin(), iter_shape.end());
    +
    433 std::reverse(iter_strides.begin(), iter_strides.end());
    +
    434 }
    +
    435 else
    +
    436 {
    +
    437 XTENSOR_THROW(std::runtime_error, "Layout not supported in immediate reduction.");
    +
    438 }
    +
    439
    +
    440 xindex temp_idx(iter_shape.size());
    +
    441 auto next_idx = [&iter_shape, &iter_strides, &temp_idx]()
    +
    442 {
    +
    443 std::size_t i = iter_shape.size();
    +
    444 for (; i > 0; --i)
    +
    445 {
    +
    446 if (std::ptrdiff_t(temp_idx[i - 1]) >= std::ptrdiff_t(iter_shape[i - 1]) - 1)
    +
    447 {
    +
    448 temp_idx[i - 1] = 0;
    +
    449 }
    +
    450 else
    +
    451 {
    +
    452 temp_idx[i - 1]++;
    +
    453 break;
    +
    454 }
    +
    455 }
    +
    456
    +
    457 return std::make_pair(
    +
    458 i == 0,
    +
    459 std::inner_product(temp_idx.begin(), temp_idx.end(), iter_strides.begin(), std::ptrdiff_t(0))
    +
    460 );
    +
    461 };
    +
    462
    +
    463 auto begin = e.data();
    +
    464 auto out = result.data();
    +
    465 auto out_begin = result.data();
    +
    466
    +
    467 std::ptrdiff_t next_stride = 0;
    +
    468
    +
    469 std::pair<bool, std::ptrdiff_t> idx_res(false, 0);
    +
    470
    +
    471 // Remark: eventually some modifications here to make conditions faster where merge + accumulate is
    +
    472 // the same function (e.g. check std::is_same<decltype(merge_fct), decltype(reduce_fct)>::value) ...
    +
    473
    +
    474 auto merge_border = out;
    +
    475 bool merge = false;
    +
    476
    +
    477 // TODO there could be some performance gain by removing merge checking
    +
    478 // when axes.size() == 1 and even next_idx could be removed for something simpler (next_stride
    +
    479 // always the same) best way to do this would be to create a function that takes (begin, out,
    +
    480 // outer_loop_size, inner_loop_size, next_idx_lambda)
    +
    481 // Decide if going about it row-wise or col-wise
    +
    482 if (inner_stride == 1)
    +
    483 {
    +
    484 while (idx_res.first != true)
    +
    485 {
    +
    486 // for unknown reasons it's much faster to use a temporary variable and
    +
    487 // std::accumulate here -- probably some cache behavior
    +
    488 result_type tmp = init_fct();
    +
    489 tmp = std::accumulate(begin, begin + outer_loop_size, tmp, reduce_fct);
    +
    490
    +
    491 // use merge function if necessary
    +
    492 *out = merge ? merge_fct(*out, tmp) : tmp;
    +
    493
    +
    494 begin += outer_loop_size;
    +
    495
    +
    496 idx_res = next_idx();
    +
    497 next_stride = idx_res.second;
    +
    498 out = out_begin + next_stride;
    +
    499
    +
    500 if (out > merge_border)
    +
    501 {
    +
    502 // looped over once
    +
    503 merge = false;
    +
    504 merge_border = out;
    +
    505 }
    +
    506 else
    +
    507 {
    +
    508 merge = true;
    +
    509 }
    +
    510 };
    +
    511 }
    +
    512 else
    +
    513 {
    +
    514 while (idx_res.first != true)
    +
    515 {
    +
    516 std::transform(
    +
    517 out,
    +
    518 out + inner_loop_size,
    +
    519 begin,
    +
    520 out,
    +
    521 [merge, &init_fct, &reduce_fct](auto&& v1, auto&& v2)
    +
    522 {
    +
    523 return merge ? reduce_fct(v1, v2) :
    +
    524 // cast because return type of identity function is not upcasted
    +
    525 reduce_fct(static_cast<result_type>(init_fct()), v2);
    +
    526 }
    +
    527 );
    +
    528
    +
    529 begin += inner_stride;
    +
    530 for (std::size_t i = 1; i < outer_loop_size; ++i)
    +
    531 {
    +
    532 std::transform(out, out + inner_loop_size, begin, out, reduce_fct);
    +
    533 begin += inner_stride;
    +
    534 }
    +
    535
    +
    536 idx_res = next_idx();
    +
    537 next_stride = idx_res.second;
    +
    538 out = out_begin + next_stride;
    +
    539
    +
    540 if (out > merge_border)
    +
    541 {
    +
    542 // looped over once
    +
    543 merge = false;
    +
    544 merge_border = out;
    +
    545 }
    +
    546 else
    +
    547 {
    +
    548 merge = true;
    +
    549 }
    +
    550 };
    +
    551 }
    +
    552 if (options_t::has_initial_value)
    +
    553 {
    +
    554 std::transform(
    +
    555 result.data(),
    +
    556 result.data() + result.size(),
    +
    557 result.data(),
    +
    558 [&merge_fct, &options](auto&& v)
    +
    559 {
    +
    560 return merge_fct(v, options.initial_value);
    +
    561 }
    +
    562 );
    +
    563 }
    +
    564 return result;
    +
    565 }
    +
    566
    +
    567 /*********************
    +
    568 * xreducer functors *
    +
    569 *********************/
    +
    570
    +
    571 template <class T>
    +
    +
    572 struct const_value
    +
    573 {
    +
    574 using value_type = T;
    +
    575
    +
    576 constexpr const_value() = default;
    +
    577
    +
    578 constexpr const_value(T t)
    +
    579 : m_value(t)
    +
    580 {
    +
    581 }
    +
    582
    +
    583 constexpr T operator()() const
    +
    584 {
    +
    585 return m_value;
    +
    586 }
    +
    587
    +
    588 template <class NT>
    +
    589 using rebind_t = const_value<NT>;
    +
    590
    +
    591 template <class NT>
    +
    592 const_value<NT> rebind() const;
    +
    593
    +
    594 T m_value;
    +
    595 };
    +
    +
    596
    +
    597 namespace detail
    +
    598 {
    +
    599 template <class T, bool B>
    +
    600 struct evaluated_value_type
    +
    601 {
    +
    602 using type = T;
    +
    603 };
    +
    604
    +
    605 template <class T>
    +
    606 struct evaluated_value_type<T, true>
    +
    607 {
    +
    608 using type = typename std::decay_t<decltype(xt::eval(std::declval<T>()))>;
    +
    609 };
    +
    610
    +
    611 template <class T, bool B>
    +
    612 using evaluated_value_type_t = typename evaluated_value_type<T, B>::type;
    +
    613 }
    +
    614
    +
    615 template <class REDUCE_FUNC, class INIT_FUNC = const_value<long int>, class MERGE_FUNC = REDUCE_FUNC>
    +
    +
    616 struct xreducer_functors : public std::tuple<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>
    +
    617 {
    +
    618 using self_type = xreducer_functors<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>;
    +
    619 using base_type = std::tuple<REDUCE_FUNC, INIT_FUNC, MERGE_FUNC>;
    +
    620 using reduce_functor_type = REDUCE_FUNC;
    +
    621 using init_functor_type = INIT_FUNC;
    +
    622 using merge_functor_type = MERGE_FUNC;
    +
    623 using init_value_type = typename init_functor_type::value_type;
    +
    624
    +
    625 xreducer_functors()
    +
    626 : base_type()
    +
    627 {
    +
    628 }
    +
    629
    +
    630 template <class RF>
    +
    631 xreducer_functors(RF&& reduce_func)
    +
    632 : base_type(std::forward<RF>(reduce_func), INIT_FUNC(), reduce_func)
    +
    633 {
    +
    634 }
    +
    635
    +
    636 template <class RF, class IF>
    +
    637 xreducer_functors(RF&& reduce_func, IF&& init_func)
    +
    638 : base_type(std::forward<RF>(reduce_func), std::forward<IF>(init_func), reduce_func)
    +
    639 {
    +
    640 }
    +
    641
    +
    642 template <class RF, class IF, class MF>
    +
    643 xreducer_functors(RF&& reduce_func, IF&& init_func, MF&& merge_func)
    +
    644 : base_type(std::forward<RF>(reduce_func), std::forward<IF>(init_func), std::forward<MF>(merge_func))
    +
    645 {
    +
    646 }
    +
    647
    +
    648 reduce_functor_type get_reduce() const
    +
    649 {
    +
    650 return std::get<0>(upcast());
    +
    651 }
    +
    652
    +
    653 init_functor_type get_init() const
    +
    654 {
    +
    655 return std::get<1>(upcast());
    +
    656 }
    +
    657
    +
    658 merge_functor_type get_merge() const
    +
    659 {
    +
    660 return std::get<2>(upcast());
    +
    661 }
    +
    662
    +
    663 template <class NT>
    +
    664 using rebind_t = xreducer_functors<REDUCE_FUNC, const_value<NT>, MERGE_FUNC>;
    +
    665
    +
    666 template <class NT>
    +
    667 rebind_t<NT> rebind()
    +
    668 {
    +
    669 return make_xreducer_functor(get_reduce(), get_init().template rebind<NT>(), get_merge());
    +
    670 }
    +
    671
    +
    672 private:
    +
    673
    +
    674 // Workaround for clang-cl
    +
    675 const base_type& upcast() const
    +
    676 {
    +
    677 return static_cast<const base_type&>(*this);
    +
    678 }
    +
    679 };
    +
    +
    680
    +
    681 template <class RF>
    +
    682 auto make_xreducer_functor(RF&& reduce_func)
    +
    683 {
    + +
    685 return reducer_type(std::forward<RF>(reduce_func));
    +
    686 }
    +
    687
    +
    688 template <class RF, class IF>
    +
    689 auto make_xreducer_functor(RF&& reduce_func, IF&& init_func)
    +
    690 {
    +
    691 using reducer_type = xreducer_functors<std::remove_reference_t<RF>, std::remove_reference_t<IF>>;
    +
    692 return reducer_type(std::forward<RF>(reduce_func), std::forward<IF>(init_func));
    +
    693 }
    +
    694
    +
    695 template <class RF, class IF, class MF>
    +
    696 auto make_xreducer_functor(RF&& reduce_func, IF&& init_func, MF&& merge_func)
    +
    697 {
    +
    698 using reducer_type = xreducer_functors<
    +
    699 std::remove_reference_t<RF>,
    +
    700 std::remove_reference_t<IF>,
    +
    701 std::remove_reference_t<MF>>;
    +
    702 return reducer_type(
    +
    703 std::forward<RF>(reduce_func),
    +
    704 std::forward<IF>(init_func),
    +
    705 std::forward<MF>(merge_func)
    +
    706 );
    +
    707 }
    +
    708
    +
    709 /**********************
    +
    710 * xreducer extension *
    +
    711 **********************/
    +
    712
    +
    713 namespace extension
    +
    714 {
    +
    715 template <class Tag, class F, class CT, class X, class O>
    + +
    717
    +
    718 template <class F, class CT, class X, class O>
    +
    + +
    720 {
    +
    721 using type = xtensor_empty_base;
    +
    722 };
    +
    +
    723
    +
    724 template <class F, class CT, class X, class O>
    +
    +
    725 struct xreducer_base : xreducer_base_impl<xexpression_tag_t<CT>, F, CT, X, O>
    +
    726 {
    +
    727 };
    +
    +
    728
    +
    729 template <class F, class CT, class X, class O>
    +
    730 using xreducer_base_t = typename xreducer_base<F, CT, X, O>::type;
    +
    731 }
    +
    732
    +
    733 /************
    +
    734 * xreducer *
    +
    735 ************/
    +
    736
    +
    737 template <class F, class CT, class X, class O>
    +
    738 class xreducer;
    +
    739
    +
    740 template <class F, class CT, class X, class O>
    +
    741 class xreducer_stepper;
    +
    742
    +
    743 template <class F, class CT, class X, class O>
    +
    +
    744 struct xiterable_inner_types<xreducer<F, CT, X, O>>
    +
    745 {
    +
    746 using xexpression_type = std::decay_t<CT>;
    +
    747 using inner_shape_type = typename xreducer_shape_type<
    +
    748 typename xexpression_type::shape_type,
    +
    749 std::decay_t<X>,
    +
    750 typename O::keep_dims>::type;
    +
    751 using const_stepper = xreducer_stepper<F, CT, X, O>;
    +
    752 using stepper = const_stepper;
    +
    753 };
    +
    +
    754
    +
    755 template <class F, class CT, class X, class O>
    +
    +
    756 struct xcontainer_inner_types<xreducer<F, CT, X, O>>
    +
    757 {
    +
    758 using xexpression_type = std::decay_t<CT>;
    +
    759 using reduce_functor_type = typename std::decay_t<F>::reduce_functor_type;
    +
    760 using init_functor_type = typename std::decay_t<F>::init_functor_type;
    +
    761 using merge_functor_type = typename std::decay_t<F>::merge_functor_type;
    +
    762 using substepper_type = typename xexpression_type::const_stepper;
    +
    763 using raw_value_type = std::decay_t<decltype(std::declval<reduce_functor_type>()(
    +
    764 std::declval<init_functor_type>()(),
    +
    765 *std::declval<substepper_type>()
    +
    766 ))>;
    +
    767 using value_type = typename detail::evaluated_value_type_t<raw_value_type, is_xexpression<raw_value_type>::value>;
    +
    768
    +
    769 using reference = value_type;
    +
    770 using const_reference = value_type;
    +
    771 using size_type = typename xexpression_type::size_type;
    +
    772 };
    +
    +
    773
    +
    774 template <class T>
    +
    + +
    776 {
    +
    777 using type = T;
    +
    778 };
    +
    +
    779
    +
    780 template <std::size_t... I>
    +
    + +
    782 {
    +
    783 using type = std::array<std::size_t, sizeof...(I)>;
    +
    784 };
    +
    +
    785
    +
    803 template <class F, class CT, class X, class O>
    +
    +
    804 class xreducer : public xsharable_expression<xreducer<F, CT, X, O>>,
    +
    805 public xconst_iterable<xreducer<F, CT, X, O>>,
    +
    806 public xaccessible<xreducer<F, CT, X, O>>,
    +
    807 public extension::xreducer_base_t<F, CT, X, O>
    +
    808 {
    +
    809 public:
    +
    810
    +
    811 using self_type = xreducer<F, CT, X, O>;
    +
    812 using inner_types = xcontainer_inner_types<self_type>;
    +
    813
    +
    814 using reduce_functor_type = typename inner_types::reduce_functor_type;
    +
    815 using init_functor_type = typename inner_types::init_functor_type;
    +
    816 using merge_functor_type = typename inner_types::merge_functor_type;
    + +
    818
    +
    819 using xexpression_type = typename inner_types::xexpression_type;
    +
    820 using axes_type = X;
    +
    821
    +
    822 using extension_base = extension::xreducer_base_t<F, CT, X, O>;
    +
    823 using expression_tag = typename extension_base::expression_tag;
    +
    824
    +
    825 using substepper_type = typename inner_types::substepper_type;
    +
    826 using value_type = typename inner_types::value_type;
    +
    827 using reference = typename inner_types::reference;
    +
    828 using const_reference = typename inner_types::const_reference;
    +
    829 using pointer = value_type*;
    +
    830 using const_pointer = const value_type*;
    +
    831
    +
    832 using size_type = typename inner_types::size_type;
    +
    833 using difference_type = typename xexpression_type::difference_type;
    +
    834
    +
    835 using iterable_base = xconst_iterable<self_type>;
    +
    836 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    837 using shape_type = inner_shape_type;
    +
    838
    +
    839 using dim_mapping_type = typename select_dim_mapping_type<inner_shape_type>::type;
    +
    840
    +
    841 using stepper = typename iterable_base::stepper;
    +
    842 using const_stepper = typename iterable_base::const_stepper;
    +
    843 using bool_load_type = typename xexpression_type::bool_load_type;
    +
    844
    +
    845 static constexpr layout_type static_layout = layout_type::dynamic;
    +
    846 static constexpr bool contiguous_layout = false;
    +
    847
    +
    848 template <class Func, class CTA, class AX, class OX>
    +
    849 xreducer(Func&& func, CTA&& e, AX&& axes, OX&& options);
    +
    850
    +
    851 const inner_shape_type& shape() const noexcept;
    +
    852 layout_type layout() const noexcept;
    +
    853 bool is_contiguous() const noexcept;
    +
    854
    +
    855 template <class... Args>
    +
    856 const_reference operator()(Args... args) const;
    +
    857 template <class... Args>
    +
    858 const_reference unchecked(Args... args) const;
    +
    859
    +
    860 template <class It>
    +
    861 const_reference element(It first, It last) const;
    +
    862
    +
    863 const xexpression_type& expression() const noexcept;
    +
    864
    +
    865 template <class S>
    +
    866 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    867
    +
    868 template <class S>
    +
    869 bool has_linear_assign(const S& strides) const noexcept;
    +
    870
    +
    871 template <class S>
    +
    872 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    873 template <class S>
    +
    874 const_stepper stepper_end(const S& shape, layout_type) const noexcept;
    +
    875
    +
    876 template <class E, class Func = F, class Opts = O>
    +
    877 using rebind_t = xreducer<Func, E, X, Opts>;
    +
    878
    +
    879 template <class E>
    +
    880 rebind_t<E> build_reducer(E&& e) const;
    +
    881
    +
    882 template <class E, class Func, class Opts>
    +
    883 rebind_t<E, Func, Opts> build_reducer(E&& e, Func&& func, Opts&& opts) const;
    +
    884
    +
    885 xreducer_functors_type functors() const
    +
    886 {
    +
    887 return xreducer_functors_type(m_reduce, m_init, m_merge); // TODO: understand why
    +
    888 // make_xreducer_functor is throwing an
    +
    889 // error
    +
    890 }
    +
    891
    +
    892 const O& options() const
    +
    893 {
    +
    894 return m_options;
    +
    895 }
    +
    896
    +
    897 private:
    +
    898
    +
    899 CT m_e;
    +
    900 reduce_functor_type m_reduce;
    +
    901 init_functor_type m_init;
    +
    902 merge_functor_type m_merge;
    +
    903 axes_type m_axes;
    +
    904 inner_shape_type m_shape;
    +
    905 dim_mapping_type m_dim_mapping;
    +
    906 O m_options;
    +
    907
    +
    908 friend class xreducer_stepper<F, CT, X, O>;
    +
    909 };
    +
    +
    910
    +
    911 /*************************
    +
    912 * reduce implementation *
    +
    913 *************************/
    +
    914
    +
    915 namespace detail
    +
    916 {
    +
    917 template <class F, class E, class X, class O>
    +
    918 inline auto reduce_impl(F&& f, E&& e, X&& axes, evaluation_strategy::lazy_type, O&& options)
    +
    919 {
    +
    920 decltype(auto) normalized_axes = normalize_axis(e, std::forward<X>(axes));
    +
    921
    +
    922 using reduce_functor_type = typename std::decay_t<F>::reduce_functor_type;
    +
    923 using init_functor_type = typename std::decay_t<F>::init_functor_type;
    +
    924 using value_type = std::decay_t<decltype(std::declval<reduce_functor_type>()(
    +
    925 std::declval<init_functor_type>()(),
    +
    926 *std::declval<typename std::decay_t<E>::const_stepper>()
    +
    927 ))>;
    +
    928 using evaluated_value_type = evaluated_value_type_t<value_type, is_xexpression<value_type>::value>;
    +
    929
    +
    930 using reducer_type = xreducer<
    +
    931 F,
    +
    932 const_xclosure_t<E>,
    +
    933 xtl::const_closure_type_t<decltype(normalized_axes)>,
    +
    934 reducer_options<evaluated_value_type, std::decay_t<O>>>;
    +
    935 return reducer_type(
    +
    936 std::forward<F>(f),
    +
    937 std::forward<E>(e),
    +
    938 std::forward<decltype(normalized_axes)>(normalized_axes),
    +
    939 std::forward<O>(options)
    +
    940 );
    +
    941 }
    +
    942
    +
    943 template <class F, class E, class X, class O>
    +
    944 inline auto reduce_impl(F&& f, E&& e, X&& axes, evaluation_strategy::immediate_type, O&& options)
    +
    945 {
    +
    946 decltype(auto) normalized_axes = normalize_axis(e, std::forward<X>(axes));
    +
    947 return reduce_immediate(
    +
    948 std::forward<F>(f),
    +
    949 eval(std::forward<E>(e)),
    +
    950 std::forward<decltype(normalized_axes)>(normalized_axes),
    +
    951 std::forward<O>(options)
    +
    952 );
    +
    953 }
    +
    954 }
    +
    955
    +
    956#define DEFAULT_STRATEGY_REDUCERS std::tuple<evaluation_strategy::lazy_type>
    +
    957
    +
    958 namespace detail
    +
    959 {
    +
    960 template <class T>
    +
    961 struct is_xreducer_functors_impl : std::false_type
    +
    962 {
    +
    963 };
    +
    964
    +
    965 template <class RF, class IF, class MF>
    +
    966 struct is_xreducer_functors_impl<xreducer_functors<RF, IF, MF>> : std::true_type
    +
    967 {
    +
    968 };
    +
    969
    +
    970 template <class T>
    +
    971 using is_xreducer_functors = is_xreducer_functors_impl<std::decay_t<T>>;
    +
    972 }
    +
    973
    +
    986
    +
    987 template <
    +
    988 class F,
    +
    989 class E,
    +
    990 class X,
    +
    991 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    992 XTL_REQUIRES(std::negation<is_reducer_options<X>>, detail::is_xreducer_functors<F>)>
    +
    +
    993 inline auto reduce(F&& f, E&& e, X&& axes, EVS&& options = EVS())
    +
    994 {
    +
    995 return detail::reduce_impl(
    +
    996 std::forward<F>(f),
    +
    997 std::forward<E>(e),
    +
    998 std::forward<X>(axes),
    +
    999 typename reducer_options<int, EVS>::evaluation_strategy{},
    +
    1000 std::forward<EVS>(options)
    +
    1001 );
    +
    1002 }
    +
    +
    1003
    +
    1004 template <
    +
    1005 class F,
    +
    1006 class E,
    +
    1007 class X,
    +
    1008 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1009 XTL_REQUIRES(std::negation<is_reducer_options<X>>, std::negation<detail::is_xreducer_functors<F>>)>
    +
    1010 inline auto reduce(F&& f, E&& e, X&& axes, EVS&& options = EVS())
    +
    1011 {
    +
    1012 return reduce(
    +
    1013 make_xreducer_functor(std::forward<F>(f)),
    +
    1014 std::forward<E>(e),
    +
    1015 std::forward<X>(axes),
    +
    1016 std::forward<EVS>(options)
    +
    1017 );
    +
    1018 }
    +
    1019
    +
    1020 template <
    +
    1021 class F,
    +
    1022 class E,
    +
    1023 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1024 XTL_REQUIRES(is_reducer_options<EVS>, detail::is_xreducer_functors<F>)>
    +
    1025 inline auto reduce(F&& f, E&& e, EVS&& options = EVS())
    +
    1026 {
    +
    1027 xindex_type_t<typename std::decay_t<E>::shape_type> ar;
    +
    1028 resize_container(ar, e.dimension());
    +
    1029 std::iota(ar.begin(), ar.end(), 0);
    +
    1030 return detail::reduce_impl(
    +
    1031 std::forward<F>(f),
    +
    1032 std::forward<E>(e),
    +
    1033 std::move(ar),
    +
    1034 typename reducer_options<int, std::decay_t<EVS>>::evaluation_strategy{},
    +
    1035 std::forward<EVS>(options)
    +
    1036 );
    +
    1037 }
    +
    1038
    +
    1039 template <
    +
    1040 class F,
    +
    1041 class E,
    +
    1042 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1043 XTL_REQUIRES(is_reducer_options<EVS>, std::negation<detail::is_xreducer_functors<F>>)>
    +
    1044 inline auto reduce(F&& f, E&& e, EVS&& options = EVS())
    +
    1045 {
    +
    1046 return reduce(make_xreducer_functor(std::forward<F>(f)), std::forward<E>(e), std::forward<EVS>(options));
    +
    1047 }
    +
    1048
    +
    1049 template <
    +
    1050 class F,
    +
    1051 class E,
    +
    1052 class I,
    +
    1053 std::size_t N,
    +
    1054 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1055 XTL_REQUIRES(detail::is_xreducer_functors<F>)>
    +
    1056 inline auto reduce(F&& f, E&& e, const I (&axes)[N], EVS options = EVS())
    +
    1057 {
    +
    1058 using axes_type = std::array<std::size_t, N>;
    +
    1059 auto ax = xt::forward_normalize<axes_type>(e, axes);
    +
    1060 return detail::reduce_impl(
    +
    1061 std::forward<F>(f),
    +
    1062 std::forward<E>(e),
    +
    1063 std::move(ax),
    +
    1064 typename reducer_options<int, EVS>::evaluation_strategy{},
    +
    1065 options
    +
    1066 );
    +
    1067 }
    +
    1068
    +
    1069 template <
    +
    1070 class F,
    +
    1071 class E,
    +
    1072 class I,
    +
    1073 std::size_t N,
    +
    1074 class EVS = DEFAULT_STRATEGY_REDUCERS,
    +
    1075 XTL_REQUIRES(std::negation<detail::is_xreducer_functors<F>>)>
    +
    1076 inline auto reduce(F&& f, E&& e, const I (&axes)[N], EVS options = EVS())
    +
    1077 {
    +
    1078 return reduce(make_xreducer_functor(std::forward<F>(f)), std::forward<E>(e), axes, options);
    +
    1079 }
    +
    1080
    +
    1081 /********************
    +
    1082 * xreducer_stepper *
    +
    1083 ********************/
    +
    1084
    +
    1085 template <class F, class CT, class X, class O>
    +
    +
    1086 class xreducer_stepper
    +
    1087 {
    +
    1088 public:
    +
    1089
    +
    1090 using self_type = xreducer_stepper<F, CT, X, O>;
    +
    1091 using xreducer_type = xreducer<F, CT, X, O>;
    +
    1092
    +
    1093 using value_type = typename xreducer_type::value_type;
    +
    1094 using reference = typename xreducer_type::value_type;
    +
    1095 using pointer = typename xreducer_type::const_pointer;
    +
    1096 using size_type = typename xreducer_type::size_type;
    +
    1097 using difference_type = typename xreducer_type::difference_type;
    +
    1098
    +
    1099 using xexpression_type = typename xreducer_type::xexpression_type;
    +
    1100 using substepper_type = typename xexpression_type::const_stepper;
    +
    1101 using shape_type = typename xreducer_type::shape_type;
    +
    1102
    +
    1103 xreducer_stepper(
    +
    1104 const xreducer_type& red,
    +
    1105 size_type offset,
    +
    1106 bool end = false,
    +
    1107 layout_type l = default_assignable_layout(xexpression_type::static_layout)
    +
    1108 );
    +
    1109
    +
    1110 reference operator*() const;
    +
    1111
    +
    1112 void step(size_type dim);
    +
    1113 void step_back(size_type dim);
    +
    1114 void step(size_type dim, size_type n);
    +
    1115 void step_back(size_type dim, size_type n);
    +
    1116 void reset(size_type dim);
    +
    1117 void reset_back(size_type dim);
    +
    1118
    +
    1119 void to_begin();
    +
    1120 void to_end(layout_type l);
    +
    1121
    +
    1122 private:
    +
    1123
    +
    1124 reference initial_value() const;
    +
    1125 reference aggregate(size_type dim) const;
    +
    1126 reference aggregate_impl(size_type dim, /*keep_dims=*/std::false_type) const;
    +
    1127 reference aggregate_impl(size_type dim, /*keep_dims=*/std::true_type) const;
    +
    1128
    +
    1129 substepper_type get_substepper_begin() const;
    +
    1130 size_type get_dim(size_type dim) const noexcept;
    +
    1131 size_type shape(size_type i) const noexcept;
    +
    1132 size_type axis(size_type i) const noexcept;
    +
    1133
    +
    1134 const xreducer_type* m_reducer;
    +
    1135 size_type m_offset;
    +
    1136 mutable substepper_type m_stepper;
    +
    1137 };
    +
    +
    1138
    +
    1139 /******************
    +
    1140 * xreducer utils *
    +
    1141 ******************/
    +
    1142
    +
    1143 namespace detail
    +
    1144 {
    +
    1145 template <std::size_t X, std::size_t... I>
    +
    1146 struct in
    +
    1147 {
    +
    1148 static constexpr bool value = std::disjunction<std::integral_constant<bool, X == I>...>::value;
    +
    1149 };
    +
    1150
    +
    1151 template <std::size_t Z, class S1, class S2, class R>
    +
    1152 struct fixed_xreducer_shape_type_impl;
    +
    1153
    +
    1154 template <std::size_t Z, std::size_t... I, std::size_t... J, std::size_t... R>
    +
    1155 struct fixed_xreducer_shape_type_impl<Z, fixed_shape<I...>, fixed_shape<J...>, fixed_shape<R...>>
    +
    1156 {
    +
    1157 using type = std::conditional_t<
    +
    1158 in<Z, J...>::value,
    +
    1159 typename fixed_xreducer_shape_type_impl<Z - 1, fixed_shape<I...>, fixed_shape<J...>, fixed_shape<R...>>::type,
    +
    1160 typename fixed_xreducer_shape_type_impl<
    +
    1161 Z - 1,
    +
    1162 fixed_shape<I...>,
    +
    1163 fixed_shape<J...>,
    +
    1164 fixed_shape<detail::at<Z, I...>::value, R...>>::type>;
    +
    1165 };
    +
    1166
    +
    1167 template <std::size_t... I, std::size_t... J, std::size_t... R>
    +
    1168 struct fixed_xreducer_shape_type_impl<0, fixed_shape<I...>, fixed_shape<J...>, fixed_shape<R...>>
    +
    1169 {
    +
    1170 using type = std::
    +
    1171 conditional_t<in<0, J...>::value, fixed_shape<R...>, fixed_shape<detail::at<0, I...>::value, R...>>;
    +
    1172 };
    +
    1173
    +
    1174 /***************************
    +
    1175 * helper for return types *
    +
    1176 ***************************/
    +
    1177
    +
    1178 template <class T>
    +
    1179 struct xreducer_size_type
    +
    1180 {
    +
    1181 using type = std::size_t;
    +
    1182 };
    +
    1183
    +
    1184 template <class T>
    +
    1185 using xreducer_size_type_t = typename xreducer_size_type<T>::type;
    +
    1186
    +
    1187 template <class T>
    +
    1188 struct xreducer_temporary_type
    +
    1189 {
    +
    1190 using type = T;
    +
    1191 };
    +
    1192
    +
    1193 template <class T>
    +
    1194 using xreducer_temporary_type_t = typename xreducer_temporary_type<T>::type;
    +
    1195
    +
    1196 /********************************
    +
    1197 * Default const_value rebinder *
    +
    1198 ********************************/
    +
    1199
    +
    1200 template <class T, class U>
    +
    1201 struct const_value_rebinder
    +
    1202 {
    +
    1203 static const_value<U> run(const const_value<T>& t)
    +
    1204 {
    +
    1205 return const_value<U>(t.m_value);
    +
    1206 }
    +
    1207 };
    +
    1208 }
    +
    1209
    +
    1210 /*******************************************
    +
    1211 * Init functor const_value implementation *
    +
    1212 *******************************************/
    +
    1213
    +
    1214 template <class T>
    +
    1215 template <class NT>
    +
    1216 const_value<NT> const_value<T>::rebind() const
    +
    1217 {
    +
    1218 return detail::const_value_rebinder<T, NT>::run(*this);
    +
    1219 }
    +
    1220
    +
    1221 /*****************************
    +
    1222 * fixed_xreducer_shape_type *
    +
    1223 *****************************/
    +
    1224
    +
    1225 template <class S1, class S2>
    + +
    1227
    +
    1228 template <std::size_t... I, std::size_t... J>
    +
    + +
    1230 {
    +
    1231 using type = typename detail::
    +
    1232 fixed_xreducer_shape_type_impl<sizeof...(I) - 1, fixed_shape<I...>, fixed_shape<J...>, fixed_shape<>>::type;
    +
    1233 };
    +
    +
    1234
    +
    1235 // meta-function returning the shape type for an xreducer
    +
    1236 template <class ST, class X, class O>
    +
    + +
    1238 {
    +
    1239 using type = promote_shape_t<ST, std::decay_t<X>>;
    +
    1240 };
    +
    +
    1241
    +
    1242 template <class I1, std::size_t N1, class I2, std::size_t N2>
    +
    +
    1243 struct xreducer_shape_type<std::array<I1, N1>, std::array<I2, N2>, std::true_type>
    +
    1244 {
    +
    1245 using type = std::array<I2, N1>;
    +
    1246 };
    +
    +
    1247
    +
    1248 template <class I1, std::size_t N1, class I2, std::size_t N2>
    +
    +
    1249 struct xreducer_shape_type<std::array<I1, N1>, std::array<I2, N2>, std::false_type>
    +
    1250 {
    +
    1251 using type = std::array<I2, N1 - N2>;
    +
    1252 };
    +
    +
    1253
    +
    1254 template <std::size_t... I, class I2, std::size_t N2>
    +
    +
    1255 struct xreducer_shape_type<fixed_shape<I...>, std::array<I2, N2>, std::false_type>
    +
    1256 {
    +
    1257 using type = std::conditional_t<sizeof...(I) == N2, fixed_shape<>, std::array<I2, sizeof...(I) - N2>>;
    +
    1258 };
    +
    +
    1259
    +
    1260 namespace detail
    +
    1261 {
    +
    1262 template <class S1, class S2>
    +
    1263 struct ixconcat;
    +
    1264
    +
    1265 template <class T, T... I1, T... I2>
    +
    1266 struct ixconcat<std::integer_sequence<T, I1...>, std::integer_sequence<T, I2...>>
    +
    1267 {
    +
    1268 using type = std::integer_sequence<T, I1..., I2...>;
    +
    1269 };
    +
    1270
    +
    1271 template <class T, T X, std::size_t N>
    +
    1272 struct repeat_integer_sequence
    +
    1273 {
    +
    1274 using type = typename ixconcat<
    +
    1275 std::integer_sequence<T, X>,
    +
    1276 typename repeat_integer_sequence<T, X, N - 1>::type>::type;
    +
    1277 };
    +
    1278
    +
    1279 template <class T, T X>
    +
    1280 struct repeat_integer_sequence<T, X, 0>
    +
    1281 {
    +
    1282 using type = std::integer_sequence<T>;
    +
    1283 };
    +
    1284
    +
    1285 template <class T, T X>
    +
    1286 struct repeat_integer_sequence<T, X, 2>
    +
    1287 {
    +
    1288 using type = std::integer_sequence<T, X, X>;
    +
    1289 };
    +
    1290
    +
    1291 template <class T, T X>
    +
    1292 struct repeat_integer_sequence<T, X, 1>
    +
    1293 {
    +
    1294 using type = std::integer_sequence<T, X>;
    +
    1295 };
    +
    1296 }
    +
    1297
    +
    1298 template <std::size_t... I, class I2, std::size_t N2>
    +
    +
    1299 struct xreducer_shape_type<fixed_shape<I...>, std::array<I2, N2>, std::true_type>
    +
    1300 {
    +
    1301 template <std::size_t... X>
    +
    1302 static constexpr auto get_type(std::index_sequence<X...>)
    +
    1303 {
    +
    1304 return fixed_shape<X...>{};
    +
    1305 }
    +
    1306
    +
    1307 // if all axes reduced
    +
    1308 using type = std::conditional_t<
    +
    1309 sizeof...(I) == N2,
    +
    1310 decltype(get_type(typename detail::repeat_integer_sequence<std::size_t, std::size_t(1), N2>::type{})),
    +
    1311 std::array<I2, sizeof...(I)>>;
    +
    1312 };
    +
    +
    1313
    +
    1314 // Note adding "A" to prevent compilation in case nothing else matches
    +
    1315 template <std::size_t... I, std::size_t... J, class O>
    +
    + +
    1317 {
    +
    1318 using type = typename fixed_xreducer_shape_type<fixed_shape<I...>, fixed_shape<J...>>::type;
    +
    1319 };
    +
    +
    1320
    +
    1321 namespace detail
    +
    1322 {
    +
    1323 template <class S, class E, class X, class M>
    +
    1324 inline void shape_and_mapping_computation(S& shape, E& e, const X& axes, M& mapping, std::false_type)
    +
    1325 {
    +
    1326 auto first = e.shape().begin();
    +
    1327 auto last = e.shape().end();
    +
    1328 auto exclude_it = axes.begin();
    +
    1329
    +
    1330 using value_type = typename S::value_type;
    +
    1331 using difference_type = typename S::difference_type;
    +
    1332 auto d_first = shape.begin();
    +
    1333 auto map_first = mapping.begin();
    +
    1334
    +
    1335 auto iter = first;
    +
    1336 while (iter != last && exclude_it != axes.end())
    +
    1337 {
    +
    1338 auto diff = std::distance(first, iter);
    +
    1339 if (diff != difference_type(*exclude_it))
    +
    1340 {
    +
    1341 *d_first++ = *iter++;
    +
    1342 *map_first++ = value_type(diff);
    +
    1343 }
    +
    1344 else
    +
    1345 {
    +
    1346 ++iter;
    +
    1347 ++exclude_it;
    +
    1348 }
    +
    1349 }
    +
    1350
    +
    1351 auto diff = std::distance(first, iter);
    +
    1352 auto end = std::distance(iter, last);
    +
    1353 std::iota(map_first, map_first + end, diff);
    +
    1354 std::copy(iter, last, d_first);
    +
    1355 }
    +
    1356
    +
    1357 template <class S, class E, class X, class M>
    +
    1358 inline void
    +
    1359 shape_and_mapping_computation_keep_dim(S& shape, E& e, const X& axes, M& mapping, std::false_type)
    +
    1360 {
    +
    1361 for (std::size_t i = 0; i < e.dimension(); ++i)
    +
    1362 {
    +
    1363 if (std::find(axes.cbegin(), axes.cend(), i) == axes.cend())
    +
    1364 {
    +
    1365 // i not in axes!
    +
    1366 shape[i] = e.shape()[i];
    +
    1367 }
    +
    1368 else
    +
    1369 {
    +
    1370 shape[i] = 1;
    +
    1371 }
    +
    1372 }
    +
    1373 std::iota(mapping.begin(), mapping.end(), 0);
    +
    1374 }
    +
    1375
    +
    1376 template <class S, class E, class X, class M>
    +
    1377 inline void shape_and_mapping_computation(S&, E&, const X&, M&, std::true_type)
    +
    1378 {
    +
    1379 }
    +
    1380
    +
    1381 template <class S, class E, class X, class M>
    +
    1382 inline void shape_and_mapping_computation_keep_dim(S&, E&, const X&, M&, std::true_type)
    +
    1383 {
    +
    1384 }
    +
    1385 }
    +
    1386
    +
    1387 /***************************
    +
    1388 * xreducer implementation *
    +
    1389 ***************************/
    +
    1390
    +
    1395
    +
    1404 template <class F, class CT, class X, class O>
    +
    1405 template <class Func, class CTA, class AX, class OX>
    +
    +
    1406 inline xreducer<F, CT, X, O>::xreducer(Func&& func, CTA&& e, AX&& axes, OX&& options)
    +
    1407 : m_e(std::forward<CTA>(e))
    +
    1408 , m_reduce(xt::get<0>(func))
    +
    1409 , m_init(xt::get<1>(func))
    +
    1410 , m_merge(xt::get<2>(func))
    +
    1411 , m_axes(std::forward<AX>(axes))
    +
    1412 , m_shape(xtl::make_sequence<inner_shape_type>(
    +
    1413 typename O::keep_dims() ? m_e.dimension() : m_e.dimension() - m_axes.size(),
    +
    1414 0
    +
    1415 ))
    +
    1416 , m_dim_mapping(xtl::make_sequence<dim_mapping_type>(
    +
    1417 typename O::keep_dims() ? m_e.dimension() : m_e.dimension() - m_axes.size(),
    +
    1418 0
    +
    1419 ))
    +
    1420 , m_options(std::forward<OX>(options))
    +
    1421 {
    +
    1422 // std::less is used, because as the standard says (24.4.5):
    +
    1423 // A sequence is sorted with respect to a comparator comp if for any iterator i pointing to the
    +
    1424 // sequence and any non-negative integer n such that i + n is a valid iterator pointing to an element
    +
    1425 // of the sequence, comp(*(i + n), *i) == false. Therefore less is required to detect duplicates.
    +
    1426 if (!std::is_sorted(m_axes.cbegin(), m_axes.cend(), std::less<>()))
    +
    1427 {
    +
    1428 XTENSOR_THROW(std::runtime_error, "Reducing axes should be sorted.");
    +
    1429 }
    +
    1430 if (std::adjacent_find(m_axes.cbegin(), m_axes.cend()) != m_axes.cend())
    +
    1431 {
    +
    1432 XTENSOR_THROW(std::runtime_error, "Reducing axes should not contain duplicates.");
    +
    1433 }
    +
    1434 if (m_axes.size() != 0 && m_axes[m_axes.size() - 1] > m_e.dimension() - 1)
    +
    1435 {
    +
    1436 XTENSOR_THROW(
    +
    1437 std::runtime_error,
    +
    1438 "Axis " + std::to_string(m_axes[m_axes.size() - 1]) + " out of bounds for reduction."
    +
    1439 );
    +
    1440 }
    +
    1441
    +
    1442 if (!typename O::keep_dims())
    +
    1443 {
    +
    1444 detail::shape_and_mapping_computation(
    +
    1445 m_shape,
    +
    1446 m_e,
    +
    1447 m_axes,
    +
    1448 m_dim_mapping,
    +
    1449 detail::is_fixed<shape_type>{}
    +
    1450 );
    +
    1451 }
    +
    1452 else
    +
    1453 {
    +
    1454 detail::shape_and_mapping_computation_keep_dim(
    +
    1455 m_shape,
    +
    1456 m_e,
    +
    1457 m_axes,
    +
    1458 m_dim_mapping,
    +
    1459 detail::is_fixed<shape_type>{}
    +
    1460 );
    +
    1461 }
    +
    1462 }
    +
    +
    1463
    +
    1465
    +
    1469
    +
    1473 template <class F, class CT, class X, class O>
    +
    +
    1474 inline auto xreducer<F, CT, X, O>::shape() const noexcept -> const inner_shape_type&
    +
    1475 {
    +
    1476 return m_shape;
    +
    1477 }
    +
    +
    1478
    +
    1482 template <class F, class CT, class X, class O>
    +
    + +
    1484 {
    +
    1485 return static_layout;
    +
    1486 }
    +
    +
    1487
    +
    1488 template <class F, class CT, class X, class O>
    +
    1489 inline bool xreducer<F, CT, X, O>::is_contiguous() const noexcept
    +
    1490 {
    +
    1491 return false;
    +
    1492 }
    +
    1493
    +
    1495
    +
    1499
    +
    1506 template <class F, class CT, class X, class O>
    +
    1507 template <class... Args>
    +
    +
    1508 inline auto xreducer<F, CT, X, O>::operator()(Args... args) const -> const_reference
    +
    1509 {
    +
    1510 XTENSOR_TRY(check_index(shape(), args...));
    +
    1511 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    1512 std::array<std::size_t, sizeof...(Args)> arg_array = {{static_cast<std::size_t>(args)...}};
    +
    1513 return element(arg_array.cbegin(), arg_array.cend());
    +
    1514 }
    +
    +
    1515
    +
    1535 template <class F, class CT, class X, class O>
    +
    1536 template <class... Args>
    +
    +
    1537 inline auto xreducer<F, CT, X, O>::unchecked(Args... args) const -> const_reference
    +
    1538 {
    +
    1539 std::array<std::size_t, sizeof...(Args)> arg_array = {{static_cast<std::size_t>(args)...}};
    +
    1540 return element(arg_array.cbegin(), arg_array.cend());
    +
    1541 }
    +
    +
    1542
    +
    1550 template <class F, class CT, class X, class O>
    +
    1551 template <class It>
    +
    +
    1552 inline auto xreducer<F, CT, X, O>::element(It first, It last) const -> const_reference
    +
    1553 {
    +
    1554 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    1555 auto stepper = const_stepper(*this, 0);
    +
    1556 if (first != last)
    +
    1557 {
    +
    1558 size_type dim = 0;
    +
    1559 // drop left most elements
    +
    1560 auto size = std::ptrdiff_t(this->dimension()) - std::distance(first, last);
    +
    1561 auto begin = first - size;
    +
    1562 while (begin != last)
    +
    1563 {
    +
    1564 if (begin < first)
    +
    1565 {
    +
    1566 stepper.step(dim++, std::size_t(0));
    +
    1567 begin++;
    +
    1568 }
    +
    1569 else
    +
    1570 {
    +
    1571 stepper.step(dim++, std::size_t(*begin++));
    +
    1572 }
    +
    1573 }
    +
    1574 }
    +
    1575 return *stepper;
    +
    1576 }
    +
    +
    1577
    +
    1581 template <class F, class CT, class X, class O>
    +
    +
    1582 inline auto xreducer<F, CT, X, O>::expression() const noexcept -> const xexpression_type&
    +
    1583 {
    +
    1584 return m_e;
    +
    1585 }
    +
    +
    1586
    +
    1588
    +
    1593
    +
    1599 template <class F, class CT, class X, class O>
    +
    1600 template <class S>
    +
    + +
    1602 {
    +
    1603 return xt::broadcast_shape(m_shape, shape);
    +
    1604 }
    +
    +
    1605
    +
    1611 template <class F, class CT, class X, class O>
    +
    1612 template <class S>
    +
    +
    1613 inline bool xreducer<F, CT, X, O>::has_linear_assign(const S& /*strides*/) const noexcept
    +
    1614 {
    +
    1615 return false;
    +
    1616 }
    +
    +
    1617
    +
    1619
    +
    1620 template <class F, class CT, class X, class O>
    +
    1621 template <class S>
    +
    1622 inline auto xreducer<F, CT, X, O>::stepper_begin(const S& shape) const noexcept -> const_stepper
    +
    1623 {
    +
    1624 size_type offset = shape.size() - this->dimension();
    +
    1625 return const_stepper(*this, offset);
    +
    1626 }
    +
    1627
    +
    1628 template <class F, class CT, class X, class O>
    +
    1629 template <class S>
    +
    1630 inline auto xreducer<F, CT, X, O>::stepper_end(const S& shape, layout_type l) const noexcept
    +
    1631 -> const_stepper
    +
    1632 {
    +
    1633 size_type offset = shape.size() - this->dimension();
    +
    1634 return const_stepper(*this, offset, true, l);
    +
    1635 }
    +
    1636
    +
    1637 template <class F, class CT, class X, class O>
    +
    1638 template <class E>
    +
    1639 inline auto xreducer<F, CT, X, O>::build_reducer(E&& e) const -> rebind_t<E>
    +
    1640 {
    +
    1641 return rebind_t<E>(
    +
    1642 std::make_tuple(m_reduce, m_init, m_merge),
    +
    1643 std::forward<E>(e),
    +
    1644 axes_type(m_axes),
    +
    1645 m_options
    +
    1646 );
    +
    1647 }
    +
    1648
    +
    1649 template <class F, class CT, class X, class O>
    +
    1650 template <class E, class Func, class Opts>
    +
    1651 inline auto xreducer<F, CT, X, O>::build_reducer(E&& e, Func&& func, Opts&& opts) const
    +
    1652 -> rebind_t<E, Func, Opts>
    +
    1653 {
    +
    1654 return rebind_t<E, Func, Opts>(
    +
    1655 std::forward<Func>(func),
    +
    1656 std::forward<E>(e),
    +
    1657 axes_type(m_axes),
    +
    1658 std::forward<Opts>(opts)
    +
    1659 );
    +
    1660 }
    +
    1661
    +
    1662 /***********************************
    +
    1663 * xreducer_stepper implementation *
    +
    1664 ***********************************/
    +
    1665
    +
    1666 template <class F, class CT, class X, class O>
    +
    1667 inline xreducer_stepper<F, CT, X, O>::xreducer_stepper(
    +
    1668 const xreducer_type& red,
    +
    1669 size_type offset,
    +
    1670 bool end,
    +
    1671 layout_type l
    +
    1672 )
    +
    1673 : m_reducer(&red)
    +
    1674 , m_offset(offset)
    +
    1675 , m_stepper(get_substepper_begin())
    +
    1676 {
    +
    1677 if (end)
    +
    1678 {
    +
    1679 to_end(l);
    +
    1680 }
    +
    1681 }
    +
    1682
    +
    1683 template <class F, class CT, class X, class O>
    +
    1684 inline auto xreducer_stepper<F, CT, X, O>::operator*() const -> reference
    +
    1685 {
    +
    1686 reference r = aggregate(0);
    +
    1687 return r;
    +
    1688 }
    +
    1689
    +
    1690 template <class F, class CT, class X, class O>
    +
    1691 inline void xreducer_stepper<F, CT, X, O>::step(size_type dim)
    +
    1692 {
    +
    1693 if (dim >= m_offset)
    +
    1694 {
    +
    1695 m_stepper.step(get_dim(dim - m_offset));
    +
    1696 }
    +
    1697 }
    +
    1698
    +
    1699 template <class F, class CT, class X, class O>
    +
    1700 inline void xreducer_stepper<F, CT, X, O>::step_back(size_type dim)
    +
    1701 {
    +
    1702 if (dim >= m_offset)
    +
    1703 {
    +
    1704 m_stepper.step_back(get_dim(dim - m_offset));
    +
    1705 }
    +
    1706 }
    +
    1707
    +
    1708 template <class F, class CT, class X, class O>
    +
    1709 inline void xreducer_stepper<F, CT, X, O>::step(size_type dim, size_type n)
    +
    1710 {
    +
    1711 if (dim >= m_offset)
    +
    1712 {
    +
    1713 m_stepper.step(get_dim(dim - m_offset), n);
    +
    1714 }
    +
    1715 }
    +
    1716
    +
    1717 template <class F, class CT, class X, class O>
    +
    1718 inline void xreducer_stepper<F, CT, X, O>::step_back(size_type dim, size_type n)
    +
    1719 {
    +
    1720 if (dim >= m_offset)
    +
    1721 {
    +
    1722 m_stepper.step_back(get_dim(dim - m_offset), n);
    +
    1723 }
    +
    1724 }
    +
    1725
    +
    1726 template <class F, class CT, class X, class O>
    +
    1727 inline void xreducer_stepper<F, CT, X, O>::reset(size_type dim)
    +
    1728 {
    +
    1729 if (dim >= m_offset)
    +
    1730 {
    +
    1731 // Because the reducer uses `reset` to reset the non-reducing axes,
    +
    1732 // we need to prevent that here for the KD case where.
    +
    1733 if (typename O::keep_dims()
    +
    1734 && std::binary_search(m_reducer->m_axes.begin(), m_reducer->m_axes.end(), dim - m_offset))
    +
    1735 {
    +
    1736 // If keep dim activated, and dim is in the axes, do nothing!
    +
    1737 return;
    +
    1738 }
    +
    1739 m_stepper.reset(get_dim(dim - m_offset));
    +
    1740 }
    +
    1741 }
    +
    1742
    +
    1743 template <class F, class CT, class X, class O>
    +
    1744 inline void xreducer_stepper<F, CT, X, O>::reset_back(size_type dim)
    +
    1745 {
    +
    1746 if (dim >= m_offset)
    +
    1747 {
    +
    1748 // Note that for *not* KD this is not going to do anything
    +
    1749 if (typename O::keep_dims()
    +
    1750 && std::binary_search(m_reducer->m_axes.begin(), m_reducer->m_axes.end(), dim - m_offset))
    +
    1751 {
    +
    1752 // If keep dim activated, and dim is in the axes, do nothing!
    +
    1753 return;
    +
    1754 }
    +
    1755 m_stepper.reset_back(get_dim(dim - m_offset));
    +
    1756 }
    +
    1757 }
    +
    1758
    +
    1759 template <class F, class CT, class X, class O>
    +
    1760 inline void xreducer_stepper<F, CT, X, O>::to_begin()
    +
    1761 {
    +
    1762 m_stepper.to_begin();
    +
    1763 }
    +
    1764
    +
    1765 template <class F, class CT, class X, class O>
    +
    1766 inline void xreducer_stepper<F, CT, X, O>::to_end(layout_type l)
    +
    1767 {
    +
    1768 m_stepper.to_end(l);
    +
    1769 }
    +
    1770
    +
    1771 template <class F, class CT, class X, class O>
    +
    1772 inline auto xreducer_stepper<F, CT, X, O>::initial_value() const -> reference
    +
    1773 {
    +
    1774 return O::has_initial_value ? m_reducer->m_options.initial_value
    +
    1775 : static_cast<reference>(m_reducer->m_init());
    +
    1776 }
    +
    1777
    +
    1778 template <class F, class CT, class X, class O>
    +
    1779 inline auto xreducer_stepper<F, CT, X, O>::aggregate(size_type dim) const -> reference
    +
    1780 {
    +
    1781 reference res;
    +
    1782 if (m_reducer->m_e.size() == size_type(0))
    +
    1783 {
    +
    1784 res = initial_value();
    +
    1785 }
    +
    1786 else if (m_reducer->m_e.shape().empty() || m_reducer->m_axes.size() == 0)
    +
    1787 {
    +
    1788 res = m_reducer->m_reduce(initial_value(), *m_stepper);
    +
    1789 }
    +
    1790 else
    +
    1791 {
    +
    1792 res = aggregate_impl(dim, typename O::keep_dims());
    +
    1793 if (O::has_initial_value && dim == 0)
    +
    1794 {
    +
    1795 res = m_reducer->m_merge(m_reducer->m_options.initial_value, res);
    +
    1796 }
    +
    1797 }
    +
    1798 return res;
    +
    1799 }
    +
    1800
    +
    1801 template <class F, class CT, class X, class O>
    +
    1802 inline auto xreducer_stepper<F, CT, X, O>::aggregate_impl(size_type dim, std::false_type) const -> reference
    +
    1803 {
    +
    1804 // reference can be std::array, hence the {} initializer
    +
    1805 reference res = {};
    +
    1806 size_type index = axis(dim);
    +
    1807 size_type size = shape(index);
    +
    1808 if (dim != m_reducer->m_axes.size() - 1)
    +
    1809 {
    +
    1810 res = aggregate_impl(dim + 1, typename O::keep_dims());
    +
    1811 for (size_type i = 1; i != size; ++i)
    +
    1812 {
    +
    1813 m_stepper.step(index);
    +
    1814 res = m_reducer->m_merge(res, aggregate_impl(dim + 1, typename O::keep_dims()));
    +
    1815 }
    +
    1816 }
    +
    1817 else
    +
    1818 {
    +
    1819 res = m_reducer->m_reduce(static_cast<reference>(m_reducer->m_init()), *m_stepper);
    +
    1820 for (size_type i = 1; i != size; ++i)
    +
    1821 {
    +
    1822 m_stepper.step(index);
    +
    1823 res = m_reducer->m_reduce(res, *m_stepper);
    +
    1824 }
    +
    1825 }
    +
    1826 m_stepper.reset(index);
    +
    1827 return res;
    +
    1828 }
    +
    1829
    +
    1830 template <class F, class CT, class X, class O>
    +
    1831 inline auto xreducer_stepper<F, CT, X, O>::aggregate_impl(size_type dim, std::true_type) const -> reference
    +
    1832 {
    +
    1833 // reference can be std::array, hence the {} initializer
    +
    1834 reference res = {};
    +
    1835 auto ax_it = std::find(m_reducer->m_axes.begin(), m_reducer->m_axes.end(), dim);
    +
    1836 if (ax_it != m_reducer->m_axes.end())
    +
    1837 {
    +
    1838 size_type index = dim;
    +
    1839 size_type size = m_reducer->m_e.shape()[index];
    +
    1840 if (ax_it != m_reducer->m_axes.end() - 1 && size != 0)
    +
    1841 {
    +
    1842 res = aggregate_impl(dim + 1, typename O::keep_dims());
    +
    1843 for (size_type i = 1; i != size; ++i)
    +
    1844 {
    +
    1845 m_stepper.step(index);
    +
    1846 res = m_reducer->m_merge(res, aggregate_impl(dim + 1, typename O::keep_dims()));
    +
    1847 }
    +
    1848 }
    +
    1849 else
    +
    1850 {
    +
    1851 res = m_reducer->m_reduce(static_cast<reference>(m_reducer->m_init()), *m_stepper);
    +
    1852 for (size_type i = 1; i != size; ++i)
    +
    1853 {
    +
    1854 m_stepper.step(index);
    +
    1855 res = m_reducer->m_reduce(res, *m_stepper);
    +
    1856 }
    +
    1857 }
    +
    1858 m_stepper.reset(index);
    +
    1859 }
    +
    1860 else
    +
    1861 {
    +
    1862 if (dim < m_reducer->m_e.dimension())
    +
    1863 {
    +
    1864 res = aggregate_impl(dim + 1, typename O::keep_dims());
    +
    1865 }
    +
    1866 }
    +
    1867 return res;
    +
    1868 }
    +
    1869
    +
    1870 template <class F, class CT, class X, class O>
    +
    1871 inline auto xreducer_stepper<F, CT, X, O>::get_substepper_begin() const -> substepper_type
    +
    1872 {
    +
    1873 return m_reducer->m_e.stepper_begin(m_reducer->m_e.shape());
    +
    1874 }
    +
    1875
    +
    1876 template <class F, class CT, class X, class O>
    +
    1877 inline auto xreducer_stepper<F, CT, X, O>::get_dim(size_type dim) const noexcept -> size_type
    +
    1878 {
    +
    1879 return m_reducer->m_dim_mapping[dim];
    +
    1880 }
    +
    1881
    +
    1882 template <class F, class CT, class X, class O>
    +
    1883 inline auto xreducer_stepper<F, CT, X, O>::shape(size_type i) const noexcept -> size_type
    +
    1884 {
    +
    1885 return m_reducer->m_e.shape()[i];
    +
    1886 }
    +
    1887
    +
    1888 template <class F, class CT, class X, class O>
    +
    1889 inline auto xreducer_stepper<F, CT, X, O>::axis(size_type i) const noexcept -> size_type
    +
    1890 {
    +
    1891 return m_reducer->m_axes[i];
    +
    1892 }
    +
    1893}
    +
    1894
    +
    1895#endif
    +
    Fixed shape implementation for compile time defined arrays.
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    + +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    auto end() const noexcept -> const_layout_iterator< L >
    + +
    Reducing function operating over specified axes.
    Definition xreducer.hpp:808
    +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    +
    const xexpression_type & expression() const noexcept
    +
    bool has_linear_assign(const S &strides) const noexcept
    +
    const inner_shape_type & shape() const noexcept
    Returns the shape of the expression.
    +
    xreducer(Func &&func, CTA &&e, AX &&axes, OX &&options)
    Constructs an xreducer expression applying the specified function to the given expression over the gi...
    +
    layout_type layout() const noexcept
    +
    auto operator|(E1 &&e1, E2 &&e2) noexcept -> detail::xfunction_type_t< detail::bitwise_or, E1, E2 >
    Bitwise or.
    +
    auto diff(const xexpression< T > &a, std::size_t n=1, std::ptrdiff_t axis=-1)
    Calculate the n-th discrete difference along the given axis.
    Definition xmath.hpp:2908
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto reduce(F &&f, E &&e, X &&axes, EVS &&options=EVS())
    Returns an xexpression applying the specified reducing function to an expression over the given axes.
    Definition xreducer.hpp:993
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xrepeat_8hpp_source.html b/xrepeat_8hpp_source.html new file mode 100644 index 000000000..9756fd4d0 --- /dev/null +++ b/xrepeat_8hpp_source.html @@ -0,0 +1,795 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xrepeat.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xrepeat.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_XREPEAT
    +
    11#define XTENSOR_XREPEAT
    +
    12
    +
    13#include <utility>
    +
    14#include <vector>
    +
    15
    +
    16#include "../core/xaccessible.hpp"
    +
    17#include "../core/xexpression.hpp"
    +
    18#include "../core/xiterable.hpp"
    +
    19
    +
    20namespace xt
    +
    21{
    +
    22 template <class CT, class R>
    +
    23 class xrepeat;
    +
    24
    +
    25 template <class S, class R>
    +
    26 class xrepeat_stepper;
    +
    27
    +
    28 /*********************
    +
    29 * xrepeat extension *
    +
    30 *********************/
    +
    31
    +
    32 namespace extension
    +
    33 {
    +
    34 template <class Tag, class CT, class X>
    + +
    36
    +
    37 template <class CT, class X>
    +
    + +
    39 {
    +
    40 using type = xtensor_empty_base;
    +
    41 };
    +
    +
    42
    +
    43 template <class CT, class X>
    +
    +
    44 struct xrepeat_base : xrepeat_base_impl<xexpression_tag_t<CT>, CT, X>
    +
    45 {
    +
    46 };
    +
    +
    47
    +
    48 template <class CT, class X>
    +
    49 using xrepeat_base_t = typename xrepeat_base<CT, X>::type;
    +
    50 }
    +
    51
    +
    52 /***********
    +
    53 * xrepeat *
    +
    54 ***********/
    +
    55
    +
    56 template <class CT, class R>
    +
    57 struct xcontainer_inner_types<xrepeat<CT, R>>
    +
    58 {
    +
    59 using xexpression_type = std::decay_t<CT>;
    +
    60 using reference = typename xexpression_type::const_reference;
    +
    61 using const_reference = typename xexpression_type::const_reference;
    +
    62 using size_type = typename xexpression_type::size_type;
    +
    63 using temporary_type = typename xexpression_type::temporary_type;
    +
    64
    +
    65 static constexpr bool is_const = std::is_const<std::remove_reference_t<CT>>::value;
    +
    66
    +
    67 using extract_storage_type = xtl::mpl::eval_if_t<
    + +
    69 detail::expr_storage_type<xexpression_type>,
    + +
    71 using storage_type = std::conditional_t<is_const, const extract_storage_type, extract_storage_type>;
    +
    72 };
    +
    73
    +
    74 template <class CT, class R>
    +
    + +
    76 {
    +
    77 using xexpression_type = std::decay_t<CT>;
    +
    78 using repeats_type = std::decay_t<R>;
    +
    79 using inner_shape_type = typename xexpression_type::inner_shape_type;
    + +
    81 using stepper = const_stepper;
    +
    82 };
    +
    +
    83
    +
    95 template <class CT, class R>
    +
    +
    96 class xrepeat : public xconst_iterable<xrepeat<CT, R>>,
    +
    97 public xconst_accessible<xrepeat<CT, R>>,
    +
    98 public xsharable_expression<xrepeat<CT, R>>,
    +
    99 public extension::xrepeat_base_t<CT, R>
    +
    100 {
    +
    101 public:
    +
    102
    +
    103 using self_type = xrepeat<CT, R>;
    +
    104 using xexpression_type = std::decay_t<CT>;
    +
    105 using accessible_base = xconst_accessible<self_type>;
    +
    106 using extension_base = extension::xrepeat_base_t<CT, R>;
    +
    107 using expression_tag = typename extension_base::expression_tag;
    +
    108
    +
    109 using value_type = typename xexpression_type::value_type;
    +
    110 using shape_type = typename xexpression_type::shape_type;
    +
    111 using repeats_type = xtl::const_closure_type_t<R>;
    +
    112
    +
    113 using container_type = xcontainer_inner_types<xrepeat<CT, R>>;
    +
    114 using reference = typename container_type::reference;
    +
    115 using const_reference = typename container_type::const_reference;
    +
    116 using size_type = typename container_type::size_type;
    +
    117 using temporary_type = typename container_type::temporary_type;
    +
    118
    +
    119 static constexpr layout_type static_layout = xexpression_type::static_layout;
    +
    120 static constexpr bool contiguous_layout = false;
    +
    121
    +
    122 using bool_load_type = typename xexpression_type::bool_load_type;
    +
    123 using pointer = typename xexpression_type::pointer;
    +
    124 using const_pointer = typename xexpression_type::const_pointer;
    +
    125 using difference_type = typename xexpression_type::difference_type;
    +
    126
    +
    127 using iterable_type = xiterable<xrepeat<CT, R>>;
    +
    128 using stepper = typename iterable_type::stepper;
    +
    129 using const_stepper = typename iterable_type::const_stepper;
    +
    130
    +
    131 template <class CTA>
    +
    132 explicit xrepeat(CTA&& e, R&& repeats, size_type axis);
    +
    133
    + +
    135 const shape_type& shape() const noexcept;
    +
    136 layout_type layout() const noexcept;
    +
    137 bool is_contiguous() const noexcept;
    + +
    139
    +
    140 template <class... Args>
    +
    141 const_reference operator()(Args... args) const;
    +
    142
    +
    143 template <class... Args>
    +
    144 const_reference unchecked(Args... args) const;
    +
    145
    +
    146 template <class It>
    +
    147 const_reference element(It first, It last) const;
    +
    148
    +
    149 const xexpression_type& expression() const noexcept;
    +
    150
    +
    151 template <class S>
    +
    152 bool broadcast_shape(S& shape, bool reuse_cache = false) const;
    +
    153
    +
    154 template <class S>
    +
    155 bool has_linear_assign(const S& strides) const noexcept;
    +
    156
    +
    157 const_stepper stepper_begin() const;
    +
    158 const_stepper stepper_begin(const shape_type& s) const;
    +
    159
    +
    160 const_stepper stepper_end(layout_type l) const;
    +
    161 const_stepper stepper_end(const shape_type& s, layout_type l) const;
    +
    162
    +
    163 private:
    +
    164
    +
    165 CT m_e;
    +
    166 size_type m_repeating_axis;
    +
    167 repeats_type m_repeats;
    +
    168 shape_type m_shape;
    +
    169
    +
    170 const_reference access() const;
    +
    171
    +
    172 template <class Arg, class... Args>
    +
    173 const_reference access(Arg arg, Args... args) const;
    +
    174
    +
    175 template <std::size_t I, class Arg, class... Args>
    +
    176 const_reference access_impl(stepper&& s, Arg arg, Args... args) const;
    +
    177
    +
    178 template <std::size_t I>
    +
    179 const_reference access_impl(stepper&& s) const;
    +
    180 };
    +
    +
    181
    +
    182 /*******************
    +
    183 * xrepeat_stepper *
    +
    184 *******************/
    +
    185
    +
    186 template <class S, class R>
    +
    +
    187 class xrepeat_stepper
    +
    188 {
    +
    189 public:
    +
    190
    +
    191 using repeats_type = R;
    +
    192 using storage_type = typename S::storage_type;
    +
    193 using subiterator_type = typename S::subiterator_type;
    +
    194 using subiterator_traits = typename S::subiterator_traits;
    +
    195 using value_type = typename subiterator_traits::value_type;
    +
    196 using reference = typename subiterator_traits::reference;
    +
    197 using pointer = typename subiterator_traits::pointer;
    +
    198 using difference_type = typename subiterator_traits::difference_type;
    +
    199 using size_type = typename storage_type::size_type;
    +
    200 using shape_type = typename storage_type::shape_type;
    +
    201 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    202
    +
    203 template <class requested_type>
    +
    204 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    205
    +
    206 xrepeat_stepper(S&& s, const shape_type& shape, const repeats_type& repeats, size_type axis);
    +
    207
    +
    208 reference operator*() const;
    +
    209
    +
    210 void step(size_type dim, size_type n = 1);
    +
    211 void step_back(size_type dim, size_type n = 1);
    +
    212 void reset(size_type dim);
    +
    213 void reset_back(size_type dim);
    +
    214
    +
    215 void to_begin();
    +
    216 void to_end(layout_type l);
    +
    217
    +
    218 template <class T>
    +
    219 simd_return_type<T> step_simd();
    +
    220
    +
    221 void step_leading();
    +
    222
    +
    223 template <class V>
    +
    224 void store_simd(const V& vec);
    +
    225
    +
    226 private:
    +
    227
    +
    228 S m_substepper;
    +
    229 const shape_type& m_shape;
    +
    230
    +
    231 std::ptrdiff_t m_repeating_steps;
    +
    232 std::vector<size_type> m_positions;
    +
    233 size_type m_subposition;
    +
    234
    +
    235 size_type m_repeating_axis;
    +
    236 const repeats_type& m_repeats;
    +
    237
    +
    238 void make_step(size_type dim, size_type n);
    +
    239 void make_step_back(size_type dim, size_type n);
    +
    240
    +
    241 std::vector<size_type> get_next_positions(size_type dim, size_type steps_to_go) const;
    +
    242 std::vector<size_type> get_next_positions_back(size_type dim, size_type steps_to_go) const;
    +
    243 };
    +
    +
    244
    +
    245 /**************************
    +
    246 * xrepeat implementation *
    +
    247 **************************/
    +
    248
    +
    257 template <class CT, class R>
    +
    258 template <class CTA>
    +
    +
    259 xrepeat<CT, R>::xrepeat(CTA&& e, R&& repeats, size_type axis)
    +
    260 : m_e(std::forward<CTA>(e))
    +
    261 , m_repeating_axis(axis)
    +
    262 , m_repeats(std::forward<R>(repeats))
    +
    263 , m_shape(e.shape())
    +
    264 {
    +
    265 using shape_value_type = typename shape_type::value_type;
    +
    266 m_shape[axis] = static_cast<shape_value_type>(
    +
    267 std::accumulate(m_repeats.begin(), m_repeats.end(), shape_value_type(0))
    +
    268 );
    +
    269 }
    +
    +
    270
    +
    275
    +
    278 template <class CT, class R>
    +
    +
    279 inline auto xrepeat<CT, R>::shape() const noexcept -> const shape_type&
    +
    280 {
    +
    281 return m_shape;
    +
    282 }
    +
    +
    283
    +
    287 template <class CT, class R>
    +
    +
    288 inline auto xrepeat<CT, R>::layout() const noexcept -> layout_type
    +
    289 {
    +
    290 return m_e.layout();
    +
    291 }
    +
    +
    292
    +
    293 template <class CT, class R>
    +
    294 inline bool xrepeat<CT, R>::is_contiguous() const noexcept
    +
    295 {
    +
    296 return false;
    +
    297 }
    +
    298
    +
    300
    +
    305
    +
    311 template <class CT, class R>
    +
    312 template <class... Args>
    +
    +
    313 inline auto xrepeat<CT, R>::operator()(Args... args) const -> const_reference
    +
    314 {
    +
    315 return access(args...);
    +
    316 }
    +
    +
    317
    +
    337 template <class CT, class R>
    +
    338 template <class... Args>
    +
    +
    339 inline auto xrepeat<CT, R>::unchecked(Args... args) const -> const_reference
    +
    340 {
    +
    341 return this->operator()(args...);
    +
    342 }
    +
    +
    343
    +
    351 template <class CT, class R>
    +
    352 template <class It>
    +
    +
    353 inline auto xrepeat<CT, R>::element(It first, It last) const -> const_reference
    +
    354 {
    +
    355 auto s = stepper_begin(m_e.shape());
    +
    356 std::size_t dimension = 0;
    +
    357 auto iter = first;
    +
    358 while (iter != last)
    +
    359 {
    +
    360 s.step(dimension, *iter);
    +
    361 ++dimension;
    +
    362 ++iter;
    +
    363 }
    +
    364 return access_impl<0>(std::forward<stepper>(s));
    +
    365 }
    +
    +
    366
    +
    370 template <class CT, class R>
    +
    +
    371 inline auto xrepeat<CT, R>::expression() const noexcept -> const xexpression_type&
    +
    372 {
    +
    373 return m_e;
    +
    374 }
    +
    +
    375
    +
    377
    +
    382
    +
    388 template <class CT, class R>
    +
    389 template <class S>
    +
    +
    390 inline bool xrepeat<CT, R>::broadcast_shape(S& shape, bool) const
    +
    391 {
    +
    392 return xt::broadcast_shape(m_shape, shape);
    +
    393 }
    +
    +
    394
    +
    400 template <class CT, class R>
    +
    401 template <class S>
    +
    +
    402 inline bool xrepeat<CT, R>::has_linear_assign(const S&) const noexcept
    +
    403 {
    +
    404 return false;
    +
    405 }
    +
    +
    406
    +
    408
    +
    409 template <class CT, class R>
    +
    410 inline auto xrepeat<CT, R>::access() const -> const_reference
    +
    411 {
    +
    412 return access_impl<0>(stepper_begin(m_e.shape()));
    +
    413 }
    +
    414
    +
    415 template <class CT, class R>
    +
    416 template <class Arg, class... Args>
    +
    417 inline auto xrepeat<CT, R>::access(Arg arg, Args... args) const -> const_reference
    +
    418 {
    +
    419 constexpr size_t number_of_arguments = 1 + sizeof...(Args);
    +
    420 if (number_of_arguments > this->dimension())
    +
    421 {
    +
    422 return access(args...);
    +
    423 }
    +
    424 return access_impl<0>(stepper_begin(m_e.shape()), arg, args...);
    +
    425 }
    +
    426
    +
    427 template <class CT, class R>
    +
    428 inline auto xrepeat<CT, R>::stepper_begin() const -> const_stepper
    +
    429 {
    +
    430 return stepper_begin(m_e.shape());
    +
    431 }
    +
    432
    +
    433 template <class CT, class R>
    +
    434 inline auto xrepeat<CT, R>::stepper_begin(const shape_type& s) const -> const_stepper
    +
    435 {
    +
    436 return const_stepper(m_e.stepper_begin(s), m_shape, m_repeats, m_repeating_axis);
    +
    437 }
    +
    438
    +
    439 template <class CT, class R>
    +
    440 inline auto xrepeat<CT, R>::stepper_end(layout_type l) const -> const_stepper
    +
    441 {
    +
    442 return stepper_end(m_e.shape(), l);
    +
    443 }
    +
    444
    +
    445 template <class CT, class R>
    +
    446 inline auto xrepeat<CT, R>::stepper_end(const shape_type& s, layout_type l) const -> const_stepper
    +
    447 {
    +
    448 auto st = const_stepper(m_e.stepper_begin(s), m_shape, m_repeats, m_repeating_axis);
    +
    449 st.to_end(l);
    +
    450 return st;
    +
    451 }
    +
    452
    +
    453 template <class CT, class R>
    +
    454 template <std::size_t I, class Arg, class... Args>
    +
    455 inline auto xrepeat<CT, R>::access_impl(stepper&& s, Arg arg, Args... args) const -> const_reference
    +
    456 {
    +
    457 s.step(I, static_cast<size_type>(arg));
    +
    458 return access_impl<I + 1>(std::forward<stepper>(s), args...);
    +
    459 }
    +
    460
    +
    461 template <class CT, class R>
    +
    462 template <std::size_t I>
    +
    463 inline auto xrepeat<CT, R>::access_impl(stepper&& s) const -> const_reference
    +
    464 {
    +
    465 return *s;
    +
    466 }
    +
    467
    +
    468 /**********************************
    +
    469 * xrepeat_stepper implementation *
    +
    470 **********************************/
    +
    471
    +
    472 template <class S, class R>
    +
    473 xrepeat_stepper<S, R>::xrepeat_stepper(S&& s, const shape_type& shape, const repeats_type& repeats, size_type axis)
    +
    474 : m_substepper(std::forward<S>(s))
    +
    475 , m_shape(shape)
    +
    476 , m_repeating_steps(0)
    +
    477 , m_positions(shape.size())
    +
    478 , m_subposition(0)
    +
    479 , m_repeating_axis(axis)
    +
    480 , m_repeats(repeats)
    +
    481 {
    +
    482 }
    +
    483
    +
    484 template <class S, class R>
    +
    485 inline auto xrepeat_stepper<S, R>::operator*() const -> reference
    +
    486 {
    +
    487 return m_substepper.operator*();
    +
    488 }
    +
    489
    +
    490 template <class S, class R>
    +
    491 inline void xrepeat_stepper<S, R>::step(size_type dim, size_type steps_to_go)
    +
    492 {
    +
    493 if (m_positions[dim] + steps_to_go >= m_shape[dim])
    +
    494 {
    +
    495 const auto next_positions = get_next_positions(dim, steps_to_go);
    +
    496 if (next_positions[dim] > m_positions[dim])
    +
    497 {
    +
    498 make_step(dim, next_positions[dim] - m_positions[dim]);
    +
    499 }
    +
    500 else
    +
    501 {
    +
    502 make_step_back(dim, m_positions[dim] - next_positions[dim]);
    +
    503 }
    +
    504 for (size_type d = 0; d < dim; ++d)
    +
    505 {
    +
    506 make_step(d, next_positions[d] - m_positions[d]);
    +
    507 }
    +
    508 }
    +
    509 else
    +
    510 {
    +
    511 make_step(dim, steps_to_go);
    +
    512 }
    +
    513 }
    +
    514
    +
    515 template <class S, class R>
    +
    516 inline void xrepeat_stepper<S, R>::step_back(size_type dim, size_type steps_to_go)
    +
    517 {
    +
    518 if (m_positions[dim] < steps_to_go)
    +
    519 {
    +
    520 const auto next_positions = get_next_positions_back(dim, steps_to_go);
    +
    521 if (next_positions[dim] < m_positions[dim])
    +
    522 {
    +
    523 make_step_back(dim, m_positions[dim] - next_positions[dim]);
    +
    524 }
    +
    525 else
    +
    526 {
    +
    527 make_step(dim, next_positions[dim] - m_positions[dim]);
    +
    528 }
    +
    529 for (size_type d = 0; d < dim; ++d)
    +
    530 {
    +
    531 make_step_back(d, m_positions[d] - next_positions[d]);
    +
    532 }
    +
    533 }
    +
    534 else
    +
    535 {
    +
    536 make_step_back(dim, steps_to_go);
    +
    537 }
    +
    538 }
    +
    539
    +
    540 template <class S, class R>
    +
    541 inline void xrepeat_stepper<S, R>::reset(size_type dim)
    +
    542 {
    +
    543 m_substepper.reset(dim);
    +
    544 m_positions[dim] = 0;
    +
    545 if (dim == m_repeating_axis)
    +
    546 {
    +
    547 m_subposition = 0;
    +
    548 m_repeating_steps = 0;
    +
    549 }
    +
    550 }
    +
    551
    +
    552 template <class S, class R>
    +
    553 inline void xrepeat_stepper<S, R>::reset_back(size_type dim)
    +
    554 {
    +
    555 m_substepper.reset_back(dim);
    +
    556 m_positions[dim] = m_shape[dim] - 1;
    +
    557 if (dim == m_repeating_axis)
    +
    558 {
    +
    559 m_subposition = m_repeats.size() - 1;
    +
    560 m_repeating_steps = static_cast<std::ptrdiff_t>(m_repeats.back()) - 1;
    +
    561 }
    +
    562 }
    +
    563
    +
    564 template <class S, class R>
    +
    565 inline void xrepeat_stepper<S, R>::to_begin()
    +
    566 {
    +
    567 m_substepper.to_begin();
    +
    568 std::fill(m_positions.begin(), m_positions.end(), 0);
    +
    569 m_subposition = 0;
    +
    570 m_repeating_steps = 0;
    +
    571 }
    +
    572
    +
    573 template <class S, class R>
    +
    574 inline void xrepeat_stepper<S, R>::to_end(layout_type l)
    +
    575 {
    +
    576 m_substepper.to_end(l);
    +
    577 std::transform(
    +
    578 m_shape.begin(),
    +
    579 m_shape.end(),
    +
    580 m_positions.begin(),
    +
    581 [](auto value)
    +
    582 {
    +
    583 return value - 1;
    +
    584 }
    +
    585 );
    +
    586 if (layout_type::row_major == l)
    +
    587 {
    +
    588 ++m_positions.front();
    +
    589 }
    +
    590 else
    +
    591 {
    +
    592 ++m_positions.back();
    +
    593 }
    +
    594 m_subposition = m_repeats.size();
    +
    595 m_repeating_steps = 0;
    +
    596 }
    +
    597
    +
    598 template <class S, class R>
    +
    599 inline void xrepeat_stepper<S, R>::step_leading()
    +
    600 {
    +
    601 step(m_shape.size() - 1, 1);
    +
    602 }
    +
    603
    +
    604 template <class S, class R>
    +
    605 inline void xrepeat_stepper<S, R>::make_step(size_type dim, size_type steps_to_go)
    +
    606 {
    +
    607 if (steps_to_go > 0)
    +
    608 {
    +
    609 if (dim == m_repeating_axis)
    +
    610 {
    +
    611 size_type subposition = m_subposition;
    +
    612 m_repeating_steps += static_cast<std::ptrdiff_t>(steps_to_go);
    +
    613 while (m_repeating_steps >= static_cast<ptrdiff_t>(m_repeats[subposition]))
    +
    614 {
    +
    615 m_repeating_steps -= static_cast<ptrdiff_t>(m_repeats[subposition]);
    +
    616 ++subposition;
    +
    617 }
    +
    618 m_substepper.step(dim, subposition - m_subposition);
    +
    619 m_subposition = subposition;
    +
    620 }
    +
    621 else
    +
    622 {
    +
    623 m_substepper.step(dim, steps_to_go);
    +
    624 }
    +
    625 m_positions[dim] += steps_to_go;
    +
    626 }
    +
    627 }
    +
    628
    +
    629 template <class S, class R>
    +
    630 inline void xrepeat_stepper<S, R>::make_step_back(size_type dim, size_type steps_to_go)
    +
    631 {
    +
    632 if (steps_to_go > 0)
    +
    633 {
    +
    634 if (dim == m_repeating_axis)
    +
    635 {
    +
    636 size_type subposition = m_subposition;
    +
    637 m_repeating_steps -= static_cast<std::ptrdiff_t>(steps_to_go);
    +
    638 while (m_repeating_steps < 0)
    +
    639 {
    +
    640 --subposition;
    +
    641 m_repeating_steps += static_cast<ptrdiff_t>(m_repeats[subposition]);
    +
    642 }
    +
    643 m_substepper.step_back(dim, m_subposition - subposition);
    +
    644 m_subposition = subposition;
    +
    645 }
    +
    646 else
    +
    647 {
    +
    648 m_substepper.step_back(dim, steps_to_go);
    +
    649 }
    +
    650 m_positions[dim] -= steps_to_go;
    +
    651 }
    +
    652 }
    +
    653
    +
    654 template <class S, class R>
    +
    655 inline auto xrepeat_stepper<S, R>::get_next_positions(size_type dim, size_type steps_to_go) const
    +
    656 -> std::vector<size_type>
    +
    657 {
    +
    658 size_type next_position_for_dim = m_positions[dim] + steps_to_go;
    +
    659 if (dim > 0)
    +
    660 {
    +
    661 size_type steps_in_previous_dim = 0;
    +
    662 while (next_position_for_dim >= m_shape[dim])
    +
    663 {
    +
    664 next_position_for_dim -= m_shape[dim];
    +
    665 ++steps_in_previous_dim;
    +
    666 }
    +
    667 if (steps_in_previous_dim > 0)
    +
    668 {
    +
    669 auto next_positions = get_next_positions(dim - 1, steps_in_previous_dim);
    +
    670 next_positions[dim] = next_position_for_dim;
    +
    671 return next_positions;
    +
    672 }
    +
    673 }
    +
    674 std::vector<size_type> next_positions = m_positions;
    +
    675 next_positions[dim] = next_position_for_dim;
    +
    676 return next_positions;
    +
    677 }
    +
    678
    +
    679 template <class S, class R>
    +
    680 inline auto xrepeat_stepper<S, R>::get_next_positions_back(size_type dim, size_type steps_to_go) const
    +
    681 -> std::vector<size_type>
    +
    682 {
    +
    683 auto next_position_for_dim = static_cast<std::ptrdiff_t>(m_positions[dim] - steps_to_go);
    +
    684 if (dim > 0)
    +
    685 {
    +
    686 size_type steps_in_previous_dim = 0;
    +
    687 while (next_position_for_dim < 0)
    +
    688 {
    +
    689 next_position_for_dim += static_cast<std::ptrdiff_t>(m_shape[dim]);
    +
    690 ++steps_in_previous_dim;
    +
    691 }
    +
    692 if (steps_in_previous_dim > 0)
    +
    693 {
    +
    694 auto next_positions = get_next_positions_back(dim - 1, steps_in_previous_dim);
    +
    695 next_positions[dim] = static_cast<size_type>(next_position_for_dim);
    +
    696 return next_positions;
    +
    697 }
    +
    698 }
    +
    699 std::vector<size_type> next_positions = m_positions;
    +
    700 next_positions[dim] = static_cast<size_type>(next_position_for_dim);
    +
    701 return next_positions;
    +
    702 }
    +
    703}
    +
    704
    +
    705#endif
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    + +
    size_type shape(size_type index) const
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    +
    Base class for multidimensional iterable expressions.
    + +
    Expression with repeated values along an axis.
    Definition xrepeat.hpp:100
    +
    bool has_linear_assign(const S &strides) const noexcept
    Checks whether the xbroadcast can be linearly assigned to an expression with the specified strides.
    Definition xrepeat.hpp:402
    +
    bool broadcast_shape(S &shape, bool reuse_cache=false) const
    Broadcast the shape of the function to the specified parameter.
    Definition xrepeat.hpp:390
    +
    layout_type layout() const noexcept
    Returns the layout_type of the expression.
    Definition xrepeat.hpp:288
    +
    const xexpression_type & expression() const noexcept
    Returns a constant reference to the underlying expression of the broadcast expression.
    Definition xrepeat.hpp:371
    +
    xrepeat(CTA &&e, R &&repeats, size_type axis)
    Constructs an xrepeat expression repeating the element of the specified xexpression.
    Definition xrepeat.hpp:259
    +
    const shape_type & shape() const noexcept
    Returns the shape of the expression.
    Definition xrepeat.hpp:279
    +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + + + +
    +
    + + + + diff --git a/xscalar_8hpp_source.html b/xscalar_8hpp_source.html new file mode 100644 index 000000000..d0b4c3e2f --- /dev/null +++ b/xscalar_8hpp_source.html @@ -0,0 +1,1259 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xscalar.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xscalar.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_SCALAR_HPP
    +
    11#define XTENSOR_SCALAR_HPP
    +
    12
    +
    13#include <array>
    +
    14#include <cstddef>
    +
    15
    +
    16#include <xtl/xtype_traits.hpp>
    +
    17
    +
    18#include "../core/xaccessible.hpp"
    +
    19#include "../core/xexpression.hpp"
    +
    20#include "../core/xiterable.hpp"
    +
    21#include "../core/xlayout.hpp"
    +
    22#include "../utils/xtensor_simd.hpp"
    +
    23
    +
    24namespace xt
    +
    25{
    +
    26
    +
    27 /*********************
    +
    28 * xscalar extension *
    +
    29 *********************/
    +
    30
    +
    31 namespace extension
    +
    32 {
    +
    33 template <class Tag, class CT>
    + +
    35
    +
    36 template <class CT>
    +
    + +
    38 {
    +
    39 using type = xtensor_empty_base;
    +
    40 };
    +
    +
    41
    +
    42 template <class CT>
    +
    +
    43 struct xscalar_base : xscalar_base_impl<get_expression_tag_t<std::decay_t<CT>>, CT>
    +
    44 {
    +
    45 };
    +
    +
    46
    +
    47 template <class CT>
    +
    48 using xscalar_base_t = typename xscalar_base<CT>::type;
    +
    49 }
    +
    50
    +
    51 /***********
    +
    52 * xscalar *
    +
    53 ***********/
    +
    54
    +
    55 // xscalar is a cheap wrapper for a scalar value as an xexpression.
    +
    56 template <class CT>
    +
    57 class xscalar;
    +
    58
    +
    59 template <bool is_const, class CT>
    +
    60 class xscalar_stepper;
    +
    61
    +
    62 template <bool is_const, class CT>
    +
    63 class xdummy_iterator;
    +
    64
    +
    65 template <class CT>
    +
    + +
    67 {
    +
    68 using value_type = std::decay_t<CT>;
    +
    69 using inner_shape_type = std::array<std::size_t, 0>;
    +
    70 using shape_type = inner_shape_type;
    +
    71 using const_stepper = xscalar_stepper<true, CT>;
    +
    72 using stepper = xscalar_stepper<false, CT>;
    +
    73 };
    +
    +
    74
    +
    75 template <class CT>
    +
    + +
    77 {
    +
    78 using value_type = std::decay_t<CT>;
    +
    79 using reference = value_type&;
    +
    80 using const_reference = const value_type&;
    +
    81 using size_type = std::size_t;
    +
    82 };
    +
    +
    83
    +
    84 template <class CT>
    +
    +
    85 class xscalar : public xsharable_expression<xscalar<CT>>,
    +
    86 private xiterable<xscalar<CT>>,
    +
    87 private xaccessible<xscalar<CT>>,
    +
    88 public extension::xscalar_base_t<CT>
    +
    89 {
    +
    90 public:
    +
    91
    +
    92 using self_type = xscalar<CT>;
    +
    93 using xexpression_type = std::decay_t<CT>;
    +
    94 using extension_base = extension::xscalar_base_t<CT>;
    +
    95 using accessible_base = xaccessible<self_type>;
    +
    96 using expression_tag = typename extension_base::expression_tag;
    +
    97 using inner_types = xcontainer_inner_types<self_type>;
    +
    98
    +
    99 using value_type = typename inner_types::value_type;
    +
    100 using reference = typename inner_types::reference;
    +
    101 using const_reference = typename inner_types::const_reference;
    +
    102 using pointer = value_type*;
    +
    103 using const_pointer = const value_type*;
    +
    104 using size_type = typename inner_types::size_type;
    +
    105 using difference_type = std::ptrdiff_t;
    +
    106 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    107 using bool_load_type = xt::bool_load_type<value_type>;
    +
    108
    +
    109 using iterable_base = xiterable<self_type>;
    +
    110 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    111 using shape_type = inner_shape_type;
    +
    112
    +
    113 using stepper = typename iterable_base::stepper;
    +
    114 using const_stepper = typename iterable_base::const_stepper;
    +
    115
    +
    116 template <layout_type L>
    +
    117 using layout_iterator = typename iterable_base::template layout_iterator<L>;
    +
    118 template <layout_type L>
    +
    119 using const_layout_iterator = typename iterable_base::template const_layout_iterator<L>;
    +
    120
    +
    121 template <layout_type L>
    +
    122 using reverse_layout_iterator = typename iterable_base::template reverse_layout_iterator<L>;
    +
    123 template <layout_type L>
    +
    124 using const_reverse_layout_iterator = typename iterable_base::template const_reverse_layout_iterator<L>;
    +
    125
    +
    126 template <class S, layout_type L>
    +
    127 using broadcast_iterator = typename iterable_base::template broadcast_iterator<S, L>;
    +
    128 template <class S, layout_type L>
    +
    129 using const_broadcast_iterator = typename iterable_base::template const_broadcast_iterator<S, L>;
    +
    130
    +
    131 template <class S, layout_type L>
    +
    132 using reverse_broadcast_iterator = typename iterable_base::template reverse_broadcast_iterator<S, L>;
    +
    133 template <class S, layout_type L>
    +
    134 using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>;
    +
    135
    +
    136 using iterator = value_type*;
    +
    137 using const_iterator = const value_type*;
    +
    138 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    139 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    140
    +
    141 using dummy_iterator = xdummy_iterator<false, CT>;
    +
    142 using const_dummy_iterator = xdummy_iterator<true, CT>;
    +
    143
    +
    144 static constexpr layout_type static_layout = layout_type::any;
    +
    145 static constexpr bool contiguous_layout = true;
    +
    146
    +
    147 xscalar() noexcept;
    +
    148 xscalar(CT value) noexcept;
    +
    149
    +
    150 operator value_type&() noexcept;
    +
    151 operator const value_type&() const noexcept;
    +
    152
    +
    153 size_type size() const noexcept;
    +
    154 const shape_type& shape() const noexcept;
    +
    155 size_type shape(size_type i) const noexcept;
    +
    156 layout_type layout() const noexcept;
    +
    157 bool is_contiguous() const noexcept;
    + + +
    160
    +
    161 template <class... Args>
    +
    162 reference operator()(Args...) noexcept;
    +
    163 template <class... Args>
    +
    164 reference unchecked(Args...) noexcept;
    +
    165
    +
    166 template <class... Args>
    +
    167 const_reference operator()(Args...) const noexcept;
    +
    168 template <class... Args>
    +
    169 const_reference unchecked(Args...) const noexcept;
    +
    170
    +
    171 using accessible_base::at;
    +
    172 using accessible_base::operator[];
    + + + +
    176 using accessible_base::periodic;
    +
    177
    +
    178 template <class It>
    +
    179 reference element(It, It) noexcept;
    +
    180
    +
    181 template <class It>
    +
    182 const_reference element(It, It) const noexcept;
    +
    183
    +
    184 xexpression_type& expression() noexcept;
    +
    185 const xexpression_type& expression() const noexcept;
    +
    186
    +
    187 template <class S>
    +
    188 bool broadcast_shape(S& shape, bool reuse_cache = false) const noexcept;
    +
    189
    +
    190 template <class S>
    +
    191 bool has_linear_assign(const S& strides) const noexcept;
    +
    192
    +
    193 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    194 iterator begin() noexcept;
    +
    195 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    196 iterator end() noexcept;
    +
    197
    +
    198 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    199 const_iterator begin() const noexcept;
    +
    200 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    201 const_iterator end() const noexcept;
    +
    202 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    203 const_iterator cbegin() const noexcept;
    +
    204 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    205 const_iterator cend() const noexcept;
    +
    206
    +
    207 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    208 reverse_iterator rbegin() noexcept;
    +
    209 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    210 reverse_iterator rend() noexcept;
    +
    211
    +
    212 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    213 const_reverse_iterator rbegin() const noexcept;
    +
    214 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    215 const_reverse_iterator rend() const noexcept;
    +
    216 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    217 const_reverse_iterator crbegin() const noexcept;
    +
    218 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    219 const_reverse_iterator crend() const noexcept;
    +
    220
    +
    221 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    222 broadcast_iterator<S, L> begin(const S& shape) noexcept;
    +
    223 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    224 broadcast_iterator<S, L> end(const S& shape) noexcept;
    +
    225
    +
    226 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    227 const_broadcast_iterator<S, L> begin(const S& shape) const noexcept;
    +
    228 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    229 const_broadcast_iterator<S, L> end(const S& shape) const noexcept;
    +
    230 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    231 const_broadcast_iterator<S, L> cbegin(const S& shape) const noexcept;
    +
    232 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    233 const_broadcast_iterator<S, L> cend(const S& shape) const noexcept;
    +
    234
    +
    235
    +
    236 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    237 reverse_broadcast_iterator<S, L> rbegin(const S& shape) noexcept;
    +
    238 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    239 reverse_broadcast_iterator<S, L> rend(const S& shape) noexcept;
    +
    240
    +
    241 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    242 const_reverse_broadcast_iterator<S, L> rbegin(const S& shape) const noexcept;
    +
    243 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    244 const_reverse_broadcast_iterator<S, L> rend(const S& shape) const noexcept;
    +
    245 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    246 const_reverse_broadcast_iterator<S, L> crbegin(const S& shape) const noexcept;
    +
    247 template <class S, layout_type L = XTENSOR_DEFAULT_TRAVERSAL>
    +
    248 const_reverse_broadcast_iterator<S, L> crend(const S& shape) const noexcept;
    +
    249
    +
    250 iterator linear_begin() noexcept;
    +
    251 iterator linear_end() noexcept;
    +
    252
    +
    253 const_iterator linear_begin() const noexcept;
    +
    254 const_iterator linear_end() const noexcept;
    +
    255 const_iterator linear_cbegin() const noexcept;
    +
    256 const_iterator linear_cend() const noexcept;
    +
    257
    +
    258 reverse_iterator linear_rbegin() noexcept;
    +
    259 reverse_iterator linear_rend() noexcept;
    +
    260
    +
    261 const_reverse_iterator linear_rbegin() const noexcept;
    +
    262 const_reverse_iterator linear_rend() const noexcept;
    +
    263 const_reverse_iterator linear_crbegin() const noexcept;
    +
    264 const_reverse_iterator linear_crend() const noexcept;
    +
    265
    +
    266 template <class S>
    +
    267 stepper stepper_begin(const S& shape) noexcept;
    +
    268 template <class S>
    +
    269 stepper stepper_end(const S& shape, layout_type l) noexcept;
    +
    270
    +
    271 template <class S>
    +
    272 const_stepper stepper_begin(const S& shape) const noexcept;
    +
    273 template <class S>
    +
    274 const_stepper stepper_end(const S& shape, layout_type l) const noexcept;
    +
    275
    +
    276 dummy_iterator dummy_begin() noexcept;
    +
    277 dummy_iterator dummy_end() noexcept;
    +
    278
    +
    279 const_dummy_iterator dummy_begin() const noexcept;
    +
    280 const_dummy_iterator dummy_end() const noexcept;
    +
    281
    +
    282 reference data_element(size_type i) noexcept;
    +
    283 const_reference data_element(size_type i) const noexcept;
    +
    284
    +
    285 reference flat(size_type i) noexcept;
    +
    286 const_reference flat(size_type i) const noexcept;
    +
    287
    +
    288 template <class align, class simd = simd_value_type>
    +
    289 void store_simd(size_type i, const simd& e);
    +
    290 template <class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    +
    291 xt_simd::simd_return_type<value_type, requested_type> load_simd(size_type i) const;
    +
    292
    +
    293 private:
    +
    294
    +
    295 CT m_value;
    +
    296
    +
    297 friend class xconst_iterable<self_type>;
    +
    298 friend class xiterable<self_type>;
    +
    299 friend class xaccessible<self_type>;
    +
    300 friend class xconst_accessible<self_type>;
    +
    301 };
    +
    +
    302
    +
    303 namespace detail
    +
    304 {
    +
    305 template <class E>
    +
    306 struct is_xscalar_impl : std::false_type
    +
    307 {
    +
    308 };
    +
    309
    +
    310 template <class E>
    +
    311 struct is_xscalar_impl<xscalar<E>> : std::true_type
    +
    312 {
    +
    313 };
    +
    314 }
    +
    315
    +
    316 template <class E>
    +
    317 using is_xscalar = detail::is_xscalar_impl<E>;
    +
    318
    +
    319 template <class E>
    +
    320 concept xscalar_concept = is_xscalar<std::decay_t<E>>::value;
    +
    321
    +
    322 namespace detail
    +
    323 {
    +
    324 template <class... E>
    +
    325 struct all_xscalar
    +
    326 {
    +
    327 static constexpr bool value = std::conjunction<is_xscalar<std::decay_t<E>>...>::value;
    +
    328 };
    +
    329 }
    +
    330
    +
    331 // Note: MSVC bug workaround. Cannot just define
    +
    332 // template <class... E>
    +
    333 // using all_xscalar = std::conjunction<is_xscalar<std::decay_t<E>>...>;
    +
    334
    +
    335 template <class... E>
    +
    336 using all_xscalar = detail::all_xscalar<E...>;
    +
    337
    +
    338 /******************
    +
    339 * xref and xcref *
    +
    340 ******************/
    +
    341
    +
    342 template <class T>
    +
    343 xscalar<T&> xref(T& t);
    +
    344
    +
    345 template <class T>
    +
    346 xscalar<const T&> xcref(T& t);
    +
    347
    +
    348 /*******************
    +
    349 * xscalar_stepper *
    +
    350 *******************/
    +
    351
    +
    352 template <bool is_const, class CT>
    +
    +
    353 class xscalar_stepper
    +
    354 {
    +
    355 public:
    +
    356
    +
    357 using self_type = xscalar_stepper<is_const, CT>;
    +
    358 using storage_type = std::conditional_t<is_const, const xscalar<CT>, xscalar<CT>>;
    +
    359
    +
    360 using value_type = typename storage_type::value_type;
    +
    361 using reference = std::
    +
    362 conditional_t<is_const, typename storage_type::const_reference, typename storage_type::reference>;
    +
    363 using pointer = std::conditional_t<is_const, typename storage_type::const_pointer, typename storage_type::pointer>;
    +
    364 using size_type = typename storage_type::size_type;
    +
    365 using difference_type = typename storage_type::difference_type;
    +
    366 using shape_type = typename storage_type::shape_type;
    +
    367
    +
    368 template <class requested_type>
    +
    369 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    370
    +
    371 xscalar_stepper(storage_type* c) noexcept;
    +
    372
    +
    373 reference operator*() const noexcept;
    +
    374
    +
    375 void step(size_type dim, size_type n = 1) noexcept;
    +
    376 void step_back(size_type dim, size_type n = 1) noexcept;
    +
    377 void reset(size_type dim) noexcept;
    +
    378 void reset_back(size_type dim) noexcept;
    +
    379
    +
    380 void to_begin() noexcept;
    +
    381 void to_end(layout_type l) noexcept;
    +
    382
    +
    383 template <class T>
    +
    384 simd_return_type<T> step_simd();
    +
    385
    +
    386 void step_leading();
    +
    387
    +
    388 private:
    +
    389
    +
    390 storage_type* p_c;
    +
    391 };
    +
    +
    392
    +
    393 /*******************
    +
    394 * xdummy_iterator *
    +
    395 *******************/
    +
    396
    +
    397 namespace detail
    +
    398 {
    +
    399 template <bool is_const, class CT>
    +
    400 using dummy_reference_t = std::
    +
    401 conditional_t<is_const, typename xscalar<CT>::const_reference, typename xscalar<CT>::reference>;
    +
    402
    +
    403 template <bool is_const, class CT>
    +
    404 using dummy_pointer_t = std::
    +
    405 conditional_t<is_const, typename xscalar<CT>::const_pointer, typename xscalar<CT>::pointer>;
    +
    406 }
    +
    407
    +
    408 template <bool is_const, class CT>
    +
    +
    409 class xdummy_iterator : public xtl::xrandom_access_iterator_base<
    +
    410 xdummy_iterator<is_const, CT>,
    +
    411 typename xscalar<CT>::value_type,
    +
    412 typename xscalar<CT>::difference_type,
    +
    413 detail::dummy_pointer_t<is_const, CT>,
    +
    414 detail::dummy_reference_t<is_const, CT>>
    +
    415 {
    +
    416 public:
    +
    417
    +
    418 using self_type = xdummy_iterator<is_const, CT>;
    +
    419 using storage_type = std::conditional_t<is_const, const xscalar<CT>, xscalar<CT>>;
    +
    420
    +
    421 using value_type = typename storage_type::value_type;
    +
    422 using reference = detail::dummy_reference_t<is_const, CT>;
    +
    423 using pointer = detail::dummy_pointer_t<is_const, CT>;
    +
    424 using difference_type = typename storage_type::difference_type;
    +
    425 using iterator_category = std::random_access_iterator_tag;
    +
    426
    +
    427 explicit xdummy_iterator(storage_type* c) noexcept;
    +
    428
    +
    429 self_type& operator++() noexcept;
    +
    430 self_type& operator--() noexcept;
    +
    431
    +
    432 self_type& operator+=(difference_type n) noexcept;
    +
    433 self_type& operator-=(difference_type n) noexcept;
    +
    434
    +
    435 difference_type operator-(const self_type& rhs) const noexcept;
    +
    436
    +
    437 reference operator*() const noexcept;
    +
    438
    +
    439 bool equal(const self_type& rhs) const noexcept;
    +
    440 bool less_than(const self_type& rhs) const noexcept;
    +
    441
    +
    442 private:
    +
    443
    +
    444 storage_type* p_c;
    +
    445 };
    +
    +
    446
    +
    447 template <bool is_const, class CT>
    +
    448 bool
    +
    449 operator==(const xdummy_iterator<is_const, CT>& lhs, const xdummy_iterator<is_const, CT>& rhs) noexcept;
    +
    450
    +
    451 template <bool is_const, class CT>
    +
    452 bool operator<(const xdummy_iterator<is_const, CT>& lhs, const xdummy_iterator<is_const, CT>& rhs) noexcept;
    +
    453
    +
    454 template <class T>
    +
    +
    455 struct is_not_xdummy_iterator : std::true_type
    +
    456 {
    +
    457 };
    +
    +
    458
    +
    459 template <bool is_const, class CT>
    +
    +
    460 struct is_not_xdummy_iterator<xdummy_iterator<is_const, CT>> : std::false_type
    +
    461 {
    +
    462 };
    +
    +
    463
    +
    464 /*****************************
    +
    465 * linear_begin / linear_end *
    +
    466 *****************************/
    +
    467
    +
    468 template <class CT>
    +
    469 XTENSOR_CONSTEXPR_RETURN auto linear_begin(xscalar<CT>& c) noexcept -> decltype(c.dummy_begin())
    +
    470 {
    +
    471 return c.dummy_begin();
    +
    472 }
    +
    473
    +
    474 template <class CT>
    +
    475 XTENSOR_CONSTEXPR_RETURN auto linear_end(xscalar<CT>& c) noexcept -> decltype(c.dummy_end())
    +
    476 {
    +
    477 return c.dummy_end();
    +
    478 }
    +
    479
    +
    480 template <class CT>
    +
    481 XTENSOR_CONSTEXPR_RETURN auto linear_begin(const xscalar<CT>& c) noexcept -> decltype(c.dummy_begin())
    +
    482 {
    +
    483 return c.dummy_begin();
    +
    484 }
    +
    485
    +
    486 template <class CT>
    +
    487 XTENSOR_CONSTEXPR_RETURN auto linear_end(const xscalar<CT>& c) noexcept -> decltype(c.dummy_end())
    +
    488 {
    +
    489 return c.dummy_end();
    +
    490 }
    +
    491
    +
    492 /**************************
    +
    493 * xscalar implementation *
    +
    494 **************************/
    +
    495
    +
    496 // This constructor will not compile when CT is a reference type.
    +
    497 template <class CT>
    +
    498 inline xscalar<CT>::xscalar() noexcept
    +
    499 : m_value()
    +
    500 {
    +
    501 }
    +
    502
    +
    503 template <class CT>
    +
    504 inline xscalar<CT>::xscalar(CT value) noexcept
    +
    505 : m_value(value)
    +
    506 {
    +
    507 }
    +
    508
    +
    509 template <class CT>
    +
    510 inline xscalar<CT>::operator value_type&() noexcept
    +
    511 {
    +
    512 return m_value;
    +
    513 }
    +
    514
    +
    515 template <class CT>
    +
    516 inline xscalar<CT>::operator const value_type&() const noexcept
    +
    517 {
    +
    518 return m_value;
    +
    519 }
    +
    520
    +
    521 template <class CT>
    +
    522 inline auto xscalar<CT>::size() const noexcept -> size_type
    +
    523 {
    +
    524 return 1;
    +
    525 }
    +
    526
    +
    527 template <class CT>
    +
    528 inline auto xscalar<CT>::shape() const noexcept -> const shape_type&
    +
    529 {
    +
    530 static std::array<size_type, 0> zero_shape;
    +
    531 return zero_shape;
    +
    532 }
    +
    533
    +
    534 template <class CT>
    +
    535 inline auto xscalar<CT>::shape(size_type) const noexcept -> size_type
    +
    536 {
    +
    537 return 0;
    +
    538 }
    +
    539
    +
    540 template <class CT>
    +
    541 inline layout_type xscalar<CT>::layout() const noexcept
    +
    542 {
    +
    543 return static_layout;
    +
    544 }
    +
    545
    +
    546 template <class CT>
    +
    547 inline bool xscalar<CT>::is_contiguous() const noexcept
    +
    548 {
    +
    549 return true;
    +
    550 }
    +
    551
    +
    552 template <class CT>
    +
    553 template <class... Args>
    +
    554 inline auto xscalar<CT>::operator()(Args...) noexcept -> reference
    +
    555 {
    +
    556 XTENSOR_CHECK_DIMENSION((std::array<int, 0>()), Args()...);
    +
    557 return m_value;
    +
    558 }
    +
    559
    +
    560 template <class CT>
    +
    561 template <class... Args>
    +
    562 inline auto xscalar<CT>::unchecked(Args...) noexcept -> reference
    +
    563 {
    +
    564 return m_value;
    +
    565 }
    +
    566
    +
    567 template <class CT>
    +
    568 template <class... Args>
    +
    569 inline auto xscalar<CT>::operator()(Args...) const noexcept -> const_reference
    +
    570 {
    +
    571 XTENSOR_CHECK_DIMENSION((std::array<int, 0>()), Args()...);
    +
    572 return m_value;
    +
    573 }
    +
    574
    +
    575 template <class CT>
    +
    576 template <class... Args>
    +
    577 inline auto xscalar<CT>::unchecked(Args...) const noexcept -> const_reference
    +
    578 {
    +
    579 return m_value;
    +
    580 }
    +
    581
    +
    582 template <class CT>
    +
    583 template <class It>
    +
    584 inline auto xscalar<CT>::element(It, It) noexcept -> reference
    +
    585 {
    +
    586 return m_value;
    +
    587 }
    +
    588
    +
    589 template <class CT>
    +
    590 template <class It>
    +
    591 inline auto xscalar<CT>::element(It, It) const noexcept -> const_reference
    +
    592 {
    +
    593 return m_value;
    +
    594 }
    +
    595
    +
    596 template <class CT>
    +
    597 inline auto xscalar<CT>::expression() noexcept -> xexpression_type&
    +
    598 {
    +
    599 return m_value;
    +
    600 }
    +
    601
    +
    602 template <class CT>
    +
    603 inline auto xscalar<CT>::expression() const noexcept -> const xexpression_type&
    +
    604 {
    +
    605 return m_value;
    +
    606 }
    +
    607
    +
    608 template <class CT>
    +
    609 template <class S>
    +
    610 inline bool xscalar<CT>::broadcast_shape(S&, bool) const noexcept
    +
    611 {
    +
    612 return true;
    +
    613 }
    +
    614
    +
    615 template <class CT>
    +
    616 template <class S>
    +
    617 inline bool xscalar<CT>::has_linear_assign(const S&) const noexcept
    +
    618 {
    +
    619 return true;
    +
    620 }
    +
    621
    +
    622 template <class CT>
    +
    623 template <layout_type L>
    +
    624 inline auto xscalar<CT>::begin() noexcept -> iterator
    +
    625 {
    +
    626 return &m_value;
    +
    627 }
    +
    628
    +
    629 template <class CT>
    +
    630 template <layout_type L>
    +
    631 inline auto xscalar<CT>::end() noexcept -> iterator
    +
    632 {
    +
    633 return &m_value + 1;
    +
    634 }
    +
    635
    +
    636 template <class CT>
    +
    637 template <layout_type L>
    +
    638 inline auto xscalar<CT>::begin() const noexcept -> const_iterator
    +
    639 {
    +
    640 return &m_value;
    +
    641 }
    +
    642
    +
    643 template <class CT>
    +
    644 template <layout_type L>
    +
    645 inline auto xscalar<CT>::end() const noexcept -> const_iterator
    +
    646 {
    +
    647 return &m_value + 1;
    +
    648 }
    +
    649
    +
    650 template <class CT>
    +
    651 template <layout_type L>
    +
    652 inline auto xscalar<CT>::cbegin() const noexcept -> const_iterator
    +
    653 {
    +
    654 return &m_value;
    +
    655 }
    +
    656
    +
    657 template <class CT>
    +
    658 template <layout_type L>
    +
    659 inline auto xscalar<CT>::cend() const noexcept -> const_iterator
    +
    660 {
    +
    661 return &m_value + 1;
    +
    662 }
    +
    663
    +
    664 template <class CT>
    +
    665 template <layout_type L>
    +
    666 inline auto xscalar<CT>::rbegin() noexcept -> reverse_iterator
    +
    667 {
    +
    668 return reverse_iterator(end());
    +
    669 }
    +
    670
    +
    671 template <class CT>
    +
    672 template <layout_type L>
    +
    673 inline auto xscalar<CT>::rend() noexcept -> reverse_iterator
    +
    674 {
    +
    675 return reverse_iterator(begin());
    +
    676 }
    +
    677
    +
    678 template <class CT>
    +
    679 template <layout_type L>
    +
    680 inline auto xscalar<CT>::rbegin() const noexcept -> const_reverse_iterator
    +
    681 {
    +
    682 return crbegin();
    +
    683 }
    +
    684
    +
    685 template <class CT>
    +
    686 template <layout_type L>
    +
    687 inline auto xscalar<CT>::rend() const noexcept -> const_reverse_iterator
    +
    688 {
    +
    689 return crend();
    +
    690 }
    +
    691
    +
    692 template <class CT>
    +
    693 template <layout_type L>
    +
    694 inline auto xscalar<CT>::crbegin() const noexcept -> const_reverse_iterator
    +
    695 {
    +
    696 return const_reverse_iterator(cend());
    +
    697 }
    +
    698
    +
    699 template <class CT>
    +
    700 template <layout_type L>
    +
    701 inline auto xscalar<CT>::crend() const noexcept -> const_reverse_iterator
    +
    702 {
    +
    703 return const_reverse_iterator(cbegin());
    +
    704 }
    +
    705
    +
    706 /*****************************
    +
    707 * Broadcasting iterator api *
    +
    708 *****************************/
    +
    709
    +
    710 template <class CT>
    +
    711 template <class S, layout_type L>
    +
    712 inline auto xscalar<CT>::begin(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    713 {
    +
    714 return iterable_base::template begin<S, L>(shape);
    +
    715 }
    +
    716
    +
    717 template <class CT>
    +
    718 template <class S, layout_type L>
    +
    719 inline auto xscalar<CT>::end(const S& shape) noexcept -> broadcast_iterator<S, L>
    +
    720 {
    +
    721 return iterable_base::template end<S, L>(shape);
    +
    722 }
    +
    723
    +
    724 template <class CT>
    +
    725 template <class S, layout_type L>
    +
    726 inline auto xscalar<CT>::begin(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    727 {
    +
    728 return iterable_base::template begin<S, L>(shape);
    +
    729 }
    +
    730
    +
    731 template <class CT>
    +
    732 template <class S, layout_type L>
    +
    733 inline auto xscalar<CT>::end(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    734 {
    +
    735 return iterable_base::template end<S, L>(shape);
    +
    736 }
    +
    737
    +
    738 template <class CT>
    +
    739 template <class S, layout_type L>
    +
    740 inline auto xscalar<CT>::cbegin(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    741 {
    +
    742 return iterable_base::template cbegin<S, L>(shape);
    +
    743 }
    +
    744
    +
    745 template <class CT>
    +
    746 template <class S, layout_type L>
    +
    747 inline auto xscalar<CT>::cend(const S& shape) const noexcept -> const_broadcast_iterator<S, L>
    +
    748 {
    +
    749 return iterable_base::template cend<S, L>(shape);
    +
    750 }
    +
    751
    +
    752 template <class CT>
    +
    753 template <class S, layout_type L>
    +
    754 inline auto xscalar<CT>::rbegin(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    755 {
    +
    756 return iterable_base::template rbegin<S, L>(shape);
    +
    757 }
    +
    758
    +
    759 template <class CT>
    +
    760 template <class S, layout_type L>
    +
    761 inline auto xscalar<CT>::rend(const S& shape) noexcept -> reverse_broadcast_iterator<S, L>
    +
    762 {
    +
    763 return iterable_base::template rend<S, L>(shape);
    +
    764 }
    +
    765
    +
    766 template <class CT>
    +
    767 template <class S, layout_type L>
    +
    768 inline auto xscalar<CT>::rbegin(const S& shape) const noexcept -> const_reverse_broadcast_iterator<S, L>
    +
    769 {
    +
    770 return iterable_base::template rbegin<S, L>(shape);
    +
    771 }
    +
    772
    +
    773 template <class CT>
    +
    774 template <class S, layout_type L>
    +
    775 inline auto xscalar<CT>::rend(const S& shape) const noexcept -> const_reverse_broadcast_iterator<S, L>
    +
    776 {
    +
    777 return iterable_base::template rend<S, L>(shape);
    +
    778 }
    +
    779
    +
    780 template <class CT>
    +
    781 template <class S, layout_type L>
    +
    782 inline auto xscalar<CT>::crbegin(const S& shape) const noexcept -> const_reverse_broadcast_iterator<S, L>
    +
    783 {
    +
    784 return iterable_base::template crbegin<S, L>(shape);
    +
    785 }
    +
    786
    +
    787 template <class CT>
    +
    788 template <class S, layout_type L>
    +
    789 inline auto xscalar<CT>::crend(const S& shape) const noexcept -> const_reverse_broadcast_iterator<S, L>
    +
    790 {
    +
    791 return iterable_base::template crend<S, L>(shape);
    +
    792 }
    +
    793
    +
    794 template <class CT>
    +
    795 inline auto xscalar<CT>::linear_begin() noexcept -> iterator
    +
    796 {
    +
    797 return this->template begin<XTENSOR_DEFAULT_LAYOUT>();
    +
    798 }
    +
    799
    +
    800 template <class CT>
    +
    801 inline auto xscalar<CT>::linear_end() noexcept -> iterator
    +
    802 {
    +
    803 return this->template end<XTENSOR_DEFAULT_LAYOUT>();
    +
    804 }
    +
    805
    +
    806 template <class CT>
    +
    807 inline auto xscalar<CT>::linear_begin() const noexcept -> const_iterator
    +
    808 {
    +
    809 return this->template begin<XTENSOR_DEFAULT_LAYOUT>();
    +
    810 }
    +
    811
    +
    812 template <class CT>
    +
    813 inline auto xscalar<CT>::linear_end() const noexcept -> const_iterator
    +
    814 {
    +
    815 return this->template end<XTENSOR_DEFAULT_LAYOUT>();
    +
    816 }
    +
    817
    +
    818 template <class CT>
    +
    819 inline auto xscalar<CT>::linear_cbegin() const noexcept -> const_iterator
    +
    820 {
    +
    821 return this->template cbegin<XTENSOR_DEFAULT_LAYOUT>();
    +
    822 }
    +
    823
    +
    824 template <class CT>
    +
    825 inline auto xscalar<CT>::linear_cend() const noexcept -> const_iterator
    +
    826 {
    +
    827 return this->template cend<XTENSOR_DEFAULT_LAYOUT>();
    +
    828 }
    +
    829
    +
    830 template <class CT>
    +
    831 inline auto xscalar<CT>::linear_rbegin() noexcept -> reverse_iterator
    +
    832 {
    +
    833 return this->template rbegin<XTENSOR_DEFAULT_LAYOUT>();
    +
    834 }
    +
    835
    +
    836 template <class CT>
    +
    837 inline auto xscalar<CT>::linear_rend() noexcept -> reverse_iterator
    +
    838 {
    +
    839 return this->template rend<XTENSOR_DEFAULT_LAYOUT>();
    +
    840 }
    +
    841
    +
    842 template <class CT>
    +
    843 inline auto xscalar<CT>::linear_rbegin() const noexcept -> const_reverse_iterator
    +
    844 {
    +
    845 return this->template rbegin<XTENSOR_DEFAULT_LAYOUT>();
    +
    846 }
    +
    847
    +
    848 template <class CT>
    +
    849 inline auto xscalar<CT>::linear_rend() const noexcept -> const_reverse_iterator
    +
    850 {
    +
    851 return this->template rend<XTENSOR_DEFAULT_LAYOUT>();
    +
    852 }
    +
    853
    +
    854 template <class CT>
    +
    855 inline auto xscalar<CT>::linear_crbegin() const noexcept -> const_reverse_iterator
    +
    856 {
    +
    857 return this->template crbegin<XTENSOR_DEFAULT_LAYOUT>();
    +
    858 }
    +
    859
    +
    860 template <class CT>
    +
    861 inline auto xscalar<CT>::linear_crend() const noexcept -> const_reverse_iterator
    +
    862 {
    +
    863 return this->template crend<XTENSOR_DEFAULT_LAYOUT>();
    +
    864 }
    +
    865
    +
    866 template <class CT>
    +
    867 template <class S>
    +
    868 inline auto xscalar<CT>::stepper_begin(const S&) noexcept -> stepper
    +
    869 {
    +
    870 return stepper(this, false);
    +
    871 }
    +
    872
    +
    873 template <class CT>
    +
    874 template <class S>
    +
    875 inline auto xscalar<CT>::stepper_end(const S&, layout_type) noexcept -> stepper
    +
    876 {
    +
    877 return stepper(this);
    +
    878 }
    +
    879
    +
    880 template <class CT>
    +
    881 template <class S>
    +
    882 inline auto xscalar<CT>::stepper_begin(const S&) const noexcept -> const_stepper
    +
    883 {
    +
    884 return const_stepper(this);
    +
    885 }
    +
    886
    +
    887 template <class CT>
    +
    888 template <class S>
    +
    889 inline auto xscalar<CT>::stepper_end(const S&, layout_type) const noexcept -> const_stepper
    +
    890 {
    +
    891 return const_stepper(this);
    +
    892 }
    +
    893
    +
    894 template <class CT>
    +
    895 inline auto xscalar<CT>::dummy_begin() noexcept -> dummy_iterator
    +
    896 {
    +
    897 return dummy_iterator(this);
    +
    898 }
    +
    899
    +
    900 template <class CT>
    +
    901 inline auto xscalar<CT>::dummy_end() noexcept -> dummy_iterator
    +
    902 {
    +
    903 return dummy_iterator(this);
    +
    904 }
    +
    905
    +
    906 template <class CT>
    +
    907 inline auto xscalar<CT>::dummy_begin() const noexcept -> const_dummy_iterator
    +
    908 {
    +
    909 return const_dummy_iterator(this);
    +
    910 }
    +
    911
    +
    912 template <class CT>
    +
    913 inline auto xscalar<CT>::dummy_end() const noexcept -> const_dummy_iterator
    +
    914 {
    +
    915 return const_dummy_iterator(this);
    +
    916 }
    +
    917
    +
    918 template <class CT>
    +
    919 inline auto xscalar<CT>::data_element(size_type) noexcept -> reference
    +
    920 {
    +
    921 return m_value;
    +
    922 }
    +
    923
    +
    924 template <class CT>
    +
    925 inline auto xscalar<CT>::data_element(size_type) const noexcept -> const_reference
    +
    926 {
    +
    927 return m_value;
    +
    928 }
    +
    929
    +
    930 template <class CT>
    +
    931 inline auto xscalar<CT>::flat(size_type) noexcept -> reference
    +
    932 {
    +
    933 return m_value;
    +
    934 }
    +
    935
    +
    936 template <class CT>
    +
    937 inline auto xscalar<CT>::flat(size_type) const noexcept -> const_reference
    +
    938 {
    +
    939 return m_value;
    +
    940 }
    +
    941
    +
    942 template <class CT>
    +
    943 template <class align, class simd>
    +
    944 inline void xscalar<CT>::store_simd(size_type, const simd& e)
    +
    945 {
    +
    946 m_value = static_cast<value_type>(e[0]);
    +
    947 }
    +
    948
    +
    949 template <class CT>
    +
    950 template <class align, class requested_type, std::size_t N>
    +
    951 inline auto xscalar<CT>::load_simd(size_type) const
    +
    952 -> xt_simd::simd_return_type<value_type, requested_type>
    +
    953 {
    +
    954 return xt_simd::broadcast_as<requested_type>(m_value);
    +
    955 }
    +
    956
    +
    957 template <class T>
    +
    958 inline xscalar<T&> xref(T& t)
    +
    959 {
    +
    960 return xscalar<T&>(t);
    +
    961 }
    +
    962
    +
    963 template <class T>
    +
    964 inline xscalar<const T&> xcref(T& t)
    +
    965 {
    +
    966 return xscalar<const T&>(t);
    +
    967 }
    +
    968
    +
    969 /**********************************
    +
    970 * xscalar_stepper implementation *
    +
    971 **********************************/
    +
    972
    +
    973 template <bool is_const, class CT>
    +
    974 inline xscalar_stepper<is_const, CT>::xscalar_stepper(storage_type* c) noexcept
    +
    975 : p_c(c)
    +
    976 {
    +
    977 }
    +
    978
    +
    979 template <bool is_const, class CT>
    +
    980 inline auto xscalar_stepper<is_const, CT>::operator*() const noexcept -> reference
    +
    981 {
    +
    982 return p_c->operator()();
    +
    983 }
    +
    984
    +
    985 template <bool is_const, class CT>
    +
    986 inline void xscalar_stepper<is_const, CT>::step(size_type /*dim*/, size_type /*n*/) noexcept
    +
    987 {
    +
    988 }
    +
    989
    +
    990 template <bool is_const, class CT>
    +
    991 inline void xscalar_stepper<is_const, CT>::step_back(size_type /*dim*/, size_type /*n*/) noexcept
    +
    992 {
    +
    993 }
    +
    994
    +
    995 template <bool is_const, class CT>
    +
    996 inline void xscalar_stepper<is_const, CT>::reset(size_type /*dim*/) noexcept
    +
    997 {
    +
    998 }
    +
    999
    +
    1000 template <bool is_const, class CT>
    +
    1001 inline void xscalar_stepper<is_const, CT>::reset_back(size_type /*dim*/) noexcept
    +
    1002 {
    +
    1003 }
    +
    1004
    +
    1005 template <bool is_const, class CT>
    +
    1006 inline void xscalar_stepper<is_const, CT>::to_begin() noexcept
    +
    1007 {
    +
    1008 }
    +
    1009
    +
    1010 template <bool is_const, class CT>
    +
    1011 inline void xscalar_stepper<is_const, CT>::to_end(layout_type /*l*/) noexcept
    +
    1012 {
    +
    1013 }
    +
    1014
    +
    1015 template <bool is_const, class CT>
    +
    1016 template <class T>
    +
    1017 inline auto xscalar_stepper<is_const, CT>::step_simd() -> simd_return_type<T>
    +
    1018 {
    +
    1019 return simd_return_type<T>(p_c->operator()());
    +
    1020 }
    +
    1021
    +
    1022 template <bool is_const, class CT>
    +
    1023 inline void xscalar_stepper<is_const, CT>::step_leading()
    +
    1024 {
    +
    1025 }
    +
    1026
    +
    1027 /**********************************
    +
    1028 * xdummy_iterator implementation *
    +
    1029 **********************************/
    +
    1030
    +
    1031 template <bool is_const, class CT>
    +
    1032 inline xdummy_iterator<is_const, CT>::xdummy_iterator(storage_type* c) noexcept
    +
    1033 : p_c(c)
    +
    1034 {
    +
    1035 }
    +
    1036
    +
    1037 template <bool is_const, class CT>
    +
    1038 inline auto xdummy_iterator<is_const, CT>::operator++() noexcept -> self_type&
    +
    1039 {
    +
    1040 return *this;
    +
    1041 }
    +
    1042
    +
    1043 template <bool is_const, class CT>
    +
    1044 inline auto xdummy_iterator<is_const, CT>::operator--() noexcept -> self_type&
    +
    1045 {
    +
    1046 return *this;
    +
    1047 }
    +
    1048
    +
    1049 template <bool is_const, class CT>
    +
    1050 inline auto xdummy_iterator<is_const, CT>::operator+=(difference_type) noexcept -> self_type&
    +
    1051 {
    +
    1052 return *this;
    +
    1053 }
    +
    1054
    +
    1055 template <bool is_const, class CT>
    +
    1056 inline auto xdummy_iterator<is_const, CT>::operator-=(difference_type) noexcept -> self_type&
    +
    1057 {
    +
    1058 return *this;
    +
    1059 }
    +
    1060
    +
    1061 template <bool is_const, class CT>
    +
    1062 inline auto xdummy_iterator<is_const, CT>::operator-(const self_type&) const noexcept -> difference_type
    +
    1063 {
    +
    1064 return 0;
    +
    1065 }
    +
    1066
    +
    1067 template <bool is_const, class CT>
    +
    1068 inline auto xdummy_iterator<is_const, CT>::operator*() const noexcept -> reference
    +
    1069 {
    +
    1070 return p_c->operator()();
    +
    1071 }
    +
    1072
    +
    1073 template <bool is_const, class CT>
    +
    1074 inline bool xdummy_iterator<is_const, CT>::equal(const self_type& rhs) const noexcept
    +
    1075 {
    +
    1076 return p_c == rhs.p_c;
    +
    1077 }
    +
    1078
    +
    1079 template <bool is_const, class CT>
    +
    1080 inline bool xdummy_iterator<is_const, CT>::less_than(const self_type& rhs) const noexcept
    +
    1081 {
    +
    1082 return p_c < rhs.p_c;
    +
    1083 }
    +
    1084
    +
    1085 template <bool is_const, class CT>
    +
    1086 inline bool
    +
    1087 operator==(const xdummy_iterator<is_const, CT>& lhs, const xdummy_iterator<is_const, CT>& rhs) noexcept
    +
    1088 {
    +
    1089 return lhs.equal(rhs);
    +
    1090 }
    +
    1091
    +
    1092 template <bool is_const, class CT>
    +
    1093 inline bool
    +
    1094 operator<(const xdummy_iterator<is_const, CT>& lhs, const xdummy_iterator<is_const, CT>& rhs) noexcept
    +
    1095 {
    +
    1096 return lhs.less_than(rhs);
    +
    1097 }
    +
    1098}
    +
    1099
    +
    1100#endif
    + + +
    Base class for implementation of common expression constant access methods.
    +
    size_type dimension() const noexcept
    +
    bool in_bounds(Args... args) const
    +
    size_type shape(size_type index) const
    +
    Base class for multidimensional iterable constant expressions.
    Definition xiterable.hpp:37
    + +
    Base class for multidimensional iterable expressions.
    + + + +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + + +
    +
    + + + + diff --git a/xsemantic_8hpp_source.html b/xsemantic_8hpp_source.html new file mode 100644 index 000000000..53d788ed9 --- /dev/null +++ b/xsemantic_8hpp_source.html @@ -0,0 +1,805 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xsemantic.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xsemantic.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_SEMANTIC_HPP
    +
    11#define XTENSOR_SEMANTIC_HPP
    +
    12
    +
    13#include <functional>
    +
    14#include <utility>
    +
    15
    +
    16#include "../core/xassign.hpp"
    +
    17#include "../core/xexpression_traits.hpp"
    +
    18
    +
    19namespace xt
    +
    20{
    +
    21 namespace detail
    +
    22 {
    +
    23 template <class D>
    +
    24 struct is_sharable
    +
    25 {
    +
    26 static constexpr bool value = true;
    +
    27 };
    +
    28
    +
    29 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    30 struct is_sharable<xfixed_container<ET, S, L, SH, Tag>>
    +
    31 {
    +
    32 static constexpr bool value = SH;
    +
    33 };
    +
    34
    +
    35 template <class ET, class S, layout_type L, bool SH, class Tag>
    +
    36 struct is_sharable<xfixed_adaptor<ET, S, L, SH, Tag>>
    +
    37 {
    +
    38 static constexpr bool value = SH;
    +
    39 };
    +
    40 }
    +
    41
    +
    42 template <class D>
    +
    43 using select_expression_base_t = std::
    +
    44 conditional_t<detail::is_sharable<D>::value, xsharable_expression<D>, xexpression<D>>;
    +
    45
    +
    56 template <class D>
    +
    +
    57 class xsemantic_base : public select_expression_base_t<D>
    +
    58 {
    +
    59 public:
    +
    60
    +
    61 using base_type = select_expression_base_t<D>;
    +
    62 using derived_type = typename base_type::derived_type;
    +
    63
    +
    64 using temporary_type = typename xcontainer_inner_types<D>::temporary_type;
    +
    65
    +
    66 template <class E>
    +
    67 disable_xexpression<E, derived_type&> operator+=(const E&);
    +
    68
    +
    69 template <class E>
    +
    70 disable_xexpression<E, derived_type&> operator-=(const E&);
    +
    71
    +
    72 template <class E>
    +
    73 disable_xexpression<E, derived_type&> operator*=(const E&);
    +
    74
    +
    75 template <class E>
    +
    76 disable_xexpression<E, derived_type&> operator/=(const E&);
    +
    77
    +
    78 template <class E>
    +
    79 disable_xexpression<E, derived_type&> operator%=(const E&);
    +
    80
    +
    81 template <class E>
    +
    82 disable_xexpression<E, derived_type&> operator&=(const E&);
    +
    83
    +
    84 template <class E>
    +
    85 disable_xexpression<E, derived_type&> operator|=(const E&);
    +
    86
    +
    87 template <class E>
    +
    88 disable_xexpression<E, derived_type&> operator^=(const E&);
    +
    89
    +
    90 template <class E>
    +
    91 derived_type& operator+=(const xexpression<E>&);
    +
    92
    +
    93 template <class E>
    +
    94 derived_type& operator-=(const xexpression<E>&);
    +
    95
    +
    96 template <class E>
    +
    97 derived_type& operator*=(const xexpression<E>&);
    +
    98
    +
    99 template <class E>
    +
    100 derived_type& operator/=(const xexpression<E>&);
    +
    101
    +
    102 template <class E>
    +
    103 derived_type& operator%=(const xexpression<E>&);
    +
    104
    +
    105 template <class E>
    +
    106 derived_type& operator&=(const xexpression<E>&);
    +
    107
    +
    108 template <class E>
    +
    109 derived_type& operator|=(const xexpression<E>&);
    +
    110
    +
    111 template <class E>
    +
    112 derived_type& operator^=(const xexpression<E>&);
    +
    113
    +
    114 template <class E>
    +
    115 derived_type& assign(const xexpression<E>&);
    +
    116
    +
    117 template <class E>
    +
    118 derived_type& plus_assign(const xexpression<E>&);
    +
    119
    +
    120 template <class E>
    +
    121 derived_type& minus_assign(const xexpression<E>&);
    +
    122
    +
    123 template <class E>
    +
    124 derived_type& multiplies_assign(const xexpression<E>&);
    +
    125
    +
    126 template <class E>
    +
    127 derived_type& divides_assign(const xexpression<E>&);
    +
    128
    +
    129 template <class E>
    +
    130 derived_type& modulus_assign(const xexpression<E>&);
    +
    131
    +
    132 template <class E>
    +
    133 derived_type& bit_and_assign(const xexpression<E>&);
    +
    134
    +
    135 template <class E>
    +
    136 derived_type& bit_or_assign(const xexpression<E>&);
    +
    137
    +
    138 template <class E>
    +
    139 derived_type& bit_xor_assign(const xexpression<E>&);
    +
    140
    +
    141 protected:
    +
    142
    +
    143 xsemantic_base() = default;
    +
    144 ~xsemantic_base() = default;
    +
    145
    +
    146 xsemantic_base(const xsemantic_base&) = default;
    +
    147 xsemantic_base& operator=(const xsemantic_base&) = default;
    +
    148
    +
    149 xsemantic_base(xsemantic_base&&) = default;
    +
    150 xsemantic_base& operator=(xsemantic_base&&) = default;
    +
    151
    +
    152 template <class E>
    +
    153 derived_type& operator=(const xexpression<E>&);
    +
    154 };
    +
    +
    155
    +
    156 template <class E>
    +
    157 using is_assignable = is_crtp_base_of<xsemantic_base, E>;
    +
    158
    +
    159 template <class E, class R = void>
    +
    160 using enable_assignable = typename std::enable_if<is_assignable<E>::value, R>::type;
    +
    161
    +
    162 template <class E, class R = void>
    +
    163 using disable_assignable = typename std::enable_if<!is_assignable<E>::value, R>::type;
    +
    164
    +
    176 template <class D>
    +
    +
    177 class xcontainer_semantic : public xsemantic_base<D>
    +
    178 {
    +
    179 public:
    +
    180
    +
    181 using base_type = xsemantic_base<D>;
    +
    182 using derived_type = D;
    +
    183 using temporary_type = typename base_type::temporary_type;
    +
    184
    +
    185 derived_type& assign_temporary(temporary_type&&);
    +
    186
    +
    187 template <class E>
    +
    188 derived_type& assign_xexpression(const xexpression<E>& e);
    +
    189
    +
    190 template <class E>
    +
    191 derived_type& computed_assign(const xexpression<E>& e);
    +
    192
    +
    193 template <class E, class F>
    +
    194 derived_type& scalar_computed_assign(const E& e, F&& f);
    +
    195
    +
    196 protected:
    +
    197
    +
    198 xcontainer_semantic() = default;
    +
    199 ~xcontainer_semantic() = default;
    +
    200
    +
    201 xcontainer_semantic(const xcontainer_semantic&) = default;
    +
    202 xcontainer_semantic& operator=(const xcontainer_semantic&) = default;
    +
    203
    +
    204 xcontainer_semantic(xcontainer_semantic&&) = default;
    +
    205 xcontainer_semantic& operator=(xcontainer_semantic&&) = default;
    +
    206
    +
    207 template <class E>
    +
    208 derived_type& operator=(const xexpression<E>&);
    +
    209 };
    +
    +
    210
    +
    211 template <class E>
    +
    212 using has_container_semantics = is_crtp_base_of<xcontainer_semantic, E>;
    +
    213
    +
    214 template <class E, class R = void>
    +
    215 using enable_xcontainer_semantics = typename std::enable_if<has_container_semantics<E>::value, R>::type;
    +
    216
    +
    217 template <class E, class R = void>
    +
    218 using disable_xcontainer_semantics = typename std::enable_if<!has_container_semantics<E>::value, R>::type;
    +
    219
    +
    220
    +
    221 template <class D>
    +
    222 class xview_semantic;
    +
    223
    +
    224 template <class E>
    +
    + +
    226 E,
    +
    227 std::enable_if_t<!has_memory_address<E>::value && is_crtp_base_of<xview_semantic, E>::value>>
    +
    228 {
    +
    229 static bool check_overlap(const E& expr, const memory_range& dst_range)
    +
    230 {
    +
    231 if (expr.size() == 0)
    +
    232 {
    +
    233 return false;
    +
    234 }
    +
    235 else
    +
    236 {
    +
    237 using ChildE = std::decay_t<decltype(expr.expression())>;
    +
    238 return overlapping_memory_checker_traits<ChildE>::check_overlap(expr.expression(), dst_range);
    +
    239 }
    +
    240 }
    +
    241 };
    +
    +
    242
    +
    253 template <class D>
    +
    +
    254 class xview_semantic : public xsemantic_base<D>
    +
    255 {
    +
    256 public:
    +
    257
    +
    258 using base_type = xsemantic_base<D>;
    +
    259 using derived_type = D;
    +
    260 using temporary_type = typename base_type::temporary_type;
    +
    261
    +
    262 derived_type& assign_temporary(temporary_type&&);
    +
    263
    +
    264 template <class E>
    +
    265 derived_type& assign_xexpression(const xexpression<E>& e);
    +
    266
    +
    267 template <class E>
    +
    268 derived_type& computed_assign(const xexpression<E>& e);
    +
    269
    +
    270 template <class E, class F>
    +
    271 derived_type& scalar_computed_assign(const E& e, F&& f);
    +
    272
    +
    273 protected:
    +
    274
    +
    275 xview_semantic() = default;
    +
    276 ~xview_semantic() = default;
    +
    277
    +
    278 xview_semantic(const xview_semantic&) = default;
    +
    279 xview_semantic& operator=(const xview_semantic&) = default;
    +
    280
    +
    281 xview_semantic(xview_semantic&&) = default;
    +
    282 xview_semantic& operator=(xview_semantic&&) = default;
    +
    283
    +
    284 template <class E>
    +
    285 derived_type& operator=(const xexpression<E>&);
    +
    286 };
    +
    +
    287
    +
    288 template <class E>
    +
    289 using has_view_semantics = is_crtp_base_of<xview_semantic, E>;
    +
    290
    +
    291 template <class E, class R = void>
    +
    292 using enable_xview_semantics = typename std::enable_if<has_view_semantics<E>::value, R>::type;
    +
    293
    +
    294 template <class E, class R = void>
    +
    295 using disable_xview_semantics = typename std::enable_if<!has_view_semantics<E>::value, R>::type;
    +
    296
    +
    297 /*********************************
    +
    298 * xsemantic_base implementation *
    +
    299 *********************************/
    +
    300
    +
    305
    +
    310 template <class D>
    +
    311 template <class E>
    +
    +
    312 inline auto xsemantic_base<D>::operator+=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    313 {
    +
    314 return this->derived_cast().scalar_computed_assign(e, std::plus<>());
    +
    315 }
    +
    +
    316
    +
    322 template <class D>
    +
    323 template <class E>
    +
    +
    324 inline auto xsemantic_base<D>::operator-=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    325 {
    +
    326 return this->derived_cast().scalar_computed_assign(e, std::minus<>());
    +
    327 }
    +
    +
    328
    +
    334 template <class D>
    +
    335 template <class E>
    +
    +
    336 inline auto xsemantic_base<D>::operator*=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    337 {
    +
    338 return this->derived_cast().scalar_computed_assign(e, std::multiplies<>());
    +
    339 }
    +
    +
    340
    +
    346 template <class D>
    +
    347 template <class E>
    +
    +
    348 inline auto xsemantic_base<D>::operator/=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    349 {
    +
    350 return this->derived_cast().scalar_computed_assign(e, std::divides<>());
    +
    351 }
    +
    +
    352
    +
    358 template <class D>
    +
    359 template <class E>
    +
    +
    360 inline auto xsemantic_base<D>::operator%=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    361 {
    +
    362 return this->derived_cast().scalar_computed_assign(e, std::modulus<>());
    +
    363 }
    +
    +
    364
    +
    370 template <class D>
    +
    371 template <class E>
    +
    +
    372 inline auto xsemantic_base<D>::operator&=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    373 {
    +
    374 return this->derived_cast().scalar_computed_assign(e, std::bit_and<>());
    +
    375 }
    +
    +
    376
    +
    382 template <class D>
    +
    383 template <class E>
    +
    +
    384 inline auto xsemantic_base<D>::operator|=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    385 {
    +
    386 return this->derived_cast().scalar_computed_assign(e, std::bit_or<>());
    +
    387 }
    +
    +
    388
    +
    394 template <class D>
    +
    395 template <class E>
    +
    +
    396 inline auto xsemantic_base<D>::operator^=(const E& e) -> disable_xexpression<E, derived_type&>
    +
    397 {
    +
    398 return this->derived_cast().scalar_computed_assign(e, std::bit_xor<>());
    +
    399 }
    +
    +
    400
    +
    406 template <class D>
    +
    407 template <class E>
    +
    +
    408 inline auto xsemantic_base<D>::operator+=(const xexpression<E>& e) -> derived_type&
    +
    409 {
    +
    410 return this->derived_cast() = this->derived_cast() + e.derived_cast();
    +
    411 }
    +
    +
    412
    +
    418 template <class D>
    +
    419 template <class E>
    +
    +
    420 inline auto xsemantic_base<D>::operator-=(const xexpression<E>& e) -> derived_type&
    +
    421 {
    +
    422 return this->derived_cast() = this->derived_cast() - e.derived_cast();
    +
    423 }
    +
    +
    424
    +
    430 template <class D>
    +
    431 template <class E>
    +
    +
    432 inline auto xsemantic_base<D>::operator*=(const xexpression<E>& e) -> derived_type&
    +
    433 {
    +
    434 return this->derived_cast() = this->derived_cast() * e.derived_cast();
    +
    435 }
    +
    +
    436
    +
    442 template <class D>
    +
    443 template <class E>
    +
    +
    444 inline auto xsemantic_base<D>::operator/=(const xexpression<E>& e) -> derived_type&
    +
    445 {
    +
    446 return this->derived_cast() = this->derived_cast() / e.derived_cast();
    +
    447 }
    +
    +
    448
    +
    454 template <class D>
    +
    455 template <class E>
    +
    +
    456 inline auto xsemantic_base<D>::operator%=(const xexpression<E>& e) -> derived_type&
    +
    457 {
    +
    458 return this->derived_cast() = this->derived_cast() % e.derived_cast();
    +
    459 }
    +
    +
    460
    +
    466 template <class D>
    +
    467 template <class E>
    +
    +
    468 inline auto xsemantic_base<D>::operator&=(const xexpression<E>& e) -> derived_type&
    +
    469 {
    +
    470 return this->derived_cast() = this->derived_cast() & e.derived_cast();
    +
    471 }
    +
    +
    472
    +
    478 template <class D>
    +
    479 template <class E>
    +
    +
    480 inline auto xsemantic_base<D>::operator|=(const xexpression<E>& e) -> derived_type&
    +
    481 {
    +
    482 return this->derived_cast() = this->derived_cast() | e.derived_cast();
    +
    483 }
    +
    +
    484
    +
    490 template <class D>
    +
    491 template <class E>
    +
    +
    492 inline auto xsemantic_base<D>::operator^=(const xexpression<E>& e) -> derived_type&
    +
    493 {
    +
    494 return this->derived_cast() = this->derived_cast() ^ e.derived_cast();
    +
    495 }
    +
    +
    496
    +
    498
    +
    502
    +
    509 template <class D>
    +
    510 template <class E>
    +
    +
    511 inline auto xsemantic_base<D>::assign(const xexpression<E>& e) -> derived_type&
    +
    512 {
    +
    513 return this->derived_cast().assign_xexpression(e);
    +
    514 }
    +
    +
    515
    +
    522 template <class D>
    +
    523 template <class E>
    +
    +
    524 inline auto xsemantic_base<D>::plus_assign(const xexpression<E>& e) -> derived_type&
    +
    525 {
    +
    526 return this->derived_cast().computed_assign(this->derived_cast() + e.derived_cast());
    +
    527 }
    +
    +
    528
    +
    535 template <class D>
    +
    536 template <class E>
    +
    +
    537 inline auto xsemantic_base<D>::minus_assign(const xexpression<E>& e) -> derived_type&
    +
    538 {
    +
    539 return this->derived_cast().computed_assign(this->derived_cast() - e.derived_cast());
    +
    540 }
    +
    +
    541
    +
    548 template <class D>
    +
    549 template <class E>
    +
    +
    550 inline auto xsemantic_base<D>::multiplies_assign(const xexpression<E>& e) -> derived_type&
    +
    551 {
    +
    552 return this->derived_cast().computed_assign(this->derived_cast() * e.derived_cast());
    +
    553 }
    +
    +
    554
    +
    561 template <class D>
    +
    562 template <class E>
    +
    +
    563 inline auto xsemantic_base<D>::divides_assign(const xexpression<E>& e) -> derived_type&
    +
    564 {
    +
    565 return this->derived_cast().computed_assign(this->derived_cast() / e.derived_cast());
    +
    566 }
    +
    +
    567
    +
    574 template <class D>
    +
    575 template <class E>
    +
    +
    576 inline auto xsemantic_base<D>::modulus_assign(const xexpression<E>& e) -> derived_type&
    +
    577 {
    +
    578 return this->derived_cast().computed_assign(this->derived_cast() % e.derived_cast());
    +
    579 }
    +
    +
    580
    +
    587 template <class D>
    +
    588 template <class E>
    +
    +
    589 inline auto xsemantic_base<D>::bit_and_assign(const xexpression<E>& e) -> derived_type&
    +
    590 {
    +
    591 return this->derived_cast().computed_assign(this->derived_cast() & e.derived_cast());
    +
    592 }
    +
    +
    593
    +
    600 template <class D>
    +
    601 template <class E>
    +
    +
    602 inline auto xsemantic_base<D>::bit_or_assign(const xexpression<E>& e) -> derived_type&
    +
    603 {
    +
    604 return this->derived_cast().computed_assign(this->derived_cast() | e.derived_cast());
    +
    605 }
    +
    +
    606
    +
    613 template <class D>
    +
    614 template <class E>
    +
    +
    615 inline auto xsemantic_base<D>::bit_xor_assign(const xexpression<E>& e) -> derived_type&
    +
    616 {
    +
    617 return this->derived_cast().computed_assign(this->derived_cast() ^ e.derived_cast());
    +
    618 }
    +
    +
    619
    +
    620 template <class D>
    +
    621 template <class E>
    +
    622 inline auto xsemantic_base<D>::operator=(const xexpression<E>& e) -> derived_type&
    +
    623 {
    +
    624#ifdef XTENSOR_FORCE_TEMPORARY_MEMORY_IN_ASSIGNMENTS
    +
    625 temporary_type tmp(e);
    +
    626 return this->derived_cast().assign_temporary(std::move(tmp));
    +
    627#else
    +
    628 auto&& this_derived = this->derived_cast();
    +
    629 auto memory_checker = make_overlapping_memory_checker(this_derived);
    +
    630 if (memory_checker.check_overlap(e.derived_cast()))
    +
    631 {
    +
    632 temporary_type tmp(e);
    +
    633 return this_derived.assign_temporary(std::move(tmp));
    +
    634 }
    +
    635 else
    +
    636 {
    +
    637 return this->assign(e);
    +
    638 }
    +
    639#endif
    +
    640 }
    +
    641
    +
    642 /**************************************
    +
    643 * xcontainer_semantic implementation *
    +
    644 **************************************/
    +
    645
    +
    651 template <class D>
    +
    +
    652 inline auto xcontainer_semantic<D>::assign_temporary(temporary_type&& tmp) -> derived_type&
    +
    653 {
    +
    654 return (this->derived_cast() = std::move(tmp));
    +
    655 }
    +
    +
    656
    +
    657 template <class D>
    +
    658 template <class E>
    +
    659 inline auto xcontainer_semantic<D>::assign_xexpression(const xexpression<E>& e) -> derived_type&
    +
    660 {
    +
    661 xt::assign_xexpression(*this, e);
    +
    662 return this->derived_cast();
    +
    663 }
    +
    664
    +
    665 template <class D>
    +
    666 template <class E>
    +
    667 inline auto xcontainer_semantic<D>::computed_assign(const xexpression<E>& e) -> derived_type&
    +
    668 {
    +
    669 xt::computed_assign(*this, e);
    +
    670 return this->derived_cast();
    +
    671 }
    +
    672
    +
    673 template <class D>
    +
    674 template <class E, class F>
    +
    675 inline auto xcontainer_semantic<D>::scalar_computed_assign(const E& e, F&& f) -> derived_type&
    +
    676 {
    +
    677 xt::scalar_computed_assign(*this, e, std::forward<F>(f));
    +
    678 return this->derived_cast();
    +
    679 }
    +
    680
    +
    681 template <class D>
    +
    682 template <class E>
    +
    683 inline auto xcontainer_semantic<D>::operator=(const xexpression<E>& e) -> derived_type&
    +
    684 {
    +
    685 return base_type::operator=(e);
    +
    686 }
    +
    687
    +
    688 /*********************************
    +
    689 * xview_semantic implementation *
    +
    690 *********************************/
    +
    691
    +
    697 template <class D>
    +
    +
    698 inline auto xview_semantic<D>::assign_temporary(temporary_type&& tmp) -> derived_type&
    +
    699 {
    +
    700 this->derived_cast().assign_temporary_impl(std::move(tmp));
    +
    701 return this->derived_cast();
    +
    702 }
    +
    +
    703
    +
    704 namespace detail
    +
    705 {
    +
    706 template <class F>
    +
    707 bool get_rhs_triviality(const F&)
    +
    708 {
    +
    709 return true;
    +
    710 }
    +
    711
    +
    712 template <class F, class R, class... CT>
    +
    713 bool get_rhs_triviality(const xfunction<F, R, CT...>& rhs)
    +
    714 {
    +
    715 using index_type = xindex_type_t<typename xfunction<F, R, CT...>::shape_type>;
    +
    716 using size_type = typename index_type::size_type;
    +
    717 size_type size = rhs.dimension();
    +
    718 index_type shape = uninitialized_shape<index_type>(size);
    +
    719 bool trivial_broadcast = rhs.broadcast_shape(shape, true);
    +
    720 return trivial_broadcast;
    +
    721 }
    +
    722 }
    +
    723
    +
    724 template <class D>
    +
    725 template <class E>
    +
    726 inline auto xview_semantic<D>::assign_xexpression(const xexpression<E>& e) -> derived_type&
    +
    727 {
    +
    728 xt::assert_compatible_shape(*this, e);
    +
    729 xt::assign_data(*this, e, detail::get_rhs_triviality(e.derived_cast()));
    +
    730 return this->derived_cast();
    +
    731 }
    +
    732
    +
    733 template <class D>
    +
    734 template <class E>
    +
    735 inline auto xview_semantic<D>::computed_assign(const xexpression<E>& e) -> derived_type&
    +
    736 {
    +
    737 xt::assert_compatible_shape(*this, e);
    +
    738 xt::assign_data(*this, e, detail::get_rhs_triviality(e.derived_cast()));
    +
    739 return this->derived_cast();
    +
    740 }
    +
    741
    +
    742 namespace xview_semantic_detail
    +
    743 {
    +
    744 template <class D>
    +
    745 auto get_begin(D&& lhs, std::true_type)
    +
    746 {
    +
    747 return lhs.linear_begin();
    +
    748 }
    +
    749
    +
    750 template <class D>
    +
    751 auto get_begin(D&& lhs, std::false_type)
    +
    752 {
    +
    753 return lhs.begin();
    +
    754 }
    +
    755 }
    +
    756
    +
    757 template <class D>
    +
    758 template <class E, class F>
    +
    759 inline auto xview_semantic<D>::scalar_computed_assign(const E& e, F&& f) -> derived_type&
    +
    760 {
    +
    761 D& d = this->derived_cast();
    +
    762
    +
    763 using size_type = typename D::size_type;
    +
    764 auto dst = xview_semantic_detail::get_begin(d, std::integral_constant<bool, D::contiguous_layout>());
    +
    765 for (size_type i = d.size(); i > 0; --i)
    +
    766 {
    +
    767 *dst = f(*dst, e);
    +
    768 ++dst;
    +
    769 }
    +
    770 return this->derived_cast();
    +
    771 }
    +
    772
    +
    773 template <class D>
    +
    774 template <class E>
    +
    775 inline auto xview_semantic<D>::operator=(const xexpression<E>& rhs) -> derived_type&
    +
    776 {
    +
    777 bool cond = (rhs.derived_cast().shape().size() == this->derived_cast().dimension())
    +
    778 && std::equal(
    +
    779 this->derived_cast().shape().begin(),
    +
    780 this->derived_cast().shape().end(),
    +
    781 rhs.derived_cast().shape().begin()
    +
    782 );
    +
    783
    +
    784 if (!cond)
    +
    785 {
    +
    786 base_type::operator=(broadcast(rhs.derived_cast(), this->derived_cast().shape()));
    +
    787 }
    +
    788 else
    +
    789 {
    +
    790 base_type::operator=(rhs);
    +
    791 }
    +
    792 return this->derived_cast();
    +
    793 }
    +
    794}
    +
    795
    +
    796#endif
    +
    derived_type & assign_temporary(temporary_type &&)
    Assigns the temporary tmp to *this.
    +
    Base class for xexpressions.
    + +
    Implementation of the xsemantic_base interface for multidimensional views.
    +
    derived_type & assign_temporary(temporary_type &&)
    Assigns the temporary tmp to *this.
    +
    standard mathematical functions for xexpressions
    +
    auto broadcast(E &&e, const S &s)
    Returns an xexpression broadcasting the given expression to a specified shape.
    + + + + +
    +
    + + + + diff --git a/xset__operation_8hpp_source.html b/xset__operation_8hpp_source.html new file mode 100644 index 000000000..a4ffdca7e --- /dev/null +++ b/xset__operation_8hpp_source.html @@ -0,0 +1,283 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xset_operation.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xset_operation.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_XSET_OPERATION_HPP
    +
    11#define XTENSOR_XSET_OPERATION_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <type_traits>
    +
    15
    +
    16#include <xtl/xsequence.hpp>
    +
    17
    +
    18#include "../containers/xscalar.hpp"
    +
    19#include "../core/xfunction.hpp"
    +
    20#include "../core/xmath.hpp"
    +
    21#include "../core/xstrides.hpp"
    +
    22#include "../utils/xutils.hpp"
    +
    23#include "../views/xstrided_view.hpp"
    +
    24
    +
    25namespace xt
    +
    26{
    +
    31
    +
    32
    +
    33 namespace detail
    +
    34 {
    +
    35
    +
    36 template <bool lvalue>
    +
    37 struct lambda_isin
    +
    38 {
    +
    39 template <class E>
    +
    40 static auto make(E&& e)
    +
    41 {
    +
    42 return [&e](const auto& t)
    +
    43 {
    +
    44 return std::find(e.begin(), e.end(), t) != e.end();
    +
    45 };
    +
    46 }
    +
    47 };
    +
    48
    +
    49 template <>
    +
    50 struct lambda_isin<false>
    +
    51 {
    +
    52 template <class E>
    +
    53 static auto make(E&& e)
    +
    54 {
    +
    55 return [e](const auto& t)
    +
    56 {
    +
    57 return std::find(e.begin(), e.end(), t) != e.end();
    +
    58 };
    +
    59 }
    +
    60 };
    +
    61
    +
    62 }
    +
    63
    +
    74 template <class E, class T>
    +
    +
    75 inline auto isin(E&& element, std::initializer_list<T> test_elements) noexcept
    +
    76 {
    +
    77 auto lambda = [test_elements](const auto& t)
    +
    78 {
    +
    79 return std::find(test_elements.begin(), test_elements.end(), t) != test_elements.end();
    +
    80 };
    +
    81 return make_lambda_xfunction(std::move(lambda), std::forward<E>(element));
    +
    82 }
    +
    +
    83
    +
    94 template <class E, class F>
    +
    +
    95 inline auto isin(E&& element, F&& test_elements) noexcept
    + +
    97 {
    +
    98 auto lambda = detail::lambda_isin<std::is_lvalue_reference<F>::value>::make(std::forward<F>(test_elements
    +
    99 ));
    +
    100 return make_lambda_xfunction(std::move(lambda), std::forward<E>(element));
    +
    101 }
    +
    +
    102
    +
    114 template <class E, iterator_concept I>
    +
    +
    115 inline auto isin(E&& element, I&& test_elements_begin, I&& test_elements_end) noexcept
    +
    116 {
    +
    117 auto lambda = [&test_elements_begin, &test_elements_end](const auto& t)
    +
    118 {
    +
    119 return std::find(test_elements_begin, test_elements_end, t) != test_elements_end;
    +
    120 };
    +
    121 return make_lambda_xfunction(std::move(lambda), std::forward<E>(element));
    +
    122 }
    +
    +
    123
    +
    134 template <class E, class T>
    +
    +
    135 inline auto in1d(E&& element, std::initializer_list<T> test_elements) noexcept
    +
    136 {
    +
    137 XTENSOR_ASSERT(element.dimension() == 1ul);
    +
    138 return isin(std::forward<E>(element), std::forward<std::initializer_list<T>>(test_elements));
    +
    139 }
    +
    +
    140
    +
    151 template <class E, class F>
    +
    +
    152 inline auto in1d(E&& element, F&& test_elements) noexcept
    + +
    154 {
    +
    155 XTENSOR_ASSERT(element.dimension() == 1ul);
    +
    156 XTENSOR_ASSERT(test_elements.dimension() == 1ul);
    +
    157 return isin(std::forward<E>(element), std::forward<F>(test_elements));
    +
    158 }
    +
    +
    159
    +
    171 template <class E, iterator_concept I>
    +
    +
    172 inline auto in1d(E&& element, I&& test_elements_begin, I&& test_elements_end) noexcept
    +
    173 {
    +
    174 XTENSOR_ASSERT(element.dimension() == 1ul);
    +
    175 return isin(
    +
    176 std::forward<E>(element),
    +
    177 std::forward<I>(test_elements_begin),
    +
    178 std::forward<I>(test_elements_end)
    +
    179 );
    +
    180 }
    +
    +
    181
    +
    191 template <class E1, class E2>
    +
    +
    192 inline auto searchsorted(E1&& a, E2&& v, bool right = true)
    +
    193 {
    +
    194 XTENSOR_ASSERT(std::is_sorted(a.cbegin(), a.cend()));
    +
    195
    +
    196 auto out = xt::empty<size_t>(v.shape());
    +
    197
    +
    198 if (right)
    +
    199 {
    +
    200 for (size_t i = 0; i < v.size(); ++i)
    +
    201 {
    +
    202 out(i) = static_cast<std::size_t>(std::lower_bound(a.cbegin(), a.cend(), v(i)) - a.cbegin());
    +
    203 }
    +
    204 }
    +
    205 else
    +
    206 {
    +
    207 for (size_t i = 0; i < v.size(); ++i)
    +
    208 {
    +
    209 out(i) = static_cast<std::size_t>(std::upper_bound(a.cbegin(), a.cend(), v(i)) - a.cbegin());
    +
    210 }
    +
    211 }
    +
    212
    +
    213
    +
    214 return out;
    +
    215 }
    +
    +
    216
    +
    217}
    +
    218
    +
    219#endif
    + +
    auto in1d(E &&element, std::initializer_list< T > test_elements) noexcept
    in1d
    +
    auto isin(E &&element, std::initializer_list< T > test_elements) noexcept
    isin
    +
    auto searchsorted(E1 &&a, E2 &&v, bool right=true)
    Find indices where elements should be inserted to maintain order.
    +
    standard mathematical functions for xexpressions
    +
    auto make_lambda_xfunction(F &&lambda, E &&... args)
    Create a xfunction from a lambda.
    Definition xmath.hpp:1085
    +
    xarray< T, L > empty(const S &shape)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of with value_type T...
    Definition xbuilder.hpp:89
    +
    +
    + + + + diff --git a/xshape_8hpp_source.html b/xshape_8hpp_source.html new file mode 100644 index 000000000..e23e33a68 --- /dev/null +++ b/xshape_8hpp_source.html @@ -0,0 +1,685 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xshape.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xshape.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_XSHAPE_HPP
    +
    11#define XTENSOR_XSHAPE_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <cstdlib>
    +
    16#include <initializer_list>
    +
    17#include <iterator>
    +
    18
    +
    19#include "../containers/xstorage.hpp"
    +
    20#include "../core/xlayout.hpp"
    +
    21#include "../core/xtensor_forward.hpp"
    +
    22
    +
    23namespace xt
    +
    24{
    +
    25 template <class T>
    +
    26 using dynamic_shape = svector<T, 4>;
    +
    27
    +
    28 template <class T, std::size_t N>
    +
    29 using static_shape = std::array<T, N>;
    +
    30
    +
    31 template <std::size_t... X>
    +
    32 class fixed_shape;
    +
    33
    +
    34 using xindex = dynamic_shape<std::size_t>;
    +
    35
    +
    36 template <class S1, class S2>
    +
    37 bool same_shape(const S1& s1, const S2& s2) noexcept;
    +
    38
    +
    39 template <class U>
    + +
    41
    +
    42 template <class R, class T>
    +
    43 constexpr R shape(T t);
    +
    44
    +
    45 template <class R = std::size_t, class T, std::size_t N>
    +
    46 xt::static_shape<R, N> shape(const T (&aList)[N]);
    +
    47
    +
    48 template <class S>
    +
    49 struct static_dimension;
    +
    50
    +
    51 template <layout_type L, class S>
    +
    52 struct select_layout;
    +
    53
    +
    54 template <class... S>
    +
    55 struct promote_shape;
    +
    56
    +
    57 template <class... S>
    +
    58 struct promote_strides;
    +
    59
    +
    60 template <class S>
    +
    61 struct index_from_shape;
    +
    62}
    +
    63
    +
    64namespace xtl
    +
    65{
    +
    66 namespace detail
    +
    67 {
    +
    68 template <class S>
    +
    69 struct sequence_builder;
    +
    70
    +
    71 template <std::size_t... I>
    +
    72 struct sequence_builder<xt::fixed_shape<I...>>
    +
    73 {
    +
    74 using sequence_type = xt::fixed_shape<I...>;
    +
    75 using value_type = typename sequence_type::value_type;
    +
    76
    +
    77 inline static sequence_type make(std::size_t /*size*/)
    +
    78 {
    +
    79 return sequence_type{};
    +
    80 }
    +
    81
    +
    82 inline static sequence_type make(std::size_t /*size*/, value_type /*v*/)
    +
    83 {
    +
    84 return sequence_type{};
    +
    85 }
    +
    86 };
    +
    87 }
    +
    88}
    +
    89
    +
    90namespace xt
    +
    91{
    +
    95
    +
    96 /**************
    +
    97 * same_shape *
    +
    98 **************/
    +
    99
    +
    108 template <class S1, class S2>
    +
    +
    109 inline bool same_shape(const S1& s1, const S2& s2) noexcept
    +
    110 {
    +
    111 return s1.size() == s2.size() && std::equal(s1.begin(), s1.end(), s2.begin());
    +
    112 }
    +
    +
    113
    +
    114 /*************
    +
    115 * has_shape *
    +
    116 *************/
    +
    117
    +
    126 template <class E, class S>
    +
    +
    127 inline bool has_shape(const E& e, std::initializer_list<S> shape) noexcept
    +
    128 {
    +
    129 return e.shape().size() == shape.size()
    +
    130 && std::equal(e.shape().cbegin(), e.shape().cend(), shape.begin());
    +
    131 }
    +
    +
    132
    +
    141 template <class E, class S, class = typename std::enable_if_t<has_iterator_interface<S>::value>>
    +
    +
    142 inline bool has_shape(const E& e, const S& shape)
    +
    143 {
    +
    144 return e.shape().size() == shape.size()
    +
    145 && std::equal(e.shape().cbegin(), e.shape().cend(), shape.begin());
    +
    146 }
    +
    +
    147
    +
    148 /*************************
    +
    149 * initializer_dimension *
    +
    150 *************************/
    +
    151
    +
    152 namespace detail
    +
    153 {
    +
    154 template <class U>
    +
    155 struct initializer_depth_impl
    +
    156 {
    +
    157 static constexpr std::size_t value = 0;
    +
    158 };
    +
    159
    +
    160 template <class T>
    +
    161 struct initializer_depth_impl<std::initializer_list<T>>
    +
    162 {
    +
    163 static constexpr std::size_t value = 1 + initializer_depth_impl<T>::value;
    +
    164 };
    +
    165 }
    +
    166
    +
    167 template <class U>
    +
    + +
    169 {
    +
    170 static constexpr std::size_t value = detail::initializer_depth_impl<U>::value;
    +
    171 };
    +
    +
    172
    +
    173 /*********************
    +
    174 * initializer_shape *
    +
    175 *********************/
    +
    176
    +
    177 namespace detail
    +
    178 {
    +
    179 template <std::size_t I>
    +
    180 struct initializer_shape_impl
    +
    181 {
    +
    182 template <class T>
    +
    183 static constexpr std::size_t value(T t)
    +
    184 {
    +
    185 return t.size() == 0 ? 0 : initializer_shape_impl<I - 1>::value(*t.begin());
    +
    186 }
    +
    187 };
    +
    188
    +
    189 template <>
    +
    190 struct initializer_shape_impl<0>
    +
    191 {
    +
    192 template <class T>
    +
    193 static constexpr std::size_t value(T t)
    +
    194 {
    +
    195 return t.size();
    +
    196 }
    +
    197 };
    +
    198
    +
    199 template <class R, class U, std::size_t... I>
    +
    200 constexpr R initializer_shape(U t, std::index_sequence<I...>)
    +
    201 {
    +
    202 using size_type = typename R::value_type;
    +
    203 return {size_type(initializer_shape_impl<I>::value(t))...};
    +
    204 }
    +
    205 }
    +
    206
    +
    207 template <class R, class T>
    +
    208 constexpr R shape(T t)
    +
    209 {
    +
    210 return detail::initializer_shape<R, decltype(t)>(
    +
    211 t,
    +
    212 std::make_index_sequence<initializer_dimension<decltype(t)>::value>()
    +
    213 );
    +
    214 }
    +
    215
    +
    217 template <class R, class T, std::size_t N>
    +
    +
    218 xt::static_shape<R, N> shape(const T (&list)[N])
    +
    219 {
    +
    220 xt::static_shape<R, N> shape;
    +
    221 std::copy(std::begin(list), std::end(list), std::begin(shape));
    +
    222 return shape;
    +
    223 }
    +
    +
    224
    +
    225 /********************
    +
    226 * static_dimension *
    +
    227 ********************/
    +
    228
    +
    229 namespace detail
    +
    230 {
    +
    231 template <class T, class E = void>
    +
    232 struct static_dimension_impl
    +
    233 {
    +
    234 static constexpr std::ptrdiff_t value = -1;
    +
    235 };
    +
    236
    +
    237 template <class T>
    +
    238 struct static_dimension_impl<T, void_t<decltype(std::tuple_size<T>::value)>>
    +
    239 {
    +
    240 static constexpr std::ptrdiff_t value = static_cast<std::ptrdiff_t>(std::tuple_size<T>::value);
    +
    241 };
    +
    242 }
    +
    243
    +
    244 template <class S>
    +
    + +
    246 {
    +
    247 static constexpr std::ptrdiff_t value = detail::static_dimension_impl<S>::value;
    +
    248 };
    +
    +
    249
    +
    259 template <layout_type L, class S>
    +
    + +
    261 {
    +
    262 static constexpr std::ptrdiff_t static_dimension = xt::static_dimension<S>::value;
    +
    263 static constexpr bool is_any = static_dimension != -1 && static_dimension <= 1
    +
    264 && L != layout_type::dynamic;
    +
    265 static constexpr layout_type value = is_any ? layout_type::any : L;
    +
    266 };
    +
    +
    267
    +
    268 /*************************************
    +
    269 * promote_shape and promote_strides *
    +
    270 *************************************/
    +
    271
    +
    272 namespace detail
    +
    273 {
    +
    274 template <class T1, class T2>
    +
    275 constexpr std::common_type_t<T1, T2> imax(const T1& a, const T2& b)
    +
    276 {
    +
    277 return a > b ? a : b;
    +
    278 }
    +
    279
    +
    280 // Variadic meta-function returning the maximal size of std::arrays.
    +
    281 template <class... T>
    +
    282 struct max_array_size;
    +
    283
    +
    284 template <>
    +
    285 struct max_array_size<>
    +
    286 {
    +
    287 static constexpr std::size_t value = 0;
    +
    288 };
    +
    289
    +
    290 template <class T, class... Ts>
    +
    291 struct max_array_size<T, Ts...>
    +
    292 : std::integral_constant<std::size_t, imax(std::tuple_size<T>::value, max_array_size<Ts...>::value)>
    +
    293 {
    +
    294 };
    +
    295
    +
    296 // Broadcasting for fixed shapes
    +
    297 template <std::size_t IDX, std::size_t... X>
    +
    298 struct at
    +
    299 {
    +
    300 static constexpr std::size_t arr[sizeof...(X)] = {X...};
    +
    301 static constexpr std::size_t value = (IDX < sizeof...(X)) ? arr[IDX] : 0;
    +
    302 };
    +
    303
    +
    304 template <class S1, class S2>
    +
    305 struct broadcast_fixed_shape;
    +
    306
    +
    307 template <class IX, class A, class B>
    +
    308 struct broadcast_fixed_shape_impl;
    +
    309
    +
    310 template <std::size_t IX, class A, class B>
    +
    311 struct broadcast_fixed_shape_cmp_impl;
    +
    312
    +
    313 template <std::size_t JX, std::size_t... I, std::size_t... J>
    +
    314 struct broadcast_fixed_shape_cmp_impl<JX, fixed_shape<I...>, fixed_shape<J...>>
    +
    315 {
    +
    316 // We line the shapes up from the last index
    +
    317 // IX may underflow, thus being a very large number
    +
    318 static constexpr std::size_t IX = JX - (sizeof...(J) - sizeof...(I));
    +
    319
    +
    320 // Out of bounds access gives value 0
    +
    321 static constexpr std::size_t I_v = at<IX, I...>::value;
    +
    322 static constexpr std::size_t J_v = at<JX, J...>::value;
    +
    323
    +
    324 // we're statically checking if the broadcast shapes are either one on either of them or equal
    +
    325 static_assert(!I_v || I_v == 1 || J_v == 1 || J_v == I_v, "broadcast shapes do not match.");
    +
    326
    +
    327 static constexpr std::size_t ordinate = (I_v > J_v) ? I_v : J_v;
    +
    328 static constexpr bool value = (I_v == J_v);
    +
    329 };
    +
    330
    +
    331 template <std::size_t... JX, std::size_t... I, std::size_t... J>
    +
    332 struct broadcast_fixed_shape_impl<std::index_sequence<JX...>, fixed_shape<I...>, fixed_shape<J...>>
    +
    333 {
    +
    334 static_assert(sizeof...(J) >= sizeof...(I), "broadcast shapes do not match.");
    +
    335
    +
    336 using type = xt::fixed_shape<
    +
    337 broadcast_fixed_shape_cmp_impl<JX, fixed_shape<I...>, fixed_shape<J...>>::ordinate...>;
    +
    338 static constexpr bool value = std::conjunction<
    +
    339 broadcast_fixed_shape_cmp_impl<JX, fixed_shape<I...>, fixed_shape<J...>>...>::value;
    +
    340 };
    +
    341
    +
    342 /* broadcast_fixed_shape<fixed_shape<I...>, fixed_shape<J...>>
    +
    343 * Just like a call to broadcast_shape(cont S1& input, S2& output),
    +
    344 * except that the result shape is alised as type, and the returned
    +
    345 * bool is the member value. Asserts on an illegal broadcast, including
    +
    346 * the case where pack I is strictly longer than pack J. */
    +
    347
    +
    348 template <std::size_t... I, std::size_t... J>
    +
    349 struct broadcast_fixed_shape<fixed_shape<I...>, fixed_shape<J...>>
    +
    350 : broadcast_fixed_shape_impl<std::make_index_sequence<sizeof...(J)>, fixed_shape<I...>, fixed_shape<J...>>
    +
    351 {
    +
    352 };
    +
    353
    +
    354 // Simple is_array and only_array meta-functions
    +
    355 template <class S>
    +
    356 struct is_array
    +
    357 {
    +
    358 static constexpr bool value = false;
    +
    359 };
    +
    360
    +
    361 template <class T, std::size_t N>
    +
    362 struct is_array<std::array<T, N>>
    +
    363 {
    +
    364 static constexpr bool value = true;
    +
    365 };
    +
    366
    +
    367 template <class S>
    +
    368 struct is_fixed : std::false_type
    +
    369 {
    +
    370 };
    +
    371
    +
    372 template <std::size_t... N>
    +
    373 struct is_fixed<fixed_shape<N...>> : std::true_type
    +
    374 {
    +
    375 };
    +
    376
    +
    377 template <class S>
    +
    378 struct is_scalar_shape
    +
    379 {
    +
    380 static constexpr bool value = false;
    +
    381 };
    +
    382
    +
    383 template <class T>
    +
    384 struct is_scalar_shape<std::array<T, 0>>
    +
    385 {
    +
    386 static constexpr bool value = true;
    +
    387 };
    +
    388
    +
    389 template <class... S>
    +
    390 using only_array = std::conjunction<std::disjunction<is_array<S>, is_fixed<S>>...>;
    +
    391
    +
    392 // test that at least one argument is a fixed shape. If yes, then either argument has to be fixed or
    +
    393 // scalar
    +
    394 template <class... S>
    +
    395 using only_fixed = std::integral_constant<
    +
    396 bool,
    +
    397 std::disjunction<is_fixed<S>...>::value
    +
    398 && std::conjunction<std::disjunction<is_fixed<S>, is_scalar_shape<S>>...>::value>;
    +
    399
    +
    400 template <class... S>
    +
    401 using all_fixed = std::conjunction<is_fixed<S>...>;
    +
    402
    +
    403 // The promote_index meta-function returns std::vector<promoted_value_type> in the
    +
    404 // general case and an array of the promoted value type and maximal size if all
    +
    405 // arguments are of type std::array
    +
    406
    +
    407 template <class... S>
    +
    408 struct promote_array
    +
    409 {
    +
    410 using type = std::
    +
    411 array<typename std::common_type<typename S::value_type...>::type, max_array_size<S...>::value>;
    +
    412 };
    +
    413
    +
    414 template <>
    +
    415 struct promote_array<>
    +
    416 {
    +
    417 using type = std::array<std::size_t, 0>;
    +
    418 };
    +
    419
    +
    420 template <class S>
    +
    421 struct filter_scalar
    +
    422 {
    +
    423 using type = S;
    +
    424 };
    +
    425
    +
    426 template <class T>
    +
    427 struct filter_scalar<std::array<T, 0>>
    +
    428 {
    +
    429 using type = fixed_shape<1>;
    +
    430 };
    +
    431
    +
    432 template <class S>
    +
    433 using filter_scalar_t = typename filter_scalar<S>::type;
    +
    434
    +
    435 template <class... S>
    +
    436 struct promote_fixed : promote_fixed<filter_scalar_t<S>...>
    +
    437 {
    +
    438 };
    +
    439
    +
    440 template <std::size_t... I>
    +
    441 struct promote_fixed<fixed_shape<I...>>
    +
    442 {
    +
    443 using type = fixed_shape<I...>;
    +
    444 static constexpr bool value = true;
    +
    445 };
    +
    446
    +
    447 template <std::size_t... I, std::size_t... J, class... S>
    +
    448 struct promote_fixed<fixed_shape<I...>, fixed_shape<J...>, S...>
    +
    449 {
    +
    450 private:
    +
    451
    +
    452 using intermediate = std::conditional_t<
    +
    453 (sizeof...(I) > sizeof...(J)),
    +
    454 broadcast_fixed_shape<fixed_shape<J...>, fixed_shape<I...>>,
    +
    455 broadcast_fixed_shape<fixed_shape<I...>, fixed_shape<J...>>>;
    +
    456 using result = promote_fixed<typename intermediate::type, S...>;
    +
    457
    +
    458 public:
    +
    459
    +
    460 using type = typename result::type;
    +
    461 static constexpr bool value = std::conjunction<intermediate, result>::value;
    +
    462 };
    +
    463
    +
    464 template <bool all_index, bool all_array, class... S>
    +
    465 struct select_promote_index;
    +
    466
    +
    467 template <class... S>
    +
    468 struct select_promote_index<true, true, S...> : promote_fixed<S...>
    +
    469 {
    +
    470 };
    +
    471
    +
    472 template <>
    +
    473 struct select_promote_index<true, true>
    +
    474 {
    +
    475 // todo correct? used in xvectorize
    +
    476 using type = dynamic_shape<std::size_t>;
    +
    477 };
    +
    478
    +
    479 template <class... S>
    +
    480 struct select_promote_index<false, true, S...> : promote_array<S...>
    +
    481 {
    +
    482 };
    +
    483
    +
    484 template <class... S>
    +
    485 struct select_promote_index<false, false, S...>
    +
    486 {
    +
    487 using type = dynamic_shape<typename std::common_type<typename S::value_type...>::type>;
    +
    488 };
    +
    489
    +
    490 template <class... S>
    +
    491 struct promote_index : select_promote_index<only_fixed<S...>::value, only_array<S...>::value, S...>
    +
    492 {
    +
    493 };
    +
    494
    +
    495 template <class T>
    +
    496 struct index_from_shape_impl
    +
    497 {
    +
    498 using type = T;
    +
    499 };
    +
    500
    +
    501 template <std::size_t... N>
    +
    502 struct index_from_shape_impl<fixed_shape<N...>>
    +
    503 {
    +
    504 using type = std::array<std::size_t, sizeof...(N)>;
    +
    505 };
    +
    506 }
    +
    507
    +
    508 template <typename T>
    +
    509 concept fixed_shape_container_concept = detail::is_fixed<typename std::decay_t<T>::shape_type>::value;
    +
    510
    +
    511 template <class... S>
    +
    + +
    513 {
    +
    514 using type = typename detail::promote_index<S...>::type;
    +
    515 };
    +
    +
    516
    +
    520 template <class... S>
    +
    521 using promote_shape_t = typename promote_shape<S...>::type;
    +
    522
    +
    523 template <class... S>
    +
    + +
    525 {
    +
    526 using type = typename detail::promote_index<S...>::type;
    +
    527 };
    +
    +
    528
    +
    532 template <class... S>
    +
    533 using promote_strides_t = typename promote_strides<S...>::type;
    +
    534
    +
    535 template <class S>
    +
    + +
    537 {
    +
    538 using type = typename detail::index_from_shape_impl<S>::type;
    +
    539 };
    +
    +
    540
    +
    544 template <class S>
    +
    545 using index_from_shape_t = typename index_from_shape<S>::type;
    +
    546
    +
    547 /**********************
    +
    548 * filter_fixed_shape *
    +
    549 **********************/
    +
    550
    +
    551 namespace detail
    +
    552 {
    +
    553 template <class S>
    +
    554 struct filter_fixed_shape_impl
    +
    555 {
    +
    556 using type = S;
    +
    557 };
    +
    558
    +
    559 template <std::size_t... N>
    +
    560 struct filter_fixed_shape_impl<fixed_shape<N...>>
    +
    561 {
    +
    562 using type = std::array<std::size_t, sizeof...(N)>;
    +
    563 };
    +
    564 }
    +
    565
    +
    566 template <class S>
    +
    +
    567 struct filter_fixed_shape : detail::filter_fixed_shape_impl<S>
    +
    568 {
    +
    569 };
    +
    +
    570
    +
    574 template <class S>
    +
    575 using filter_fixed_shape_t = typename filter_fixed_shape<S>::type;
    +
    576}
    +
    577
    +
    578#endif
    +
    Fixed shape implementation for compile time defined arrays.
    + + +
    bool same_shape(const S1 &s1, const S2 &s2) noexcept
    Check if two objects have the same shape.
    Definition xshape.hpp:109
    +
    bool has_shape(const E &e, std::initializer_list< S > shape) noexcept
    Check if an object has a certain shape.
    Definition xshape.hpp:127
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + + + + + + + +
    Compute a layout based on a layout and a shape type.
    Definition xshape.hpp:261
    + +
    +
    + + + + diff --git a/xslice_8hpp_source.html b/xslice_8hpp_source.html new file mode 100644 index 000000000..710812400 --- /dev/null +++ b/xslice_8hpp_source.html @@ -0,0 +1,1707 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xslice.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xslice.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_SLICE_HPP
    +
    11#define XTENSOR_SLICE_HPP
    +
    12
    +
    13#include <cstddef>
    +
    14#include <map>
    +
    15#include <type_traits>
    +
    16#include <utility>
    +
    17
    +
    18#include <xtl/xtype_traits.hpp>
    +
    19
    +
    20#include "../containers/xstorage.hpp"
    +
    21#include "../core/xtensor_config.hpp"
    +
    22#include "../utils/xutils.hpp"
    +
    23
    +
    24#ifndef XTENSOR_CONSTEXPR
    +
    25#if (defined(_MSC_VER) || __GNUC__ < 8)
    +
    26#define XTENSOR_CONSTEXPR inline
    +
    27#define XTENSOR_GLOBAL_CONSTEXPR static const
    +
    28#else
    +
    29#define XTENSOR_CONSTEXPR constexpr
    +
    30#define XTENSOR_GLOBAL_CONSTEXPR constexpr
    +
    31#endif
    +
    32#endif
    +
    33
    +
    34namespace xt
    +
    35{
    +
    36
    +
    37 /**********************
    +
    38 * xslice declaration *
    +
    39 **********************/
    +
    40
    +
    41 template <class D>
    +
    +
    42 class xslice
    +
    43 {
    +
    44 public:
    +
    45
    +
    46 using derived_type = D;
    +
    47
    +
    48 derived_type& derived_cast() noexcept;
    +
    49 const derived_type& derived_cast() const noexcept;
    +
    50
    +
    51 protected:
    +
    52
    +
    53 xslice() = default;
    +
    54 ~xslice() = default;
    +
    55
    +
    56 xslice(const xslice&) = default;
    +
    57 xslice& operator=(const xslice&) = default;
    +
    58
    +
    59 xslice(xslice&&) = default;
    +
    60 xslice& operator=(xslice&&) = default;
    +
    61 };
    +
    +
    62
    +
    63 template <class S>
    +
    64 using is_xslice = std::is_base_of<xslice<S>, S>;
    +
    65
    +
    66 template <class... E>
    +
    67 using has_xslice = std::disjunction<is_xslice<E>...>;
    +
    68
    +
    69 /**************
    +
    70 * slice tags *
    +
    71 **************/
    +
    72
    +
    73#define DEFINE_TAG_CONVERSION(NAME) \
    +
    74 template <class T> \
    +
    75 XTENSOR_CONSTEXPR NAME convert() const noexcept \
    +
    76 { \
    +
    77 return NAME(); \
    +
    78 }
    +
    79
    +
    +
    80 struct xall_tag
    +
    81 {
    +
    82 DEFINE_TAG_CONVERSION(xall_tag)
    +
    83 };
    +
    +
    84
    +
    + +
    86 {
    +
    87 DEFINE_TAG_CONVERSION(xnewaxis_tag)
    +
    88 };
    +
    +
    89
    +
    + +
    91 {
    +
    92 DEFINE_TAG_CONVERSION(xellipsis_tag)
    +
    93 };
    +
    +
    94
    +
    95#undef DEFINE_TAG_CONVERSION
    +
    96
    +
    97 /**********************
    +
    98 * xrange declaration *
    +
    99 **********************/
    +
    100
    +
    101 template <class T>
    +
    +
    102 class xrange : public xslice<xrange<T>>
    +
    103 {
    +
    104 public:
    +
    105
    +
    106 using size_type = T;
    +
    107 using self_type = xrange<T>;
    +
    108
    +
    109 xrange() = default;
    +
    110 xrange(size_type start_val, size_type stop_val) noexcept;
    +
    111
    +
    112 template <std::convertible_to<T> S>
    +
    113 operator xrange<S>() const noexcept;
    +
    114
    +
    115 // Same as implicit conversion operator but more convenient to call
    +
    116 // from a variant visitor
    +
    117 template <std::convertible_to<T> S>
    +
    118 xrange<S> convert() const noexcept;
    +
    119
    +
    120 size_type operator()(size_type i) const noexcept;
    +
    121
    +
    122 size_type size() const noexcept;
    +
    123 size_type step_size() const noexcept;
    +
    124 size_type step_size(std::size_t i, std::size_t n = 1) const noexcept;
    +
    125 size_type revert_index(std::size_t i) const noexcept;
    +
    126
    +
    127 bool contains(size_type i) const noexcept;
    +
    128
    +
    129 bool operator==(const self_type& rhs) const noexcept;
    +
    130 bool operator!=(const self_type& rhs) const noexcept;
    +
    131
    +
    132 private:
    +
    133
    +
    134 size_type m_start;
    +
    135 size_type m_size;
    +
    136
    +
    137 template <class S>
    +
    138 friend class xrange;
    +
    139 };
    +
    +
    140
    +
    141 /******************************
    +
    142 * xstepped_range declaration *
    +
    143 ******************************/
    +
    144
    +
    145 template <class T>
    +
    +
    146 class xstepped_range : public xslice<xstepped_range<T>>
    +
    147 {
    +
    148 public:
    +
    149
    +
    150 using size_type = T;
    +
    151 using self_type = xstepped_range<T>;
    +
    152
    +
    153 xstepped_range() = default;
    +
    154 xstepped_range(size_type start_val, size_type stop_val, size_type step) noexcept;
    +
    155
    +
    156 template <std::convertible_to<T> S>
    +
    157 operator xstepped_range<S>() const noexcept;
    +
    158
    +
    159 // Same as implicit conversion operator but more convenient to call
    +
    160 // from a variant visitor
    +
    161 template <std::convertible_to<T> S>
    +
    162 xstepped_range<S> convert() const noexcept;
    +
    163
    +
    164 size_type operator()(size_type i) const noexcept;
    +
    165
    +
    166 size_type size() const noexcept;
    +
    167 size_type step_size() const noexcept;
    +
    168 size_type step_size(std::size_t i, std::size_t n = 1) const noexcept;
    +
    169 size_type revert_index(std::size_t i) const noexcept;
    +
    170
    +
    171 bool contains(size_type i) const noexcept;
    +
    172
    +
    173 bool operator==(const self_type& rhs) const noexcept;
    +
    174 bool operator!=(const self_type& rhs) const noexcept;
    +
    175
    +
    176 private:
    +
    177
    +
    178 size_type m_start;
    +
    179 size_type m_size;
    +
    180 size_type m_step;
    +
    181
    +
    182 template <class S>
    +
    183 friend class xstepped_range;
    +
    184 };
    +
    +
    185
    +
    186 /********************
    +
    187 * xall declaration *
    +
    188 ********************/
    +
    189
    +
    190 template <class T>
    +
    +
    191 class xall : public xslice<xall<T>>
    +
    192 {
    +
    193 public:
    +
    194
    +
    195 using size_type = T;
    +
    196 using self_type = xall<T>;
    +
    197
    +
    198 xall() = default;
    +
    199 explicit xall(size_type size) noexcept;
    +
    200
    +
    201 template <std::convertible_to<T> S>
    +
    202 operator xall<S>() const noexcept;
    +
    203
    +
    204 // Same as implicit conversion operator but more convenient to call
    +
    205 // from a variant visitor
    +
    206 template <std::convertible_to<T> S>
    +
    207 xall<S> convert() const noexcept;
    +
    208
    +
    209 size_type operator()(size_type i) const noexcept;
    +
    210
    +
    211 size_type size() const noexcept;
    +
    212 size_type step_size() const noexcept;
    +
    213 size_type step_size(std::size_t i, std::size_t n = 1) const noexcept;
    +
    214 size_type revert_index(std::size_t i) const noexcept;
    +
    215
    +
    216 bool contains(size_type i) const noexcept;
    +
    217
    +
    218 bool operator==(const self_type& rhs) const noexcept;
    +
    219 bool operator!=(const self_type& rhs) const noexcept;
    +
    220
    +
    221 private:
    +
    222
    +
    223 size_type m_size;
    +
    224 };
    +
    +
    225
    +
    +
    231 inline auto all() noexcept
    +
    232 {
    +
    233 return xall_tag();
    +
    234 }
    +
    +
    235
    +
    +
    252 inline auto ellipsis() noexcept
    +
    253 {
    +
    254 return xellipsis_tag();
    +
    255 }
    +
    +
    256
    +
    257 /************************
    +
    258 * xnewaxis declaration *
    +
    259 ************************/
    +
    260
    +
    261 template <class T>
    +
    +
    262 class xnewaxis : public xslice<xnewaxis<T>>
    +
    263 {
    +
    264 public:
    +
    265
    +
    266 using size_type = T;
    +
    267 using self_type = xnewaxis<T>;
    +
    268
    +
    269 xnewaxis() = default;
    +
    270
    +
    271 template <std::convertible_to<T> S>
    +
    272 operator xnewaxis<S>() const noexcept;
    +
    273
    +
    274 // Same as implicit conversion operator but more convenient to call
    +
    275 // from a variant visitor
    +
    276 template <std::convertible_to<T> S>
    +
    277 xnewaxis<S> convert() const noexcept;
    +
    278
    +
    279 size_type operator()(size_type i) const noexcept;
    +
    280
    +
    281 size_type size() const noexcept;
    +
    282 size_type step_size() const noexcept;
    +
    283 size_type step_size(std::size_t i, std::size_t n = 1) const noexcept;
    +
    284 size_type revert_index(std::size_t i) const noexcept;
    +
    285
    +
    286 bool contains(size_type i) const noexcept;
    +
    287
    +
    288 bool operator==(const self_type& rhs) const noexcept;
    +
    289 bool operator!=(const self_type& rhs) const noexcept;
    +
    290 };
    +
    +
    291
    +
    +
    297 inline auto newaxis() noexcept
    +
    298 {
    +
    299 return xnewaxis_tag();
    +
    300 }
    +
    +
    301
    +
    302 /***************************
    +
    303 * xkeep_slice declaration *
    +
    304 ***************************/
    +
    305
    +
    306 template <class T>
    +
    307 class xkeep_slice;
    +
    308
    +
    309 namespace detail
    +
    310 {
    +
    311 template <class T>
    +
    312 struct is_xkeep_slice : std::false_type
    +
    313 {
    +
    314 };
    +
    315
    +
    316 template <class T>
    +
    317 struct is_xkeep_slice<xkeep_slice<T>> : std::true_type
    +
    318 {
    +
    319 };
    +
    320 }
    +
    321
    +
    322 template <class T>
    +
    +
    323 class xkeep_slice : public xslice<xkeep_slice<T>>
    +
    324 {
    +
    325 public:
    +
    326
    +
    327 using container_type = svector<T>;
    +
    328 using size_type = typename container_type::value_type;
    +
    329 using self_type = xkeep_slice<T>;
    +
    330
    +
    331 template <class C>
    +
    332 explicit xkeep_slice(C& cont)
    +
    333 requires(!detail::is_xkeep_slice<std::decay_t<C>>::value);
    +
    334 explicit xkeep_slice(container_type&& cont);
    +
    335
    +
    336 template <class S>
    +
    337 xkeep_slice(std::initializer_list<S> t);
    +
    338
    +
    339 template <std::convertible_to<T> S>
    +
    340 operator xkeep_slice<S>() const noexcept;
    +
    341
    +
    342 // Same as implicit conversion operator but more convenient to call
    +
    343 // from a variant visitor
    +
    344 template <std::convertible_to<T> S>
    +
    345 xkeep_slice<S> convert() const noexcept;
    +
    346
    +
    347 size_type operator()(size_type i) const noexcept;
    +
    348 size_type size() const noexcept;
    +
    349
    +
    350 void normalize(std::size_t s);
    +
    351
    +
    352 size_type step_size(std::size_t i, std::size_t n = 1) const noexcept;
    +
    353 size_type revert_index(std::size_t i) const;
    +
    354
    +
    355 bool contains(size_type i) const noexcept;
    +
    356
    +
    357 bool operator==(const self_type& rhs) const noexcept;
    +
    358 bool operator!=(const self_type& rhs) const noexcept;
    +
    359
    +
    360 private:
    +
    361
    +
    362 xkeep_slice() = default;
    +
    363
    +
    364 container_type m_indices;
    +
    365 container_type m_raw_indices;
    +
    366
    +
    367 template <class S>
    +
    368 friend class xkeep_slice;
    +
    369 };
    +
    +
    370
    +
    385 template <class R = std::ptrdiff_t, class T>
    +
    +
    386 inline auto keep(T&& indices)
    +
    387 {
    +
    388 if constexpr (xtl::is_integral<std::decay_t<T>>::value)
    +
    389 {
    +
    390 using slice_type = xkeep_slice<R>;
    +
    391 using container_type = typename slice_type::container_type;
    +
    392 container_type tmp = {static_cast<R>(std::forward<T>(indices))};
    +
    393 return slice_type(std::move(tmp));
    +
    394 }
    +
    395 else
    +
    396 {
    +
    397 return xkeep_slice<typename std::decay_t<T>::value_type>(std::forward<T>(indices));
    +
    398 }
    +
    399 }
    +
    +
    400
    +
    401 template <class R = std::ptrdiff_t, class Arg0, class Arg1, class... Args>
    +
    402 inline xkeep_slice<R> keep(Arg0 i0, Arg1 i1, Args... args)
    +
    403 {
    +
    404 using slice_type = xkeep_slice<R>;
    +
    405 using container_type = typename slice_type::container_type;
    +
    406 container_type tmp = {static_cast<R>(i0), static_cast<R>(i1), static_cast<R>(args)...};
    +
    407 return slice_type(std::move(tmp));
    +
    408 }
    +
    409
    +
    410 /***************************
    +
    411 * xdrop_slice declaration *
    +
    412 ***************************/
    +
    413
    +
    414 template <class T>
    +
    415 class xdrop_slice;
    +
    416
    +
    417 namespace detail
    +
    418 {
    +
    419 template <class T>
    +
    420 struct is_xdrop_slice : std::false_type
    +
    421 {
    +
    422 };
    +
    423
    +
    424 template <class T>
    +
    425 struct is_xdrop_slice<xdrop_slice<T>> : std::true_type
    +
    426 {
    +
    427 };
    +
    428 }
    +
    429
    +
    430 template <class T>
    +
    +
    431 class xdrop_slice : public xslice<xdrop_slice<T>>
    +
    432 {
    +
    433 public:
    +
    434
    +
    435 using container_type = svector<T>;
    +
    436 using size_type = typename container_type::value_type;
    +
    437 using self_type = xdrop_slice<T>;
    +
    438
    +
    439 template <class C>
    +
    440 explicit xdrop_slice(C& cont)
    +
    441 requires(!detail::is_xdrop_slice<std::decay_t<C>>::value);
    +
    442 explicit xdrop_slice(container_type&& cont);
    +
    443
    +
    444 template <class S>
    +
    445 xdrop_slice(std::initializer_list<S> t);
    +
    446
    +
    447 template <std::convertible_to<T> S>
    +
    448 operator xdrop_slice<S>() const noexcept;
    +
    449
    +
    450 // Same as implicit conversion operator but more convenient to call
    +
    451 // from a variant visitor
    +
    452 template <std::convertible_to<T> S>
    +
    453 xdrop_slice<S> convert() const noexcept;
    +
    454
    +
    455 size_type operator()(size_type i) const noexcept;
    +
    456 size_type size() const noexcept;
    +
    457
    +
    458 void normalize(std::size_t s);
    +
    459
    +
    460 size_type step_size(std::size_t i, std::size_t n = 1) const noexcept;
    +
    461 size_type revert_index(std::size_t i) const;
    +
    462
    +
    463 bool contains(size_type i) const noexcept;
    +
    464
    +
    465 bool operator==(const self_type& rhs) const noexcept;
    +
    466 bool operator!=(const self_type& rhs) const noexcept;
    +
    467
    +
    468 private:
    +
    469
    +
    470 xdrop_slice() = default;
    +
    471
    +
    472 container_type m_indices;
    +
    473 container_type m_raw_indices;
    +
    474 std::map<size_type, size_type> m_inc;
    +
    475 size_type m_size;
    +
    476
    +
    477 template <class S>
    +
    478 friend class xdrop_slice;
    +
    479 };
    +
    +
    480
    +
    494 template <class R = std::ptrdiff_t, class T>
    +
    +
    495 inline auto drop(T&& indices)
    +
    496 {
    +
    497 if constexpr (xtl::is_integral<T>::value)
    +
    498 {
    +
    499 using slice_type = xdrop_slice<R>;
    +
    500 using container_type = typename slice_type::container_type;
    +
    501 container_type tmp = {static_cast<R>(std::forward<T>(indices))};
    +
    502 return slice_type(std::move(tmp));
    +
    503 }
    +
    504 else
    +
    505 {
    +
    506 return xdrop_slice<typename std::decay_t<T>::value_type>(std::forward<T>(indices));
    +
    507 }
    +
    508 }
    +
    +
    509
    +
    510 template <class R = std::ptrdiff_t, class Arg0, class Arg1, class... Args>
    +
    511 inline xdrop_slice<R> drop(Arg0 i0, Arg1 i1, Args... args)
    +
    512 {
    +
    513 using slice_type = xdrop_slice<R>;
    +
    514 using container_type = typename slice_type::container_type;
    +
    515 container_type tmp = {static_cast<R>(i0), static_cast<R>(i1), static_cast<R>(args)...};
    +
    516 return slice_type(std::move(tmp));
    +
    517 }
    +
    518
    +
    519 /******************************
    +
    520 * xrange_adaptor declaration *
    +
    521 ******************************/
    +
    522
    +
    523 template <class A, class B = A, class C = A>
    +
    +
    524 struct xrange_adaptor
    +
    525 {
    +
    526 xrange_adaptor(A start_val, B stop_val, C step)
    +
    527 : m_start(start_val)
    +
    528 , m_stop(stop_val)
    +
    529 , m_step(step)
    +
    530 {
    +
    531 }
    +
    532
    +
    533 template <class MI = A, class MA = B, class STEP = C>
    +
    534 auto get(std::size_t size) const
    +
    535 {
    +
    536 if constexpr (xtl::is_integral<MI>::value && xtl::is_integral<MA>::value && xtl::is_integral<STEP>::value)
    +
    537 {
    +
    538 return get_stepped_range(m_start, m_stop, m_step, size);
    +
    539 }
    +
    540 else if constexpr (!xtl::is_integral<MI>::value && xtl::is_integral<MA>::value && xtl::is_integral<STEP>::value)
    +
    541 {
    +
    542 return get_stepped_range(
    +
    543 m_step > 0 ? 0 : static_cast<std::ptrdiff_t>(size) - 1,
    +
    544 m_stop,
    +
    545 m_step,
    +
    546 size
    +
    547 );
    +
    548 }
    +
    549 else if constexpr (xtl::is_integral<MI>::value && !xtl::is_integral<MA>::value && xtl::is_integral<STEP>::value)
    +
    550 {
    +
    551 auto sz = static_cast<std::ptrdiff_t>(size);
    +
    552 return get_stepped_range(m_start, m_step > 0 ? sz : -(sz + 1), m_step, size);
    +
    553 }
    +
    554 else if constexpr (xtl::is_integral<MI>::value && xtl::is_integral<MA>::value && !xtl::is_integral<STEP>::value)
    +
    555 {
    +
    556 return xrange<std::ptrdiff_t>(normalize(m_start, size), normalize(m_stop, size));
    +
    557 }
    +
    558 else if constexpr (!xtl::is_integral<MI>::value && !xtl::is_integral<MA>::value && xtl::is_integral<STEP>::value)
    +
    559 {
    +
    560 std::ptrdiff_t start = m_step >= 0 ? 0 : static_cast<std::ptrdiff_t>(size) - 1;
    +
    561 std::ptrdiff_t stop = m_step >= 0 ? static_cast<std::ptrdiff_t>(size) : -1;
    +
    562 return xstepped_range<std::ptrdiff_t>(start, stop, m_step);
    +
    563 }
    +
    564 else if constexpr (xtl::is_integral<MI>::value && !xtl::is_integral<MA>::value && !xtl::is_integral<STEP>::value)
    +
    565 {
    +
    566 return xrange<std::ptrdiff_t>(normalize(m_start, size), static_cast<std::ptrdiff_t>(size));
    +
    567 }
    +
    568 else if constexpr (!xtl::is_integral<MI>::value && xtl::is_integral<MA>::value && !xtl::is_integral<STEP>::value)
    +
    569 {
    +
    570 return xrange<std::ptrdiff_t>(0, normalize(m_stop, size));
    +
    571 }
    +
    572 else if constexpr (!xtl::is_integral<MI>::value && !xtl::is_integral<MA>::value && !xtl::is_integral<STEP>::value)
    +
    573 {
    +
    574 return xall<std::ptrdiff_t>(static_cast<std::ptrdiff_t>(size));
    +
    575 }
    +
    576 }
    +
    577
    +
    578 A start() const
    +
    579 {
    +
    580 return m_start;
    +
    581 }
    +
    582
    +
    583 B stop() const
    +
    584 {
    +
    585 return m_stop;
    +
    586 }
    +
    587
    +
    588 C step() const
    +
    589 {
    +
    590 return m_step;
    +
    591 }
    +
    592
    +
    593 private:
    +
    594
    +
    595 static auto normalize(std::ptrdiff_t val, std::size_t ssize)
    +
    596 {
    +
    597 std::ptrdiff_t size = static_cast<std::ptrdiff_t>(ssize);
    +
    598 val = (val >= 0) ? val : val + size;
    +
    599 return (std::max)(std::ptrdiff_t(0), (std::min)(size, val));
    +
    600 }
    +
    601
    +
    602 static auto
    +
    603 get_stepped_range(std::ptrdiff_t start, std::ptrdiff_t stop, std::ptrdiff_t step, std::size_t ssize)
    +
    604 {
    +
    605 std::ptrdiff_t size = static_cast<std::ptrdiff_t>(ssize);
    +
    606 start = (start >= 0) ? start : start + size;
    +
    607 stop = (stop >= 0) ? stop : stop + size;
    +
    608
    +
    609 if (step > 0)
    +
    610 {
    +
    611 start = (std::max)(std::ptrdiff_t(0), (std::min)(size, start));
    +
    612 stop = (std::max)(std::ptrdiff_t(0), (std::min)(size, stop));
    +
    613 }
    +
    614 else
    +
    615 {
    +
    616 start = (std::max)(std::ptrdiff_t(-1), (std::min)(size - 1, start));
    +
    617 stop = (std::max)(std::ptrdiff_t(-1), (std::min)(size - 1, stop));
    +
    618 }
    +
    619
    +
    620 return xstepped_range<std::ptrdiff_t>(start, stop, step);
    +
    621 }
    +
    622
    +
    623 A m_start;
    +
    624 B m_stop;
    +
    625 C m_step;
    +
    626 };
    +
    +
    627
    +
    628 /*******************************
    +
    629 * Placeholders and rangemaker *
    +
    630 *******************************/
    +
    631
    +
    632 namespace placeholders
    +
    633 {
    +
    634 // xtensor universal placeholder
    +
    +
    635 struct xtuph
    +
    636 {
    +
    637 };
    +
    +
    638
    +
    639 template <class... Args>
    +
    + +
    641 {
    +
    642 std::ptrdiff_t rng[3]; // = { 0, 0, 0 };
    +
    643 };
    +
    +
    644
    +
    645 XTENSOR_CONSTEXPR xtuph get_tuph_or_val(std::ptrdiff_t /*val*/, std::true_type)
    +
    646 {
    +
    647 return xtuph();
    +
    648 }
    +
    649
    +
    650 XTENSOR_CONSTEXPR std::ptrdiff_t get_tuph_or_val(std::ptrdiff_t val, std::false_type)
    +
    651 {
    +
    652 return val;
    +
    653 }
    +
    654
    +
    655 template <class A, class B, class C>
    +
    +
    656 struct rangemaker<A, B, C>
    +
    657 {
    +
    658 XTENSOR_CONSTEXPR operator xrange_adaptor<A, B, C>()
    +
    659 {
    + +
    661 {get_tuph_or_val(rng[0], std::is_same<A, xtuph>()),
    +
    662 get_tuph_or_val(rng[1], std::is_same<B, xtuph>()),
    +
    663 get_tuph_or_val(rng[2], std::is_same<C, xtuph>())}
    +
    664 );
    +
    665 }
    +
    666
    +
    667 std::ptrdiff_t rng[3]; // = { 0, 0, 0 };
    +
    668 };
    +
    +
    669
    +
    670 template <class A, class B>
    +
    +
    671 struct rangemaker<A, B>
    +
    672 {
    +
    673 XTENSOR_CONSTEXPR operator xrange_adaptor<A, B, xt::placeholders::xtuph>()
    +
    674 {
    + +
    676 {get_tuph_or_val(rng[0], std::is_same<A, xtuph>()),
    +
    677 get_tuph_or_val(rng[1], std::is_same<B, xtuph>()),
    +
    678 xtuph()}
    +
    679 );
    +
    680 }
    +
    681
    +
    682 std::ptrdiff_t rng[3]; // = { 0, 0, 0 };
    +
    683 };
    +
    +
    684
    +
    685 template <class... OA>
    +
    686 XTENSOR_CONSTEXPR auto operator|(const rangemaker<OA...>& rng, const std::ptrdiff_t& t)
    +
    687 {
    +
    688 auto nrng = rangemaker<OA..., std::ptrdiff_t>({rng.rng[0], rng.rng[1], rng.rng[2]});
    +
    689 nrng.rng[sizeof...(OA)] = t;
    +
    690 return nrng;
    +
    691 }
    +
    692
    +
    693 template <class... OA>
    +
    694 XTENSOR_CONSTEXPR auto operator|(const rangemaker<OA...>& rng, const xt::placeholders::xtuph& /*t*/)
    +
    695 {
    +
    696 auto nrng = rangemaker<OA..., xt::placeholders::xtuph>({rng.rng[0], rng.rng[1], rng.rng[2]});
    +
    697 return nrng;
    +
    698 }
    +
    699
    +
    700 XTENSOR_GLOBAL_CONSTEXPR xtuph _{};
    +
    701 XTENSOR_GLOBAL_CONSTEXPR rangemaker<> _r = rangemaker<>({{0, 0, 0}});
    +
    702 XTENSOR_GLOBAL_CONSTEXPR xall_tag _a{};
    +
    703 XTENSOR_GLOBAL_CONSTEXPR xnewaxis_tag _n{};
    +
    704 XTENSOR_GLOBAL_CONSTEXPR xellipsis_tag _e{};
    +
    705 }
    +
    706
    +
    707 inline auto xnone()
    +
    708 {
    +
    709 return placeholders::xtuph();
    +
    710 }
    +
    711
    +
    712 namespace detail
    +
    713 {
    +
    714 template <class T>
    +
    715 struct cast_if_integer
    +
    716 {
    +
    717 using type = std::conditional_t<xtl::is_integral<T>::value, std::ptrdiff_t, T>;
    +
    718
    +
    719 type operator()(T t)
    +
    720 {
    +
    721 return (xtl::is_integral<T>::value) ? static_cast<type>(t) : t;
    +
    722 }
    +
    723 };
    +
    724
    +
    725 template <class T>
    +
    726 using cast_if_integer_t = typename cast_if_integer<T>::type;
    +
    727 }
    +
    728
    +
    743 template <class A, class B>
    +
    +
    744 inline auto range(A start_val, B stop_val)
    +
    745 {
    +
    746 return xrange_adaptor<detail::cast_if_integer_t<A>, detail::cast_if_integer_t<B>, placeholders::xtuph>(
    +
    747 detail::cast_if_integer<A>{}(start_val),
    +
    748 detail::cast_if_integer<B>{}(stop_val),
    + +
    750 );
    +
    751 }
    +
    +
    752
    +
    764 template <class A, class B, class C>
    +
    +
    765 inline auto range(A start_val, B stop_val, C step)
    +
    766 {
    +
    767 return xrange_adaptor<detail::cast_if_integer_t<A>, detail::cast_if_integer_t<B>, detail::cast_if_integer_t<C>>(
    +
    768 detail::cast_if_integer<A>{}(start_val),
    +
    769 detail::cast_if_integer<B>{}(stop_val),
    +
    770 detail::cast_if_integer<C>{}(step)
    +
    771 );
    +
    772 }
    +
    +
    773
    +
    774 /******************************************************
    +
    775 * homogeneous get_size for integral types and slices *
    +
    776 ******************************************************/
    +
    777
    +
    778 template <class S>
    +
    779 inline std::size_t get_size(const S& slice) noexcept
    +
    780 {
    +
    781 if constexpr (is_xslice<S>::value)
    +
    782 {
    +
    783 return slice.size();
    +
    784 }
    +
    785 else
    +
    786 {
    +
    787 return 1;
    +
    788 }
    +
    789 }
    +
    790
    +
    791 /*******************************************************
    +
    792 * homogeneous step_size for integral types and slices *
    +
    793 *******************************************************/
    +
    794
    +
    795 template <class S>
    +
    796 inline std::size_t step_size(const S& slice, std::size_t idx) noexcept
    +
    797 {
    +
    798 if constexpr (is_xslice<S>::value)
    +
    799 {
    +
    800 return slice.step_size(idx);
    +
    801 }
    +
    802 else
    +
    803 {
    +
    804 return 0;
    +
    805 }
    +
    806 }
    +
    807
    +
    808 template <class S>
    +
    809 inline std::size_t step_size(const S& slice, std::size_t idx, std::size_t n) noexcept
    +
    810 {
    +
    811 if constexpr (is_xslice<S>::value)
    +
    812 {
    +
    813 return slice.step_size(idx, n);
    +
    814 }
    +
    815 else
    +
    816 {
    +
    817 return 0;
    +
    818 }
    +
    819 }
    +
    820
    +
    821 /*********************************************
    +
    822 * homogeneous value for integral and slices *
    +
    823 *********************************************/
    +
    824
    +
    825 template <class S, class I>
    +
    826 inline std::size_t value(const S& slice, I i) noexcept
    +
    827 {
    +
    828 if constexpr (is_xslice<S>::value)
    +
    829 {
    +
    830 using ST = typename S::size_type;
    +
    831 return slice(static_cast<ST>(i));
    +
    832 }
    +
    833 else
    +
    834 {
    +
    835 return static_cast<std::size_t>(slice);
    +
    836 }
    +
    837 }
    +
    838
    +
    839 /****************************************
    +
    840 * homogeneous get_slice_implementation *
    +
    841 ****************************************/
    +
    842
    +
    843 namespace detail
    +
    844 {
    +
    845 template <class T>
    +
    846 struct slice_implementation_getter
    +
    847 {
    +
    848 template <class E, class SL>
    +
    849 inline decltype(auto) operator()(E& e, SL&& slice, std::size_t index) const
    +
    850 {
    +
    851 return get_slice(e, std::forward<SL>(slice), index, xtl::is_signed<std::decay_t<SL>>());
    +
    852 }
    +
    853
    +
    854 private:
    +
    855
    +
    856 template <class E, class SL>
    +
    857 inline decltype(auto) get_slice(E&, SL&& slice, std::size_t, std::false_type) const
    +
    858 {
    +
    859 return std::forward<SL>(slice);
    +
    860 }
    +
    861
    +
    862 template <class E, class SL>
    +
    863 inline decltype(auto) get_slice(E& e, SL&& slice, std::size_t index, std::true_type) const
    +
    864 {
    +
    865 using int_type = std::decay_t<SL>;
    +
    866 return slice < int_type(0) ? slice + static_cast<std::ptrdiff_t>(e.shape(index))
    +
    867 : std::ptrdiff_t(slice);
    +
    868 }
    +
    869 };
    +
    870
    +
    871 struct keep_drop_getter
    +
    872 {
    +
    873 template <class E, class SL>
    +
    874 inline decltype(auto) operator()(E& e, SL&& slice, std::size_t index) const
    +
    875 {
    +
    876 slice.normalize(e.shape()[index]);
    +
    877 return std::forward<SL>(slice);
    +
    878 }
    +
    879
    +
    880 template <class E, class SL>
    +
    881 inline auto operator()(E& e, const SL& slice, std::size_t index) const
    +
    882 {
    +
    883 return this->operator()(e, SL(slice), index);
    +
    884 }
    +
    885 };
    +
    886
    +
    887 template <class T>
    +
    888 struct slice_implementation_getter<xkeep_slice<T>> : keep_drop_getter
    +
    889 {
    +
    890 };
    +
    891
    +
    892 template <class T>
    +
    893 struct slice_implementation_getter<xdrop_slice<T>> : keep_drop_getter
    +
    894 {
    +
    895 };
    +
    896
    +
    897 template <>
    +
    898 struct slice_implementation_getter<xall_tag>
    +
    899 {
    +
    900 template <class E, class SL>
    +
    901 inline auto operator()(E& e, SL&&, std::size_t index) const
    +
    902 {
    +
    903 return xall<typename E::size_type>(e.shape()[index]);
    +
    904 }
    +
    905 };
    +
    906
    +
    907 template <>
    +
    908 struct slice_implementation_getter<xnewaxis_tag>
    +
    909 {
    +
    910 template <class E, class SL>
    +
    911 inline auto operator()(E&, SL&&, std::size_t) const
    +
    912 {
    +
    913 return xnewaxis<typename E::size_type>();
    +
    914 }
    +
    915 };
    +
    916
    +
    917 template <class A, class B, class C>
    +
    918 struct slice_implementation_getter<xrange_adaptor<A, B, C>>
    +
    919 {
    +
    920 template <class E, class SL>
    +
    921 inline auto operator()(E& e, SL&& adaptor, std::size_t index) const
    +
    922 {
    +
    923 return adaptor.get(e.shape()[index]);
    +
    924 }
    +
    925 };
    +
    926 }
    +
    927
    +
    928 template <class E, class SL>
    +
    929 inline auto get_slice_implementation(E& e, SL&& slice, std::size_t index)
    +
    930 {
    +
    931 detail::slice_implementation_getter<std::decay_t<SL>> getter;
    +
    932 return getter(e, std::forward<SL>(slice), index);
    +
    933 }
    +
    934
    +
    935 /******************************
    +
    936 * homogeneous get_slice_type *
    +
    937 ******************************/
    +
    938
    +
    939 namespace detail
    +
    940 {
    +
    941 template <class E, class SL>
    +
    942 struct get_slice_type_impl
    +
    943 {
    +
    944 using type = SL;
    +
    945 };
    +
    946
    +
    947 template <class E>
    +
    948 struct get_slice_type_impl<E, xall_tag>
    +
    949 {
    +
    950 using type = xall<typename E::size_type>;
    +
    951 };
    +
    952
    +
    953 template <class E>
    +
    954 struct get_slice_type_impl<E, xnewaxis_tag>
    +
    955 {
    +
    956 using type = xnewaxis<typename E::size_type>;
    +
    957 };
    +
    958
    +
    959 template <class E, class A, class B, class C>
    +
    960 struct get_slice_type_impl<E, xrange_adaptor<A, B, C>>
    +
    961 {
    +
    962 using type = decltype(xrange_adaptor<A, B, C>(A(), B(), C()).get(0));
    +
    963 };
    +
    964 }
    +
    965
    +
    966 template <class E, class SL>
    +
    967 using get_slice_type = typename detail::get_slice_type_impl<E, std::remove_reference_t<SL>>::type;
    +
    968
    +
    969 /*************************
    +
    970 * xslice implementation *
    +
    971 *************************/
    +
    972
    +
    973 template <class D>
    +
    974 inline auto xslice<D>::derived_cast() noexcept -> derived_type&
    +
    975 {
    +
    976 return *static_cast<derived_type*>(this);
    +
    977 }
    +
    978
    +
    979 template <class D>
    +
    980 inline auto xslice<D>::derived_cast() const noexcept -> const derived_type&
    +
    981 {
    +
    982 return *static_cast<const derived_type*>(this);
    +
    983 }
    +
    984
    +
    985 /*************************
    +
    986 * xrange implementation *
    +
    987 *************************/
    +
    988
    +
    989 template <class T>
    +
    990 inline xrange<T>::xrange(size_type start_val, size_type stop_val) noexcept
    +
    991 : m_start(start_val)
    +
    992 , m_size(stop_val > start_val ? stop_val - start_val : 0)
    +
    993 {
    +
    994 }
    +
    995
    +
    996 template <class T>
    +
    997 template <std::convertible_to<T> S>
    +
    998 inline xrange<T>::operator xrange<S>() const noexcept
    +
    999 {
    +
    1000 xrange<S> ret;
    +
    1001 ret.m_start = static_cast<S>(m_start);
    +
    1002 ret.m_size = static_cast<S>(m_size);
    +
    1003 return ret;
    +
    1004 }
    +
    1005
    +
    1006 template <class T>
    +
    1007 template <std::convertible_to<T> S>
    +
    1008 inline xrange<S> xrange<T>::convert() const noexcept
    +
    1009 {
    +
    1010 return xrange<S>(*this);
    +
    1011 }
    +
    1012
    +
    1013 template <class T>
    +
    1014 inline auto xrange<T>::operator()(size_type i) const noexcept -> size_type
    +
    1015 {
    +
    1016 return m_start + i;
    +
    1017 }
    +
    1018
    +
    1019 template <class T>
    +
    1020 inline auto xrange<T>::size() const noexcept -> size_type
    +
    1021 {
    +
    1022 return m_size;
    +
    1023 }
    +
    1024
    +
    1025 template <class T>
    +
    1026 inline auto xrange<T>::step_size() const noexcept -> size_type
    +
    1027 {
    +
    1028 return 1;
    +
    1029 }
    +
    1030
    +
    1031 template <class T>
    +
    1032 inline auto xrange<T>::step_size(std::size_t /*i*/, std::size_t n) const noexcept -> size_type
    +
    1033 {
    +
    1034 return static_cast<size_type>(n);
    +
    1035 }
    +
    1036
    +
    1037 template <class T>
    +
    1038 inline auto xrange<T>::revert_index(std::size_t i) const noexcept -> size_type
    +
    1039 {
    +
    1040 return i - m_start;
    +
    1041 }
    +
    1042
    +
    1043 template <class T>
    +
    1044 inline bool xrange<T>::contains(size_type i) const noexcept
    +
    1045 {
    +
    1046 return i >= m_start && i < m_start + m_size;
    +
    1047 }
    +
    1048
    +
    1049 template <class T>
    +
    1050 inline bool xrange<T>::operator==(const self_type& rhs) const noexcept
    +
    1051 {
    +
    1052 return (m_start == rhs.m_start) && (m_size == rhs.m_size);
    +
    1053 }
    +
    1054
    +
    1055 template <class T>
    +
    1056 inline bool xrange<T>::operator!=(const self_type& rhs) const noexcept
    +
    1057 {
    +
    1058 return !(*this == rhs);
    +
    1059 }
    +
    1060
    +
    1061 /********************************
    +
    1062 * xtepped_range implementation *
    +
    1063 ********************************/
    +
    1064
    +
    1065 template <class T>
    +
    1066 inline xstepped_range<T>::xstepped_range(size_type start_val, size_type stop_val, size_type step) noexcept
    +
    1067 : m_start(start_val)
    +
    1068 , m_size(size_type(0))
    +
    1069 , m_step(step)
    +
    1070 {
    +
    1071 size_type n = stop_val - start_val;
    +
    1072 m_size = n / step + (((n < 0) ^ (step > 0)) && (n % step));
    +
    1073 }
    +
    1074
    +
    1075 template <class T>
    +
    1076 template <std::convertible_to<T> S>
    +
    1077 inline xstepped_range<T>::operator xstepped_range<S>() const noexcept
    +
    1078 {
    + +
    1080 ret.m_start = static_cast<S>(m_start);
    +
    1081 ret.m_size = static_cast<S>(m_size);
    +
    1082 ret.m_step = static_cast<S>(m_step);
    +
    1083 return ret;
    +
    1084 }
    +
    1085
    +
    1086 template <class T>
    +
    1087 template <std::convertible_to<T> S>
    +
    1088 inline xstepped_range<S> xstepped_range<T>::convert() const noexcept
    +
    1089 {
    +
    1090 return xstepped_range<S>(*this);
    +
    1091 }
    +
    1092
    +
    1093 template <class T>
    +
    1094 inline auto xstepped_range<T>::operator()(size_type i) const noexcept -> size_type
    +
    1095 {
    +
    1096 return m_start + i * m_step;
    +
    1097 }
    +
    1098
    +
    1099 template <class T>
    +
    1100 inline auto xstepped_range<T>::size() const noexcept -> size_type
    +
    1101 {
    +
    1102 return m_size;
    +
    1103 }
    +
    1104
    +
    1105 template <class T>
    +
    1106 inline auto xstepped_range<T>::step_size() const noexcept -> size_type
    +
    1107 {
    +
    1108 return m_step;
    +
    1109 }
    +
    1110
    +
    1111 template <class T>
    +
    1112 inline auto xstepped_range<T>::step_size(std::size_t /*i*/, std::size_t n) const noexcept -> size_type
    +
    1113 {
    +
    1114 return m_step * static_cast<size_type>(n);
    +
    1115 }
    +
    1116
    +
    1117 template <class T>
    +
    1118 inline auto xstepped_range<T>::revert_index(std::size_t i) const noexcept -> size_type
    +
    1119 {
    +
    1120 return (i - m_start) / m_step;
    +
    1121 }
    +
    1122
    +
    1123 template <class T>
    +
    1124 inline bool xstepped_range<T>::contains(size_type i) const noexcept
    +
    1125 {
    +
    1126 return i >= m_start && i < m_start + m_size * m_step && ((i - m_start) % m_step == 0);
    +
    1127 }
    +
    1128
    +
    1129 template <class T>
    +
    1130 inline bool xstepped_range<T>::operator==(const self_type& rhs) const noexcept
    +
    1131 {
    +
    1132 return (m_start == rhs.m_start) && (m_size == rhs.m_size) && (m_step == rhs.m_step);
    +
    1133 }
    +
    1134
    +
    1135 template <class T>
    +
    1136 inline bool xstepped_range<T>::operator!=(const self_type& rhs) const noexcept
    +
    1137 {
    +
    1138 return !(*this == rhs);
    +
    1139 }
    +
    1140
    +
    1141 /***********************
    +
    1142 * xall implementation *
    +
    1143 ***********************/
    +
    1144
    +
    1145 template <class T>
    +
    1146 inline xall<T>::xall(size_type size) noexcept
    +
    1147 : m_size(size)
    +
    1148 {
    +
    1149 }
    +
    1150
    +
    1151 template <class T>
    +
    1152 template <std::convertible_to<T> S>
    +
    1153 inline xall<T>::operator xall<S>() const noexcept
    +
    1154 {
    +
    1155 return xall<S>(static_cast<S>(m_size));
    +
    1156 }
    +
    1157
    +
    1158 template <class T>
    +
    1159 template <std::convertible_to<T> S>
    +
    1160 inline xall<S> xall<T>::convert() const noexcept
    +
    1161 {
    +
    1162 return xall<S>(*this);
    +
    1163 }
    +
    1164
    +
    1165 template <class T>
    +
    1166 inline auto xall<T>::operator()(size_type i) const noexcept -> size_type
    +
    1167 {
    +
    1168 return i;
    +
    1169 }
    +
    1170
    +
    1171 template <class T>
    +
    1172 inline auto xall<T>::size() const noexcept -> size_type
    +
    1173 {
    +
    1174 return m_size;
    +
    1175 }
    +
    1176
    +
    1177 template <class T>
    +
    1178 inline auto xall<T>::step_size() const noexcept -> size_type
    +
    1179 {
    +
    1180 return 1;
    +
    1181 }
    +
    1182
    +
    1183 template <class T>
    +
    1184 inline auto xall<T>::step_size(std::size_t /*i*/, std::size_t n) const noexcept -> size_type
    +
    1185 {
    +
    1186 return static_cast<size_type>(n);
    +
    1187 }
    +
    1188
    +
    1189 template <class T>
    +
    1190 inline auto xall<T>::revert_index(std::size_t i) const noexcept -> size_type
    +
    1191 {
    +
    1192 return i;
    +
    1193 }
    +
    1194
    +
    1195 template <class T>
    +
    1196 inline bool xall<T>::contains(size_type i) const noexcept
    +
    1197 {
    +
    1198 return i < m_size;
    +
    1199 }
    +
    1200
    +
    1201 template <class T>
    +
    1202 inline bool xall<T>::operator==(const self_type& rhs) const noexcept
    +
    1203 {
    +
    1204 return m_size == rhs.m_size;
    +
    1205 }
    +
    1206
    +
    1207 template <class T>
    +
    1208 inline bool xall<T>::operator!=(const self_type& rhs) const noexcept
    +
    1209 {
    +
    1210 return !(*this == rhs);
    +
    1211 }
    +
    1212
    +
    1213 /***************************
    +
    1214 * xnewaxis implementation *
    +
    1215 ***************************/
    +
    1216
    +
    1217 template <class T>
    +
    1218 template <std::convertible_to<T> S>
    +
    1219 inline xnewaxis<T>::operator xnewaxis<S>() const noexcept
    +
    1220 {
    +
    1221 return xnewaxis<S>();
    +
    1222 }
    +
    1223
    +
    1224 template <class T>
    +
    1225 template <std::convertible_to<T> S>
    +
    1226 inline xnewaxis<S> xnewaxis<T>::convert() const noexcept
    +
    1227 {
    +
    1228 return xnewaxis<S>(*this);
    +
    1229 }
    +
    1230
    +
    1231 template <class T>
    +
    1232 inline auto xnewaxis<T>::operator()(size_type) const noexcept -> size_type
    +
    1233 {
    +
    1234 return 0;
    +
    1235 }
    +
    1236
    +
    1237 template <class T>
    +
    1238 inline auto xnewaxis<T>::size() const noexcept -> size_type
    +
    1239 {
    +
    1240 return 1;
    +
    1241 }
    +
    1242
    +
    1243 template <class T>
    +
    1244 inline auto xnewaxis<T>::step_size() const noexcept -> size_type
    +
    1245 {
    +
    1246 return 0;
    +
    1247 }
    +
    1248
    +
    1249 template <class T>
    +
    1250 inline auto xnewaxis<T>::step_size(std::size_t /*i*/, std::size_t /*n*/) const noexcept -> size_type
    +
    1251 {
    +
    1252 return 0;
    +
    1253 }
    +
    1254
    +
    1255 template <class T>
    +
    1256 inline auto xnewaxis<T>::revert_index(std::size_t i) const noexcept -> size_type
    +
    1257 {
    +
    1258 return i;
    +
    1259 }
    +
    1260
    +
    1261 template <class T>
    +
    1262 inline bool xnewaxis<T>::contains(size_type i) const noexcept
    +
    1263 {
    +
    1264 return i == 0;
    +
    1265 }
    +
    1266
    +
    1267 template <class T>
    +
    1268 inline bool xnewaxis<T>::operator==(const self_type& /*rhs*/) const noexcept
    +
    1269 {
    +
    1270 return true;
    +
    1271 }
    +
    1272
    +
    1273 template <class T>
    +
    1274 inline bool xnewaxis<T>::operator!=(const self_type& /*rhs*/) const noexcept
    +
    1275 {
    +
    1276 return true;
    +
    1277 }
    +
    1278
    +
    1279 /******************************
    +
    1280 * xkeep_slice implementation *
    +
    1281 ******************************/
    +
    1282
    +
    1283 template <class T>
    +
    1284 template <class C>
    +
    1285 inline xkeep_slice<T>::xkeep_slice(C& cont)
    +
    1286 requires(!detail::is_xkeep_slice<std::decay_t<C>>::value)
    +
    1287 : m_raw_indices(cont.begin(), cont.end())
    +
    1288 {
    +
    1289 }
    +
    1290
    +
    1291 template <class T>
    +
    1292 inline xkeep_slice<T>::xkeep_slice(container_type&& cont)
    +
    1293 : m_raw_indices(std::move(cont))
    +
    1294 {
    +
    1295 }
    +
    1296
    +
    1297 template <class T>
    +
    1298 template <class S>
    +
    1299 inline xkeep_slice<T>::xkeep_slice(std::initializer_list<S> t)
    +
    1300 : m_raw_indices(t.size())
    +
    1301 {
    +
    1302 std::transform(
    +
    1303 t.begin(),
    +
    1304 t.end(),
    +
    1305 m_raw_indices.begin(),
    +
    1306 [](auto t)
    +
    1307 {
    +
    1308 return static_cast<size_type>(t);
    +
    1309 }
    +
    1310 );
    +
    1311 }
    +
    1312
    +
    1313 template <class T>
    +
    1314 template <std::convertible_to<T> S>
    +
    1315 inline xkeep_slice<T>::operator xkeep_slice<S>() const noexcept
    +
    1316 {
    +
    1317 xkeep_slice<S> ret;
    +
    1318 using us_type = typename container_type::size_type;
    +
    1319 us_type sz = static_cast<us_type>(size());
    +
    1320 ret.m_raw_indices.resize(sz);
    +
    1321 ret.m_indices.resize(sz);
    +
    1322 std::transform(
    +
    1323 m_raw_indices.cbegin(),
    +
    1324 m_raw_indices.cend(),
    +
    1325 ret.m_raw_indices.begin(),
    +
    1326 [](const T& val)
    +
    1327 {
    +
    1328 return static_cast<S>(val);
    +
    1329 }
    +
    1330 );
    +
    1331 std::transform(
    +
    1332 m_indices.cbegin(),
    +
    1333 m_indices.cend(),
    +
    1334 ret.m_indices.begin(),
    +
    1335 [](const T& val)
    +
    1336 {
    +
    1337 return static_cast<S>(val);
    +
    1338 }
    +
    1339 );
    +
    1340 return ret;
    +
    1341 }
    +
    1342
    +
    1343 template <class T>
    +
    1344 template <std::convertible_to<T> S>
    +
    1345 inline xkeep_slice<S> xkeep_slice<T>::convert() const noexcept
    +
    1346 {
    +
    1347 return xkeep_slice<S>(*this);
    +
    1348 }
    +
    1349
    +
    1350 template <class T>
    +
    1351 inline void xkeep_slice<T>::normalize(std::size_t shape)
    +
    1352 {
    +
    1353 m_indices.resize(m_raw_indices.size());
    +
    1354 std::size_t sz = m_indices.size();
    +
    1355 for (std::size_t i = 0; i < sz; ++i)
    +
    1356 {
    +
    1357 m_indices[i] = m_raw_indices[i] < 0 ? static_cast<size_type>(shape) + m_raw_indices[i]
    +
    1358 : m_raw_indices[i];
    +
    1359 }
    +
    1360 }
    +
    1361
    +
    1362 template <class T>
    +
    1363 inline auto xkeep_slice<T>::operator()(size_type i) const noexcept -> size_type
    +
    1364 {
    +
    1365 return m_indices.size() == size_type(1) ? m_indices.front() : m_indices[static_cast<std::size_t>(i)];
    +
    1366 }
    +
    1367
    +
    1368 template <class T>
    +
    1369 inline auto xkeep_slice<T>::size() const noexcept -> size_type
    +
    1370 {
    +
    1371 return static_cast<size_type>(m_raw_indices.size());
    +
    1372 }
    +
    1373
    +
    1374 template <class T>
    +
    1375 inline auto xkeep_slice<T>::step_size(std::size_t i, std::size_t n) const noexcept -> size_type
    +
    1376 {
    +
    1377 if (m_indices.size() == 1)
    +
    1378 {
    +
    1379 return 0;
    +
    1380 }
    +
    1381 if (i + n >= m_indices.size())
    +
    1382 {
    +
    1383 return m_indices.back() - m_indices[i] + 1;
    +
    1384 }
    +
    1385 else
    +
    1386 {
    +
    1387 return m_indices[i + n] - m_indices[i];
    +
    1388 }
    +
    1389 }
    +
    1390
    +
    1391 template <class T>
    +
    1392 inline auto xkeep_slice<T>::revert_index(std::size_t i) const -> size_type
    +
    1393 {
    +
    1394 auto it = std::find(m_indices.begin(), m_indices.end(), i);
    +
    1395 if (it != m_indices.end())
    +
    1396 {
    +
    1397 return std::distance(m_indices.begin(), it);
    +
    1398 }
    +
    1399 else
    +
    1400 {
    +
    1401 XTENSOR_THROW(std::runtime_error, "Index i (" + std::to_string(i) + ") not in indices of islice.");
    +
    1402 }
    +
    1403 }
    +
    1404
    +
    1405 template <class T>
    +
    1406 inline bool xkeep_slice<T>::contains(size_type i) const noexcept
    +
    1407 {
    +
    1408 return (std::find(m_indices.begin(), m_indices.end(), i) == m_indices.end()) ? false : true;
    +
    1409 }
    +
    1410
    +
    1411 template <class T>
    +
    1412 inline bool xkeep_slice<T>::operator==(const self_type& rhs) const noexcept
    +
    1413 {
    +
    1414 return m_indices == rhs.m_indices;
    +
    1415 }
    +
    1416
    +
    1417 template <class T>
    +
    1418 inline bool xkeep_slice<T>::operator!=(const self_type& rhs) const noexcept
    +
    1419 {
    +
    1420 return !(*this == rhs);
    +
    1421 }
    +
    1422
    +
    1423 /******************************
    +
    1424 * xdrop_slice implementation *
    +
    1425 ******************************/
    +
    1426
    +
    1427 template <class T>
    +
    1428 template <class C>
    +
    1429 inline xdrop_slice<T>::xdrop_slice(C& cont)
    +
    1430 requires(!detail::is_xdrop_slice<std::decay_t<C>>::value)
    +
    1431 : m_raw_indices(cont.begin(), cont.end())
    +
    1432 {
    +
    1433 }
    +
    1434
    +
    1435 template <class T>
    +
    1436 inline xdrop_slice<T>::xdrop_slice(container_type&& cont)
    +
    1437 : m_raw_indices(std::move(cont))
    +
    1438 {
    +
    1439 }
    +
    1440
    +
    1441 template <class T>
    +
    1442 template <class S>
    +
    1443 inline xdrop_slice<T>::xdrop_slice(std::initializer_list<S> t)
    +
    1444 : m_raw_indices(t.size())
    +
    1445 {
    +
    1446 std::transform(
    +
    1447 t.begin(),
    +
    1448 t.end(),
    +
    1449 m_raw_indices.begin(),
    +
    1450 [](auto t)
    +
    1451 {
    +
    1452 return static_cast<size_type>(t);
    +
    1453 }
    +
    1454 );
    +
    1455 }
    +
    1456
    +
    1457 template <class T>
    +
    1458 template <std::convertible_to<T> S>
    +
    1459 inline xdrop_slice<T>::operator xdrop_slice<S>() const noexcept
    +
    1460 {
    +
    1461 xdrop_slice<S> ret;
    +
    1462 ret.m_raw_indices.resize(m_raw_indices.size());
    +
    1463 ret.m_indices.resize(m_indices.size());
    +
    1464 std::transform(
    +
    1465 m_raw_indices.cbegin(),
    +
    1466 m_raw_indices.cend(),
    +
    1467 ret.m_raw_indices.begin(),
    +
    1468 [](const T& val)
    +
    1469 {
    +
    1470 return static_cast<S>(val);
    +
    1471 }
    +
    1472 );
    +
    1473 std::transform(
    +
    1474 m_indices.cbegin(),
    +
    1475 m_indices.cend(),
    +
    1476 ret.m_indices.begin(),
    +
    1477 [](const T& val)
    +
    1478 {
    +
    1479 return static_cast<S>(val);
    +
    1480 }
    +
    1481 );
    +
    1482 std::transform(
    +
    1483 m_inc.cbegin(),
    +
    1484 m_inc.cend(),
    +
    1485 std::inserter(ret.m_inc, ret.m_inc.begin()),
    +
    1486 [](const auto& val)
    +
    1487 {
    +
    1488 return std::make_pair(static_cast<S>(val.first), static_cast<S>(val.second));
    +
    1489 }
    +
    1490 );
    +
    1491 ret.m_size = static_cast<S>(m_size);
    +
    1492 return ret;
    +
    1493 }
    +
    1494
    +
    1495 template <class T>
    +
    1496 template <std::convertible_to<T> S>
    +
    1497 inline xdrop_slice<S> xdrop_slice<T>::convert() const noexcept
    +
    1498 {
    +
    1499 return xdrop_slice<S>(*this);
    +
    1500 }
    +
    1501
    +
    1502 template <class T>
    +
    1503 inline void xdrop_slice<T>::normalize(std::size_t shape)
    +
    1504 {
    +
    1505 m_size = static_cast<size_type>(shape - m_raw_indices.size());
    +
    1506
    +
    1507 m_indices.resize(m_raw_indices.size());
    +
    1508 std::size_t sz = m_indices.size();
    +
    1509 for (std::size_t i = 0; i < sz; ++i)
    +
    1510 {
    +
    1511 m_indices[i] = m_raw_indices[i] < 0 ? static_cast<size_type>(shape) + m_raw_indices[i]
    +
    1512 : m_raw_indices[i];
    +
    1513 }
    +
    1514 size_type cum = size_type(0);
    +
    1515 size_type prev_cum = cum;
    +
    1516 for (std::size_t i = 0; i < sz; ++i)
    +
    1517 {
    +
    1518 std::size_t ind = i;
    +
    1519 size_type d = m_indices[i];
    +
    1520 while (i + 1 < sz && m_indices[i + 1] == m_indices[i] + 1)
    +
    1521 {
    +
    1522 ++i;
    +
    1523 }
    +
    1524 cum += (static_cast<size_type>(i) - static_cast<size_type>(ind)) + 1;
    +
    1525 m_inc[d - prev_cum] = cum;
    +
    1526 prev_cum = cum;
    +
    1527 }
    +
    1528 }
    +
    1529
    +
    1530 template <class T>
    +
    1531 inline auto xdrop_slice<T>::operator()(size_type i) const noexcept -> size_type
    +
    1532 {
    +
    1533 if (m_inc.empty() || i < m_inc.begin()->first)
    +
    1534 {
    +
    1535 return i;
    +
    1536 }
    +
    1537 else
    +
    1538 {
    +
    1539 auto iter = --m_inc.upper_bound(i);
    +
    1540 return i + iter->second;
    +
    1541 }
    +
    1542 }
    +
    1543
    +
    1544 template <class T>
    +
    1545 inline auto xdrop_slice<T>::size() const noexcept -> size_type
    +
    1546 {
    +
    1547 return m_size;
    +
    1548 }
    +
    1549
    +
    1550 template <class T>
    +
    1551 inline auto xdrop_slice<T>::step_size(std::size_t i, std::size_t n) const noexcept -> size_type
    +
    1552 {
    +
    1553 if (i + n >= static_cast<std::size_t>(m_size))
    +
    1554 {
    +
    1555 return (*this)(static_cast<size_type>(m_size - 1)) - (*this)(static_cast<size_type>(i)) + 1;
    +
    1556 }
    +
    1557 else
    +
    1558 {
    +
    1559 return (*this)(static_cast<size_type>(i + n)) - (*this)(static_cast<size_type>(i));
    +
    1560 }
    +
    1561 }
    +
    1562
    +
    1563 template <class T>
    +
    1564 inline auto xdrop_slice<T>::revert_index(std::size_t i) const -> size_type
    +
    1565 {
    +
    1566 if (i < m_inc.begin()->first)
    +
    1567 {
    +
    1568 return i;
    +
    1569 }
    +
    1570 else
    +
    1571 {
    +
    1572 auto iter = --m_inc.lower_bound(i);
    +
    1573 auto check = iter->first + iter->second;
    +
    1574 if (check > i)
    +
    1575 {
    +
    1576 --iter;
    +
    1577 }
    +
    1578 return i - iter->second;
    +
    1579 }
    +
    1580 }
    +
    1581
    +
    1582 template <class T>
    +
    1583 inline bool xdrop_slice<T>::contains(size_type i) const noexcept
    +
    1584 {
    +
    1585 return (std::find(m_indices.begin(), m_indices.end(), i) == m_indices.end()) ? true : false;
    +
    1586 }
    +
    1587
    +
    1588 template <class T>
    +
    1589 inline bool xdrop_slice<T>::operator==(const self_type& rhs) const noexcept
    +
    1590 {
    +
    1591 return m_indices == rhs.m_indices;
    +
    1592 }
    +
    1593
    +
    1594 template <class T>
    +
    1595 inline bool xdrop_slice<T>::operator!=(const self_type& rhs) const noexcept
    +
    1596 {
    +
    1597 return !(*this == rhs);
    +
    1598 }
    +
    1599}
    +
    1600
    +
    1601#undef XTENSOR_CONSTEXPR
    +
    1602
    +
    1603#endif
    + + + + + + + +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    auto newaxis() noexcept
    Returns a slice representing a new axis of length one, to be used as an argument of view function.
    Definition xslice.hpp:297
    +
    auto ellipsis() noexcept
    Returns a slice representing all remaining dimensions, and selecting all in these dimensions.
    Definition xslice.hpp:252
    +
    auto drop(T &&indices)
    Create a non-contigous slice from a container of indices to drop.
    Definition xslice.hpp:495
    +
    auto keep(T &&indices)
    Create a non-contigous slice from a container of indices to keep.
    Definition xslice.hpp:386
    + + + + + + +
    +
    + + + + diff --git a/xsort_8hpp_source.html b/xsort_8hpp_source.html new file mode 100644 index 000000000..a8a3d8bc1 --- /dev/null +++ b/xsort_8hpp_source.html @@ -0,0 +1,1306 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xsort.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xsort.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_SORT_HPP
    +
    11#define XTENSOR_SORT_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cmath>
    +
    15#include <iterator>
    +
    16#include <utility>
    +
    17
    +
    18#include <xtl/xcompare.hpp>
    +
    19
    +
    20#include "../containers/xadapt.hpp"
    +
    21#include "../containers/xarray.hpp"
    +
    22#include "../containers/xtensor.hpp"
    +
    23#include "../core/xeval.hpp"
    +
    24#include "../core/xmath.hpp"
    +
    25#include "../core/xtensor_config.hpp"
    +
    26#include "../core/xtensor_forward.hpp"
    +
    27#include "../misc/xmanipulation.hpp"
    +
    28#include "../views/xindex_view.hpp"
    +
    29#include "../views/xslice.hpp" // for xnone
    +
    30#include "../views/xview.hpp"
    +
    31
    +
    32namespace xt
    +
    33{
    +
    40
    +
    41 namespace detail
    +
    42 {
    +
    43 template <class T>
    +
    44 std::ptrdiff_t adjust_secondary_stride(std::ptrdiff_t stride, T shape)
    +
    45 {
    +
    46 return stride != 0 ? stride : static_cast<std::ptrdiff_t>(shape);
    +
    47 }
    +
    48
    +
    49 template <class E>
    +
    50 inline std::ptrdiff_t get_secondary_stride(const E& ev)
    +
    51 {
    +
    52 if (ev.layout() == layout_type::row_major)
    +
    53 {
    +
    54 return adjust_secondary_stride(ev.strides()[ev.dimension() - 2], *(ev.shape().end() - 1));
    +
    55 }
    +
    56
    +
    57 return adjust_secondary_stride(ev.strides()[1], *(ev.shape().begin()));
    +
    58 }
    +
    59
    +
    60 template <class E>
    +
    61 inline std::size_t leading_axis_n_iters(const E& ev)
    +
    62 {
    +
    63 if (ev.layout() == layout_type::row_major)
    +
    64 {
    +
    65 return std::accumulate(
    +
    66 ev.shape().begin(),
    +
    67 ev.shape().end() - 1,
    +
    68 std::size_t(1),
    +
    69 std::multiplies<>()
    +
    70 );
    +
    71 }
    +
    72 return std::accumulate(ev.shape().begin() + 1, ev.shape().end(), std::size_t(1), std::multiplies<>());
    +
    73 }
    +
    74
    +
    75 template <class E, class F>
    +
    76 inline void call_over_leading_axis(E& ev, F&& fct)
    +
    77 {
    +
    78 XTENSOR_ASSERT(ev.dimension() >= 2);
    +
    79
    +
    80 const std::size_t n_iters = leading_axis_n_iters(ev);
    +
    81 const std::ptrdiff_t secondary_stride = get_secondary_stride(ev);
    +
    82
    +
    83 const auto begin = ev.data();
    +
    84 const auto end = begin + n_iters * secondary_stride;
    +
    85 for (auto iter = begin; iter != end; iter += secondary_stride)
    +
    86 {
    +
    87 fct(iter, iter + secondary_stride);
    +
    88 }
    +
    89 }
    +
    90
    +
    91 template <class E1, class E2, class F>
    +
    92 inline void call_over_leading_axis(E1& e1, E2& e2, F&& fct)
    +
    93 {
    +
    94 XTENSOR_ASSERT(e1.dimension() >= 2);
    +
    95 XTENSOR_ASSERT(e1.dimension() == e2.dimension());
    +
    96
    +
    97 const std::size_t n_iters = leading_axis_n_iters(e1);
    +
    98 const std::ptrdiff_t secondary_stride1 = get_secondary_stride(e1);
    +
    99 const std::ptrdiff_t secondary_stride2 = get_secondary_stride(e2);
    +
    100 XTENSOR_ASSERT(secondary_stride1 == secondary_stride2);
    +
    101
    +
    102 const auto begin1 = e1.data();
    +
    103 const auto end1 = begin1 + n_iters * secondary_stride1;
    +
    104 const auto begin2 = e2.data();
    +
    105 const auto end2 = begin2 + n_iters * secondary_stride2;
    +
    106 auto iter1 = begin1;
    +
    107 auto iter2 = begin2;
    +
    108 for (; (iter1 != end1) && (iter2 != end2); iter1 += secondary_stride1, iter2 += secondary_stride2)
    +
    109 {
    +
    110 fct(iter1, iter1 + secondary_stride1, iter2, iter2 + secondary_stride2);
    +
    111 }
    +
    112 }
    +
    113
    +
    114 template <class E>
    +
    115 inline std::size_t leading_axis(const E& e)
    +
    116 {
    +
    117 if (e.layout() == layout_type::row_major)
    +
    118 {
    +
    119 return e.dimension() - 1;
    +
    120 }
    +
    121 else if (e.layout() == layout_type::column_major)
    +
    122 {
    +
    123 return 0;
    +
    124 }
    +
    125 XTENSOR_THROW(std::runtime_error, "Layout not supported.");
    +
    126 }
    +
    127
    +
    128 // get permutations to transpose and reverse-transpose array
    +
    129 inline std::pair<dynamic_shape<std::size_t>, dynamic_shape<std::size_t>>
    +
    130 get_permutations(std::size_t dim, std::size_t ax, layout_type layout)
    +
    131 {
    +
    132 dynamic_shape<std::size_t> permutation(dim);
    +
    133 std::iota(permutation.begin(), permutation.end(), std::size_t(0));
    +
    134 permutation.erase(permutation.begin() + std::ptrdiff_t(ax));
    +
    135
    +
    136 if (layout == layout_type::row_major)
    +
    137 {
    +
    138 permutation.push_back(ax);
    +
    139 }
    +
    140 else
    +
    141 {
    +
    142 permutation.insert(permutation.begin(), ax);
    +
    143 }
    +
    144
    +
    145 // TODO find a more clever way to get reverse permutation?
    +
    146 dynamic_shape<std::size_t> reverse_permutation;
    +
    147 for (std::size_t i = 0; i < dim; ++i)
    +
    148 {
    +
    149 auto it = std::find(permutation.begin(), permutation.end(), i);
    +
    150 reverse_permutation.push_back(std::size_t(std::distance(permutation.begin(), it)));
    +
    151 }
    +
    152
    +
    153 return std::make_pair(std::move(permutation), std::move(reverse_permutation));
    +
    154 }
    +
    155
    +
    156 template <class R, class E, class F>
    +
    157 inline R map_axis(const E& e, std::ptrdiff_t axis, F&& lambda)
    +
    158 {
    +
    159 if (e.dimension() == 1)
    +
    160 {
    +
    161 R res = e;
    +
    162 lambda(res.begin(), res.end());
    +
    163 return res;
    +
    164 }
    +
    165
    +
    166 const std::size_t ax = normalize_axis(e.dimension(), axis);
    +
    167 if (ax == detail::leading_axis(e))
    +
    168 {
    +
    169 R res = e;
    +
    170 detail::call_over_leading_axis(res, std::forward<F>(lambda));
    +
    171 return res;
    +
    172 }
    +
    173
    +
    174 dynamic_shape<std::size_t> permutation, reverse_permutation;
    +
    175 std::tie(permutation, reverse_permutation) = get_permutations(e.dimension(), ax, e.layout());
    +
    176 R res = transpose(e, permutation);
    +
    177 detail::call_over_leading_axis(res, std::forward<F>(lambda));
    +
    178 res = transpose(res, reverse_permutation);
    +
    179 return res;
    +
    180 }
    +
    181
    +
    182 template <class VT>
    +
    183 struct flatten_sort_result_type_impl
    +
    184 {
    +
    185 using type = VT;
    +
    186 };
    +
    187
    +
    188 template <class VT, std::size_t N, layout_type L>
    +
    189 struct flatten_sort_result_type_impl<xtensor<VT, N, L>>
    +
    190 {
    +
    191 using type = xtensor<VT, 1, L>;
    +
    192 };
    +
    193
    +
    194 template <class VT, class S, layout_type L>
    +
    195 struct flatten_sort_result_type_impl<xtensor_fixed<VT, S, L>>
    +
    196 {
    +
    197 using type = xtensor_fixed<VT, xshape<fixed_compute_size<S>::value>, L>;
    +
    198 };
    +
    199
    +
    200 template <class VT>
    +
    201 struct flatten_sort_result_type : flatten_sort_result_type_impl<common_tensor_type_t<VT>>
    +
    202 {
    +
    203 };
    +
    204
    +
    205 template <class VT>
    +
    206 using flatten_sort_result_type_t = typename flatten_sort_result_type<VT>::type;
    +
    207
    +
    208 template <class E, class R = flatten_sort_result_type_t<E>>
    +
    209 inline auto flat_sort_impl(const xexpression<E>& e)
    +
    210 {
    +
    211 const auto& de = e.derived_cast();
    +
    212 R ev;
    +
    213 ev.resize({static_cast<typename R::shape_type::value_type>(de.size())});
    +
    214
    +
    215 std::copy(de.cbegin(), de.cend(), ev.begin());
    +
    216 std::sort(ev.begin(), ev.end());
    +
    217
    +
    218 return ev;
    +
    219 }
    +
    220 }
    +
    221
    +
    222 template <class E>
    +
    223 inline auto sort(const xexpression<E>& e, placeholders::xtuph /*t*/)
    +
    224 {
    +
    225 return detail::flat_sort_impl(e);
    +
    226 }
    +
    227
    +
    228 namespace detail
    +
    229 {
    +
    230 template <class T>
    +
    231 struct sort_eval_type
    +
    232 {
    +
    233 using type = typename T::temporary_type;
    +
    234 };
    +
    235
    +
    236 template <class T, std::size_t... I, layout_type L>
    +
    237 struct sort_eval_type<xtensor_fixed<T, fixed_shape<I...>, L>>
    +
    238 {
    +
    239 using type = xtensor<T, sizeof...(I), L>;
    +
    240 };
    +
    241 }
    +
    242
    +
    254 template <class E>
    +
    +
    255 inline auto sort(const xexpression<E>& e, std::ptrdiff_t axis = -1)
    +
    256 {
    +
    257 using eval_type = typename detail::sort_eval_type<E>::type;
    +
    258
    +
    259 return detail::map_axis<eval_type>(
    +
    260 e.derived_cast(),
    +
    261 axis,
    +
    262 [](auto begin, auto end)
    +
    263 {
    +
    264 std::sort(begin, end);
    +
    265 }
    +
    266 );
    +
    267 }
    +
    +
    268
    +
    269 /*****************************
    +
    270 * Implementation of argsort *
    +
    271 *****************************/
    +
    272
    +
    +
    278 enum class sorting_method
    +
    279 {
    + + +
    290 };
    +
    +
    291
    +
    292 namespace detail
    +
    293 {
    +
    294 template <class ConstRandomIt, class RandomIt, class Compare, class Method>
    +
    295 inline void argsort_iter(
    +
    296 ConstRandomIt data_begin,
    +
    297 ConstRandomIt data_end,
    +
    298 RandomIt idx_begin,
    +
    299 RandomIt idx_end,
    +
    300 Compare comp,
    +
    301 Method method
    +
    302 )
    +
    303 {
    +
    304 XTENSOR_ASSERT(std::distance(data_begin, data_end) >= 0);
    +
    305 XTENSOR_ASSERT(std::distance(idx_begin, idx_end) == std::distance(data_begin, data_end));
    +
    306 (void) idx_end; // TODO(C++17) [[maybe_unused]] only used in assertion.
    +
    307
    +
    308 std::iota(idx_begin, idx_end, 0);
    +
    309 switch (method)
    +
    310 {
    + +
    312 {
    +
    313 std::sort(
    +
    314 idx_begin,
    +
    315 idx_end,
    +
    316 [&](const auto i, const auto j)
    +
    317 {
    +
    318 return comp(*(data_begin + i), *(data_begin + j));
    +
    319 }
    +
    320 );
    +
    321 }
    + +
    323 {
    +
    324 std::stable_sort(
    +
    325 idx_begin,
    +
    326 idx_end,
    +
    327 [&](const auto i, const auto j)
    +
    328 {
    +
    329 return comp(*(data_begin + i), *(data_begin + j));
    +
    330 }
    +
    331 );
    +
    332 }
    +
    333 }
    +
    334 }
    +
    335
    +
    336 template <class ConstRandomIt, class RandomIt, class Method>
    +
    337 inline void
    +
    338 argsort_iter(ConstRandomIt data_begin, ConstRandomIt data_end, RandomIt idx_begin, RandomIt idx_end, Method method)
    +
    339 {
    +
    340 return argsort_iter(
    +
    341 std::move(data_begin),
    +
    342 std::move(data_end),
    +
    343 std::move(idx_begin),
    +
    344 std::move(idx_end),
    +
    345 [](const auto& x, const auto& y) -> bool
    +
    346 {
    +
    347 return x < y;
    +
    348 },
    +
    349 method
    +
    350 );
    +
    351 }
    +
    352
    +
    353 template <class VT, class T>
    +
    354 struct rebind_value_type
    +
    355 {
    + +
    357 };
    +
    358
    +
    359 template <class VT, class EC, layout_type L>
    +
    360 struct rebind_value_type<VT, xarray<EC, L>>
    +
    361 {
    +
    362 using type = xarray<VT, L>;
    +
    363 };
    +
    364
    +
    365 template <class VT, class EC, std::size_t N, layout_type L>
    +
    366 struct rebind_value_type<VT, xtensor<EC, N, L>>
    +
    367 {
    +
    368 using type = xtensor<VT, N, L>;
    +
    369 };
    +
    370
    +
    371 template <class VT, class ET, class S, layout_type L>
    +
    372 struct rebind_value_type<VT, xtensor_fixed<ET, S, L>>
    +
    373 {
    +
    374 using type = xtensor_fixed<VT, S, L>;
    +
    375 };
    +
    376
    +
    377 template <class VT, class T>
    +
    378 struct flatten_rebind_value_type
    +
    379 {
    +
    380 using type = typename rebind_value_type<VT, T>::type;
    +
    381 };
    +
    382
    +
    383 template <class VT, class EC, std::size_t N, layout_type L>
    +
    384 struct flatten_rebind_value_type<VT, xtensor<EC, N, L>>
    +
    385 {
    +
    386 using type = xtensor<VT, 1, L>;
    +
    387 };
    +
    388
    +
    389 template <class VT, class ET, class S, layout_type L>
    +
    390 struct flatten_rebind_value_type<VT, xtensor_fixed<ET, S, L>>
    +
    391 {
    +
    392 using type = xtensor_fixed<VT, xshape<fixed_compute_size<S>::value>, L>;
    +
    393 };
    +
    394
    +
    395 template <class T>
    +
    396 struct argsort_result_type
    +
    397 {
    +
    398 using type = typename rebind_value_type<typename T::temporary_type::size_type, typename T::temporary_type>::type;
    +
    399 };
    +
    400
    +
    401 template <class T>
    +
    402 struct linear_argsort_result_type
    +
    403 {
    +
    404 using type = typename flatten_rebind_value_type<
    +
    405 typename T::temporary_type::size_type,
    +
    406 typename T::temporary_type>::type;
    +
    407 };
    +
    408
    +
    409 template <class E, class R = typename detail::linear_argsort_result_type<E>::type, class Method>
    +
    410 inline auto flatten_argsort_impl(const xexpression<E>& e, Method method)
    +
    411 {
    +
    412 const auto& de = e.derived_cast();
    +
    413
    +
    414 auto cit = de.template begin<layout_type::row_major>();
    +
    415 using const_iterator = decltype(cit);
    +
    416 auto ad = xiterator_adaptor<const_iterator, const_iterator>(cit, cit, de.size());
    +
    417
    +
    418 using result_type = R;
    +
    419 result_type result;
    +
    420 result.resize({de.size()});
    +
    421
    +
    422 detail::argsort_iter(de.cbegin(), de.cend(), result.begin(), result.end(), method);
    +
    423
    +
    424 return result;
    +
    425 }
    +
    426 }
    +
    427
    +
    428 template <class E>
    +
    429 inline auto
    + +
    431 {
    +
    432 return detail::flatten_argsort_impl(e, method);
    +
    433 }
    +
    434
    +
    450 template <class E>
    +
    451 inline auto
    +
    +
    452 argsort(const xexpression<E>& e, std::ptrdiff_t axis = -1, sorting_method method = sorting_method::quick)
    +
    453 {
    +
    454 using eval_type = typename detail::sort_eval_type<E>::type;
    +
    455 using result_type = typename detail::argsort_result_type<eval_type>::type;
    +
    456
    +
    457 const auto& de = e.derived_cast();
    +
    458
    +
    459 std::size_t ax = normalize_axis(de.dimension(), axis);
    +
    460
    +
    461 if (de.dimension() == 1)
    +
    462 {
    +
    463 return detail::flatten_argsort_impl<E, result_type>(e, method);
    +
    464 }
    +
    465
    +
    466 const auto argsort = [&method](auto res_begin, auto res_end, auto ev_begin, auto ev_end)
    +
    467 {
    +
    468 detail::argsort_iter(ev_begin, ev_end, res_begin, res_end, method);
    +
    469 };
    +
    470
    +
    471 if (ax == detail::leading_axis(de))
    +
    472 {
    +
    473 result_type res = result_type::from_shape(de.shape());
    +
    474 detail::call_over_leading_axis(res, de, argsort);
    +
    475 return res;
    +
    476 }
    +
    477
    +
    478 dynamic_shape<std::size_t> permutation, reverse_permutation;
    +
    479 std::tie(permutation, reverse_permutation) = detail::get_permutations(de.dimension(), ax, de.layout());
    +
    480 eval_type ev = transpose(de, permutation);
    +
    481 result_type res = result_type::from_shape(ev.shape());
    +
    482 detail::call_over_leading_axis(res, ev, argsort);
    +
    483 res = transpose(res, reverse_permutation);
    +
    484 return res;
    +
    485 }
    +
    +
    486
    +
    487 /************************************************
    +
    488 * Implementation of partition and argpartition *
    +
    489 ************************************************/
    +
    490
    +
    491 namespace detail
    +
    492 {
    +
    504 template <class RandomIt, class Iter, class Compare>
    +
    505 inline void
    +
    506 partition_iter(RandomIt data_begin, RandomIt data_end, Iter kth_begin, Iter kth_end, Compare comp)
    +
    507 {
    +
    508 XTENSOR_ASSERT(std::distance(data_begin, data_end) >= 0);
    +
    509 XTENSOR_ASSERT(std::distance(kth_begin, kth_end) >= 0);
    +
    510
    +
    511 using idx_type = typename std::iterator_traits<Iter>::value_type;
    +
    512
    +
    513 idx_type k_last = static_cast<idx_type>(std::distance(data_begin, data_end));
    +
    514 for (; kth_begin != kth_end; ++kth_begin)
    +
    515 {
    +
    516 std::nth_element(data_begin, data_begin + *kth_begin, data_begin + k_last, std::move(comp));
    +
    517 k_last = *kth_begin;
    +
    518 }
    +
    519 }
    +
    520
    +
    521 template <class RandomIt, class Iter>
    +
    522 inline void partition_iter(RandomIt data_begin, RandomIt data_end, Iter kth_begin, Iter kth_end)
    +
    523 {
    +
    524 return partition_iter(
    +
    525 std::move(data_begin),
    +
    526 std::move(data_end),
    +
    527 std::move(kth_begin),
    +
    528 std::move(kth_end),
    +
    529 [](const auto& x, const auto& y) -> bool
    +
    530 {
    +
    531 return x < y;
    +
    532 }
    +
    533 );
    +
    534 }
    +
    535 }
    +
    536
    +
    564 template <class E, xtl::non_integral_concept C, class R = detail::flatten_sort_result_type_t<E>>
    +
    +
    565 inline R partition(const xexpression<E>& e, C kth_container, placeholders::xtuph /*ax*/)
    +
    566 {
    +
    567 const auto& de = e.derived_cast();
    +
    568
    +
    569 R ev = R::from_shape({de.size()});
    +
    570 std::sort(kth_container.begin(), kth_container.end());
    +
    571
    +
    572 std::copy(de.linear_cbegin(), de.linear_cend(), ev.linear_begin()); // flatten
    +
    573
    +
    574 detail::partition_iter(ev.linear_begin(), ev.linear_end(), kth_container.rbegin(), kth_container.rend());
    +
    575
    +
    576 return ev;
    +
    577 }
    +
    +
    578
    +
    579 template <class E, class I, std::size_t N, class R = detail::flatten_sort_result_type_t<E>>
    +
    580 inline R partition(const xexpression<E>& e, const I (&kth_container)[N], placeholders::xtuph tag)
    +
    581 {
    +
    582 return partition(
    +
    583 e,
    +
    584 xtl::forward_sequence<std::array<std::size_t, N>, decltype(kth_container)>(kth_container),
    +
    585 tag
    +
    586 );
    +
    587 }
    +
    588
    +
    589 template <class E, class R = detail::flatten_sort_result_type_t<E>>
    +
    590 inline R partition(const xexpression<E>& e, std::size_t kth, placeholders::xtuph tag)
    +
    591 {
    +
    592 return partition(e, std::array<std::size_t, 1>({kth}), tag);
    +
    593 }
    +
    594
    +
    595 template <class E, xtl::non_integral_concept C>
    +
    596 inline auto partition(const xexpression<E>& e, C kth_container, std::ptrdiff_t axis = -1)
    +
    597 {
    +
    598 using eval_type = typename detail::sort_eval_type<E>::type;
    +
    599
    +
    600 std::sort(kth_container.begin(), kth_container.end());
    +
    601
    +
    602 return detail::map_axis<eval_type>(
    +
    603 e.derived_cast(),
    +
    604 axis,
    +
    605 [&kth_container](auto begin, auto end)
    +
    606 {
    +
    607 detail::partition_iter(begin, end, kth_container.rbegin(), kth_container.rend());
    +
    608 }
    +
    609 );
    +
    610 }
    +
    611
    +
    612 template <class E, class T, std::size_t N>
    +
    613 inline auto partition(const xexpression<E>& e, const T (&kth_container)[N], std::ptrdiff_t axis = -1)
    +
    614 {
    +
    615 return partition(
    +
    616 e,
    +
    617 xtl::forward_sequence<std::array<std::size_t, N>, decltype(kth_container)>(kth_container),
    +
    618 axis
    +
    619 );
    +
    620 }
    +
    621
    +
    622 template <class E>
    +
    623 inline auto partition(const xexpression<E>& e, std::size_t kth, std::ptrdiff_t axis = -1)
    +
    624 {
    +
    625 return partition(e, std::array<std::size_t, 1>({kth}), axis);
    +
    626 }
    +
    627
    +
    655 template <
    +
    656 class E,
    +
    657 xtl::non_integral_concept C,
    +
    658 class R = typename detail::linear_argsort_result_type<typename detail::sort_eval_type<E>::type>::type>
    +
    +
    659 inline R argpartition(const xexpression<E>& e, C kth_container, placeholders::xtuph)
    +
    660 {
    +
    661 using eval_type = typename detail::sort_eval_type<E>::type;
    +
    662 using result_type = typename detail::linear_argsort_result_type<eval_type>::type;
    +
    663
    +
    664 const auto& de = e.derived_cast();
    +
    665
    +
    666 result_type res = result_type::from_shape({de.size()});
    +
    667
    +
    668 std::sort(kth_container.begin(), kth_container.end());
    +
    669
    +
    670 std::iota(res.linear_begin(), res.linear_end(), 0);
    +
    671
    +
    672 detail::partition_iter(
    +
    673 res.linear_begin(),
    +
    674 res.linear_end(),
    +
    675 kth_container.rbegin(),
    +
    676 kth_container.rend(),
    +
    677 [&de](std::size_t a, std::size_t b)
    +
    678 {
    +
    679 return de[a] < de[b];
    +
    680 }
    +
    681 );
    +
    682
    +
    683 return res;
    +
    684 }
    +
    +
    685
    +
    686 template <class E, class I, std::size_t N>
    +
    687 inline auto argpartition(const xexpression<E>& e, const I (&kth_container)[N], placeholders::xtuph tag)
    +
    688 {
    +
    689 return argpartition(
    +
    690 e,
    +
    691 xtl::forward_sequence<std::array<std::size_t, N>, decltype(kth_container)>(kth_container),
    +
    692 tag
    +
    693 );
    +
    694 }
    +
    695
    +
    696 template <class E>
    +
    697 inline auto argpartition(const xexpression<E>& e, std::size_t kth, placeholders::xtuph tag)
    +
    698 {
    +
    699 return argpartition(e, std::array<std::size_t, 1>({kth}), tag);
    +
    700 }
    +
    701
    +
    702 template <class E, xtl::non_integral_concept C>
    +
    703 inline auto argpartition(const xexpression<E>& e, C kth_container, std::ptrdiff_t axis = -1)
    +
    704 {
    +
    705 using eval_type = typename detail::sort_eval_type<E>::type;
    +
    706 using result_type = typename detail::argsort_result_type<eval_type>::type;
    +
    707
    +
    708 const auto& de = e.derived_cast();
    +
    709
    +
    710 if (de.dimension() == 1)
    +
    711 {
    +
    712 return argpartition<E, C, result_type>(e, std::forward<C>(kth_container), xnone());
    +
    713 }
    +
    714
    +
    715 std::sort(kth_container.begin(), kth_container.end());
    +
    716 const auto argpartition_w_kth =
    +
    717 [&kth_container](auto res_begin, auto res_end, auto ev_begin, auto /*ev_end*/)
    +
    718 {
    +
    719 std::iota(res_begin, res_end, 0);
    +
    720 detail::partition_iter(
    +
    721 res_begin,
    +
    722 res_end,
    +
    723 kth_container.rbegin(),
    +
    724 kth_container.rend(),
    +
    725 [&ev_begin](auto const& i, auto const& j)
    +
    726 {
    +
    727 return *(ev_begin + i) < *(ev_begin + j);
    +
    728 }
    +
    729 );
    +
    730 };
    +
    731
    +
    732 const std::size_t ax = normalize_axis(de.dimension(), axis);
    +
    733 if (ax == detail::leading_axis(de))
    +
    734 {
    +
    735 result_type res = result_type::from_shape(de.shape());
    +
    736 detail::call_over_leading_axis(res, de, argpartition_w_kth);
    +
    737 return res;
    +
    738 }
    +
    739
    +
    740 dynamic_shape<std::size_t> permutation, reverse_permutation;
    +
    741 std::tie(permutation, reverse_permutation) = detail::get_permutations(de.dimension(), ax, de.layout());
    +
    742 eval_type ev = transpose(de, permutation);
    +
    743 result_type res = result_type::from_shape(ev.shape());
    +
    744 detail::call_over_leading_axis(res, ev, argpartition_w_kth);
    +
    745 res = transpose(res, reverse_permutation);
    +
    746 return res;
    +
    747 }
    +
    748
    +
    749 template <class E, class I, std::size_t N>
    +
    750 inline auto argpartition(const xexpression<E>& e, const I (&kth_container)[N], std::ptrdiff_t axis = -1)
    +
    751 {
    +
    752 return argpartition(
    +
    753 e,
    +
    754 xtl::forward_sequence<std::array<std::size_t, N>, decltype(kth_container)>(kth_container),
    +
    755 axis
    +
    756 );
    +
    757 }
    +
    758
    +
    759 template <class E>
    +
    760 inline auto argpartition(const xexpression<E>& e, std::size_t kth, std::ptrdiff_t axis = -1)
    +
    761 {
    +
    762 return argpartition(e, std::array<std::size_t, 1>({kth}), axis);
    +
    763 }
    +
    764
    +
    765 /******************
    +
    766 * xt::quantile *
    +
    767 ******************/
    +
    768
    +
    769 namespace detail
    +
    770 {
    +
    771 template <class S, class I, class K, class O>
    +
    772 inline void select_indices_impl(
    +
    773 const S& shape,
    +
    774 const I& indices,
    +
    775 std::size_t axis,
    +
    776 std::size_t current_dim,
    +
    777 const K& current_index,
    +
    778 O& out
    +
    779 )
    +
    780 {
    +
    781 using id_t = typename K::value_type;
    +
    782 if ((current_dim < shape.size() - 1) && (current_dim == axis))
    +
    783 {
    +
    784 for (auto i : indices)
    +
    785 {
    +
    786 auto idx = current_index;
    +
    787 idx[current_dim] = i;
    +
    788 select_indices_impl(shape, indices, axis, current_dim + 1, idx, out);
    +
    789 }
    +
    790 }
    +
    791 else if ((current_dim < shape.size() - 1) && (current_dim != axis))
    +
    792 {
    +
    793 for (id_t i = 0; xtl::cmp_less(i, shape[current_dim]); ++i)
    +
    794 {
    +
    795 auto idx = current_index;
    +
    796 idx[current_dim] = i;
    +
    797 select_indices_impl(shape, indices, axis, current_dim + 1, idx, out);
    +
    798 }
    +
    799 }
    +
    800 else if ((current_dim == shape.size() - 1) && (current_dim == axis))
    +
    801 {
    +
    802 for (auto i : indices)
    +
    803 {
    +
    804 auto idx = current_index;
    +
    805 idx[current_dim] = i;
    +
    806 out.push_back(std::move(idx));
    +
    807 }
    +
    808 }
    +
    809 else if ((current_dim == shape.size() - 1) && (current_dim != axis))
    +
    810 {
    +
    811 for (id_t i = 0; xtl::cmp_less(i, shape[current_dim]); ++i)
    +
    812 {
    +
    813 auto idx = current_index;
    +
    814 idx[current_dim] = i;
    +
    815 out.push_back(std::move(idx));
    +
    816 }
    +
    817 }
    +
    818 }
    +
    819
    +
    820 template <class S, class I>
    +
    821 inline auto select_indices(const S& shape, const I& indices, std::size_t axis)
    +
    822 {
    +
    823 using index_type = get_strides_t<S>;
    +
    824 auto out = std::vector<index_type>();
    +
    825 select_indices_impl(shape, indices, axis, 0, xtl::make_sequence<index_type>(shape.size()), out);
    +
    826 return out;
    +
    827 }
    +
    828
    +
    829 // TODO remove when fancy index views are implemented
    +
    830 // Poor man's indexing along a single axis as in NumPy a[:, [1, 3, 4]]
    +
    831 template <class E, class I>
    +
    832 inline auto fancy_indexing(E&& e, const I& indices, std::ptrdiff_t axis)
    +
    833 {
    +
    834 const std::size_t ax = normalize_axis(e.dimension(), axis);
    +
    835 using shape_t = get_strides_t<typename std::decay_t<E>::shape_type>;
    +
    836 auto shape = xtl::forward_sequence<shape_t, decltype(e.shape())>(e.shape());
    +
    837 shape[ax] = indices.size();
    +
    838 return reshape_view(
    +
    839 index_view(std::forward<E>(e), select_indices(e.shape(), indices, ax)),
    +
    840 std::move(shape)
    +
    841 );
    +
    842 }
    +
    843
    +
    844 template <class T, class I, class P>
    +
    845 inline auto quantile_kth_gamma(std::size_t n, const P& probas, T alpha, T beta)
    +
    846 {
    +
    847 const auto m = alpha + probas * (T(1) - alpha - beta);
    +
    848 // Evaluting since reused a lot
    +
    849 const auto p_n_m = eval(probas * static_cast<T>(n) + m - 1);
    +
    850 // Previous (virtual) index, may be out of bounds
    +
    851 const auto j = floor(p_n_m);
    +
    852 const auto j_jp1 = concatenate(xtuple(j, j + 1));
    +
    853 // Both interpolation indices, k and k+1
    +
    854 const auto k_kp1 = xt::cast<std::size_t>(clip(j_jp1, T(0), T(n - 1)));
    +
    855 // Both interpolation coefficients, 1-gamma and gamma
    +
    856 const auto omg_g = concatenate(xtuple(T(1) - (p_n_m - j), p_n_m - j));
    +
    857 return std::make_pair(eval(k_kp1), eval(omg_g));
    +
    858 }
    +
    859
    +
    860 // TODO should implement unsqueeze rather
    +
    861 template <class S>
    +
    862 inline auto unsqueeze_shape(const S& shape, std::size_t axis)
    +
    863 {
    +
    864 XTENSOR_ASSERT(axis <= shape.size());
    +
    865 auto new_shape = xtl::forward_sequence<xt::svector<std::size_t>, decltype(shape)>(shape);
    +
    866 new_shape.insert(new_shape.begin() + axis, 1);
    +
    867 return new_shape;
    +
    868 }
    +
    869 }
    +
    870
    +
    900 template <class T = double, class E, class P>
    +
    +
    901 inline auto quantile(E&& e, const P& probas, std::ptrdiff_t axis, T alpha, T beta)
    +
    902 {
    +
    903 XTENSOR_ASSERT(all(0. <= probas));
    +
    904 XTENSOR_ASSERT(all(probas <= 1.));
    +
    905 XTENSOR_ASSERT(0. <= alpha);
    +
    906 XTENSOR_ASSERT(alpha <= 1.);
    +
    907 XTENSOR_ASSERT(0. <= beta);
    +
    908 XTENSOR_ASSERT(beta <= 1.);
    +
    909
    +
    910 using tmp_shape_t = get_strides_t<typename std::decay_t<E>::shape_type>;
    +
    911 using id_t = typename tmp_shape_t::value_type;
    +
    912
    +
    913 const std::size_t ax = normalize_axis(e.dimension(), axis);
    +
    914 const std::size_t n = e.shape()[ax];
    +
    915 auto kth_gamma = detail::quantile_kth_gamma<T, id_t, P>(n, probas, alpha, beta);
    +
    916
    +
    917 // Select relevant values for computing interpolating quantiles
    +
    918 auto e_partition = xt::partition(std::forward<E>(e), kth_gamma.first, ax);
    +
    919 auto e_kth = detail::fancy_indexing(std::move(e_partition), std::move(kth_gamma.first), ax);
    +
    920
    +
    921 // Reshape interpolation coefficients
    +
    922 auto gm1_g_shape = xtl::make_sequence<tmp_shape_t>(e.dimension(), 1);
    +
    923 gm1_g_shape[ax] = kth_gamma.second.size();
    +
    924 auto gm1_g_reshaped = reshape_view(std::move(kth_gamma.second), std::move(gm1_g_shape));
    +
    925
    +
    926 // Compute interpolation
    +
    927 // TODO(C++20) use (and create) xt::lerp in C++
    +
    928 auto e_kth_g = std::move(e_kth) * std::move(gm1_g_reshaped);
    +
    929 // Reshape pairwise interpolate for suming along new axis
    +
    930 auto e_kth_g_shape = detail::unsqueeze_shape(e_kth_g.shape(), ax);
    +
    931 e_kth_g_shape[ax] = 2;
    +
    932 e_kth_g_shape[ax + 1] /= 2;
    +
    933 auto quantiles = xt::sum(reshape_view(std::move(e_kth_g), std::move(e_kth_g_shape)), ax);
    +
    934 // Cannot do a transpose on a non-strided expression so we have to eval
    +
    935 return moveaxis(eval(std::move(quantiles)), ax, 0);
    +
    936 }
    +
    +
    937
    +
    938 // Static proba array overload
    +
    939 template <class T = double, class E, std::size_t N>
    +
    940 inline auto quantile(E&& e, const T (&probas)[N], std::ptrdiff_t axis, T alpha, T beta)
    +
    941 {
    +
    942 return quantile(std::forward<E>(e), adapt(probas, {N}), axis, alpha, beta);
    +
    943 }
    +
    944
    +
    954 template <class T = double, class E, class P>
    +
    +
    955 inline auto quantile(E&& e, const P& probas, T alpha, T beta)
    +
    956 {
    +
    957 return quantile(xt::ravel(std::forward<E>(e)), probas, 0, alpha, beta);
    +
    958 }
    +
    +
    959
    +
    960 // Static proba array overload
    +
    961 template <class T = double, class E, std::size_t N>
    +
    962 inline auto quantile(E&& e, const T (&probas)[N], T alpha, T beta)
    +
    963 {
    +
    964 return quantile(std::forward<E>(e), adapt(probas, {N}), alpha, beta);
    +
    965 }
    +
    966
    + +
    993
    +
    1003 template <class T = double, class E, class P>
    +
    1004 inline auto
    +
    +
    1005 quantile(E&& e, const P& probas, std::ptrdiff_t axis, quantile_method method = quantile_method::linear)
    +
    1006 {
    +
    1007 T alpha = 0.;
    +
    1008 T beta = 0.;
    +
    1009 switch (method)
    +
    1010 {
    + +
    1012 {
    +
    1013 alpha = 0.;
    +
    1014 beta = 1.;
    +
    1015 break;
    +
    1016 }
    + +
    1018 {
    +
    1019 alpha = 0.5;
    +
    1020 beta = 0.5;
    +
    1021 break;
    +
    1022 }
    + +
    1024 {
    +
    1025 alpha = 0.;
    +
    1026 beta = 0.;
    +
    1027 break;
    +
    1028 }
    + +
    1030 {
    +
    1031 alpha = 1.;
    +
    1032 beta = 1.;
    +
    1033 break;
    +
    1034 }
    + +
    1036 {
    +
    1037 alpha = 1. / 3.;
    +
    1038 beta = 1. / 3.;
    +
    1039 break;
    +
    1040 }
    + +
    1042 {
    +
    1043 alpha = 3. / 8.;
    +
    1044 beta = 3. / 8.;
    +
    1045 break;
    +
    1046 }
    +
    1047 }
    +
    1048 return quantile(std::forward<E>(e), probas, axis, alpha, beta);
    +
    1049 }
    +
    +
    1050
    +
    1051 // Static proba array overload
    +
    1052 template <class T = double, class E, std::size_t N>
    +
    1053 inline auto
    +
    1054 quantile(E&& e, const T (&probas)[N], std::ptrdiff_t axis, quantile_method method = quantile_method::linear)
    +
    1055 {
    +
    1056 return quantile(std::forward<E>(e), adapt(probas, {N}), axis, method);
    +
    1057 }
    +
    1058
    +
    1070 template <class T = double, class E, class P>
    +
    +
    1071 inline auto quantile(E&& e, const P& probas, quantile_method method = quantile_method::linear)
    +
    1072 {
    +
    1073 return quantile(xt::ravel(std::forward<E>(e)), probas, 0, method);
    +
    1074 }
    +
    +
    1075
    +
    1076 // Static proba array overload
    +
    1077 template <class T = double, class E, std::size_t N>
    +
    1078 inline auto quantile(E&& e, const T (&probas)[N], quantile_method method = quantile_method::linear)
    +
    1079 {
    +
    1080 return quantile(std::forward<E>(e), adapt(probas, {N}), method);
    +
    1081 }
    +
    1082
    +
    1083 /****************
    +
    1084 * xt::median *
    +
    1085 ****************/
    +
    1086
    +
    1087 template <class E>
    +
    1088 inline typename std::decay_t<E>::value_type median(E&& e)
    +
    1089 {
    +
    1090 using value_type = typename std::decay_t<E>::value_type;
    +
    1091 auto sz = e.size();
    +
    1092 if (sz % 2 == 0)
    +
    1093 {
    +
    1094 std::size_t szh = sz / 2; // integer floor div
    +
    1095 std::array<std::size_t, 2> kth = {szh - 1, szh};
    +
    1096 auto values = xt::partition(xt::flatten(e), kth);
    +
    1097 return (values[kth[0]] + values[kth[1]]) / value_type(2);
    +
    1098 }
    +
    1099 else
    +
    1100 {
    +
    1101 std::array<std::size_t, 1> kth = {(sz - 1) / 2};
    +
    1102 auto values = xt::partition(xt::flatten(e), kth);
    +
    1103 return values[kth[0]];
    +
    1104 }
    +
    1105 }
    +
    1106
    +
    1120 template <class E>
    +
    +
    1121 inline auto median(E&& e, std::ptrdiff_t axis)
    +
    1122 {
    +
    1123 std::size_t ax = normalize_axis(e.dimension(), axis);
    +
    1124 std::size_t sz = e.shape()[ax];
    +
    1125 xstrided_slice_vector sv(e.dimension(), xt::all());
    +
    1126
    +
    1127 if (sz % 2 == 0)
    +
    1128 {
    +
    1129 std::size_t szh = sz / 2; // integer floor div
    +
    1130 std::array<std::size_t, 2> kth = {szh - 1, szh};
    +
    1131 auto values = xt::partition(std::forward<E>(e), kth, static_cast<ptrdiff_t>(ax));
    +
    1132 sv[ax] = xt::range(szh - 1, szh + 1);
    +
    1133 return xt::mean(xt::strided_view(std::move(values), std::move(sv)), {ax});
    +
    1134 }
    +
    1135 else
    +
    1136 {
    +
    1137 std::size_t szh = (sz - 1) / 2;
    +
    1138 std::array<std::size_t, 1> kth = {(sz - 1) / 2};
    +
    1139 auto values = xt::partition(std::forward<E>(e), kth, static_cast<ptrdiff_t>(ax));
    +
    1140 sv[ax] = xt::range(szh, szh + 1);
    +
    1141 return xt::mean(xt::strided_view(std::move(values), std::move(sv)), {ax});
    +
    1142 }
    +
    1143 }
    +
    +
    1144
    +
    1145 namespace detail
    +
    1146 {
    +
    1147 template <class T>
    +
    1148 struct argfunc_result_type
    +
    1149 {
    +
    1150 using type = xarray<std::size_t>;
    +
    1151 };
    +
    1152
    +
    1153 template <class T, std::size_t N>
    +
    1154 struct argfunc_result_type<xtensor<T, N>>
    +
    1155 {
    +
    1156 using type = xtensor<std::size_t, N - 1>;
    +
    1157 };
    +
    1158
    +
    1159 template <layout_type L, class E, class F>
    +
    1160 inline typename argfunc_result_type<E>::type arg_func_impl(const E& e, std::size_t axis, F&& cmp)
    +
    1161 {
    +
    1162 using eval_type = typename detail::sort_eval_type<E>::type;
    +
    1163 using value_type = typename E::value_type;
    +
    1164 using result_type = typename argfunc_result_type<E>::type;
    +
    1165 using result_shape_type = typename result_type::shape_type;
    +
    1166
    +
    1167 if (e.dimension() == 1)
    +
    1168 {
    +
    1169 auto begin = e.template begin<L>();
    +
    1170 auto end = e.template end<L>();
    +
    1171 // todo C++17 : constexpr
    +
    1172 if (std::is_same<F, std::less<value_type>>::value)
    +
    1173 {
    +
    1174 std::size_t i = static_cast<std::size_t>(std::distance(begin, std::min_element(begin, end)));
    +
    1175 return xtensor<size_t, 0>{i};
    +
    1176 }
    +
    1177 else
    +
    1178 {
    +
    1179 std::size_t i = static_cast<std::size_t>(std::distance(begin, std::max_element(begin, end)));
    +
    1180 return xtensor<size_t, 0>{i};
    +
    1181 }
    +
    1182 }
    +
    1183
    +
    1184 result_shape_type alt_shape;
    +
    1185 xt::resize_container(alt_shape, e.dimension() - 1);
    +
    1186
    +
    1187 // Excluding copy, copy all of shape except for axis
    +
    1188 std::copy(e.shape().cbegin(), e.shape().cbegin() + std::ptrdiff_t(axis), alt_shape.begin());
    +
    1189 std::copy(
    +
    1190 e.shape().cbegin() + std::ptrdiff_t(axis) + 1,
    +
    1191 e.shape().cend(),
    +
    1192 alt_shape.begin() + std::ptrdiff_t(axis)
    +
    1193 );
    +
    1194
    +
    1195 result_type result = result_type::from_shape(std::move(alt_shape));
    +
    1196 auto result_iter = result.template begin<L>();
    +
    1197
    +
    1198 auto arg_func_lambda = [&result_iter, &cmp](auto begin, auto end)
    +
    1199 {
    +
    1200 std::size_t idx = 0;
    +
    1201 value_type val = *begin;
    +
    1202 ++begin;
    +
    1203 for (std::size_t i = 1; begin != end; ++begin, ++i)
    +
    1204 {
    +
    1205 if (cmp(*begin, val))
    +
    1206 {
    +
    1207 val = *begin;
    +
    1208 idx = i;
    +
    1209 }
    +
    1210 }
    +
    1211 *result_iter = idx;
    +
    1212 ++result_iter;
    +
    1213 };
    +
    1214
    +
    1215 if (axis != detail::leading_axis(e))
    +
    1216 {
    +
    1217 dynamic_shape<std::size_t> permutation, reverse_permutation;
    +
    1218 std::tie(
    +
    1219 permutation,
    +
    1220 reverse_permutation
    +
    1221 ) = detail::get_permutations(e.dimension(), axis, e.layout());
    +
    1222
    +
    1223 // note: creating copy
    +
    1224 eval_type input = transpose(e, permutation);
    +
    1225 detail::call_over_leading_axis(input, arg_func_lambda);
    +
    1226 return result;
    +
    1227 }
    +
    1228 else
    +
    1229 {
    +
    1230 auto&& input = eval(e);
    +
    1231 detail::call_over_leading_axis(input, arg_func_lambda);
    +
    1232 return result;
    +
    1233 }
    +
    1234 }
    +
    1235 }
    +
    1236
    +
    1237 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E>
    +
    1238 inline auto argmin(const xexpression<E>& e)
    +
    1239 {
    +
    1240 using value_type = typename E::value_type;
    +
    1241 auto&& ed = eval(e.derived_cast());
    +
    1242 auto begin = ed.template begin<L>();
    +
    1243 auto end = ed.template end<L>();
    +
    1244 std::size_t i = static_cast<std::size_t>(std::distance(begin, std::min_element(begin, end)));
    +
    1245 return xtensor<size_t, 0>{i};
    +
    1246 }
    +
    1247
    +
    1258 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E>
    +
    +
    1259 inline auto argmin(const xexpression<E>& e, std::ptrdiff_t axis)
    +
    1260 {
    +
    1261 using value_type = typename E::value_type;
    +
    1262 auto&& ed = eval(e.derived_cast());
    +
    1263 std::size_t ax = normalize_axis(ed.dimension(), axis);
    +
    1264 return detail::arg_func_impl<L>(ed, ax, std::less<value_type>());
    +
    1265 }
    +
    +
    1266
    +
    1267 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E>
    +
    1268 inline auto argmax(const xexpression<E>& e)
    +
    1269 {
    +
    1270 using value_type = typename E::value_type;
    +
    1271 auto&& ed = eval(e.derived_cast());
    +
    1272 auto begin = ed.template begin<L>();
    +
    1273 auto end = ed.template end<L>();
    +
    1274 std::size_t i = static_cast<std::size_t>(std::distance(begin, std::max_element(begin, end)));
    +
    1275 return xtensor<size_t, 0>{i};
    +
    1276 }
    +
    1277
    +
    1289 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E>
    +
    +
    1290 inline auto argmax(const xexpression<E>& e, std::ptrdiff_t axis)
    +
    1291 {
    +
    1292 using value_type = typename E::value_type;
    +
    1293 auto&& ed = eval(e.derived_cast());
    +
    1294 std::size_t ax = normalize_axis(ed.dimension(), axis);
    +
    1295 return detail::arg_func_impl<L>(ed, ax, std::greater<value_type>());
    +
    1296 }
    +
    +
    1297
    +
    1305 template <class E>
    +
    +
    1306 inline auto unique(const xexpression<E>& e)
    +
    1307 {
    +
    1308 auto sorted = sort(e, xnone());
    +
    1309 auto end = std::unique(sorted.begin(), sorted.end());
    +
    1310 std::size_t sz = static_cast<std::size_t>(std::distance(sorted.begin(), end));
    +
    1311 // TODO check if we can shrink the vector without reallocation
    +
    1312 using value_type = typename E::value_type;
    +
    1313 auto result = xtensor<value_type, 1>::from_shape({sz});
    +
    1314 std::copy(sorted.begin(), end, result.begin());
    +
    1315 return result;
    +
    1316 }
    +
    +
    1317
    +
    1326 template <class E1, class E2>
    +
    +
    1327 inline auto setdiff1d(const xexpression<E1>& ar1, const xexpression<E2>& ar2)
    +
    1328 {
    +
    1329 using value_type = typename E1::value_type;
    +
    1330
    +
    1331 auto unique1 = unique(ar1);
    +
    1332 auto unique2 = unique(ar2);
    +
    1333
    +
    1334 auto tmp = xtensor<value_type, 1>::from_shape({unique1.size()});
    +
    1335
    +
    1336 auto end = std::set_difference(unique1.begin(), unique1.end(), unique2.begin(), unique2.end(), tmp.begin());
    +
    1337
    +
    1338 std::size_t sz = static_cast<std::size_t>(std::distance(tmp.begin(), end));
    +
    1339
    +
    1340 auto result = xtensor<value_type, 1>::from_shape({sz});
    +
    1341
    +
    1342 std::copy(tmp.begin(), end, result.begin());
    +
    1343
    +
    1344 return result;
    +
    1345 }
    +
    +
    1346}
    +
    1347
    +
    1348#endif
    +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    auto clip(E1 &&e1, E2 &&lo, E3 &&hi) noexcept -> detail::xfunction_type_t< math::clamp_fun, E1, E2, E3 >
    Clip values between hi and lo.
    Definition xmath.hpp:815
    +
    auto cast(E &&e) noexcept -> detail::xfunction_type_t< typename detail::cast< R >::functor, E >
    Element-wise static_cast.
    +
    bool all(E &&e)
    Any.
    +
    auto floor(E &&e) noexcept -> detail::xfunction_type_t< math::floor_fun, E >
    floor function.
    Definition xmath.hpp:1589
    +
    auto sum(E &&e, X &&axes, EVS es=EVS())
    Sum of elements over given axes.
    Definition xmath.hpp:1838
    +
    auto mean(E &&e, X &&axes, EVS es=EVS())
    Mean of elements over given axes.
    Definition xmath.hpp:1932
    +
    auto adapt(C &&container, const SC &shape, layout_type l=L)
    Constructs:
    +
    auto eval(T &&t) -> std::enable_if_t< detail::is_container< std::decay_t< T > >::value, T && >
    Force evaluation of xexpression.
    Definition xeval.hpp:46
    +
    auto flatten(E &&e)
    Return a flatten view of the given expression.
    +
    auto moveaxis(E &&e, std::ptrdiff_t src, std::ptrdiff_t dest)
    Return a new expression with an axis move to a new position.
    +
    auto ravel(E &&e)
    Return a flatten view of the given expression.
    +
    auto transpose(E &&e) noexcept
    Returns a transpose view by reversing the dimensions of xexpression e.
    +
    quantile_method
    Quantile interpolation method.
    Definition xsort.hpp:979
    +
    auto unique(const xexpression< E > &e)
    Find unique elements of a xexpression.
    Definition xsort.hpp:1306
    +
    R partition(const xexpression< E > &e, C kth_container, placeholders::xtuph)
    Partially sort xexpression.
    Definition xsort.hpp:565
    +
    auto quantile(E &&e, const P &probas, std::ptrdiff_t axis, T alpha, T beta)
    Compute quantiles over the given axis.
    Definition xsort.hpp:901
    +
    auto setdiff1d(const xexpression< E1 > &ar1, const xexpression< E2 > &ar2)
    Find the set difference of two xexpressions.
    Definition xsort.hpp:1327
    +
    R argpartition(const xexpression< E > &e, C kth_container, placeholders::xtuph)
    Partially sort arguments.
    Definition xsort.hpp:659
    +
    @ weibull
    Method 6 of (Hyndman and Fan, 1996) with alpha=0 and beta=0.
    Definition xsort.hpp:985
    +
    @ interpolated_inverted_cdf
    Method 4 of (Hyndman and Fan, 1996) with alpha=0 and beta=1.
    Definition xsort.hpp:981
    +
    @ linear
    Method 7 of (Hyndman and Fan, 1996) with alpha=1 and beta=1.
    Definition xsort.hpp:987
    +
    @ normal_unbiased
    Method 9 of (Hyndman and Fan, 1996) with alpha=3/8 and beta=3/8.
    Definition xsort.hpp:991
    +
    @ median_unbiased
    Method 8 of (Hyndman and Fan, 1996) with alpha=1/3 and beta=1/3.
    Definition xsort.hpp:989
    +
    @ hazen
    Method 5 of (Hyndman and Fan, 1996) with alpha=1/2 and beta=1/2.
    Definition xsort.hpp:983
    +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    auto concatenate(std::tuple< CT... > &&t, std::size_t axis=0)
    Concatenates xexpressions along axis.
    Definition xbuilder.hpp:830
    +
    layout_type
    Definition xlayout.hpp:24
    + + +
    xfixed_container< T, FSH, L, Sharable > xtensor_fixed
    Alias template on xfixed_container with default parameters for layout type.
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    auto index_view(E &&e, I &&indices) noexcept
    creates an indexview from a container of indices.
    +
    sorting_method
    Sorting method.
    Definition xsort.hpp:279
    +
    @ quick
    Faster method but with no guarantee on preservation of order of equal elements https://en....
    Definition xsort.hpp:284
    +
    @ stable
    Slower method but with guarantee on preservation of order of equal elements https://en....
    Definition xsort.hpp:289
    +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    +
    auto xtuple(Types &&... args)
    Creates tuples from arguments for concatenate and stack.
    Definition xbuilder.hpp:707
    + +
    +
    + + + + diff --git a/xstorage_8hpp_source.html b/xstorage_8hpp_source.html new file mode 100644 index 000000000..f0a4c91a5 --- /dev/null +++ b/xstorage_8hpp_source.html @@ -0,0 +1,2110 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xstorage.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xstorage.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_STORAGE_HPP
    +
    11#define XTENSOR_STORAGE_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <functional>
    +
    16#include <initializer_list>
    +
    17#include <iterator>
    +
    18#include <memory>
    +
    19#include <type_traits>
    +
    20
    +
    21#include "../core/xtensor_config.hpp"
    +
    22#include "../utils/xexception.hpp"
    +
    23#include "../utils/xtensor_simd.hpp"
    +
    24#include "../utils/xutils.hpp"
    +
    25
    +
    26namespace xt
    +
    27{
    +
    28 template <class C>
    +
    +
    29 struct is_contiguous_container : std::true_type
    +
    30 {
    +
    31 };
    +
    +
    32
    +
    33 template <class T, class A = std::allocator<T>>
    +
    +
    34 class uvector
    +
    35 {
    +
    36 public:
    +
    37
    +
    38 using allocator_type = A;
    +
    39
    +
    40 using value_type = typename std::allocator_traits<A>::value_type;
    +
    41 using reference = value_type&;
    +
    42 using const_reference = const value_type&;
    +
    43 using pointer = typename std::allocator_traits<A>::pointer;
    +
    44 using const_pointer = typename std::allocator_traits<A>::const_pointer;
    +
    45
    +
    46 using size_type = typename std::allocator_traits<A>::size_type;
    +
    47 using difference_type = typename std::allocator_traits<A>::difference_type;
    +
    48
    +
    49 using iterator = pointer;
    +
    50 using const_iterator = const_pointer;
    +
    51 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    52 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    53
    +
    54 uvector() noexcept;
    +
    55 explicit uvector(const allocator_type& alloc) noexcept;
    +
    56 explicit uvector(size_type count, const allocator_type& alloc = allocator_type());
    +
    57 uvector(size_type count, const_reference value, const allocator_type& alloc = allocator_type());
    +
    58
    +
    59 template <std::input_iterator InputIt>
    +
    60 uvector(InputIt first, InputIt last, const allocator_type& alloc = allocator_type());
    +
    61
    +
    62 uvector(std::initializer_list<T> init, const allocator_type& alloc = allocator_type());
    +
    63
    +
    64 ~uvector();
    +
    65
    +
    66 uvector(const uvector& rhs);
    +
    67 uvector(const uvector& rhs, const allocator_type& alloc);
    +
    68 uvector& operator=(const uvector&);
    +
    69
    +
    70 uvector(uvector&& rhs) noexcept;
    +
    71 uvector(uvector&& rhs, const allocator_type& alloc) noexcept;
    +
    72 uvector& operator=(uvector&& rhs) noexcept;
    +
    73
    +
    74 allocator_type get_allocator() const noexcept;
    +
    75
    +
    76 bool empty() const noexcept;
    +
    77 size_type size() const noexcept;
    +
    78 void resize(size_type size);
    +
    79 size_type max_size() const noexcept;
    +
    80 void reserve(size_type new_cap);
    +
    81 size_type capacity() const noexcept;
    +
    82 void shrink_to_fit();
    +
    83 void clear();
    +
    84
    +
    85 reference operator[](size_type i);
    +
    86 const_reference operator[](size_type i) const;
    +
    87
    +
    88 reference at(size_type i);
    +
    89 const_reference at(size_type i) const;
    +
    90
    +
    91 reference front();
    +
    92 const_reference front() const;
    +
    93
    +
    94 reference back();
    +
    95 const_reference back() const;
    +
    96
    +
    97 pointer data() noexcept;
    +
    98 const_pointer data() const noexcept;
    +
    99
    +
    100 iterator begin() noexcept;
    +
    101 iterator end() noexcept;
    +
    102
    +
    103 const_iterator begin() const noexcept;
    +
    104 const_iterator end() const noexcept;
    +
    105
    +
    106 const_iterator cbegin() const noexcept;
    +
    107 const_iterator cend() const noexcept;
    +
    108
    +
    109 reverse_iterator rbegin() noexcept;
    +
    110 reverse_iterator rend() noexcept;
    +
    111
    +
    112 const_reverse_iterator rbegin() const noexcept;
    +
    113 const_reverse_iterator rend() const noexcept;
    +
    114
    +
    115 const_reverse_iterator crbegin() const noexcept;
    +
    116 const_reverse_iterator crend() const noexcept;
    +
    117
    +
    118 void swap(uvector& rhs) noexcept;
    +
    119
    +
    120 private:
    +
    121
    +
    122 template <class I>
    +
    123 void init_data(I first, I last);
    +
    124
    +
    125 void resize_impl(size_type new_size);
    +
    126
    +
    127 allocator_type m_allocator;
    +
    128
    +
    129 // Storing a pair of pointers is more efficient for iterating than
    +
    130 // storing a pointer to the beginning and the size of the container
    +
    131 pointer p_begin;
    +
    132 pointer p_end;
    +
    133 };
    +
    +
    134
    +
    135 template <class T, class A>
    +
    136 bool operator==(const uvector<T, A>& lhs, const uvector<T, A>& rhs);
    +
    137
    +
    138 template <class T, class A>
    +
    139 bool operator!=(const uvector<T, A>& lhs, const uvector<T, A>& rhs);
    +
    140
    +
    141 template <class T, class A>
    +
    142 bool operator<(const uvector<T, A>& lhs, const uvector<T, A>& rhs);
    +
    143
    +
    144 template <class T, class A>
    +
    145 bool operator<=(const uvector<T, A>& lhs, const uvector<T, A>& rhs);
    +
    146
    +
    147 template <class T, class A>
    +
    148 bool operator>(const uvector<T, A>& lhs, const uvector<T, A>& rhs);
    +
    149
    +
    150 template <class T, class A>
    +
    151 bool operator>=(const uvector<T, A>& lhs, const uvector<T, A>& rhs);
    +
    152
    +
    153 template <class T, class A>
    +
    154 void swap(uvector<T, A>& lhs, uvector<T, A>& rhs) noexcept;
    +
    155
    +
    156 /**************************
    +
    157 * uvector implementation *
    +
    158 **************************/
    +
    159
    +
    160 namespace detail
    +
    161 {
    +
    162 template <class A>
    +
    163 inline typename std::allocator_traits<A>::pointer
    +
    164 safe_init_allocate(A& alloc, typename std::allocator_traits<A>::size_type size)
    +
    165 {
    +
    166 using traits = std::allocator_traits<A>;
    +
    167 using pointer = typename traits::pointer;
    +
    168 using value_type = typename traits::value_type;
    +
    169 pointer res = alloc.allocate(size);
    +
    170 if (!xtrivially_default_constructible<value_type>::value)
    +
    171 {
    +
    172 for (pointer p = res; p != res + size; ++p)
    +
    173 {
    +
    174 traits::construct(alloc, p, value_type());
    +
    175 }
    +
    176 }
    +
    177 return res;
    +
    178 }
    +
    179
    +
    180 template <class A>
    +
    181 inline void safe_destroy_deallocate(
    +
    182 A& alloc,
    +
    183 typename std::allocator_traits<A>::pointer ptr,
    +
    184 typename std::allocator_traits<A>::size_type size
    +
    185 )
    +
    186 {
    +
    187 using traits = std::allocator_traits<A>;
    +
    188 using pointer = typename traits::pointer;
    +
    189 using value_type = typename traits::value_type;
    +
    190 if (ptr != nullptr)
    +
    191 {
    +
    192 if (!xtrivially_default_constructible<value_type>::value)
    +
    193 {
    +
    194 for (pointer p = ptr; p != ptr + size; ++p)
    +
    195 {
    +
    196 traits::destroy(alloc, p);
    +
    197 }
    +
    198 }
    +
    199 traits::deallocate(alloc, ptr, size);
    +
    200 }
    +
    201 }
    +
    202 }
    +
    203
    +
    204 template <class T, class A>
    +
    205 template <class I>
    +
    206 inline void uvector<T, A>::init_data(I first, I last)
    +
    207 {
    +
    208 size_type size = static_cast<size_type>(std::distance(first, last));
    +
    209 if (size != size_type(0))
    +
    210 {
    +
    211 p_begin = m_allocator.allocate(size);
    +
    212 std::uninitialized_copy(first, last, p_begin);
    +
    213 p_end = p_begin + size;
    +
    214 }
    +
    215 }
    +
    216
    +
    217 template <class T, class A>
    +
    218 inline void uvector<T, A>::resize_impl(size_type new_size)
    +
    219 {
    +
    220 size_type old_size = size();
    +
    221 pointer old_begin = p_begin;
    +
    222 if (new_size != old_size)
    +
    223 {
    +
    224 p_begin = detail::safe_init_allocate(m_allocator, new_size);
    +
    225 p_end = p_begin + new_size;
    +
    226 detail::safe_destroy_deallocate(m_allocator, old_begin, old_size);
    +
    227 }
    +
    228 }
    +
    229
    +
    230 template <class T, class A>
    +
    231 inline uvector<T, A>::uvector() noexcept
    +
    232 : uvector(allocator_type())
    +
    233 {
    +
    234 }
    +
    235
    +
    236 template <class T, class A>
    +
    237 inline uvector<T, A>::uvector(const allocator_type& alloc) noexcept
    +
    238 : m_allocator(alloc)
    +
    239 , p_begin(nullptr)
    +
    240 , p_end(nullptr)
    +
    241 {
    +
    242 }
    +
    243
    +
    244 template <class T, class A>
    +
    245 inline uvector<T, A>::uvector(size_type count, const allocator_type& alloc)
    +
    246 : m_allocator(alloc)
    +
    247 , p_begin(nullptr)
    +
    248 , p_end(nullptr)
    +
    249 {
    +
    250 if (count != 0)
    +
    251 {
    +
    252 p_begin = detail::safe_init_allocate(m_allocator, count);
    +
    253 p_end = p_begin + count;
    +
    254 }
    +
    255 }
    +
    256
    +
    257 template <class T, class A>
    +
    258 inline uvector<T, A>::uvector(size_type count, const_reference value, const allocator_type& alloc)
    +
    259 : m_allocator(alloc)
    +
    260 , p_begin(nullptr)
    +
    261 , p_end(nullptr)
    +
    262 {
    +
    263 if (count != 0)
    +
    264 {
    +
    265 p_begin = m_allocator.allocate(count);
    +
    266 p_end = p_begin + count;
    +
    267 std::uninitialized_fill(p_begin, p_end, value);
    +
    268 }
    +
    269 }
    +
    270
    +
    271 template <class T, class A>
    +
    272 template <std::input_iterator InputIt>
    +
    273 inline uvector<T, A>::uvector(InputIt first, InputIt last, const allocator_type& alloc)
    +
    274 : m_allocator(alloc)
    +
    275 , p_begin(nullptr)
    +
    276 , p_end(nullptr)
    +
    277 {
    +
    278 init_data(first, last);
    +
    279 }
    +
    280
    +
    281 template <class T, class A>
    +
    282 inline uvector<T, A>::uvector(std::initializer_list<T> init, const allocator_type& alloc)
    +
    283 : m_allocator(alloc)
    +
    284 , p_begin(nullptr)
    +
    285 , p_end(nullptr)
    +
    286 {
    +
    287 init_data(init.begin(), init.end());
    +
    288 }
    +
    289
    +
    290 template <class T, class A>
    +
    291 inline uvector<T, A>::~uvector()
    +
    292 {
    +
    293 detail::safe_destroy_deallocate(m_allocator, p_begin, size());
    +
    294 p_begin = nullptr;
    +
    295 p_end = nullptr;
    +
    296 }
    +
    297
    +
    298 template <class T, class A>
    +
    299 inline uvector<T, A>::uvector(const uvector& rhs)
    +
    300 : m_allocator(
    +
    301 std::allocator_traits<allocator_type>::select_on_container_copy_construction(rhs.get_allocator())
    +
    302 )
    +
    303 , p_begin(nullptr)
    +
    304 , p_end(nullptr)
    +
    305 {
    +
    306 init_data(rhs.p_begin, rhs.p_end);
    +
    307 }
    +
    308
    +
    309 template <class T, class A>
    +
    310 inline uvector<T, A>::uvector(const uvector& rhs, const allocator_type& alloc)
    +
    311 : m_allocator(alloc)
    +
    312 , p_begin(nullptr)
    +
    313 , p_end(nullptr)
    +
    314 {
    +
    315 init_data(rhs.p_begin, rhs.p_end);
    +
    316 }
    +
    317
    +
    318 template <class T, class A>
    +
    319 inline uvector<T, A>& uvector<T, A>::operator=(const uvector& rhs)
    +
    320 {
    +
    321 // No copy and swap idiom here due to performance issues
    +
    322 if (this != &rhs)
    +
    323 {
    +
    324 m_allocator = std::allocator_traits<allocator_type>::select_on_container_copy_construction(
    +
    325 rhs.get_allocator()
    +
    326 );
    +
    327 resize_impl(rhs.size());
    +
    328 if (xtrivially_default_constructible<value_type>::value)
    +
    329 {
    +
    330 std::uninitialized_copy(rhs.p_begin, rhs.p_end, p_begin);
    +
    331 }
    +
    332 else
    +
    333 {
    +
    334 std::copy(rhs.p_begin, rhs.p_end, p_begin);
    +
    335 }
    +
    336 }
    +
    337 return *this;
    +
    338 }
    +
    339
    +
    340 template <class T, class A>
    +
    341 inline uvector<T, A>::uvector(uvector&& rhs) noexcept
    +
    342 : m_allocator(std::move(rhs.m_allocator))
    +
    343 , p_begin(rhs.p_begin)
    +
    344 , p_end(rhs.p_end)
    +
    345 {
    +
    346 rhs.p_begin = nullptr;
    +
    347 rhs.p_end = nullptr;
    +
    348 }
    +
    349
    +
    350 template <class T, class A>
    +
    351 inline uvector<T, A>::uvector(uvector&& rhs, const allocator_type& alloc) noexcept
    +
    352 : m_allocator(alloc)
    +
    353 , p_begin(rhs.p_begin)
    +
    354 , p_end(rhs.p_end)
    +
    355 {
    +
    356 rhs.p_begin = nullptr;
    +
    357 rhs.p_end = nullptr;
    +
    358 }
    +
    359
    +
    360 template <class T, class A>
    +
    361 inline uvector<T, A>& uvector<T, A>::operator=(uvector&& rhs) noexcept
    +
    362 {
    +
    363 using std::swap;
    +
    364 uvector tmp(std::move(rhs));
    +
    365 swap(p_begin, tmp.p_begin);
    +
    366 swap(p_end, tmp.p_end);
    +
    367 return *this;
    +
    368 }
    +
    369
    +
    370 template <class T, class A>
    +
    371 inline auto uvector<T, A>::get_allocator() const noexcept -> allocator_type
    +
    372 {
    +
    373 return allocator_type(m_allocator);
    +
    374 }
    +
    375
    +
    376 template <class T, class A>
    +
    377 inline bool uvector<T, A>::empty() const noexcept
    +
    378 {
    +
    379 return size() == size_type(0);
    +
    380 }
    +
    381
    +
    382 template <class T, class A>
    +
    383 inline auto uvector<T, A>::size() const noexcept -> size_type
    +
    384 {
    +
    385 return static_cast<size_type>(p_end - p_begin);
    +
    386 }
    +
    387
    +
    388 template <class T, class A>
    +
    389 inline void uvector<T, A>::resize(size_type size)
    +
    390 {
    +
    391 resize_impl(size);
    +
    392 }
    +
    393
    +
    394 template <class T, class A>
    +
    395 inline auto uvector<T, A>::max_size() const noexcept -> size_type
    +
    396 {
    +
    397 return m_allocator.max_size();
    +
    398 }
    +
    399
    +
    400 template <class T, class A>
    +
    401 inline void uvector<T, A>::reserve(size_type /*new_cap*/)
    +
    402 {
    +
    403 }
    +
    404
    +
    405 template <class T, class A>
    +
    406 inline auto uvector<T, A>::capacity() const noexcept -> size_type
    +
    407 {
    +
    408 return size();
    +
    409 }
    +
    410
    +
    411 template <class T, class A>
    +
    412 inline void uvector<T, A>::shrink_to_fit()
    +
    413 {
    +
    414 }
    +
    415
    +
    416 template <class T, class A>
    +
    417 inline void uvector<T, A>::clear()
    +
    418 {
    +
    419 resize(size_type(0));
    +
    420 }
    +
    421
    +
    422 template <class T, class A>
    +
    423 inline auto uvector<T, A>::operator[](size_type i) -> reference
    +
    424 {
    +
    425 return p_begin[i];
    +
    426 }
    +
    427
    +
    428 template <class T, class A>
    +
    429 inline auto uvector<T, A>::operator[](size_type i) const -> const_reference
    +
    430 {
    +
    431 return p_begin[i];
    +
    432 }
    +
    433
    +
    434 template <class T, class A>
    +
    435 inline auto uvector<T, A>::at(size_type i) -> reference
    +
    436 {
    +
    437 if (i >= size())
    +
    438 {
    +
    439 XTENSOR_THROW(std::out_of_range, "Out of range in uvector access");
    +
    440 }
    +
    441 return this->operator[](i);
    +
    442 }
    +
    443
    +
    444 template <class T, class A>
    +
    445 inline auto uvector<T, A>::at(size_type i) const -> const_reference
    +
    446 {
    +
    447 if (i >= size())
    +
    448 {
    +
    449 XTENSOR_THROW(std::out_of_range, "Out of range in uvector access");
    +
    450 }
    +
    451 return this->operator[](i);
    +
    452 }
    +
    453
    +
    454 template <class T, class A>
    +
    455 inline auto uvector<T, A>::front() -> reference
    +
    456 {
    +
    457 return p_begin[0];
    +
    458 }
    +
    459
    +
    460 template <class T, class A>
    +
    461 inline auto uvector<T, A>::front() const -> const_reference
    +
    462 {
    +
    463 return p_begin[0];
    +
    464 }
    +
    465
    +
    466 template <class T, class A>
    +
    467 inline auto uvector<T, A>::back() -> reference
    +
    468 {
    +
    469 return *(p_end - 1);
    +
    470 }
    +
    471
    +
    472 template <class T, class A>
    +
    473 inline auto uvector<T, A>::back() const -> const_reference
    +
    474 {
    +
    475 return *(p_end - 1);
    +
    476 }
    +
    477
    +
    478 template <class T, class A>
    +
    479 inline auto uvector<T, A>::data() noexcept -> pointer
    +
    480 {
    +
    481 return p_begin;
    +
    482 }
    +
    483
    +
    484 template <class T, class A>
    +
    485 inline auto uvector<T, A>::data() const noexcept -> const_pointer
    +
    486 {
    +
    487 return p_begin;
    +
    488 }
    +
    489
    +
    490 template <class T, class A>
    +
    491 inline auto uvector<T, A>::begin() noexcept -> iterator
    +
    492 {
    +
    493 return p_begin;
    +
    494 }
    +
    495
    +
    496 template <class T, class A>
    +
    497 inline auto uvector<T, A>::end() noexcept -> iterator
    +
    498 {
    +
    499 return p_end;
    +
    500 }
    +
    501
    +
    502 template <class T, class A>
    +
    503 inline auto uvector<T, A>::begin() const noexcept -> const_iterator
    +
    504 {
    +
    505 return p_begin;
    +
    506 }
    +
    507
    +
    508 template <class T, class A>
    +
    509 inline auto uvector<T, A>::end() const noexcept -> const_iterator
    +
    510 {
    +
    511 return p_end;
    +
    512 }
    +
    513
    +
    514 template <class T, class A>
    +
    515 inline auto uvector<T, A>::cbegin() const noexcept -> const_iterator
    +
    516 {
    +
    517 return begin();
    +
    518 }
    +
    519
    +
    520 template <class T, class A>
    +
    521 inline auto uvector<T, A>::cend() const noexcept -> const_iterator
    +
    522 {
    +
    523 return end();
    +
    524 }
    +
    525
    +
    526 template <class T, class A>
    +
    527 inline auto uvector<T, A>::rbegin() noexcept -> reverse_iterator
    +
    528 {
    +
    529 return reverse_iterator(end());
    +
    530 }
    +
    531
    +
    532 template <class T, class A>
    +
    533 inline auto uvector<T, A>::rend() noexcept -> reverse_iterator
    +
    534 {
    +
    535 return reverse_iterator(begin());
    +
    536 }
    +
    537
    +
    538 template <class T, class A>
    +
    539 inline auto uvector<T, A>::rbegin() const noexcept -> const_reverse_iterator
    +
    540 {
    +
    541 return const_reverse_iterator(end());
    +
    542 }
    +
    543
    +
    544 template <class T, class A>
    +
    545 inline auto uvector<T, A>::rend() const noexcept -> const_reverse_iterator
    +
    546 {
    +
    547 return const_reverse_iterator(begin());
    +
    548 }
    +
    549
    +
    550 template <class T, class A>
    +
    551 inline auto uvector<T, A>::crbegin() const noexcept -> const_reverse_iterator
    +
    552 {
    +
    553 return rbegin();
    +
    554 }
    +
    555
    +
    556 template <class T, class A>
    +
    557 inline auto uvector<T, A>::crend() const noexcept -> const_reverse_iterator
    +
    558 {
    +
    559 return rend();
    +
    560 }
    +
    561
    +
    562 template <class T, class A>
    +
    563 inline void uvector<T, A>::swap(uvector<T, A>& rhs) noexcept
    +
    564 {
    +
    565 using std::swap;
    +
    566 swap(m_allocator, rhs.m_allocator);
    +
    567 swap(p_begin, rhs.p_begin);
    +
    568 swap(p_end, rhs.p_end);
    +
    569 }
    +
    570
    +
    571 template <class T, class A>
    +
    572 inline bool operator==(const uvector<T, A>& lhs, const uvector<T, A>& rhs)
    +
    573 {
    +
    574 return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
    +
    575 }
    +
    576
    +
    577 template <class T, class A>
    +
    578 inline bool operator!=(const uvector<T, A>& lhs, const uvector<T, A>& rhs)
    +
    579 {
    +
    580 return !(lhs == rhs);
    +
    581 }
    +
    582
    +
    583 template <class T, class A>
    +
    584 inline bool operator<(const uvector<T, A>& lhs, const uvector<T, A>& rhs)
    +
    585 {
    +
    586 return std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());
    +
    587 }
    +
    588
    +
    589 template <class T, class A>
    +
    590 inline bool operator<=(const uvector<T, A>& lhs, const uvector<T, A>& rhs)
    +
    591 {
    +
    592 return !(lhs > rhs);
    +
    593 }
    +
    594
    +
    595 template <class T, class A>
    +
    596 inline bool operator>(const uvector<T, A>& lhs, const uvector<T, A>& rhs)
    +
    597 {
    +
    598 return rhs < lhs;
    +
    599 }
    +
    600
    +
    601 template <class T, class A>
    +
    602 inline bool operator>=(const uvector<T, A>& lhs, const uvector<T, A>& rhs)
    +
    603 {
    +
    604 return !(lhs < rhs);
    +
    605 }
    +
    606
    +
    607 template <class T, class A>
    +
    608 inline void swap(uvector<T, A>& lhs, uvector<T, A>& rhs) noexcept
    +
    609 {
    +
    610 lhs.swap(rhs);
    +
    611 }
    +
    612
    +
    613 /**************************
    +
    614 * svector implementation *
    +
    615 **************************/
    +
    616
    +
    617 namespace detail
    +
    618 {
    +
    619 template <class T>
    +
    620 struct allocator_alignment
    +
    621 {
    +
    622 static constexpr std::size_t value = 0;
    +
    623 };
    +
    624
    +
    625 template <class T, std::size_t A>
    +
    626 struct allocator_alignment<xt_simd::aligned_allocator<T, A>>
    +
    627 {
    +
    628 static constexpr std::size_t value = A;
    +
    629 };
    +
    630 }
    +
    631
    +
    632 template <class T, std::size_t N = 4, class A = std::allocator<T>, bool Init = true>
    +
    +
    633 class svector
    +
    634 {
    +
    635 public:
    +
    636
    +
    637 using self_type = svector<T, N, A, Init>;
    +
    638 using allocator_type = A;
    +
    639 using size_type = typename std::allocator_traits<A>::size_type;
    +
    640 using value_type = typename std::allocator_traits<A>::value_type;
    +
    641 using pointer = typename std::allocator_traits<A>::pointer;
    +
    642 using const_pointer = typename std::allocator_traits<A>::const_pointer;
    +
    643 using reference = value_type&;
    +
    644 using const_reference = const value_type&;
    +
    645 using difference_type = typename std::allocator_traits<A>::difference_type;
    +
    646
    +
    647 using iterator = pointer;
    +
    648 using const_iterator = const_pointer;
    +
    649 using reverse_iterator = std::reverse_iterator<iterator>;
    +
    650 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    651
    +
    652#if defined(_MSC_VER) && _MSC_VER < 1910
    +
    653 static constexpr std::size_t alignment = detail::allocator_alignment<A>::value;
    +
    654#else
    +
    655 static constexpr std::size_t alignment = detail::allocator_alignment<A>::value != 0
    +
    656 ? detail::allocator_alignment<A>::value
    +
    657 : alignof(T);
    +
    658#endif
    +
    659
    +
    660 svector() noexcept;
    +
    661 ~svector();
    +
    662
    +
    663 explicit svector(const allocator_type& alloc) noexcept;
    +
    664 explicit svector(size_type n, const allocator_type& alloc = allocator_type());
    +
    665 svector(size_type n, const value_type& v, const allocator_type& alloc = allocator_type());
    +
    666 svector(std::initializer_list<T> il, const allocator_type& alloc = allocator_type());
    +
    667
    +
    668 svector(const std::vector<T>& vec);
    +
    669
    +
    670 template <std::input_iterator IT>
    +
    671 svector(IT begin, IT end, const allocator_type& alloc = allocator_type());
    +
    672
    +
    673 template <std::size_t N2, bool I2>
    +
    674 explicit svector(const svector<T, N2, A, I2>& rhs)
    +
    675 requires(N != N2);
    +
    676
    +
    677 svector& operator=(const svector& rhs);
    +
    678 svector& operator=(svector&& rhs) noexcept(std::is_nothrow_move_assignable<value_type>::value);
    +
    679 svector& operator=(const std::vector<T>& rhs);
    +
    680 svector& operator=(std::initializer_list<T> il);
    +
    681
    +
    682 template <std::size_t N2, bool I2>
    +
    683 svector& operator=(const svector<T, N2, A, I2>& rhs)
    +
    684 requires(N != N2);
    +
    685
    +
    686 svector(const svector& other);
    +
    687 svector(svector&& other) noexcept(std::is_nothrow_move_constructible<value_type>::value);
    +
    688
    +
    689 void assign(size_type n, const value_type& v);
    +
    690
    +
    691 template <class V>
    +
    692 void assign(std::initializer_list<V> il);
    +
    693
    +
    694 template <class IT>
    +
    695 void assign(IT other_begin, IT other_end);
    +
    696
    +
    697 reference operator[](size_type idx);
    +
    698 const_reference operator[](size_type idx) const;
    +
    699
    +
    700 reference at(size_type idx);
    +
    701 const_reference at(size_type idx) const;
    +
    702
    +
    703 pointer data();
    +
    704 const_pointer data() const;
    +
    705
    +
    706 void push_back(const T& elt);
    +
    707 void push_back(T&& elt);
    +
    708 void pop_back();
    +
    709
    +
    710 iterator begin();
    +
    711 const_iterator begin() const;
    +
    712 const_iterator cbegin() const;
    +
    713 iterator end();
    +
    714 const_iterator end() const;
    +
    715 const_iterator cend() const;
    +
    716
    +
    717 reverse_iterator rbegin();
    +
    718 const_reverse_iterator rbegin() const;
    +
    719 const_reverse_iterator crbegin() const;
    +
    720 reverse_iterator rend();
    +
    721 const_reverse_iterator rend() const;
    +
    722 const_reverse_iterator crend() const;
    +
    723
    +
    724 bool empty() const;
    +
    725 size_type size() const;
    +
    726 void resize(size_type n);
    +
    727 size_type max_size() const noexcept;
    +
    728 size_type capacity() const;
    +
    729 void reserve(size_type n);
    +
    730 void shrink_to_fit();
    +
    731 void clear();
    +
    732
    +
    733 reference front();
    +
    734 const_reference front() const;
    +
    735 reference back();
    +
    736 const_reference back() const;
    +
    737
    +
    738 bool on_stack();
    +
    739
    +
    740 iterator erase(const_iterator cit);
    +
    741 iterator erase(const_iterator cfirst, const_iterator clast);
    +
    742
    +
    743 iterator insert(const_iterator it, const T& elt);
    +
    744
    +
    745 template <class It>
    +
    746 iterator insert(const_iterator pos, It first, It last);
    +
    747
    +
    748 iterator insert(const_iterator pos, std::initializer_list<T> l);
    +
    749
    +
    750 template <std::size_t ON, class OA, bool InitA>
    +
    751 void swap(svector<T, ON, OA, InitA>& rhs);
    +
    752
    +
    753 allocator_type get_allocator() const noexcept;
    +
    754
    +
    755 private:
    +
    756
    +
    757 A m_allocator;
    +
    758
    +
    759 T* m_begin = std::begin(m_data);
    +
    760 T* m_end = std::begin(m_data);
    +
    761 T* m_capacity = std::end(m_data);
    +
    762
    +
    763 // stack allocated memory
    +
    764 alignas(alignment) T m_data[N > 0 ? N : 1];
    +
    765
    +
    766 void grow(size_type min_capacity = 0);
    +
    767 void destroy_range(T* begin, T* end);
    +
    768 };
    +
    +
    769
    +
    770 template <class T, std::size_t N, class A, bool Init>
    +
    771 inline svector<T, N, A, Init>::~svector()
    +
    772 {
    +
    773 if (!on_stack())
    +
    774 {
    +
    775 detail::safe_destroy_deallocate(m_allocator, m_begin, static_cast<std::size_t>(m_capacity - m_begin));
    +
    776 }
    +
    777 }
    +
    778
    +
    779 template <class T, std::size_t N, class A, bool Init>
    +
    780 inline svector<T, N, A, Init>::svector() noexcept
    +
    781 : svector(allocator_type())
    +
    782 {
    +
    783 }
    +
    784
    +
    785 template <class T, std::size_t N, class A, bool Init>
    +
    786 inline svector<T, N, A, Init>::svector(const allocator_type& alloc) noexcept
    +
    787 : m_allocator(alloc)
    +
    788 {
    +
    789 }
    +
    790
    +
    791 template <class T, std::size_t N, class A, bool Init>
    +
    792 inline svector<T, N, A, Init>::svector(size_type n, const allocator_type& alloc)
    +
    793 : m_allocator(alloc)
    +
    794 {
    +
    795 if (Init)
    +
    796 {
    +
    797 assign(n, T(0));
    +
    798 }
    +
    799 else
    +
    800 {
    +
    801 resize(n);
    +
    802 }
    +
    803 }
    +
    804
    +
    805 template <class T, std::size_t N, class A, bool Init>
    +
    806 template <std::input_iterator IT>
    +
    807 inline svector<T, N, A, Init>::svector(IT begin, IT end, const allocator_type& alloc)
    +
    808 : m_allocator(alloc)
    +
    809 {
    +
    810 assign(begin, end);
    +
    811 }
    +
    812
    +
    813 template <class T, std::size_t N, class A, bool Init>
    +
    814 template <std::size_t N2, bool I2>
    +
    815 inline svector<T, N, A, Init>::svector(const svector<T, N2, A, I2>& rhs)
    +
    816 requires(N != N2)
    +
    817 : m_allocator(rhs.get_allocator())
    +
    818 {
    +
    819 assign(rhs.begin(), rhs.end());
    +
    820 }
    +
    821
    +
    822 template <class T, std::size_t N, class A, bool Init>
    +
    823 inline svector<T, N, A, Init>::svector(const std::vector<T>& vec)
    +
    824 {
    +
    825 assign(vec.begin(), vec.end());
    +
    826 }
    +
    827
    +
    828 template <class T, std::size_t N, class A, bool Init>
    +
    829 inline svector<T, N, A, Init>::svector(size_type n, const value_type& v, const allocator_type& alloc)
    +
    830 : m_allocator(alloc)
    +
    831 {
    +
    832 assign(n, v);
    +
    833 }
    +
    834
    +
    835 template <class T, std::size_t N, class A, bool Init>
    +
    836 inline svector<T, N, A, Init>::svector(std::initializer_list<T> il, const allocator_type& alloc)
    +
    837 : m_allocator(alloc)
    +
    838 {
    +
    839 assign(il.begin(), il.end());
    +
    840 }
    +
    841
    +
    842 template <class T, std::size_t N, class A, bool Init>
    +
    843 inline svector<T, N, A, Init>& svector<T, N, A, Init>::operator=(const svector& rhs)
    +
    844 {
    +
    845 assign(rhs.begin(), rhs.end());
    +
    846 return *this;
    +
    847 }
    +
    848
    +
    849 template <class T, std::size_t N, class A, bool Init>
    +
    850 inline svector<T, N, A, Init>& svector<T, N, A, Init>::operator=(svector&& rhs
    +
    851 ) noexcept(std::is_nothrow_move_assignable<value_type>::value)
    +
    852 {
    +
    853 assign(rhs.begin(), rhs.end());
    +
    854 return *this;
    +
    855 }
    +
    856
    +
    857 template <class T, std::size_t N, class A, bool Init>
    +
    858 inline svector<T, N, A, Init>& svector<T, N, A, Init>::operator=(const std::vector<T>& rhs)
    +
    859 {
    +
    860 m_allocator = std::allocator_traits<allocator_type>::select_on_container_copy_construction(
    +
    861 rhs.get_allocator()
    +
    862 );
    +
    863 assign(rhs.begin(), rhs.end());
    +
    864 return *this;
    +
    865 }
    +
    866
    +
    867 template <class T, std::size_t N, class A, bool Init>
    +
    868 inline svector<T, N, A, Init>& svector<T, N, A, Init>::operator=(std::initializer_list<T> il)
    +
    869 {
    +
    870 return operator=(self_type(il));
    +
    871 }
    +
    872
    +
    873 template <class T, std::size_t N, class A, bool Init>
    +
    874 template <std::size_t N2, bool I2>
    +
    875 inline svector<T, N, A, Init>& svector<T, N, A, Init>::operator=(const svector<T, N2, A, I2>& rhs)
    +
    876 requires(N != N2)
    +
    877 {
    +
    878 m_allocator = std::allocator_traits<allocator_type>::select_on_container_copy_construction(
    +
    879 rhs.get_allocator()
    +
    880 );
    +
    881 assign(rhs.begin(), rhs.end());
    +
    882 return *this;
    +
    883 }
    +
    884
    +
    885 template <class T, std::size_t N, class A, bool Init>
    +
    886 inline svector<T, N, A, Init>::svector(const svector& rhs)
    +
    887 : m_allocator(
    +
    888 std::allocator_traits<allocator_type>::select_on_container_copy_construction(rhs.get_allocator())
    +
    889 )
    +
    890 {
    +
    891 assign(rhs.begin(), rhs.end());
    +
    892 }
    +
    893
    +
    894 template <class T, std::size_t N, class A, bool Init>
    +
    895 inline svector<T, N, A, Init>::svector(svector&& rhs
    +
    896 ) noexcept(std::is_nothrow_move_constructible<value_type>::value)
    +
    897 {
    +
    898 this->swap(rhs);
    +
    899 }
    +
    900
    +
    901 template <class T, std::size_t N, class A, bool Init>
    +
    902 inline void svector<T, N, A, Init>::assign(size_type n, const value_type& v)
    +
    903 {
    +
    904 if (n > N && n > capacity())
    +
    905 {
    +
    906 grow(n);
    +
    907 }
    +
    908 m_end = m_begin + n;
    +
    909 std::fill(begin(), end(), v);
    +
    910 }
    +
    911
    +
    912 template <class T, std::size_t N, class A, bool Init>
    +
    913 template <class V>
    +
    914 inline void svector<T, N, A, Init>::assign(std::initializer_list<V> il)
    +
    915 {
    +
    916 assign(il.begin(), il.end());
    +
    917 }
    +
    918
    +
    919 template <class T, std::size_t N, class A, bool Init>
    +
    920 template <class IT>
    +
    921 inline void svector<T, N, A, Init>::assign(IT other_begin, IT other_end)
    +
    922 {
    +
    923 std::size_t size = static_cast<std::size_t>(other_end - other_begin);
    +
    924 if (size > N && size > capacity())
    +
    925 {
    +
    926 grow(size);
    +
    927 }
    +
    928 std::uninitialized_copy(other_begin, other_end, m_begin);
    +
    929 m_end = m_begin + size;
    +
    930 }
    +
    931
    +
    932 template <class T, std::size_t N, class A, bool Init>
    +
    933 inline auto svector<T, N, A, Init>::operator[](size_type idx) -> reference
    +
    934 {
    +
    935 return m_begin[idx];
    +
    936 }
    +
    937
    +
    938 template <class T, std::size_t N, class A, bool Init>
    +
    939 inline auto svector<T, N, A, Init>::operator[](size_type idx) const -> const_reference
    +
    940 {
    +
    941 return m_begin[idx];
    +
    942 }
    +
    943
    +
    944 template <class T, std::size_t N, class A, bool Init>
    +
    945 inline auto svector<T, N, A, Init>::at(size_type idx) -> reference
    +
    946 {
    +
    947 if (idx >= size())
    +
    948 {
    +
    949 XTENSOR_THROW(std::out_of_range, "Out of range in svector access");
    +
    950 }
    +
    951 return this->operator[](idx);
    +
    952 }
    +
    953
    +
    954 template <class T, std::size_t N, class A, bool Init>
    +
    955 inline auto svector<T, N, A, Init>::at(size_type idx) const -> const_reference
    +
    956 {
    +
    957 if (idx >= size())
    +
    958 {
    +
    959 XTENSOR_THROW(std::out_of_range, "Out of range in svector access");
    +
    960 }
    +
    961 return this->operator[](idx);
    +
    962 }
    +
    963
    +
    964 template <class T, std::size_t N, class A, bool Init>
    +
    965 inline auto svector<T, N, A, Init>::data() -> pointer
    +
    966 {
    +
    967 return m_begin;
    +
    968 }
    +
    969
    +
    970 template <class T, std::size_t N, class A, bool Init>
    +
    971 inline auto svector<T, N, A, Init>::data() const -> const_pointer
    +
    972 {
    +
    973 return m_begin;
    +
    974 }
    +
    975
    +
    976 template <class T, std::size_t N, class A, bool Init>
    +
    977 void svector<T, N, A, Init>::resize(size_type n)
    +
    978 {
    +
    979 if (n > N && n > capacity())
    +
    980 {
    +
    981 grow(n);
    +
    982 }
    +
    983 size_type old_size = size();
    +
    984 m_end = m_begin + n;
    +
    985 if (Init && old_size < size())
    +
    986 {
    +
    987 std::fill(begin() + old_size, end(), T());
    +
    988 }
    +
    989 }
    +
    990
    +
    991 template <class T, std::size_t N, class A, bool Init>
    +
    992 inline auto svector<T, N, A, Init>::max_size() const noexcept -> size_type
    +
    993 {
    +
    994 return m_allocator.max_size();
    +
    995 }
    +
    996
    +
    997 template <class T, std::size_t N, class A, bool Init>
    +
    998 inline auto svector<T, N, A, Init>::capacity() const -> size_type
    +
    999 {
    +
    1000 return static_cast<std::size_t>(m_capacity - m_begin);
    +
    1001 }
    +
    1002
    +
    1003 template <class T, std::size_t N, class A, bool Init>
    +
    1004 inline void svector<T, N, A, Init>::reserve(size_type n)
    +
    1005 {
    +
    1006 if (n > N && n > capacity())
    +
    1007 {
    +
    1008 grow(n);
    +
    1009 }
    +
    1010 }
    +
    1011
    +
    1012 template <class T, std::size_t N, class A, bool Init>
    +
    1013 inline void svector<T, N, A, Init>::shrink_to_fit()
    +
    1014 {
    +
    1015 // No op for now
    +
    1016 }
    +
    1017
    +
    1018 template <class T, std::size_t N, class A, bool Init>
    +
    1019 inline void svector<T, N, A, Init>::clear()
    +
    1020 {
    +
    1021 resize(size_type(0));
    +
    1022 }
    +
    1023
    +
    1024 template <class T, std::size_t N, class A, bool Init>
    +
    1025 void svector<T, N, A, Init>::push_back(const T& elt)
    +
    1026 {
    +
    1027 if (m_end >= m_capacity)
    +
    1028 {
    +
    1029 grow();
    +
    1030 }
    +
    1031 *(m_end++) = elt;
    +
    1032 }
    +
    1033
    +
    1034 template <class T, std::size_t N, class A, bool Init>
    +
    1035 void svector<T, N, A, Init>::push_back(T&& elt)
    +
    1036 {
    +
    1037 if (m_end >= m_capacity)
    +
    1038 {
    +
    1039 grow();
    +
    1040 }
    +
    1041 *(m_end++) = std::move(elt);
    +
    1042 }
    +
    1043
    +
    1044 template <class T, std::size_t N, class A, bool Init>
    +
    1045 void svector<T, N, A, Init>::pop_back()
    +
    1046 {
    +
    1047 --m_end;
    +
    1048 }
    +
    1049
    +
    1050 template <class T, std::size_t N, class A, bool Init>
    +
    1051 inline auto svector<T, N, A, Init>::begin() -> iterator
    +
    1052 {
    +
    1053 return m_begin;
    +
    1054 }
    +
    1055
    +
    1056 template <class T, std::size_t N, class A, bool Init>
    +
    1057 inline auto svector<T, N, A, Init>::begin() const -> const_iterator
    +
    1058 {
    +
    1059 return m_begin;
    +
    1060 }
    +
    1061
    +
    1062 template <class T, std::size_t N, class A, bool Init>
    +
    1063 inline auto svector<T, N, A, Init>::cbegin() const -> const_iterator
    +
    1064 {
    +
    1065 return m_begin;
    +
    1066 }
    +
    1067
    +
    1068 template <class T, std::size_t N, class A, bool Init>
    +
    1069 inline auto svector<T, N, A, Init>::end() -> iterator
    +
    1070 {
    +
    1071 return m_end;
    +
    1072 }
    +
    1073
    +
    1074 template <class T, std::size_t N, class A, bool Init>
    +
    1075 inline auto svector<T, N, A, Init>::end() const -> const_iterator
    +
    1076 {
    +
    1077 return m_end;
    +
    1078 }
    +
    1079
    +
    1080 template <class T, std::size_t N, class A, bool Init>
    +
    1081 inline auto svector<T, N, A, Init>::cend() const -> const_iterator
    +
    1082 {
    +
    1083 return m_end;
    +
    1084 }
    +
    1085
    +
    1086 template <class T, std::size_t N, class A, bool Init>
    +
    1087 inline auto svector<T, N, A, Init>::rbegin() -> reverse_iterator
    +
    1088 {
    +
    1089 return reverse_iterator(m_end);
    +
    1090 }
    +
    1091
    +
    1092 template <class T, std::size_t N, class A, bool Init>
    +
    1093 inline auto svector<T, N, A, Init>::rbegin() const -> const_reverse_iterator
    +
    1094 {
    +
    1095 return const_reverse_iterator(m_end);
    +
    1096 }
    +
    1097
    +
    1098 template <class T, std::size_t N, class A, bool Init>
    +
    1099 inline auto svector<T, N, A, Init>::crbegin() const -> const_reverse_iterator
    +
    1100 {
    +
    1101 return const_reverse_iterator(m_end);
    +
    1102 }
    +
    1103
    +
    1104 template <class T, std::size_t N, class A, bool Init>
    +
    1105 inline auto svector<T, N, A, Init>::rend() -> reverse_iterator
    +
    1106 {
    +
    1107 return reverse_iterator(m_begin);
    +
    1108 }
    +
    1109
    +
    1110 template <class T, std::size_t N, class A, bool Init>
    +
    1111 inline auto svector<T, N, A, Init>::rend() const -> const_reverse_iterator
    +
    1112 {
    +
    1113 return const_reverse_iterator(m_begin);
    +
    1114 }
    +
    1115
    +
    1116 template <class T, std::size_t N, class A, bool Init>
    +
    1117 inline auto svector<T, N, A, Init>::crend() const -> const_reverse_iterator
    +
    1118 {
    +
    1119 return const_reverse_iterator(m_begin);
    +
    1120 }
    +
    1121
    +
    1122 template <class T, std::size_t N, class A, bool Init>
    +
    1123 inline auto svector<T, N, A, Init>::size() const -> size_type
    +
    1124 {
    +
    1125 return static_cast<size_type>(m_end - m_begin);
    +
    1126 }
    +
    1127
    +
    1128 template <class T, std::size_t N, class A, bool Init>
    +
    1129 inline auto svector<T, N, A, Init>::empty() const -> bool
    +
    1130 {
    +
    1131 return m_begin == m_end;
    +
    1132 }
    +
    1133
    +
    1134 template <class T, std::size_t N, class A, bool Init>
    +
    1135 inline auto svector<T, N, A, Init>::front() -> reference
    +
    1136 {
    +
    1137 XTENSOR_ASSERT(!empty());
    +
    1138 return m_begin[0];
    +
    1139 }
    +
    1140
    +
    1141 template <class T, std::size_t N, class A, bool Init>
    +
    1142 inline auto svector<T, N, A, Init>::front() const -> const_reference
    +
    1143 {
    +
    1144 XTENSOR_ASSERT(!empty());
    +
    1145 return m_begin[0];
    +
    1146 }
    +
    1147
    +
    1148 template <class T, std::size_t N, class A, bool Init>
    +
    1149 inline auto svector<T, N, A, Init>::back() -> reference
    +
    1150 {
    +
    1151 XTENSOR_ASSERT(!empty());
    +
    1152 return m_end[-1];
    +
    1153 }
    +
    1154
    +
    1155 template <class T, std::size_t N, class A, bool Init>
    +
    1156 inline auto svector<T, N, A, Init>::back() const -> const_reference
    +
    1157 {
    +
    1158 XTENSOR_ASSERT(!empty());
    +
    1159 return m_end[-1];
    +
    1160 }
    +
    1161
    +
    1162 template <class T, std::size_t N, class A, bool Init>
    +
    1163 inline auto svector<T, N, A, Init>::on_stack() -> bool
    +
    1164 {
    +
    1165 return m_begin == &m_data[0];
    +
    1166 }
    +
    1167
    +
    1168 template <class T, std::size_t N, class A, bool Init>
    +
    1169 inline auto svector<T, N, A, Init>::get_allocator() const noexcept -> allocator_type
    +
    1170 {
    +
    1171 return m_allocator;
    +
    1172 }
    +
    1173
    +
    1174 template <class T, std::size_t N, class A, bool Init>
    +
    1175 inline auto svector<T, N, A, Init>::erase(const_iterator cit) -> iterator
    +
    1176 {
    +
    1177 auto it = const_cast<pointer>(cit);
    +
    1178 iterator ret_val = it;
    +
    1179 std::move(it + 1, m_end, it);
    +
    1180 --m_end;
    +
    1181 return ret_val;
    +
    1182 }
    +
    1183
    +
    1184 template <class T, std::size_t N, class A, bool Init>
    +
    1185 inline auto svector<T, N, A, Init>::erase(const_iterator cfirst, const_iterator clast) -> iterator
    +
    1186 {
    +
    1187 auto first = const_cast<pointer>(cfirst);
    +
    1188 auto last = const_cast<pointer>(clast);
    +
    1189 if (last == m_end)
    +
    1190 {
    +
    1191 m_end = first;
    +
    1192 return first;
    +
    1193 }
    +
    1194
    +
    1195 iterator new_end = std::move(last, m_end, first);
    +
    1196 m_end = new_end;
    +
    1197 return first;
    +
    1198 }
    +
    1199
    +
    1200 template <class T, std::size_t N, class A, bool Init>
    +
    1201 inline auto svector<T, N, A, Init>::insert(const_iterator cit, const T& elt) -> iterator
    +
    1202 {
    +
    1203 auto it = const_cast<pointer>(cit);
    +
    1204 if (it == m_end)
    +
    1205 {
    +
    1206 push_back(elt);
    +
    1207 return m_end - 1;
    +
    1208 }
    +
    1209
    +
    1210 if (m_end >= m_capacity)
    +
    1211 {
    +
    1212 std::ptrdiff_t elt_no = it - m_begin;
    +
    1213 grow();
    +
    1214 it = m_begin + elt_no;
    +
    1215 }
    +
    1216
    +
    1217 (*m_end) = back();
    +
    1218 std::move_backward(it, m_end - 1, m_end);
    +
    1219 ++m_end;
    +
    1220
    +
    1221 // Update ref if element moved
    +
    1222 const T* elt_ptr = &elt;
    +
    1223 bool cond = it <= elt_ptr && elt_ptr < m_end;
    +
    1224 // More complicated than incrementing elt_ptr, but this avoids
    +
    1225 // false positive array-bounds warning on GCC 10
    +
    1226 const T* src_ptr = cond ? it + (elt_ptr - it) + std::ptrdiff_t(1) : elt_ptr;
    +
    1227 *it = *src_ptr;
    +
    1228 return it;
    +
    1229 }
    +
    1230
    +
    1231 template <class T, std::size_t N, class A, bool Init>
    +
    1232 template <class It>
    +
    1233 inline auto svector<T, N, A, Init>::insert(const_iterator pos, It first, It last) -> iterator
    +
    1234 {
    +
    1235 auto it = const_cast<pointer>(pos);
    +
    1236 difference_type n = std::distance(first, last);
    +
    1237 if (n > 0)
    +
    1238 {
    +
    1239 if (n > m_capacity - m_end)
    +
    1240 {
    +
    1241 std::ptrdiff_t elt_no = it - m_begin;
    +
    1242 grow(static_cast<size_t>((m_capacity - m_begin) + n));
    +
    1243 it = m_begin + elt_no;
    +
    1244 }
    +
    1245
    +
    1246 std::move_backward(it, m_end, m_end + n);
    +
    1247 m_end += n;
    +
    1248 std::copy(first, last, it);
    +
    1249 }
    +
    1250 return it;
    +
    1251 }
    +
    1252
    +
    1253 template <class T, std::size_t N, class A, bool Init>
    +
    1254 inline auto svector<T, N, A, Init>::insert(const_iterator pos, std::initializer_list<T> l) -> iterator
    +
    1255 {
    +
    1256 return insert(pos, l.begin(), l.end());
    +
    1257 }
    +
    1258
    +
    1259 template <class T, std::size_t N, class A, bool Init>
    +
    1260 inline void svector<T, N, A, Init>::destroy_range(T* begin, T* end)
    +
    1261 {
    +
    1262 if (!xtrivially_default_constructible<T>::value)
    +
    1263 {
    +
    1264 while (begin != end)
    +
    1265 {
    +
    1266 --end;
    +
    1267 end->~T();
    +
    1268 }
    +
    1269 }
    +
    1270 }
    +
    1271
    +
    1272 template <class T, std::size_t N, class A, bool Init>
    +
    1273 template <std::size_t ON, class OA, bool InitA>
    +
    1274 inline void svector<T, N, A, Init>::swap(svector<T, ON, OA, InitA>& rhs)
    +
    1275 {
    +
    1276 using std::swap;
    +
    1277 if (this == &rhs)
    +
    1278 {
    +
    1279 return;
    +
    1280 }
    +
    1281
    +
    1282 // We can only avoid copying elements if neither vector is small.
    +
    1283 if (!this->on_stack() && !rhs.on_stack())
    +
    1284 {
    +
    1285 swap(this->m_begin, rhs.m_begin);
    +
    1286 swap(this->m_end, rhs.m_end);
    +
    1287 swap(this->m_capacity, rhs.m_capacity);
    +
    1288 return;
    +
    1289 }
    +
    1290
    +
    1291 size_type rhs_old_size = rhs.size();
    +
    1292 size_type old_size = this->size();
    +
    1293
    +
    1294 if (rhs_old_size > old_size)
    +
    1295 {
    +
    1296 this->resize(rhs_old_size);
    +
    1297 }
    +
    1298 else if (old_size > rhs_old_size)
    +
    1299 {
    +
    1300 rhs.resize(old_size);
    +
    1301 }
    +
    1302
    +
    1303 // Swap the shared elements.
    +
    1304 size_type min_size = (std::min)(old_size, rhs_old_size);
    +
    1305 for (size_type i = 0; i < min_size; ++i)
    +
    1306 {
    +
    1307 swap((*this)[i], rhs[i]);
    +
    1308 }
    +
    1309
    +
    1310 // Copy over the extra elts.
    +
    1311 if (old_size > rhs_old_size)
    +
    1312 {
    +
    1313 std::copy(this->begin() + min_size, this->end(), rhs.begin() + min_size);
    +
    1314 this->destroy_range(this->begin() + min_size, this->end());
    +
    1315 this->m_end = this->begin() + min_size;
    +
    1316 }
    +
    1317 else if (rhs_old_size > old_size)
    +
    1318 {
    +
    1319 std::copy(rhs.begin() + min_size, rhs.end(), this->begin() + min_size);
    +
    1320 this->destroy_range(rhs.begin() + min_size, rhs.end());
    +
    1321 rhs.m_end = rhs.begin() + min_size;
    +
    1322 }
    +
    1323 }
    +
    1324
    +
    1325 template <class T, std::size_t N, class A, bool Init>
    +
    1326 inline void svector<T, N, A, Init>::grow(size_type min_capacity)
    +
    1327 {
    +
    1328 size_type current_size = size();
    +
    1329 size_type new_capacity = 2 * current_size + 1; // Always grow.
    +
    1330 if (new_capacity < min_capacity)
    +
    1331 {
    +
    1332 new_capacity = min_capacity;
    +
    1333 }
    +
    1334
    +
    1335 T* new_alloc;
    +
    1336 // is data stack allocated?
    +
    1337 if (m_begin == &m_data[0])
    +
    1338 {
    +
    1339 new_alloc = m_allocator.allocate(new_capacity);
    +
    1340 std::uninitialized_copy(m_begin, m_end, new_alloc);
    +
    1341 }
    +
    1342 else
    +
    1343 {
    +
    1344 // If this wasn't grown from the inline copy, grow the allocated space.
    +
    1345 new_alloc = m_allocator.allocate(new_capacity);
    +
    1346 std::uninitialized_copy(m_begin, m_end, new_alloc);
    +
    1347 m_allocator.deallocate(m_begin, std::size_t(m_capacity - m_begin));
    +
    1348 }
    +
    1349 XTENSOR_ASSERT(new_alloc);
    +
    1350
    +
    1351 m_end = new_alloc + current_size;
    +
    1352 m_begin = new_alloc;
    +
    1353 m_capacity = new_alloc + new_capacity;
    +
    1354 }
    +
    1355
    +
    1356 template <class T, std::size_t N, class A, bool Init>
    +
    1357 inline bool operator==(const std::vector<T>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1358 {
    +
    1359 return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
    +
    1360 }
    +
    1361
    +
    1362 template <class T, std::size_t N, class A, bool Init>
    +
    1363 inline bool operator==(const svector<T, N, A, Init>& lhs, const std::vector<T>& rhs)
    +
    1364 {
    +
    1365 return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
    +
    1366 }
    +
    1367
    +
    1368 template <class T, std::size_t N, class A, bool Init>
    +
    1369 inline bool operator==(const svector<T, N, A, Init>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1370 {
    +
    1371 return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
    +
    1372 }
    +
    1373
    +
    1374 template <class T, std::size_t N, class A, bool Init>
    +
    1375 inline bool operator!=(const svector<T, N, A, Init>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1376 {
    +
    1377 return !(lhs == rhs);
    +
    1378 }
    +
    1379
    +
    1380 template <class T, std::size_t N, class A, bool Init>
    +
    1381 inline bool operator<(const svector<T, N, A, Init>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1382 {
    +
    1383 return std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());
    +
    1384 }
    +
    1385
    +
    1386 template <class T, std::size_t N, class A, bool Init>
    +
    1387 inline bool operator<=(const svector<T, N, A, Init>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1388 {
    +
    1389 return !(lhs > rhs);
    +
    1390 }
    +
    1391
    +
    1392 template <class T, std::size_t N, class A, bool Init>
    +
    1393 inline bool operator>(const svector<T, N, A, Init>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1394 {
    +
    1395 return rhs < lhs;
    +
    1396 }
    +
    1397
    +
    1398 template <class T, std::size_t N, class A, bool Init>
    +
    1399 inline bool operator>=(const svector<T, N, A, Init>& lhs, const svector<T, N, A, Init>& rhs)
    +
    1400 {
    +
    1401 return !(lhs < rhs);
    +
    1402 }
    +
    1403
    +
    1404 template <class T, std::size_t N, class A, bool Init>
    +
    1405 inline void swap(svector<T, N, A, Init>& lhs, svector<T, N, A, Init>& rhs) noexcept
    +
    1406 {
    +
    1407 lhs.swap(rhs);
    +
    1408 }
    +
    1409
    +
    1410 template <class X, class T, std::size_t N, class A, bool B>
    +
    +
    1411 struct rebind_container<X, svector<T, N, A, B>>
    +
    1412 {
    +
    1413 using traits = std::allocator_traits<A>;
    +
    1414 using allocator = typename traits::template rebind_alloc<X>;
    +
    1415 using type = svector<X, N, allocator, B>;
    +
    1416 };
    +
    +
    1417
    +
    1424 template <class T, std::size_t N, std::size_t Align = XTENSOR_SELECT_ALIGN(T)>
    +
    +
    1425 class alignas(Align) aligned_array : public std::array<T, N>
    +
    1426 {
    +
    1427 public:
    +
    1428
    +
    1429 // Note: this is for alignment detection. The allocator serves no other purpose than
    +
    1430 // that of a trait here.
    +
    1431 using allocator_type = std::conditional_t<Align != 0, xt_simd::aligned_allocator<T, Align>, std::allocator<T>>;
    +
    1432 };
    +
    +
    1433
    +
    1434#if defined(_MSC_VER)
    +
    1435#define XTENSOR_CONST
    +
    1436#else
    +
    1437#define XTENSOR_CONST const
    +
    1438#endif
    +
    1439
    +
    1440#if defined(__GNUC__) && __GNUC__ < 5 && !defined(__clang__)
    +
    1441#define GCC4_FALLBACK
    +
    1442
    +
    1443 namespace const_array_detail
    +
    1444 {
    +
    1445 template <class T, std::size_t N>
    +
    1446 struct array_traits
    +
    1447 {
    +
    1448 using storage_type = T[N];
    +
    1449
    +
    1450 static constexpr T& ref(const storage_type& t, std::size_t n) noexcept
    +
    1451 {
    +
    1452 return const_cast<T&>(t[n]);
    +
    1453 }
    +
    1454
    +
    1455 static constexpr T* ptr(const storage_type& t) noexcept
    +
    1456 {
    +
    1457 return const_cast<T*>(t);
    +
    1458 }
    +
    1459 };
    +
    1460
    +
    1461 template <class T>
    +
    1462 struct array_traits<T, 0>
    +
    1463 {
    +
    1464 struct empty
    +
    1465 {
    +
    1466 };
    +
    1467
    +
    1468 using storage_type = empty;
    +
    1469
    +
    1470 static constexpr T& ref(const storage_type& /*t*/, std::size_t /*n*/) noexcept
    +
    1471 {
    +
    1472 return *static_cast<T*>(nullptr);
    +
    1473 }
    +
    1474
    +
    1475 static constexpr T* ptr(const storage_type& /*t*/) noexcept
    +
    1476 {
    +
    1477 return nullptr;
    +
    1478 }
    +
    1479 };
    +
    1480 }
    +
    1481#endif
    +
    1482
    +
    1487 template <class T, std::size_t N>
    +
    + +
    1489 {
    +
    1490 using size_type = std::size_t;
    +
    1491 using value_type = T;
    +
    1492 using pointer = value_type*;
    +
    1493 using const_pointer = const value_type*;
    +
    1494 using reference = value_type&;
    +
    1495 using const_reference = const value_type&;
    +
    1496 using difference_type = std::ptrdiff_t;
    +
    1497 using iterator = pointer;
    +
    1498 using const_iterator = const_pointer;
    +
    1499
    +
    1500 using reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    1501 using const_reverse_iterator = std::reverse_iterator<const_iterator>;
    +
    1502
    +
    1503 constexpr const_reference operator[](std::size_t idx) const
    +
    1504 {
    +
    1505#ifdef GCC4_FALLBACK
    +
    1506 return const_array_detail::array_traits<T, N>::ref(m_data, idx);
    +
    1507#else
    +
    1508 return m_data[idx];
    +
    1509#endif
    +
    1510 }
    +
    1511
    +
    1512 constexpr const_iterator begin() const noexcept
    +
    1513 {
    +
    1514 return cbegin();
    +
    1515 }
    +
    1516
    +
    1517 constexpr const_iterator end() const noexcept
    +
    1518 {
    +
    1519 return cend();
    +
    1520 }
    +
    1521
    +
    1522 constexpr const_iterator cbegin() const noexcept
    +
    1523 {
    +
    1524 return data();
    +
    1525 }
    +
    1526
    +
    1527 constexpr const_iterator cend() const noexcept
    +
    1528 {
    +
    1529 return data() + N;
    +
    1530 }
    +
    1531
    +
    1532 // TODO make constexpr once C++17 arrives
    +
    1533 reverse_iterator rbegin() const noexcept
    +
    1534 {
    +
    1535 return crbegin();
    +
    1536 }
    +
    1537
    +
    1538 reverse_iterator rend() const noexcept
    +
    1539 {
    +
    1540 return crend();
    +
    1541 }
    +
    1542
    +
    1543 const_reverse_iterator crbegin() const noexcept
    +
    1544 {
    +
    1545 return const_reverse_iterator(end());
    +
    1546 }
    +
    1547
    +
    1548 const_reverse_iterator crend() const noexcept
    +
    1549 {
    +
    1550 return const_reverse_iterator(begin());
    +
    1551 }
    +
    1552
    +
    1553 constexpr const_pointer data() const noexcept
    +
    1554 {
    +
    1555#ifdef GCC4_FALLBACK
    +
    1556 return const_array_detail::array_traits<T, N>::ptr(m_data);
    +
    1557#else
    +
    1558 return m_data;
    +
    1559#endif
    +
    1560 }
    +
    1561
    +
    1562 constexpr const_reference front() const noexcept
    +
    1563 {
    +
    1564#ifdef GCC4_FALLBACK
    +
    1565 return const_array_detail::array_traits<T, N>::ref(m_data, 0);
    +
    1566#else
    +
    1567 return m_data[0];
    +
    1568#endif
    +
    1569 }
    +
    1570
    +
    1571 constexpr const_reference back() const noexcept
    +
    1572 {
    +
    1573#ifdef GCC4_FALLBACK
    +
    1574 return N ? const_array_detail::array_traits<T, N>::ref(m_data, N - 1)
    +
    1575 : const_array_detail::array_traits<T, N>::ref(m_data, 0);
    +
    1576#else
    +
    1577 return m_data[size() - 1];
    +
    1578#endif
    +
    1579 }
    +
    1580
    +
    1581 constexpr bool empty() const noexcept
    +
    1582 {
    +
    1583 return size() == size_type(0);
    +
    1584 }
    +
    1585
    +
    1586 constexpr size_type size() const noexcept
    +
    1587 {
    +
    1588 return N;
    +
    1589 }
    +
    1590
    +
    1591#ifdef GCC4_FALLBACK
    +
    1592 XTENSOR_CONST typename const_array_detail::array_traits<T, N>::storage_type m_data;
    +
    1593#else
    +
    1594 XTENSOR_CONST T m_data[N > 0 ? N : 1];
    +
    1595#endif
    +
    1596 };
    +
    +
    1597
    +
    1598#undef GCC4_FALLBACK
    +
    1599
    +
    1600 template <class T, std::size_t N>
    +
    1601 inline bool operator==(const const_array<T, N>& lhs, const const_array<T, N>& rhs)
    +
    1602 {
    +
    1603 return std::equal(lhs.cbegin(), lhs.cend(), rhs.cbegin());
    +
    1604 }
    +
    1605
    +
    1606 template <class T, std::size_t N>
    +
    1607 inline bool operator!=(const const_array<T, N>& lhs, const const_array<T, N>& rhs)
    +
    1608 {
    +
    1609 return !(lhs == rhs);
    +
    1610 }
    +
    1611
    +
    1612 template <class T, std::size_t N>
    +
    1613 inline bool operator<(const const_array<T, N>& lhs, const const_array<T, N>& rhs)
    +
    1614 {
    +
    1615 return std::lexicographical_compare(lhs.begin(), lhs.end(), rhs.begin(), rhs.end());
    +
    1616 }
    +
    1617
    +
    1618 template <class T, std::size_t N>
    +
    1619 inline bool operator<=(const const_array<T, N>& lhs, const const_array<T, N>& rhs)
    +
    1620 {
    +
    1621 return !(lhs > rhs);
    +
    1622 }
    +
    1623
    +
    1624 template <class T, std::size_t N>
    +
    1625 inline bool operator>(const const_array<T, N>& lhs, const const_array<T, N>& rhs)
    +
    1626 {
    +
    1627 return rhs < lhs;
    +
    1628 }
    +
    1629
    +
    1630 template <class T, std::size_t N>
    +
    1631 inline bool operator>=(const const_array<T, N>& lhs, const const_array<T, N>& rhs)
    +
    1632 {
    +
    1633 return !(lhs < rhs);
    +
    1634 }
    +
    1635
    +
    1636// Workaround for rebind_container problems when C++17 feature is enabled
    +
    1637#ifdef __cpp_template_template_args
    +
    1638 template <class X, class T, std::size_t N>
    +
    1639 struct rebind_container<X, aligned_array<T, N>>
    +
    1640 {
    +
    1641 using type = aligned_array<X, N>;
    +
    1642 };
    +
    1643
    +
    1644 template <class X, class T, std::size_t N>
    +
    1645 struct rebind_container<X, const_array<T, N>>
    +
    1646 {
    +
    1647 using type = const_array<X, N>;
    +
    1648 };
    +
    1649#endif
    +
    1650
    +
    1656 template <std::size_t... X>
    +
    + +
    1658 {
    +
    1659 public:
    +
    1660
    +
    1661#if defined(_MSC_VER)
    +
    1662 using cast_type = std::array<std::size_t, sizeof...(X)>;
    +
    1663#define XTENSOR_FIXED_SHAPE_CONSTEXPR inline
    +
    1664#else
    +
    1665 using cast_type = const_array<std::size_t, sizeof...(X)>;
    +
    1666#define XTENSOR_FIXED_SHAPE_CONSTEXPR constexpr
    +
    1667#endif
    +
    1668 using value_type = std::size_t;
    +
    1669 using size_type = std::size_t;
    +
    1670 using const_iterator = typename cast_type::const_iterator;
    +
    1671
    +
    1672 static constexpr std::size_t size()
    +
    1673 {
    +
    1674 return sizeof...(X);
    +
    1675 }
    +
    1676
    +
    1677 template <std::size_t idx>
    +
    1678 static constexpr auto get()
    +
    1679 {
    +
    1680 using tmp_cast_type = std::array<std::size_t, sizeof...(X)>;
    +
    1681 return std::get<idx>(tmp_cast_type{X...});
    +
    1682 }
    +
    1683
    +
    1684 XTENSOR_FIXED_SHAPE_CONSTEXPR operator cast_type() const
    +
    1685 {
    +
    1686 return cast_type({X...});
    +
    1687 }
    +
    1688
    +
    1689 XTENSOR_FIXED_SHAPE_CONSTEXPR auto begin() const
    +
    1690 {
    +
    1691 return m_array.begin();
    +
    1692 }
    +
    1693
    +
    1694 XTENSOR_FIXED_SHAPE_CONSTEXPR auto end() const
    +
    1695 {
    +
    1696 return m_array.end();
    +
    1697 }
    +
    1698
    +
    1699 auto rbegin() const
    +
    1700 {
    +
    1701 return m_array.rbegin();
    +
    1702 }
    +
    1703
    +
    1704 auto rend() const
    +
    1705 {
    +
    1706 return m_array.rend();
    +
    1707 }
    +
    1708
    +
    1709 XTENSOR_FIXED_SHAPE_CONSTEXPR auto cbegin() const
    +
    1710 {
    +
    1711 return m_array.cbegin();
    +
    1712 }
    +
    1713
    +
    1714 XTENSOR_FIXED_SHAPE_CONSTEXPR auto cend() const
    +
    1715 {
    +
    1716 return m_array.cend();
    +
    1717 }
    +
    1718
    +
    1719 XTENSOR_FIXED_SHAPE_CONSTEXPR std::size_t operator[](std::size_t idx) const
    +
    1720 {
    +
    1721 return m_array[idx];
    +
    1722 }
    +
    1723
    +
    1724 XTENSOR_FIXED_SHAPE_CONSTEXPR bool empty() const
    +
    1725 {
    +
    1726 return sizeof...(X) == 0;
    +
    1727 }
    +
    1728
    +
    1729 private:
    +
    1730
    +
    1731 XTENSOR_CONSTEXPR_ENHANCED_STATIC cast_type m_array = cast_type({X...});
    +
    1732 };
    +
    +
    1733
    +
    1734#undef XTENSOR_FIXED_SHAPE_CONSTEXPR
    +
    1735
    +
    1736 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End = -1>
    +
    +
    1737 class sequence_view
    +
    1738 {
    +
    1739 public:
    +
    1740
    +
    1741 using value_type = typename E::value_type;
    +
    1742 using reference = typename E::reference;
    +
    1743 using const_reference = typename E::const_reference;
    +
    1744 using pointer = typename E::pointer;
    +
    1745 using const_pointer = typename E::const_pointer;
    +
    1746
    +
    1747 using size_type = typename E::size_type;
    +
    1748 using difference_type = typename E::difference_type;
    +
    1749
    +
    1750 using iterator = typename E::iterator;
    +
    1751 using const_iterator = typename E::const_iterator;
    +
    1752 using reverse_iterator = typename E::reverse_iterator;
    +
    1753 using const_reverse_iterator = typename E::const_reverse_iterator;
    +
    1754
    +
    1755 explicit sequence_view(const E& container);
    +
    1756
    +
    1757 template <std::ptrdiff_t OS, std::ptrdiff_t OE>
    +
    1758 explicit sequence_view(const sequence_view<E, OS, OE>& other);
    +
    1759
    +
    1760 template <class T, class R = decltype(std::declval<T>().begin())>
    +
    1761 operator T() const;
    +
    1762
    +
    1763 bool empty() const;
    +
    1764 size_type size() const;
    +
    1765 const_reference operator[](std::size_t idx) const;
    +
    1766
    +
    1767 const_iterator end() const;
    +
    1768 const_iterator begin() const;
    +
    1769 const_iterator cend() const;
    +
    1770 const_iterator cbegin() const;
    +
    1771
    +
    1772 const_reverse_iterator rend() const;
    +
    1773 const_reverse_iterator rbegin() const;
    +
    1774 const_reverse_iterator crend() const;
    +
    1775 const_reverse_iterator crbegin() const;
    +
    1776
    +
    1777 const_reference front() const;
    +
    1778 const_reference back() const;
    +
    1779
    +
    1780 const E& storage() const;
    +
    1781
    +
    1782 private:
    +
    1783
    +
    1784 const E& m_sequence;
    +
    1785 };
    +
    +
    1786
    +
    1787 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1788 sequence_view<E, Start, End>::sequence_view(const E& container)
    +
    1789 : m_sequence(container)
    +
    1790 {
    +
    1791 }
    +
    1792
    +
    1793 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1794 template <std::ptrdiff_t OS, std::ptrdiff_t OE>
    +
    1795 sequence_view<E, Start, End>::sequence_view(const sequence_view<E, OS, OE>& other)
    +
    1796 : m_sequence(other.storage())
    +
    1797 {
    +
    1798 }
    +
    1799
    +
    1800 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1801 template <class T, class R>
    + +
    1803 {
    +
    1804 T ret = xtl::make_sequence<T>(this->size());
    +
    1805 std::copy(this->cbegin(), this->cend(), ret.begin());
    +
    1806 return ret;
    +
    1807 }
    +
    1808
    +
    1809 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1810 bool sequence_view<E, Start, End>::empty() const
    +
    1811 {
    +
    1812 return size() == size_type(0);
    +
    1813 }
    +
    1814
    +
    1815 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1816 auto sequence_view<E, Start, End>::size() const -> size_type
    +
    1817 {
    +
    1818 if (End == -1)
    +
    1819 {
    +
    1820 return m_sequence.size() - static_cast<size_type>(Start);
    +
    1821 }
    +
    1822 else
    +
    1823 {
    +
    1824 return static_cast<size_type>(End - Start);
    +
    1825 }
    +
    1826 }
    +
    1827
    +
    1828 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1829 auto sequence_view<E, Start, End>::operator[](std::size_t idx) const -> const_reference
    +
    1830 {
    +
    1831 return m_sequence[idx + static_cast<std::size_t>(Start)];
    +
    1832 }
    +
    1833
    +
    1834 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1835 auto sequence_view<E, Start, End>::end() const -> const_iterator
    +
    1836 {
    +
    1837 if (End != -1)
    +
    1838 {
    +
    1839 return m_sequence.begin() + End;
    +
    1840 }
    +
    1841 else
    +
    1842 {
    +
    1843 return m_sequence.end();
    +
    1844 }
    +
    1845 }
    +
    1846
    +
    1847 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1848 auto sequence_view<E, Start, End>::begin() const -> const_iterator
    +
    1849 {
    +
    1850 return m_sequence.begin() + Start;
    +
    1851 }
    +
    1852
    +
    1853 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1854 auto sequence_view<E, Start, End>::cend() const -> const_iterator
    +
    1855 {
    +
    1856 return end();
    +
    1857 }
    +
    1858
    +
    1859 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1860 auto sequence_view<E, Start, End>::cbegin() const -> const_iterator
    +
    1861 {
    +
    1862 return begin();
    +
    1863 }
    +
    1864
    +
    1865 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1866 auto sequence_view<E, Start, End>::rend() const -> const_reverse_iterator
    +
    1867 {
    +
    1868 return const_reverse_iterator(begin());
    +
    1869 }
    +
    1870
    +
    1871 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1872 auto sequence_view<E, Start, End>::rbegin() const -> const_reverse_iterator
    +
    1873 {
    +
    1874 return const_reverse_iterator(end());
    +
    1875 }
    +
    1876
    +
    1877 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1878 auto sequence_view<E, Start, End>::crend() const -> const_reverse_iterator
    +
    1879 {
    +
    1880 return rend();
    +
    1881 }
    +
    1882
    +
    1883 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1884 auto sequence_view<E, Start, End>::crbegin() const -> const_reverse_iterator
    +
    1885 {
    +
    1886 return rbegin();
    +
    1887 }
    +
    1888
    +
    1889 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1890 auto sequence_view<E, Start, End>::front() const -> const_reference
    +
    1891 {
    +
    1892 return *(m_sequence.begin() + Start);
    +
    1893 }
    +
    1894
    +
    1895 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1896 auto sequence_view<E, Start, End>::back() const -> const_reference
    +
    1897 {
    +
    1898 if (End == -1)
    +
    1899 {
    +
    1900 return m_sequence.back();
    +
    1901 }
    +
    1902 else
    +
    1903 {
    +
    1904 return m_sequence[static_cast<std::size_t>(End - 1)];
    +
    1905 }
    +
    1906 }
    +
    1907
    +
    1908 template <class E, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    1909 const E& sequence_view<E, Start, End>::storage() const
    +
    1910 {
    +
    1911 return m_sequence;
    +
    1912 }
    +
    1913
    +
    1914 template <class T, std::ptrdiff_t TB, std::ptrdiff_t TE>
    +
    1915 inline bool operator==(const sequence_view<T, TB, TE>& lhs, const sequence_view<T, TB, TE>& rhs)
    +
    1916 {
    +
    1917 return lhs.size() == rhs.size() && std::equal(lhs.begin(), lhs.end(), rhs.begin());
    +
    1918 }
    +
    1919
    +
    1920 template <class T, std::ptrdiff_t TB, std::ptrdiff_t TE>
    +
    1921 inline bool operator!=(const sequence_view<T, TB, TE>& lhs, const sequence_view<T, TB, TE>& rhs)
    +
    1922 {
    +
    1923 return !(lhs == rhs);
    +
    1924 }
    +
    1925}
    +
    1926
    +
    1927/******************************
    +
    1928 * std::tuple_size extensions *
    +
    1929 ******************************/
    +
    1930
    +
    1931// The C++ standard defines tuple_size as a class, however
    +
    1932// G++ 8 C++ library does define it as a struct hence we get
    +
    1933// clang warnings here
    +
    1934
    +
    1935// Do not remove space between "#" and "pragma". This is required for CRAN checks.
    +
    1936// clang-format off
    +
    1937#if defined(__clang__)
    +
    1938 # pragma clang diagnostic push
    +
    1939 # pragma clang diagnostic ignored "-Wmismatched-tags"
    +
    1940#endif
    +
    1941// clang-format on
    +
    1942
    +
    1943namespace std
    +
    1944{
    +
    1945 template <class T, std::size_t N>
    +
    +
    1946 class tuple_size<xt::const_array<T, N>> : public integral_constant<std::size_t, N>
    +
    1947 {
    +
    1948 };
    +
    +
    1949
    +
    1950 template <std::size_t... N>
    +
    +
    1951 class tuple_size<xt::fixed_shape<N...>> : public integral_constant<std::size_t, sizeof...(N)>
    +
    1952 {
    +
    1953 };
    +
    +
    1954
    +
    1955 template <class T, std::ptrdiff_t Start, std::ptrdiff_t End>
    +
    +
    1956 class tuple_size<xt::sequence_view<T, Start, End>>
    +
    1957 : public integral_constant<std::size_t, std::size_t(End - Start)>
    +
    1958 {
    +
    1959 };
    +
    +
    1960
    +
    1961 // Undefine tuple size for not-known sequence view size
    +
    1962 template <class T, std::ptrdiff_t Start>
    +
    1963 class tuple_size<xt::sequence_view<T, Start, -1>>;
    +
    1964}
    +
    1965
    +
    1966// Do not remove space between "#" and "pragma". This is required for CRAN checks.
    +
    1967// clang-format off
    +
    1968#if defined(__clang__)
    +
    1969 # pragma clang diagnostic pop
    +
    1970#endif
    +
    1971// clang-format on
    +
    1972
    +
    1973#undef XTENSOR_CONST
    +
    1974
    +
    1975#endif
    +
    This array class is modeled after std::array but adds optional alignment through a template parameter...
    +
    Fixed shape implementation for compile time defined arrays.
    + + + +
    standard mathematical functions for xexpressions
    +
    xarray< T, L > empty(const S &shape)
    Create a xcontainer (xarray, xtensor or xtensor_fixed) with uninitialized values of with value_type T...
    Definition xbuilder.hpp:89
    +
    A std::array like class with all member function (except reverse iterators) as constexpr.
    + + +
    +
    + + + + diff --git a/xstrided__view_8hpp_source.html b/xstrided__view_8hpp_source.html new file mode 100644 index 000000000..1246e2c63 --- /dev/null +++ b/xstrided__view_8hpp_source.html @@ -0,0 +1,1011 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xstrided_view.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xstrided_view.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_STRIDED_VIEW_HPP
    +
    11#define XTENSOR_STRIDED_VIEW_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <cstddef>
    +
    15#include <type_traits>
    +
    16#include <utility>
    +
    17#include <variant>
    +
    18
    +
    19#include <xtl/xsequence.hpp>
    +
    20
    +
    21#include "../containers/xstorage.hpp"
    +
    22#include "../core/xexpression.hpp"
    +
    23#include "../core/xiterable.hpp"
    +
    24#include "../core/xlayout.hpp"
    +
    25#include "../core/xsemantic.hpp"
    +
    26#include "../utils/xutils.hpp"
    +
    27#include "../views/xstrided_view_base.hpp"
    +
    28
    +
    29namespace xt
    +
    30{
    +
    31 /***************************
    +
    32 * xstrided_view extension *
    +
    33 ***************************/
    +
    34
    +
    35 namespace extension
    +
    36 {
    +
    37 template <class Tag, class CT, class S, layout_type L, class FST>
    + +
    39
    +
    40 template <class CT, class S, layout_type L, class FST>
    +
    + +
    42 {
    +
    43 using type = xtensor_empty_base;
    +
    44 };
    +
    +
    45
    +
    46 template <class CT, class S, layout_type L, class FST>
    +
    +
    47 struct xstrided_view_base : xstrided_view_base_impl<xexpression_tag_t<CT>, CT, S, L, FST>
    +
    48 {
    +
    49 };
    +
    +
    50
    +
    51 template <class CT, class S, layout_type L, class FST>
    +
    52 using xstrided_view_base_t = typename xstrided_view_base<CT, S, L, FST>::type;
    +
    53 }
    +
    54
    +
    55 template <layout_type L1, layout_type L2, class T>
    +
    + +
    57 {
    +
    58 using type = std::conditional_t<L1 == L2 && L1 != layout_type::dynamic, xcontiguous_iterable<T>, xiterable<T>>;
    +
    59 };
    +
    +
    60
    +
    61 template <layout_type L1, layout_type L2, class T>
    +
    62 using select_iterable_base_t = typename select_iterable_base<L1, L2, T>::type;
    +
    63
    +
    64
    +
    65 template <class CT, class S, layout_type L, class FST>
    +
    66 class xstrided_view;
    +
    67
    +
    68 template <class CT, class S, layout_type L, class FST>
    +
    + +
    70 {
    +
    71 using xexpression_type = std::decay_t<CT>;
    +
    72 using undecay_expression = CT;
    +
    73 using reference = inner_reference_t<undecay_expression>;
    +
    74 using const_reference = typename xexpression_type::const_reference;
    +
    75 using size_type = typename xexpression_type::size_type;
    +
    76 using shape_type = std::decay_t<S>;
    +
    77 using undecay_shape = S;
    +
    78 using storage_getter = FST;
    +
    79 using inner_storage_type = typename storage_getter::type;
    +
    80 using temporary_type = typename detail::xtype_for_shape<
    +
    81 S>::template type<typename xexpression_type::value_type, xexpression_type::static_layout>;
    +
    82 using storage_type = std::remove_reference_t<inner_storage_type>;
    +
    83 static constexpr layout_type layout = L;
    +
    84 };
    +
    +
    85
    +
    86 template <class CT, class S, layout_type L, class FST>
    +
    +
    87 struct xiterable_inner_types<xstrided_view<CT, S, L, FST>>
    +
    88 {
    +
    89 using inner_shape_type = std::decay_t<S>;
    +
    90 using inner_strides_type = get_strides_t<inner_shape_type>;
    +
    91 using inner_backstrides_type_type = inner_strides_type;
    +
    92
    +
    93 using const_stepper = std::conditional_t<
    + + + +
    97
    +
    98 using stepper = std::conditional_t<
    + + + +
    102 };
    +
    +
    103
    +
    104 template <class CT, class S, layout_type L, class FST, class RHS>
    +
    +
    105 struct can_assign<xstrided_view<CT, S, L, FST>, RHS> : can_assign<CT, RHS>
    +
    106 {
    +
    107 };
    +
    +
    108
    +
    109 /*****************
    +
    110 * xstrided_view *
    +
    111 *****************/
    +
    112
    +
    127 template <class CT, class S, layout_type L = layout_type::dynamic, class FST = detail::flat_storage_getter<CT, XTENSOR_DEFAULT_TRAVERSAL>>
    +
    + +
    129 : public xview_semantic<xstrided_view<CT, S, L, FST>>,
    +
    130 public select_iterable_base_t<L, std::decay_t<CT>::static_layout, xstrided_view<CT, S, L, FST>>,
    +
    131 private xstrided_view_base<xstrided_view<CT, S, L, FST>>,
    +
    132 public extension::xstrided_view_base_t<CT, S, L, FST>
    +
    133 {
    +
    134 public:
    +
    135
    +
    136 using self_type = xstrided_view<CT, S, L, FST>;
    +
    137 using base_type = xstrided_view_base<self_type>;
    +
    138 using semantic_base = xview_semantic<self_type>;
    +
    139 using extension_base = extension::xstrided_view_base_t<CT, S, L, FST>;
    +
    140 using expression_tag = typename extension_base::expression_tag;
    +
    141
    +
    142 using xexpression_type = typename base_type::xexpression_type;
    +
    143 using base_type::is_const;
    +
    144
    +
    145 using value_type = typename base_type::value_type;
    +
    146 using reference = typename base_type::reference;
    +
    147 using const_reference = typename base_type::const_reference;
    +
    148 using pointer = typename base_type::pointer;
    +
    149 using const_pointer = typename base_type::const_pointer;
    +
    150 using size_type = typename base_type::size_type;
    +
    151 using difference_type = typename base_type::difference_type;
    +
    152
    +
    153 using inner_storage_type = typename base_type::inner_storage_type;
    +
    154 using storage_type = typename base_type::storage_type;
    +
    155 using linear_iterator = typename storage_type::iterator;
    +
    156 using const_linear_iterator = typename storage_type::const_iterator;
    +
    157 using reverse_linear_iterator = std::reverse_iterator<linear_iterator>;
    +
    158 using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>;
    +
    159
    +
    160 using iterable_base = select_iterable_base_t<L, xexpression_type::static_layout, self_type>;
    +
    161 using inner_shape_type = typename base_type::inner_shape_type;
    +
    162 using inner_strides_type = typename base_type::inner_strides_type;
    +
    163 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    164 using shape_type = typename base_type::shape_type;
    +
    165 using strides_type = typename base_type::strides_type;
    +
    166 using backstrides_type = typename base_type::backstrides_type;
    +
    167
    +
    168 using stepper = typename iterable_base::stepper;
    +
    169 using const_stepper = typename iterable_base::const_stepper;
    +
    170
    +
    171 using base_type::contiguous_layout;
    +
    172 using base_type::static_layout;
    +
    173
    +
    174 using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type;
    +
    175 using base_index_type = xindex_type_t<shape_type>;
    +
    176
    +
    177 using data_alignment = xt_simd::container_alignment_t<storage_type>;
    +
    178 using simd_type = xt_simd::simd_type<value_type>;
    +
    179 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    180 using bool_load_type = typename base_type::bool_load_type;
    +
    181
    +
    182 static constexpr bool provides_simd_interface = has_simd_interface<xexpression_type>::value
    +
    183 && L != layout_type::dynamic;
    +
    184
    +
    185 template <class CTA, class SA>
    +
    186 xstrided_view(CTA&& e, SA&& shape, strides_type&& strides, std::size_t offset, layout_type layout) noexcept;
    +
    187
    +
    188 xstrided_view(const xstrided_view& rhs) = default;
    +
    189
    +
    190 self_type& operator=(const self_type&);
    +
    191
    +
    192 template <class E>
    +
    193 self_type& operator=(const xexpression<E>& e);
    +
    194
    +
    195 template <class E>
    +
    196 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    197
    + + +
    200 using base_type::is_contiguous;
    +
    201 using base_type::layout;
    +
    202 using base_type::shape;
    +
    203 using base_type::size;
    +
    204 using base_type::strides;
    +
    205
    +
    206 using base_type::operator();
    +
    207 using base_type::at;
    +
    208 using base_type::unchecked;
    +
    209 using base_type::operator[];
    +
    210 using base_type::data;
    + +
    212 using base_type::element;
    + +
    214 using base_type::storage;
    +
    215
    + + +
    218
    +
    219 template <class T>
    +
    220 void fill(const T& value);
    +
    221
    +
    222 linear_iterator linear_begin();
    +
    223 linear_iterator linear_end();
    +
    224 const_linear_iterator linear_begin() const;
    +
    225 const_linear_iterator linear_end() const;
    +
    226 const_linear_iterator linear_cbegin() const;
    +
    227 const_linear_iterator linear_cend() const;
    +
    228
    +
    229 reverse_linear_iterator linear_rbegin();
    +
    230 reverse_linear_iterator linear_rend();
    +
    231 const_reverse_linear_iterator linear_rbegin() const;
    +
    232 const_reverse_linear_iterator linear_rend() const;
    +
    233 const_reverse_linear_iterator linear_crbegin() const;
    +
    234 const_reverse_linear_iterator linear_crend() const;
    +
    235
    +
    236 template <class ST, class STEP = stepper>
    +
    237 disable_indexed_stepper_t<STEP> stepper_begin(const ST& shape);
    +
    238 template <class ST, class STEP = stepper>
    +
    239 disable_indexed_stepper_t<STEP> stepper_end(const ST& shape, layout_type l);
    +
    240
    +
    241 template <class ST, class STEP = stepper>
    +
    242 enable_indexed_stepper_t<STEP> stepper_begin(const ST& shape);
    +
    243 template <class ST, class STEP = stepper>
    +
    244 enable_indexed_stepper_t<STEP> stepper_end(const ST& shape, layout_type l);
    +
    245
    +
    246 template <class ST, class STEP = const_stepper>
    +
    247 disable_indexed_stepper_t<STEP> stepper_begin(const ST& shape) const;
    +
    248 template <class ST, class STEP = const_stepper>
    +
    249 disable_indexed_stepper_t<STEP> stepper_end(const ST& shape, layout_type l) const;
    +
    250
    +
    251 template <class ST, class STEP = const_stepper>
    +
    252 enable_indexed_stepper_t<STEP> stepper_begin(const ST& shape) const;
    +
    253 template <class ST, class STEP = const_stepper>
    +
    254 enable_indexed_stepper_t<STEP> stepper_end(const ST& shape, layout_type l) const;
    +
    255
    +
    256 template <class requested_type>
    +
    257 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    258
    +
    259 template <class align, class simd>
    +
    260 void store_simd(size_type i, const simd& e)
    +
    261 requires provides_simd_interface;
    +
    262
    +
    263 template <class align, class requested_type = value_type, std::size_t N = xt_simd::simd_traits<requested_type>::size>
    +
    264 simd_return_type<requested_type> load_simd(size_type i) const
    +
    265 requires provides_simd_interface;
    +
    266
    +
    267 reference data_element(size_type i);
    +
    268 const_reference data_element(size_type i) const;
    +
    269
    +
    270 reference flat(size_type i);
    +
    271 const_reference flat(size_type i) const;
    +
    272
    +
    273 using container_iterator = std::
    +
    274 conditional_t<is_const, typename storage_type::const_iterator, typename storage_type::iterator>;
    +
    275 using const_container_iterator = typename storage_type::const_iterator;
    +
    276
    +
    277 template <class E>
    + +
    279
    +
    280 template <class E>
    +
    281 rebind_t<E> build_view(E&& e) const;
    +
    282
    +
    283 private:
    +
    284
    +
    285 container_iterator data_xbegin() noexcept;
    +
    286 const_container_iterator data_xbegin() const noexcept;
    +
    287 container_iterator data_xend(layout_type l, size_type offset) noexcept;
    +
    288 const_container_iterator data_xend(layout_type l, size_type offset) const noexcept;
    +
    289
    +
    290 template <class It>
    +
    291 It data_xbegin_impl(It begin) const noexcept;
    +
    292
    +
    293 template <class It>
    +
    294 It data_xend_impl(It end, layout_type l, size_type offset) const noexcept;
    +
    295
    +
    296 void assign_temporary_impl(temporary_type&& tmp);
    +
    297
    +
    298 using base_type::set_offset;
    +
    299
    +
    300 template <class C>
    +
    301 friend class xstepper;
    +
    302 friend class xview_semantic<self_type>;
    +
    303 friend class xaccessible<self_type>;
    +
    304 friend class xconst_accessible<self_type>;
    +
    305 template <class D>
    +
    306 friend class xaxis_iterator;
    +
    307 template <class D>
    +
    308 friend class xaxis_slice_iterator;
    +
    309 };
    +
    +
    310
    +
    311 /**************************
    +
    312 * xstrided_view builders *
    +
    313 **************************/
    +
    314
    +
    315 template <class T>
    +
    316 using xstrided_slice = std::variant<
    +
    317 T,
    +
    318
    +
    319 xrange_adaptor<placeholders::xtuph, T, T>,
    +
    320 xrange_adaptor<T, placeholders::xtuph, T>,
    +
    321 xrange_adaptor<T, T, placeholders::xtuph>,
    +
    322
    +
    323 xrange_adaptor<T, placeholders::xtuph, placeholders::xtuph>,
    +
    324 xrange_adaptor<placeholders::xtuph, T, placeholders::xtuph>,
    +
    325 xrange_adaptor<placeholders::xtuph, placeholders::xtuph, T>,
    +
    326
    +
    327 xrange_adaptor<T, T, T>,
    +
    328 xrange_adaptor<placeholders::xtuph, placeholders::xtuph, placeholders::xtuph>,
    +
    329
    +
    330 xrange<T>,
    + +
    332
    +
    333 xall_tag,
    + + +
    336
    +
    341 using xstrided_slice_vector = std::vector<xstrided_slice<std::ptrdiff_t>>;
    +
    342
    +
    343 template <layout_type L = layout_type::dynamic, class E, class S, class X>
    +
    344 auto strided_view(E&& e, S&& shape, X&& stride, std::size_t offset = 0, layout_type layout = L) noexcept;
    +
    345
    +
    346 template <class E>
    +
    347 auto strided_view(E&& e, const xstrided_slice_vector& slices);
    +
    348
    +
    349 /********************************
    +
    350 * xstrided_view implementation *
    +
    351 ********************************/
    +
    352
    +
    357
    +
    366 template <class CT, class S, layout_type L, class FST>
    +
    367 template <class CTA, class SA>
    +
    +
    368 inline xstrided_view<CT, S, L, FST>::xstrided_view(
    +
    369 CTA&& e,
    +
    370 SA&& shape,
    +
    371 strides_type&& strides,
    +
    372 std::size_t offset,
    + +
    374 ) noexcept
    +
    375 : base_type(std::forward<CTA>(e), std::forward<SA>(shape), std::move(strides), offset, layout)
    +
    376 {
    +
    377 }
    +
    +
    378
    +
    380
    +
    381 template <class CT, class S, layout_type L, class FST>
    +
    382 inline auto xstrided_view<CT, S, L, FST>::operator=(const self_type& rhs) -> self_type&
    +
    383 {
    +
    384 temporary_type tmp(rhs);
    +
    385 return this->assign_temporary(std::move(tmp));
    +
    386 }
    +
    387
    +
    392
    +
    395 template <class CT, class S, layout_type L, class FST>
    +
    396 template <class E>
    +
    +
    397 inline auto xstrided_view<CT, S, L, FST>::operator=(const xexpression<E>& e) -> self_type&
    +
    398 {
    +
    399 return semantic_base::operator=(e);
    +
    400 }
    +
    +
    401
    +
    403
    +
    404 template <class CT, class S, layout_type L, class FST>
    +
    405 template <class E>
    +
    406 inline auto xstrided_view<CT, S, L, FST>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    407 {
    +
    408 this->fill(e);
    +
    409 return *this;
    +
    410 }
    +
    411
    +
    412 namespace xstrided_view_detail
    +
    413 {
    +
    414 template <class V, class T>
    +
    415 inline void run_assign_temporary_impl(V& v, const T& t, std::true_type /* enable strided assign */)
    +
    416 {
    +
    417 strided_loop_assigner<true>::run(v, t);
    +
    418 }
    +
    419
    +
    420 template <class V, class T>
    +
    421 inline void
    +
    422 run_assign_temporary_impl(V& v, const T& t, std::false_type /* fallback to iterator assign */)
    +
    423 {
    +
    424 std::copy(t.cbegin(), t.cend(), v.begin());
    +
    425 }
    +
    426 }
    +
    427
    +
    428 template <class CT, class S, layout_type L, class FST>
    +
    429 inline void xstrided_view<CT, S, L, FST>::assign_temporary_impl(temporary_type&& tmp)
    +
    430 {
    +
    431 constexpr bool
    +
    432 fast_assign = xassign_traits<xstrided_view<CT, S, L, FST>, temporary_type>::simd_strided_assign();
    +
    433 xstrided_view_detail::run_assign_temporary_impl(*this, tmp, std::integral_constant<bool, fast_assign>{});
    +
    434 }
    +
    435
    +
    440
    +
    445 template <class CT, class S, layout_type L, class FST>
    +
    446 template <class T>
    +
    +
    447 inline void xstrided_view<CT, S, L, FST>::fill(const T& value)
    +
    448 {
    + +
    450 {
    +
    451 std::fill(this->linear_begin(), this->linear_end(), value);
    +
    452 }
    +
    453 else
    +
    454 {
    +
    455 std::fill(this->begin(), this->end(), value);
    +
    456 }
    +
    457 }
    +
    +
    458
    +
    460
    +
    461 template <class CT, class S, layout_type L, class FST>
    +
    462 inline auto xstrided_view<CT, S, L, FST>::data_element(size_type i) -> reference
    +
    463 {
    +
    464 return storage()[i];
    +
    465 }
    +
    466
    +
    467 template <class CT, class S, layout_type L, class FST>
    +
    468 inline auto xstrided_view<CT, S, L, FST>::data_element(size_type i) const -> const_reference
    +
    469 {
    +
    470 return storage()[i];
    +
    471 }
    +
    472
    +
    473 template <class CT, class S, layout_type L, class FST>
    +
    474 inline auto xstrided_view<CT, S, L, FST>::flat(size_type i) -> reference
    +
    475 {
    +
    476 return storage()[i];
    +
    477 }
    +
    478
    +
    479 template <class CT, class S, layout_type L, class FST>
    +
    480 inline auto xstrided_view<CT, S, L, FST>::flat(size_type i) const -> const_reference
    +
    481 {
    +
    482 return storage()[i];
    +
    483 }
    +
    484
    +
    485 template <class CT, class S, layout_type L, class FST>
    +
    486 inline auto xstrided_view<CT, S, L, FST>::linear_begin() -> linear_iterator
    +
    487 {
    +
    488 return this->storage().begin() + static_cast<std::ptrdiff_t>(data_offset());
    +
    489 }
    +
    490
    +
    491 template <class CT, class S, layout_type L, class FST>
    +
    492 inline auto xstrided_view<CT, S, L, FST>::linear_end() -> linear_iterator
    +
    493 {
    +
    494 return this->storage().begin() + static_cast<std::ptrdiff_t>(data_offset() + size());
    +
    495 }
    +
    496
    +
    497 template <class CT, class S, layout_type L, class FST>
    +
    498 inline auto xstrided_view<CT, S, L, FST>::linear_begin() const -> const_linear_iterator
    +
    499 {
    +
    500 return this->linear_cbegin();
    +
    501 }
    +
    502
    +
    503 template <class CT, class S, layout_type L, class FST>
    +
    504 inline auto xstrided_view<CT, S, L, FST>::linear_end() const -> const_linear_iterator
    +
    505 {
    +
    506 return this->linear_cend();
    +
    507 }
    +
    508
    +
    509 template <class CT, class S, layout_type L, class FST>
    +
    510 inline auto xstrided_view<CT, S, L, FST>::linear_cbegin() const -> const_linear_iterator
    +
    511 {
    +
    512 return this->storage().cbegin() + static_cast<std::ptrdiff_t>(data_offset());
    +
    513 }
    +
    514
    +
    515 template <class CT, class S, layout_type L, class FST>
    +
    516 inline auto xstrided_view<CT, S, L, FST>::linear_cend() const -> const_linear_iterator
    +
    517 {
    +
    518 return this->storage().cbegin() + static_cast<std::ptrdiff_t>(data_offset() + size());
    +
    519 }
    +
    520
    +
    521 template <class CT, class S, layout_type L, class FST>
    +
    522 inline auto xstrided_view<CT, S, L, FST>::linear_rbegin() -> reverse_linear_iterator
    +
    523 {
    +
    524 return reverse_linear_iterator(this->linear_begin());
    +
    525 }
    +
    526
    +
    527 template <class CT, class S, layout_type L, class FST>
    +
    528 inline auto xstrided_view<CT, S, L, FST>::linear_rend() -> reverse_linear_iterator
    +
    529 {
    +
    530 return reverse_linear_iterator(this->linear_end());
    +
    531 }
    +
    532
    +
    533 template <class CT, class S, layout_type L, class FST>
    +
    534 inline auto xstrided_view<CT, S, L, FST>::linear_rbegin() const -> const_reverse_linear_iterator
    +
    535 {
    +
    536 return this->linear_crbegin();
    +
    537 }
    +
    538
    +
    539 template <class CT, class S, layout_type L, class FST>
    +
    540 inline auto xstrided_view<CT, S, L, FST>::linear_rend() const -> const_reverse_linear_iterator
    +
    541 {
    +
    542 return this->linear_crend();
    +
    543 }
    +
    544
    +
    545 template <class CT, class S, layout_type L, class FST>
    +
    546 inline auto xstrided_view<CT, S, L, FST>::linear_crbegin() const -> const_reverse_linear_iterator
    +
    547 {
    +
    548 return const_reverse_linear_iterator(this->linear_cbegin());
    +
    549 }
    +
    550
    +
    551 template <class CT, class S, layout_type L, class FST>
    +
    552 inline auto xstrided_view<CT, S, L, FST>::linear_crend() const -> const_reverse_linear_iterator
    +
    553 {
    +
    554 return const_reverse_linear_iterator(this->linear_cend());
    +
    555 }
    +
    556
    +
    557 /***************
    +
    558 * stepper api *
    +
    559 ***************/
    +
    560
    +
    561 template <class CT, class S, layout_type L, class FST>
    +
    562 template <class ST, class STEP>
    +
    563 inline auto xstrided_view<CT, S, L, FST>::stepper_begin(const ST& shape) -> disable_indexed_stepper_t<STEP>
    +
    564 {
    +
    565 size_type offset = shape.size() - dimension();
    +
    566 return stepper(this, data_xbegin(), offset);
    +
    567 }
    +
    568
    +
    569 template <class CT, class S, layout_type L, class FST>
    +
    570 template <class ST, class STEP>
    + +
    572 -> disable_indexed_stepper_t<STEP>
    +
    573 {
    +
    574 size_type offset = shape.size() - dimension();
    +
    575 return stepper(this, data_xend(l, offset), offset);
    +
    576 }
    +
    577
    +
    578 template <class CT, class S, layout_type L, class FST>
    +
    579 template <class ST, class STEP>
    +
    580 inline auto xstrided_view<CT, S, L, FST>::stepper_begin(const ST& shape) -> enable_indexed_stepper_t<STEP>
    +
    581 {
    +
    582 size_type offset = shape.size() - dimension();
    +
    583 return stepper(this, offset);
    +
    584 }
    +
    585
    +
    586 template <class CT, class S, layout_type L, class FST>
    +
    587 template <class ST, class STEP>
    + +
    589 -> enable_indexed_stepper_t<STEP>
    +
    590 {
    +
    591 size_type offset = shape.size() - dimension();
    +
    592 return stepper(this, offset, true);
    +
    593 }
    +
    594
    +
    595 template <class CT, class S, layout_type L, class FST>
    +
    596 template <class ST, class STEP>
    +
    597 inline auto xstrided_view<CT, S, L, FST>::stepper_begin(const ST& shape) const
    +
    598 -> disable_indexed_stepper_t<STEP>
    +
    599 {
    +
    600 size_type offset = shape.size() - dimension();
    +
    601 return const_stepper(this, data_xbegin(), offset);
    +
    602 }
    +
    603
    +
    604 template <class CT, class S, layout_type L, class FST>
    +
    605 template <class ST, class STEP>
    +
    606 inline auto xstrided_view<CT, S, L, FST>::stepper_end(const ST& shape, layout_type l) const
    +
    607 -> disable_indexed_stepper_t<STEP>
    +
    608 {
    +
    609 size_type offset = shape.size() - dimension();
    +
    610 return const_stepper(this, data_xend(l, offset), offset);
    +
    611 }
    +
    612
    +
    613 template <class CT, class S, layout_type L, class FST>
    +
    614 template <class ST, class STEP>
    +
    615 inline auto xstrided_view<CT, S, L, FST>::stepper_begin(const ST& shape) const
    +
    616 -> enable_indexed_stepper_t<STEP>
    +
    617 {
    +
    618 size_type offset = shape.size() - dimension();
    +
    619 return const_stepper(this, offset);
    +
    620 }
    +
    621
    +
    622 template <class CT, class S, layout_type L, class FST>
    +
    623 template <class ST, class STEP>
    +
    624 inline auto xstrided_view<CT, S, L, FST>::stepper_end(const ST& shape, layout_type /*l*/) const
    +
    625 -> enable_indexed_stepper_t<STEP>
    +
    626 {
    +
    627 size_type offset = shape.size() - dimension();
    +
    628 return const_stepper(this, offset, true);
    +
    629 }
    +
    630
    +
    631 template <class CT, class S, layout_type L, class FST>
    +
    632 template <class It>
    +
    633 inline It xstrided_view<CT, S, L, FST>::data_xbegin_impl(It begin) const noexcept
    +
    634 {
    +
    635 return begin + static_cast<std::ptrdiff_t>(this->data_offset());
    +
    636 }
    +
    637
    +
    638 template <class CT, class S, layout_type L, class FST>
    +
    639 template <class It>
    +
    640 inline It
    +
    641 xstrided_view<CT, S, L, FST>::data_xend_impl(It begin, layout_type l, size_type offset) const noexcept
    +
    642 {
    +
    643 return strided_data_end(*this, begin + std::ptrdiff_t(this->data_offset()), l, offset);
    +
    644 }
    +
    645
    +
    646 template <class CT, class S, layout_type L, class FST>
    +
    647 inline auto xstrided_view<CT, S, L, FST>::data_xbegin() noexcept -> container_iterator
    +
    648 {
    +
    649 return data_xbegin_impl(this->storage().begin());
    +
    650 }
    +
    651
    +
    652 template <class CT, class S, layout_type L, class FST>
    +
    653 inline auto xstrided_view<CT, S, L, FST>::data_xbegin() const noexcept -> const_container_iterator
    +
    654 {
    +
    655 return data_xbegin_impl(this->storage().cbegin());
    +
    656 }
    +
    657
    +
    658 template <class CT, class S, layout_type L, class FST>
    +
    659 inline auto xstrided_view<CT, S, L, FST>::data_xend(layout_type l, size_type offset) noexcept
    +
    660 -> container_iterator
    +
    661 {
    +
    662 return data_xend_impl(this->storage().begin(), l, offset);
    +
    663 }
    +
    664
    +
    665 template <class CT, class S, layout_type L, class FST>
    +
    666 inline auto xstrided_view<CT, S, L, FST>::data_xend(layout_type l, size_type offset) const noexcept
    +
    667 -> const_container_iterator
    +
    668 {
    +
    669 return data_xend_impl(this->storage().cbegin(), l, offset);
    +
    670 }
    +
    671
    +
    672 template <class CT, class S, layout_type L, class FST>
    +
    673 template <class alignment, class simd>
    +
    674 inline void xstrided_view<CT, S, L, FST>::store_simd(size_type i, const simd& e)
    +
    675 requires provides_simd_interface
    +
    676 {
    +
    677 using align_mode = driven_align_mode_t<alignment, data_alignment>;
    +
    678 xt_simd::store_as(&(storage()[i]), e, align_mode());
    +
    679 }
    +
    680
    +
    681 template <class CT, class S, layout_type L, class FST>
    +
    682 template <class alignment, class requested_type, std::size_t N>
    +
    683 inline auto xstrided_view<CT, S, L, FST>::load_simd(size_type i) const -> simd_return_type<requested_type>
    +
    684 requires provides_simd_interface
    +
    685 {
    +
    686 using align_mode = driven_align_mode_t<alignment, data_alignment>;
    +
    687 return xt_simd::load_as<requested_type>(&(storage()[i]), align_mode());
    +
    688 }
    +
    689
    +
    690 template <class CT, class S, layout_type L, class FST>
    +
    691 template <class E>
    +
    692 inline auto xstrided_view<CT, S, L, FST>::build_view(E&& e) const -> rebind_t<E>
    +
    693 {
    +
    694 inner_shape_type sh(this->shape());
    +
    695 inner_strides_type str(this->strides());
    +
    696 return rebind_t<E>(
    +
    697 std::forward<E>(e),
    +
    698 std::move(sh),
    +
    699 std::move(str),
    + +
    701 this->layout()
    +
    702 );
    +
    703 }
    +
    704
    +
    705 /*****************************************
    +
    706 * xstrided_view builders implementation *
    +
    707 *****************************************/
    +
    708
    +
    725 template <layout_type L, class E, class S, class X>
    +
    +
    726 inline auto strided_view(E&& e, S&& shape, X&& strides, std::size_t offset, layout_type layout) noexcept
    +
    727 {
    +
    728 using view_type = xstrided_view<xclosure_t<E>, S, L>;
    +
    729 return view_type(std::forward<E>(e), std::forward<S>(shape), std::forward<X>(strides), offset, layout);
    +
    730 }
    +
    +
    731
    +
    732 namespace detail
    +
    733 {
    +
    734 struct no_adj_strides_policy
    +
    735 {
    +
    736 protected:
    +
    737
    +
    738 inline void resize(std::size_t)
    +
    739 {
    +
    740 }
    +
    741
    +
    742 inline void set_fake_slice(std::size_t)
    +
    743 {
    +
    744 }
    +
    745
    +
    746 template <class ST, class S>
    +
    747 bool fill_args(
    +
    748 const xstrided_slice_vector& /*slices*/,
    +
    749 std::size_t /*sl_idx*/,
    +
    750 std::size_t /*i*/,
    +
    751 std::size_t /*old_shape*/,
    +
    752 const ST& /*old_stride*/,
    +
    753 S& /*shape*/,
    +
    754 get_strides_t<S>& /*strides*/
    +
    755 )
    +
    756 {
    +
    757 return false;
    +
    758 }
    +
    759 };
    +
    760 }
    +
    761
    +
    787 template <class E>
    +
    +
    788 inline auto strided_view(E&& e, const xstrided_slice_vector& slices)
    +
    789 {
    +
    790 detail::strided_view_args<detail::no_adj_strides_policy> args;
    +
    791 args.fill_args(
    +
    792 e.shape(),
    +
    793 detail::get_strides<XTENSOR_DEFAULT_TRAVERSAL>(e),
    +
    794 detail::get_offset<XTENSOR_DEFAULT_TRAVERSAL>(e),
    +
    795 e.layout(),
    +
    796 slices
    +
    797 );
    +
    798 using view_type = xstrided_view<xclosure_t<E>, decltype(args.new_shape)>;
    +
    799 return view_type(
    +
    800 std::forward<E>(e),
    +
    801 std::move(args.new_shape),
    +
    802 std::move(args.new_strides),
    +
    803 args.new_offset,
    +
    804 args.new_layout
    +
    805 );
    +
    806 }
    +
    +
    807
    +
    808 namespace detail
    +
    809 {
    +
    810 template <typename S>
    +
    811 struct rebind_shape;
    +
    812
    +
    813 template <std::size_t... X>
    +
    814 struct rebind_shape<xt::fixed_shape<X...>>
    +
    815 {
    +
    816 using type = xt::fixed_shape<X...>;
    +
    817 };
    +
    818
    +
    819 template <class S>
    +
    820 struct rebind_shape
    +
    821 {
    +
    822 using type = rebind_container_t<size_t, S>;
    +
    823 };
    +
    824
    +
    825 template <class S>
    +
    826 inline void recalculate_shape_impl(S& shape, size_t size)
    +
    827 {
    +
    828 if constexpr (std::is_signed_v<get_value_type_t<typename std::decay<S>::type>>)
    +
    829 {
    +
    830 using value_type = get_value_type_t<typename std::decay_t<S>>;
    +
    831 XTENSOR_ASSERT(std::count(shape.cbegin(), shape.cend(), -1) <= 1);
    +
    832 auto iter = std::find(shape.begin(), shape.end(), -1);
    +
    833 if (iter != std::end(shape))
    +
    834 {
    +
    835 const auto total = std::accumulate(shape.cbegin(), shape.cend(), -1, std::multiplies<int>{});
    +
    836 const auto missing_dimension = size / total;
    +
    837 (*iter) = static_cast<value_type>(missing_dimension);
    +
    838 }
    +
    839 }
    +
    840 }
    +
    841
    +
    842 template <class S>
    +
    843 inline auto recalculate_shape(S&& shape, size_t size)
    +
    844 {
    +
    845 return recalculate_shape_impl(shape, size);
    +
    846 }
    +
    847 }
    +
    848
    +
    849 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E, class S>
    +
    850 inline auto reshape_view(E&& e, S&& shape)
    +
    851 {
    +
    852 static_assert(
    + +
    854 "traversal has to be row or column major"
    +
    855 );
    +
    856
    +
    857 using shape_type = std::decay_t<decltype(shape)>;
    +
    858 using unsigned_shape_type = typename detail::rebind_shape<shape_type>::type;
    +
    859 get_strides_t<unsigned_shape_type> strides;
    +
    860
    +
    861 detail::recalculate_shape(shape, e.size());
    +
    862 xt::resize_container(strides, shape.size());
    + +
    864 constexpr auto computed_layout = std::decay_t<E>::static_layout == L ? L : layout_type::dynamic;
    +
    865 using view_type = xstrided_view<
    +
    866 xclosure_t<E>,
    +
    867 unsigned_shape_type,
    +
    868 computed_layout,
    +
    869 detail::flat_adaptor_getter<xclosure_t<E>, L>>;
    +
    870 return view_type(
    +
    871 std::forward<E>(e),
    +
    872 xtl::forward_sequence<unsigned_shape_type, S>(shape),
    +
    873 std::move(strides),
    +
    874 0,
    +
    875 e.layout()
    +
    876 );
    +
    877 }
    +
    878
    +
    892 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E, class S>
    +
    +
    893 inline auto reshape_view(E&& e, S&& shape, layout_type /*order*/)
    +
    894 {
    +
    895 return reshape_view<L>(std::forward<E>(e), std::forward<S>(shape));
    +
    896 }
    +
    +
    897
    +
    898 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E, class I, std::size_t N>
    +
    899 inline auto reshape_view(E&& e, const I (&shape)[N], layout_type order)
    +
    900 {
    +
    901 using shape_type = std::array<std::size_t, N>;
    +
    902 return reshape_view<L>(std::forward<E>(e), xtl::forward_sequence<shape_type, decltype(shape)>(shape), order);
    +
    903 }
    +
    904
    +
    905 template <layout_type L = XTENSOR_DEFAULT_TRAVERSAL, class E, class I, std::size_t N>
    +
    906 inline auto reshape_view(E&& e, const I (&shape)[N])
    +
    907 {
    +
    908 using shape_type = std::array<I, N>;
    +
    909 return reshape_view<L>(std::forward<E>(e), xtl::forward_sequence<shape_type, decltype(shape)>(shape));
    +
    910 }
    +
    911}
    +
    912
    +
    913#endif
    +
    Fixed shape implementation for compile time defined arrays.
    +
    Base class for implementation of common expression access methods.
    +
    Base class for implementation of common expression constant access methods.
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    +
    size_type dimension() const noexcept
    +
    Base class for xexpressions.
    + +
    Base class for multidimensional iterable expressions.
    + + + +
    layout_type layout() const noexcept
    +
    xstrided_view_base(CTA &&e, SA &&shape, strides_type &&strides, size_type offset, layout_type layout) noexcept
    Constructs an xstrided_view_base.
    +
    bool has_linear_assign(const O &strides) const noexcept
    +
    const inner_strides_type & strides() const noexcept
    +
    bool broadcast_shape(O &shape, bool reuse_cache=false) const
    + +
    const inner_backstrides_type & backstrides() const noexcept
    +
    const inner_shape_type & shape() const noexcept
    +
    size_type data_offset() const noexcept
    +
    storage_type & storage() noexcept
    +
    xexpression_type & expression() noexcept
    +
    View of an xexpression using strides.
    +
    void fill(const T &value)
    Fills the view with the given value.
    +
    storage_type & storage() noexcept
    Returns a reference to the buffer containing the elements of the view.
    +
    size_type data_offset() const noexcept
    Returns the offset to the first element in the view.
    + + +
    xstrided_view(CTA &&e, SA &&shape, strides_type &&strides, std::size_t offset, layout_type layout) noexcept
    Constructs an xstrided_view.
    + +
    derived_type & assign_temporary(temporary_type &&)
    Assigns the temporary tmp to *this.
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    std::vector< xstrided_slice< std::ptrdiff_t > > xstrided_slice_vector
    vector of slices used to build a xstrided_view
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    auto strided_view(E &&e, S &&shape, X &&stride, std::size_t offset=0, layout_type layout=L) noexcept
    Construct a strided view from an xexpression, shape, strides and offset.
    + + + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xstrided__view__base_8hpp_source.html b/xstrided__view__base_8hpp_source.html new file mode 100644 index 000000000..e75e4648a --- /dev/null +++ b/xstrided__view__base_8hpp_source.html @@ -0,0 +1,1016 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xstrided_view_base.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xstrided_view_base.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_STRIDED_VIEW_BASE_HPP
    +
    11#define XTENSOR_STRIDED_VIEW_BASE_HPP
    +
    12
    +
    13#include <type_traits>
    +
    14#include <variant>
    +
    15
    +
    16#include <xtl/xsequence.hpp>
    +
    17
    +
    18#include "../core/xaccessible.hpp"
    +
    19#include "../core/xstrides.hpp"
    +
    20#include "../core/xtensor_config.hpp"
    +
    21#include "../core/xtensor_forward.hpp"
    +
    22#include "../utils/xutils.hpp"
    +
    23#include "../views/xslice.hpp"
    +
    24
    +
    25namespace xt
    +
    26{
    +
    27 namespace detail
    +
    28 {
    +
    29 template <class CT, layout_type L>
    +
    30 class flat_expression_adaptor
    +
    31 {
    +
    32 public:
    +
    33
    +
    34 using xexpression_type = std::decay_t<CT>;
    +
    35 using shape_type = typename xexpression_type::shape_type;
    +
    36 using inner_strides_type = get_strides_t<shape_type>;
    +
    37 using index_type = inner_strides_type;
    +
    38 using size_type = typename xexpression_type::size_type;
    +
    39 using value_type = typename xexpression_type::value_type;
    +
    40 using const_reference = typename xexpression_type::const_reference;
    +
    41 using reference = std::conditional_t<
    +
    42 std::is_const<std::remove_reference_t<CT>>::value,
    +
    43 typename xexpression_type::const_reference,
    +
    44 typename xexpression_type::reference>;
    +
    45
    +
    46 using iterator = decltype(std::declval<std::remove_reference_t<CT>>().template begin<L>());
    +
    47 using const_iterator = decltype(std::declval<std::decay_t<CT>>().template cbegin<L>());
    +
    48 using reverse_iterator = decltype(std::declval<std::remove_reference_t<CT>>().template rbegin<L>());
    +
    49 using const_reverse_iterator = decltype(std::declval<std::decay_t<CT>>().template crbegin<L>());
    +
    50
    +
    51 explicit flat_expression_adaptor(CT* e);
    +
    52
    +
    53 template <class FST>
    +
    54 flat_expression_adaptor(CT* e, FST&& strides);
    +
    55
    +
    56 void update_pointer(CT* ptr) const;
    +
    57
    +
    58 size_type size() const;
    +
    59 reference operator[](size_type idx);
    +
    60 const_reference operator[](size_type idx) const;
    +
    61
    +
    62 iterator begin();
    +
    63 iterator end();
    +
    64 const_iterator begin() const;
    +
    65 const_iterator end() const;
    +
    66 const_iterator cbegin() const;
    +
    67 const_iterator cend() const;
    +
    68
    +
    69 private:
    +
    70
    +
    71 static index_type& get_index();
    +
    72
    +
    73 mutable CT* m_e;
    +
    74 inner_strides_type m_strides;
    +
    75 size_type m_size;
    +
    76 };
    +
    77
    +
    78 template <class T>
    +
    79 struct is_flat_expression_adaptor : std::false_type
    +
    80 {
    +
    81 };
    +
    82
    +
    83 template <class CT, layout_type L>
    +
    84 struct is_flat_expression_adaptor<flat_expression_adaptor<CT, L>> : std::true_type
    +
    85 {
    +
    86 };
    +
    87
    +
    88 template <class E, class ST>
    +
    89 struct provides_data_interface
    +
    90 : std::conjunction<has_data_interface<std::decay_t<E>>, std::negation<is_flat_expression_adaptor<ST>>>
    +
    91 {
    +
    92 };
    +
    93 }
    +
    94
    +
    95 template <class D>
    +
    +
    96 class xstrided_view_base : public xaccessible<D>
    +
    97 {
    +
    98 public:
    +
    99
    +
    100 using base_type = xaccessible<D>;
    +
    101 using inner_types = xcontainer_inner_types<D>;
    +
    102 using xexpression_type = typename inner_types::xexpression_type;
    +
    103 using undecay_expression = typename inner_types::undecay_expression;
    +
    104 static constexpr bool is_const = std::is_const<std::remove_reference_t<undecay_expression>>::value;
    +
    105
    +
    106 using value_type = typename xexpression_type::value_type;
    +
    107 using reference = typename inner_types::reference;
    +
    108 using const_reference = typename inner_types::const_reference;
    +
    109 using pointer = std::
    +
    110 conditional_t<is_const, typename xexpression_type::const_pointer, typename xexpression_type::pointer>;
    +
    111 using const_pointer = typename xexpression_type::const_pointer;
    +
    112 using size_type = typename inner_types::size_type;
    +
    113 using difference_type = typename xexpression_type::difference_type;
    +
    114
    +
    115 using storage_getter = typename inner_types::storage_getter;
    +
    116 using inner_storage_type = typename inner_types::inner_storage_type;
    +
    117 using storage_type = std::remove_reference_t<inner_storage_type>;
    +
    118
    +
    119 using shape_type = typename inner_types::shape_type;
    +
    120 using strides_type = get_strides_t<shape_type>;
    +
    121 using backstrides_type = strides_type;
    +
    122
    +
    123 using inner_shape_type = shape_type;
    +
    124 using inner_strides_type = strides_type;
    +
    125 using inner_backstrides_type = backstrides_type;
    +
    126
    +
    127 using undecay_shape = typename inner_types::undecay_shape;
    +
    128
    +
    129 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    130 using bool_load_type = typename xexpression_type::bool_load_type;
    +
    131
    +
    132 static constexpr layout_type static_layout = inner_types::layout;
    +
    133 static constexpr bool contiguous_layout = static_layout != layout_type::dynamic
    +
    134 && xexpression_type::contiguous_layout;
    +
    135
    +
    136 static constexpr bool
    +
    137 provides_data_interface = detail::provides_data_interface<xexpression_type, storage_type>::value;
    +
    138
    +
    139 template <class CTA, class SA>
    +
    140 xstrided_view_base(CTA&& e, SA&& shape, strides_type&& strides, size_type offset, layout_type layout) noexcept;
    +
    141
    + +
    143
    + +
    145
    +
    146 const inner_shape_type& shape() const noexcept;
    +
    147 const inner_strides_type& strides() const noexcept;
    +
    148 const inner_backstrides_type& backstrides() const noexcept;
    +
    149 layout_type layout() const noexcept;
    +
    150 bool is_contiguous() const noexcept;
    +
    151 using base_type::shape;
    +
    152
    +
    153 reference operator()();
    +
    154 const_reference operator()() const;
    +
    155
    +
    156 template <class... Args>
    +
    157 reference operator()(Args... args);
    +
    158
    +
    159 template <class... Args>
    +
    160 const_reference operator()(Args... args) const;
    +
    161
    +
    162 template <class... Args>
    +
    163 reference unchecked(Args... args);
    +
    164
    +
    165 template <class... Args>
    +
    166 const_reference unchecked(Args... args) const;
    +
    167
    +
    168 template <class It>
    +
    169 reference element(It first, It last);
    + +
    171 template <class It>
    +
    172 const_reference element(It first, It last) const;
    +
    173
    +
    174 storage_type& storage() noexcept;
    +
    175 const storage_type& storage() const noexcept;
    +
    176
    +
    177 pointer data() noexcept
    +
    178 requires(provides_data_interface);
    +
    179 const_pointer data() const noexcept
    +
    180 requires(provides_data_interface);
    +
    181
    +
    182 size_type data_offset() const noexcept;
    +
    183
    +
    184 xexpression_type& expression() noexcept;
    +
    185 const xexpression_type& expression() const noexcept;
    +
    186
    +
    187 template <class O>
    +
    188 bool broadcast_shape(O& shape, bool reuse_cache = false) const;
    +
    189
    +
    190 template <class O>
    +
    191 bool has_linear_assign(const O& strides) const noexcept;
    +
    192
    +
    193 protected:
    +
    194
    +
    195 using offset_type = typename strides_type::value_type;
    +
    196
    +
    197 template <class... Args>
    +
    198 offset_type compute_index(Args... args) const;
    +
    199
    +
    200 template <class... Args>
    +
    201 offset_type compute_unchecked_index(Args... args) const;
    + +
    203 template <class It>
    +
    204 offset_type compute_element_index(It first, It last) const;
    +
    205
    +
    206 void set_offset(size_type offset);
    +
    207
    +
    208 private:
    +
    209
    +
    210 undecay_expression m_e;
    +
    211 inner_storage_type m_storage;
    +
    212 inner_shape_type m_shape;
    +
    213 inner_strides_type m_strides;
    +
    214 inner_backstrides_type m_backstrides;
    +
    215 size_type m_offset;
    +
    216 layout_type m_layout;
    +
    217 };
    +
    + +
    219 /***************************
    +
    220 * flat_expression_adaptor *
    +
    221 ***************************/
    +
    222
    +
    223 namespace detail
    +
    224 {
    +
    225 template <class CT>
    +
    226 struct inner_storage_getter
    +
    227 {
    +
    228 using type = decltype(std::declval<CT>().storage());
    +
    229 using reference = std::add_lvalue_reference_t<CT>;
    +
    230
    +
    231 template <class E>
    +
    232 using rebind_t = inner_storage_getter<E>;
    +
    233
    +
    234 static decltype(auto) get_flat_storage(reference e)
    +
    235 {
    +
    236 return e.storage();
    +
    237 }
    +
    238
    +
    239 static auto get_offset(reference e)
    +
    240 {
    +
    241 return e.data_offset();
    +
    242 }
    +
    243
    +
    244 static decltype(auto) get_strides(reference e)
    +
    245 {
    +
    246 return e.strides();
    +
    247 }
    +
    248 };
    +
    249
    +
    250 template <class CT, layout_type L>
    +
    251 struct flat_adaptor_getter
    +
    252 {
    +
    253 using type = flat_expression_adaptor<std::remove_reference_t<CT>, L>;
    +
    254 using reference = std::add_lvalue_reference_t<CT>;
    +
    255
    +
    256 template <class E>
    +
    257 using rebind_t = flat_adaptor_getter<E, L>;
    +
    258
    +
    259 static type get_flat_storage(reference e)
    +
    260 {
    +
    261 // moved to addressof because ampersand on xview returns a closure pointer
    +
    262 return type(std::addressof(e));
    +
    263 }
    +
    264
    +
    265 static auto get_offset(reference)
    +
    266 {
    +
    267 return typename std::decay_t<CT>::size_type(0);
    +
    268 }
    +
    269
    +
    270 static auto get_strides(reference e)
    +
    271 {
    +
    272 dynamic_shape<std::ptrdiff_t> strides;
    +
    273 strides.resize(e.shape().size());
    +
    274 compute_strides(e.shape(), L, strides);
    +
    275 return strides;
    +
    276 }
    +
    277 };
    +
    278
    +
    279 template <class CT, layout_type L>
    +
    280 using flat_storage_getter = std::conditional_t<
    + +
    282 inner_storage_getter<CT>,
    +
    283 flat_adaptor_getter<CT, L>>;
    +
    284
    +
    285 template <layout_type L, class E>
    +
    286 inline auto get_offset(E& e)
    +
    287 {
    +
    288 return flat_storage_getter<E, L>::get_offset(e);
    +
    289 }
    +
    290
    +
    291 template <layout_type L, class E>
    +
    292 inline decltype(auto) get_strides(E& e)
    +
    293 {
    +
    294 return flat_storage_getter<E, L>::get_strides(e);
    +
    295 }
    +
    296 }
    +
    297
    +
    298 /*************************************
    +
    299 * xstrided_view_base implementation *
    +
    300 *************************************/
    +
    301
    +
    306
    +
    315 template <class D>
    +
    316 template <class CTA, class SA>
    +
    + +
    318 CTA&& e,
    +
    319 SA&& shape,
    +
    320 strides_type&& strides,
    +
    321 size_type offset,
    + +
    323 ) noexcept
    +
    324 : m_e(std::forward<CTA>(e))
    +
    325 ,
    +
    326 // m_storage(detail::get_flat_storage<undecay_expression>(m_e)),
    +
    327 m_storage(storage_getter::get_flat_storage(m_e))
    +
    328 , m_shape(std::forward<SA>(shape))
    +
    329 , m_strides(std::move(strides))
    +
    330 , m_offset(offset)
    +
    331 , m_layout(layout)
    +
    332 {
    +
    333 m_backstrides = xtl::make_sequence<backstrides_type>(m_shape.size(), 0);
    +
    334 adapt_strides(m_shape, m_strides, m_backstrides);
    +
    335 }
    +
    +
    336
    +
    337 namespace detail
    +
    338 {
    +
    339 template <class T, class S>
    +
    340 auto& copy_move_storage(T& expr, const S& /*storage*/)
    +
    341 {
    +
    342 return expr.storage();
    +
    343 }
    +
    344
    +
    345 template <class T, class E, layout_type L>
    +
    346 auto copy_move_storage(T& expr, const detail::flat_expression_adaptor<E, L>& storage)
    +
    347 {
    +
    348 detail::flat_expression_adaptor<E, L> new_storage = storage; // copy storage
    +
    349 new_storage.update_pointer(std::addressof(expr));
    +
    350 return new_storage;
    +
    351 }
    +
    352 }
    +
    353
    +
    354 template <class D>
    + +
    356 : base_type(std::move(rhs))
    +
    357 , m_e(std::forward<undecay_expression>(rhs.m_e))
    +
    358 , m_storage(detail::copy_move_storage(m_e, rhs.m_storage))
    +
    359 , m_shape(std::move(rhs.m_shape))
    +
    360 , m_strides(std::move(rhs.m_strides))
    +
    361 , m_backstrides(std::move(rhs.m_backstrides))
    +
    362 , m_offset(std::move(rhs.m_offset))
    +
    363 , m_layout(std::move(rhs.m_layout))
    +
    364 {
    +
    365 }
    +
    366
    +
    367 template <class D>
    + +
    369 : base_type(rhs)
    +
    370 , m_e(rhs.m_e)
    +
    371 , m_storage(detail::copy_move_storage(m_e, rhs.m_storage))
    +
    372 , m_shape(rhs.m_shape)
    +
    373 , m_strides(rhs.m_strides)
    +
    374 , m_backstrides(rhs.m_backstrides)
    +
    375 , m_offset(rhs.m_offset)
    +
    376 , m_layout(rhs.m_layout)
    +
    377 {
    +
    378 }
    +
    379
    +
    381
    +
    386
    +
    389 template <class D>
    +
    +
    390 inline auto xstrided_view_base<D>::shape() const noexcept -> const inner_shape_type&
    +
    391 {
    +
    392 return m_shape;
    +
    393 }
    +
    +
    394
    +
    398 template <class D>
    +
    +
    399 inline auto xstrided_view_base<D>::strides() const noexcept -> const inner_strides_type&
    +
    400 {
    +
    401 return m_strides;
    +
    402 }
    +
    +
    403
    +
    407 template <class D>
    +
    +
    408 inline auto xstrided_view_base<D>::backstrides() const noexcept -> const inner_backstrides_type&
    +
    409 {
    +
    410 return m_backstrides;
    +
    411 }
    +
    +
    412
    +
    416 template <class D>
    +
    +
    417 inline auto xstrided_view_base<D>::layout() const noexcept -> layout_type
    +
    418 {
    +
    419 return m_layout;
    +
    420 }
    +
    +
    421
    +
    422 template <class D>
    +
    423 inline bool xstrided_view_base<D>::is_contiguous() const noexcept
    +
    424 {
    +
    425 return m_layout != layout_type::dynamic && m_e.is_contiguous();
    +
    426 }
    +
    427
    +
    429
    +
    434 template <class D>
    +
    435 inline auto xstrided_view_base<D>::operator()() -> reference
    +
    436 {
    +
    437 return m_storage[static_cast<size_type>(m_offset)];
    +
    438 }
    +
    439
    +
    440 template <class D>
    +
    441 inline auto xstrided_view_base<D>::operator()() const -> const_reference
    +
    442 {
    +
    443 return m_storage[static_cast<size_type>(m_offset)];
    +
    444 }
    +
    445
    +
    452 template <class D>
    +
    453 template <class... Args>
    +
    +
    454 inline auto xstrided_view_base<D>::operator()(Args... args) -> reference
    +
    455 {
    +
    456 XTENSOR_TRY(check_index(shape(), args...));
    +
    457 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    458 offset_type index = compute_index(args...);
    +
    459 return m_storage[static_cast<size_type>(index)];
    +
    460 }
    +
    +
    461
    +
    468 template <class D>
    +
    469 template <class... Args>
    +
    +
    470 inline auto xstrided_view_base<D>::operator()(Args... args) const -> const_reference
    +
    471 {
    +
    472 XTENSOR_TRY(check_index(shape(), args...));
    +
    473 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    474 offset_type index = compute_index(args...);
    +
    475 return m_storage[static_cast<size_type>(index)];
    +
    476 }
    +
    +
    477
    +
    497 template <class D>
    +
    498 template <class... Args>
    +
    +
    499 inline auto xstrided_view_base<D>::unchecked(Args... args) -> reference
    +
    500 {
    +
    501 offset_type index = compute_unchecked_index(args...);
    +
    502 return m_storage[static_cast<size_type>(index)];
    +
    503 }
    +
    +
    504
    +
    524 template <class D>
    +
    525 template <class... Args>
    +
    +
    526 inline auto xstrided_view_base<D>::unchecked(Args... args) const -> const_reference
    +
    527 {
    +
    528 offset_type index = compute_unchecked_index(args...);
    +
    529 return m_storage[static_cast<size_type>(index)];
    +
    530 }
    +
    +
    531
    +
    539 template <class D>
    +
    540 template <class It>
    +
    +
    541 inline auto xstrided_view_base<D>::element(It first, It last) -> reference
    +
    542 {
    +
    543 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    544 return m_storage[static_cast<size_type>(compute_element_index(first, last))];
    +
    545 }
    +
    +
    546
    +
    554 template <class D>
    +
    555 template <class It>
    +
    +
    556 inline auto xstrided_view_base<D>::element(It first, It last) const -> const_reference
    +
    557 {
    +
    558 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    559 return m_storage[static_cast<size_type>(compute_element_index(first, last))];
    +
    560 }
    +
    +
    561
    +
    565 template <class D>
    +
    +
    566 inline auto xstrided_view_base<D>::storage() noexcept -> storage_type&
    +
    567 {
    +
    568 return m_storage;
    +
    569 }
    +
    +
    570
    +
    574 template <class D>
    +
    +
    575 inline auto xstrided_view_base<D>::storage() const noexcept -> const storage_type&
    +
    576 {
    +
    577 return m_storage;
    +
    578 }
    +
    +
    579
    +
    584 template <class D>
    +
    +
    585 inline auto xstrided_view_base<D>::data() noexcept -> pointer
    +
    586 requires(provides_data_interface)
    +
    587 {
    +
    588 return m_e.data();
    +
    589 }
    +
    +
    590
    +
    595 template <class D>
    +
    +
    596 inline auto xstrided_view_base<D>::data() const noexcept -> const_pointer
    +
    597 requires(provides_data_interface)
    +
    598 {
    +
    599 return m_e.data();
    +
    600 }
    +
    +
    601
    +
    605 template <class D>
    +
    +
    606 inline auto xstrided_view_base<D>::data_offset() const noexcept -> size_type
    +
    607 {
    +
    608 return m_offset;
    +
    609 }
    +
    +
    610
    +
    614 template <class D>
    +
    +
    615 inline auto xstrided_view_base<D>::expression() noexcept -> xexpression_type&
    +
    616 {
    +
    617 return m_e;
    +
    618 }
    +
    +
    619
    +
    623 template <class D>
    +
    +
    624 inline auto xstrided_view_base<D>::expression() const noexcept -> const xexpression_type&
    +
    625 {
    +
    626 return m_e;
    +
    627 }
    +
    +
    628
    +
    630
    +
    635
    +
    641 template <class D>
    +
    642 template <class O>
    +
    + +
    644 {
    +
    645 return xt::broadcast_shape(m_shape, shape);
    +
    646 }
    +
    +
    647
    +
    653 template <class D>
    +
    654 template <class O>
    +
    +
    655 inline bool xstrided_view_base<D>::has_linear_assign(const O& str) const noexcept
    +
    656 {
    +
    657 return has_data_interface<xexpression_type>::value && str.size() == strides().size()
    +
    658 && std::equal(str.cbegin(), str.cend(), strides().begin());
    +
    659 }
    +
    +
    660
    +
    662
    +
    663 template <class D>
    +
    664 template <class... Args>
    +
    665 inline auto xstrided_view_base<D>::compute_index(Args... args) const -> offset_type
    +
    666 {
    +
    667 return static_cast<offset_type>(m_offset)
    +
    668 + xt::data_offset<offset_type>(strides(), static_cast<offset_type>(args)...);
    +
    669 }
    +
    670
    +
    671 template <class D>
    +
    672 template <class... Args>
    +
    673 inline auto xstrided_view_base<D>::compute_unchecked_index(Args... args) const -> offset_type
    +
    674 {
    +
    675 return static_cast<offset_type>(m_offset)
    +
    676 + xt::unchecked_data_offset<offset_type>(strides(), static_cast<offset_type>(args)...);
    +
    677 }
    +
    678
    +
    679 template <class D>
    +
    680 template <class It>
    +
    681 inline auto xstrided_view_base<D>::compute_element_index(It first, It last) const -> offset_type
    +
    682 {
    +
    683 return static_cast<offset_type>(m_offset) + xt::element_offset<offset_type>(strides(), first, last);
    +
    684 }
    +
    685
    +
    686 template <class D>
    +
    687 void xstrided_view_base<D>::set_offset(size_type offset)
    +
    688 {
    +
    689 m_offset = offset;
    +
    690 }
    +
    691
    +
    692 /******************************************
    +
    693 * flat_expression_adaptor implementation *
    +
    694 ******************************************/
    +
    695
    +
    696 namespace detail
    +
    697 {
    +
    698 template <class CT, layout_type L>
    +
    699 inline flat_expression_adaptor<CT, L>::flat_expression_adaptor(CT* e)
    +
    700 : m_e(e)
    +
    701 {
    +
    702 resize_container(get_index(), m_e->dimension());
    +
    703 resize_container(m_strides, m_e->dimension());
    +
    704 m_size = compute_size(m_e->shape());
    +
    705 compute_strides(m_e->shape(), L, m_strides);
    +
    706 }
    +
    707
    +
    708 template <class CT, layout_type L>
    +
    709 template <class FST>
    +
    710 inline flat_expression_adaptor<CT, L>::flat_expression_adaptor(CT* e, FST&& strides)
    +
    711 : m_e(e)
    +
    712 , m_strides(xtl::forward_sequence<inner_strides_type, FST>(strides))
    +
    713 {
    +
    714 resize_container(get_index(), m_e->dimension());
    +
    715 m_size = m_e->size();
    +
    716 }
    +
    717
    +
    718 template <class CT, layout_type L>
    +
    719 inline void flat_expression_adaptor<CT, L>::update_pointer(CT* ptr) const
    +
    720 {
    +
    721 m_e = ptr;
    +
    722 }
    +
    723
    +
    724 template <class CT, layout_type L>
    +
    725 inline auto flat_expression_adaptor<CT, L>::size() const -> size_type
    +
    726 {
    +
    727 return m_size;
    +
    728 }
    +
    729
    +
    730 template <class CT, layout_type L>
    +
    731 inline auto flat_expression_adaptor<CT, L>::operator[](size_type idx) -> reference
    +
    732 {
    +
    733 auto i = static_cast<typename index_type::value_type>(idx);
    +
    734 get_index() = detail::unravel_noexcept(i, m_strides, L);
    +
    735 return m_e->element(get_index().cbegin(), get_index().cend());
    +
    736 }
    +
    737
    +
    738 template <class CT, layout_type L>
    +
    739 inline auto flat_expression_adaptor<CT, L>::operator[](size_type idx) const -> const_reference
    +
    740 {
    +
    741 auto i = static_cast<typename index_type::value_type>(idx);
    +
    742 get_index() = detail::unravel_noexcept(i, m_strides, L);
    +
    743 return m_e->element(get_index().cbegin(), get_index().cend());
    +
    744 }
    +
    745
    +
    746 template <class CT, layout_type L>
    +
    747 inline auto flat_expression_adaptor<CT, L>::begin() -> iterator
    +
    748 {
    +
    749 return m_e->template begin<L>();
    +
    750 }
    +
    751
    +
    752 template <class CT, layout_type L>
    +
    753 inline auto flat_expression_adaptor<CT, L>::end() -> iterator
    +
    754 {
    +
    755 return m_e->template end<L>();
    +
    756 }
    +
    757
    +
    758 template <class CT, layout_type L>
    +
    759 inline auto flat_expression_adaptor<CT, L>::begin() const -> const_iterator
    +
    760 {
    +
    761 return m_e->template cbegin<L>();
    +
    762 }
    +
    763
    +
    764 template <class CT, layout_type L>
    +
    765 inline auto flat_expression_adaptor<CT, L>::end() const -> const_iterator
    +
    766 {
    +
    767 return m_e->template cend<L>();
    +
    768 }
    +
    769
    +
    770 template <class CT, layout_type L>
    +
    771 inline auto flat_expression_adaptor<CT, L>::cbegin() const -> const_iterator
    +
    772 {
    +
    773 return m_e->template cbegin<L>();
    +
    774 }
    +
    775
    +
    776 template <class CT, layout_type L>
    +
    777 inline auto flat_expression_adaptor<CT, L>::cend() const -> const_iterator
    +
    778 {
    +
    779 return m_e->template cend<L>();
    +
    780 }
    +
    781
    +
    782 template <class CT, layout_type L>
    +
    783 inline auto flat_expression_adaptor<CT, L>::get_index() -> index_type&
    +
    784 {
    +
    785 thread_local static index_type index;
    +
    786 return index;
    +
    787 }
    +
    788 }
    +
    789
    +
    790 /**********************************
    +
    791 * Builder helpers implementation *
    +
    792 **********************************/
    +
    793
    +
    794 namespace detail
    +
    795 {
    +
    796 template <class S>
    +
    797 struct slice_getter_impl
    +
    798 {
    +
    799 const S& m_shape;
    +
    800 mutable std::size_t idx;
    +
    801 using array_type = std::array<std::ptrdiff_t, 3>;
    +
    802
    +
    803 explicit slice_getter_impl(const S& shape)
    +
    804 : m_shape(shape)
    +
    805 , idx(0)
    +
    806 {
    +
    807 }
    +
    808
    +
    809 template <class T>
    +
    810 array_type operator()(const T& /*t*/) const
    +
    811 {
    +
    812 return array_type{{0, 0, 0}};
    +
    813 }
    +
    814
    +
    815 template <class A, class B, class C>
    +
    816 array_type operator()(const xrange_adaptor<A, B, C>& range) const
    +
    817 {
    +
    818 auto sl = range.get(static_cast<std::size_t>(m_shape[idx]));
    +
    819 return array_type({sl(0), sl.size(), sl.step_size()});
    +
    820 }
    +
    821
    +
    822 template <class T>
    +
    823 array_type operator()(const xrange<T>& range) const
    +
    824 {
    +
    825 return array_type({range(T(0)), range.size(), T(1)});
    +
    826 }
    +
    827
    +
    828 template <class T>
    +
    829 array_type operator()(const xstepped_range<T>& range) const
    +
    830 {
    +
    831 return array_type({range(T(0)), range.size(), range.step_size(T(0))});
    +
    832 }
    +
    833 };
    +
    834
    +
    835 template <class adj_strides_policy>
    +
    836 struct strided_view_args : adj_strides_policy
    +
    837 {
    +
    838 using base_type = adj_strides_policy;
    +
    839
    +
    840 template <class S, class ST, class V>
    +
    841 void
    +
    842 fill_args(const S& shape, ST&& old_strides, std::size_t base_offset, layout_type layout, const V& slices)
    +
    843 {
    +
    844 // Compute dimension
    +
    845 std::size_t dimension = shape.size(), n_newaxis = 0, n_add_all = 0;
    +
    846 std::ptrdiff_t dimension_check = static_cast<std::ptrdiff_t>(shape.size());
    +
    847
    +
    848 bool has_ellipsis = false;
    +
    849 for (const auto& el : slices)
    +
    850 {
    +
    851 if (std::get_if<xt::xnewaxis_tag>(&el) != nullptr)
    +
    852 {
    +
    853 ++dimension;
    +
    854 ++n_newaxis;
    +
    855 }
    +
    856 else if (std::get_if<std::ptrdiff_t>(&el) != nullptr)
    +
    857 {
    +
    858 --dimension;
    +
    859 --dimension_check;
    +
    860 }
    +
    861 else if (std::get_if<xt::xellipsis_tag>(&el) != nullptr)
    +
    862 {
    +
    863 if (has_ellipsis == true)
    +
    864 {
    +
    865 XTENSOR_THROW(std::runtime_error, "Ellipsis can only appear once.");
    +
    866 }
    +
    867 has_ellipsis = true;
    +
    868 }
    +
    869 else
    +
    870 {
    +
    871 --dimension_check;
    +
    872 }
    +
    873 }
    +
    874
    +
    875 if (dimension_check < 0)
    +
    876 {
    +
    877 XTENSOR_THROW(std::runtime_error, "Too many slices for view.");
    +
    878 }
    +
    879
    +
    880 if (has_ellipsis)
    +
    881 {
    +
    882 // replace ellipsis with N * xt::all
    +
    883 // remove -1 because of the ellipsis slize itself
    +
    884 n_add_all = shape.size() - (slices.size() - 1 - n_newaxis);
    +
    885 }
    +
    886
    +
    887 // Compute strided view
    +
    888 new_offset = base_offset;
    +
    889 new_shape.resize(dimension);
    +
    890 new_strides.resize(dimension);
    +
    891 base_type::resize(dimension);
    +
    892
    +
    893 auto old_shape = shape;
    +
    894 using old_strides_value_type = typename std::decay_t<ST>::value_type;
    +
    895
    +
    896 std::ptrdiff_t axis_skip = 0;
    +
    897 std::size_t idx = 0, i = 0, i_ax = 0;
    +
    898
    +
    899 auto slice_getter = detail::slice_getter_impl<S>(shape);
    +
    900
    +
    901 for (; i < slices.size(); ++i)
    +
    902 {
    +
    903 i_ax = static_cast<std::size_t>(static_cast<std::ptrdiff_t>(i) - axis_skip);
    +
    904 auto ptr = std::get_if<std::ptrdiff_t>(&slices[i]);
    +
    905 if (ptr != nullptr)
    +
    906 {
    +
    907 auto slice0 = static_cast<old_strides_value_type>(*ptr);
    +
    908 new_offset += static_cast<std::size_t>(slice0 * old_strides[i_ax]);
    +
    909 }
    +
    910 else if (std::get_if<xt::xnewaxis_tag>(&slices[i]) != nullptr)
    +
    911 {
    +
    912 new_shape[idx] = 1;
    +
    913 base_type::set_fake_slice(idx);
    +
    914 ++axis_skip, ++idx;
    +
    915 }
    +
    916 else if (std::get_if<xt::xellipsis_tag>(&slices[i]) != nullptr)
    +
    917 {
    +
    918 for (std::size_t j = 0; j < n_add_all; ++j)
    +
    919 {
    +
    920 new_shape[idx] = old_shape[i_ax];
    +
    921 new_strides[idx] = old_strides[i_ax];
    +
    922 base_type::set_fake_slice(idx);
    +
    923 ++idx, ++i_ax;
    +
    924 }
    +
    925 axis_skip = axis_skip - static_cast<std::ptrdiff_t>(n_add_all) + 1;
    +
    926 }
    +
    927 else if (std::get_if<xt::xall_tag>(&slices[i]) != nullptr)
    +
    928 {
    +
    929 new_shape[idx] = old_shape[i_ax];
    +
    930 new_strides[idx] = old_strides[i_ax];
    +
    931 base_type::set_fake_slice(idx);
    +
    932 ++idx;
    +
    933 }
    +
    934 else if (base_type::fill_args(slices, i, idx, old_shape[i_ax], old_strides[i_ax], new_shape, new_strides))
    +
    935 {
    +
    936 ++idx;
    +
    937 }
    +
    938 else
    +
    939 {
    +
    940 slice_getter.idx = i_ax;
    +
    941 auto info = std::visit(slice_getter, slices[i]);
    +
    942 new_offset += static_cast<std::size_t>(info[0] * old_strides[i_ax]);
    +
    943 new_shape[idx] = static_cast<std::size_t>(info[1]);
    +
    944 new_strides[idx] = info[2] * old_strides[i_ax];
    +
    945 base_type::set_fake_slice(idx);
    +
    946 ++idx;
    +
    947 }
    +
    948 }
    +
    949
    +
    950 i_ax = static_cast<std::size_t>(static_cast<std::ptrdiff_t>(i) - axis_skip);
    +
    951 for (; i_ax < old_shape.size(); ++i_ax, ++idx)
    +
    952 {
    +
    953 new_shape[idx] = old_shape[i_ax];
    +
    954 new_strides[idx] = old_strides[i_ax];
    +
    955 base_type::set_fake_slice(idx);
    +
    956 }
    +
    957
    +
    958 new_layout = do_strides_match(new_shape, new_strides, layout, true) ? layout
    +
    959 : layout_type::dynamic;
    +
    960 }
    +
    961
    +
    962 using shape_type = dynamic_shape<std::size_t>;
    +
    963 shape_type new_shape;
    +
    964 using strides_type = dynamic_shape<std::ptrdiff_t>;
    +
    965 strides_type new_strides;
    +
    966 std::size_t new_offset;
    +
    967 layout_type new_layout;
    +
    968 };
    +
    969 }
    +
    970}
    +
    971
    +
    972#endif
    + +
    layout_type layout() const noexcept
    +
    xstrided_view_base(CTA &&e, SA &&shape, strides_type &&strides, size_type offset, layout_type layout) noexcept
    Constructs an xstrided_view_base.
    +
    bool has_linear_assign(const O &strides) const noexcept
    +
    const inner_strides_type & strides() const noexcept
    +
    bool broadcast_shape(O &shape, bool reuse_cache=false) const
    + +
    const inner_backstrides_type & backstrides() const noexcept
    +
    const inner_shape_type & shape() const noexcept
    +
    size_type data_offset() const noexcept
    +
    storage_type & storage() noexcept
    +
    xexpression_type & expression() noexcept
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto range(A start_val, B stop_val)
    Select a range from start_val to stop_val (excluded).
    Definition xslice.hpp:744
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    +
    + + + + diff --git a/xstrides_8hpp_source.html b/xstrides_8hpp_source.html new file mode 100644 index 000000000..46dd93492 --- /dev/null +++ b/xstrides_8hpp_source.html @@ -0,0 +1,997 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xstrides.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xstrides.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_STRIDES_HPP
    +
    11#define XTENSOR_STRIDES_HPP
    +
    12
    +
    13#include <cstddef>
    +
    14#include <functional>
    +
    15#include <limits>
    +
    16#include <numeric>
    +
    17
    +
    18#include <xtl/xsequence.hpp>
    +
    19
    +
    20#include "../core/xshape.hpp"
    +
    21#include "../core/xtensor_config.hpp"
    +
    22#include "../core/xtensor_forward.hpp"
    +
    23#include "../utils/xexception.hpp"
    +
    24
    +
    25namespace xt
    +
    26{
    +
    27
    +
    28 template <class shape_type>
    +
    29 std::size_t compute_size(const shape_type& shape) noexcept;
    +
    30
    +
    34
    +
    35 /***************
    +
    36 * data offset *
    +
    37 ***************/
    +
    38
    +
    39 template <class offset_type, class S>
    +
    40 offset_type data_offset(const S& strides) noexcept;
    +
    41
    +
    66 template <class offset_type, class S, class Arg, class... Args>
    +
    67 offset_type data_offset(const S& strides, Arg arg, Args... args) noexcept;
    +
    68
    +
    69 template <class offset_type, layout_type L = layout_type::dynamic, class S, class... Args>
    +
    70 offset_type unchecked_data_offset(const S& strides, Args... args) noexcept;
    +
    71
    +
    72 template <class offset_type, class S, class It>
    +
    73 offset_type element_offset(const S& strides, It first, It last) noexcept;
    +
    74
    +
    75 /*******************
    +
    76 * strides builder *
    +
    77 *******************/
    +
    78
    +
    88 template <layout_type L = layout_type::dynamic, class shape_type, class strides_type>
    +
    89 std::size_t compute_strides(const shape_type& shape, layout_type l, strides_type& strides);
    +
    90
    +
    91 template <layout_type L = layout_type::dynamic, class shape_type, class strides_type, class backstrides_type>
    +
    92 std::size_t
    +
    93 compute_strides(const shape_type& shape, layout_type l, strides_type& strides, backstrides_type& backstrides);
    +
    94
    +
    95 template <class shape_type, class strides_type>
    +
    96 void adapt_strides(const shape_type& shape, strides_type& strides) noexcept;
    +
    97
    +
    98 template <class shape_type, class strides_type, class backstrides_type>
    +
    99 void adapt_strides(const shape_type& shape, strides_type& strides, backstrides_type& backstrides) noexcept;
    +
    100
    +
    101 /*****************
    +
    102 * unravel_index *
    +
    103 *****************/
    +
    104
    +
    105 template <class S>
    +
    106 S unravel_from_strides(typename S::value_type index, const S& strides, layout_type l = layout_type::row_major);
    +
    107
    +
    108 template <class S>
    +
    109 get_strides_t<S>
    +
    110 unravel_index(typename S::value_type index, const S& shape, layout_type l = layout_type::row_major);
    +
    111
    +
    112 template <class S, class T>
    +
    113 std::vector<get_strides_t<S>>
    +
    114 unravel_indices(const T& indices, const S& shape, layout_type l = layout_type::row_major);
    +
    115
    +
    116 /***********************
    +
    117 * broadcast functions *
    +
    118 ***********************/
    +
    119
    +
    120 template <class S, class size_type>
    +
    121 S uninitialized_shape(size_type size);
    +
    122
    +
    123 template <class S1, class S2>
    +
    124 bool broadcast_shape(const S1& input, S2& output);
    +
    125
    +
    126 template <class S1, class S2>
    +
    127 bool broadcastable(const S1& s1, S2& s2);
    +
    128
    +
    129 /*************************
    +
    130 * check strides overlap *
    +
    131 *************************/
    +
    132
    +
    133 template <layout_type L>
    + +
    135
    +
    136 /**********************************
    +
    137 * check bounds, without throwing *
    +
    138 **********************************/
    +
    139
    +
    148 template <class S, class... Args>
    +
    149 bool in_bounds(const S& shape, Args&... args);
    +
    150
    +
    151 /********************************
    +
    152 * apply periodicity to indices *
    +
    153 *******************************/
    +
    154
    +
    163 template <class S, class... Args>
    +
    164 void normalize_periodic(const S& shape, Args&... args);
    +
    165
    +
    166 /********************************************
    +
    167 * utility functions for strided containers *
    +
    168 ********************************************/
    +
    169
    +
    170 template <class C, class It, class size_type>
    +
    171 It strided_data_end(const C& c, It begin, layout_type l, size_type offset)
    +
    172 {
    +
    173 using difference_type = typename std::iterator_traits<It>::difference_type;
    +
    174 if (c.dimension() == 0)
    +
    175 {
    +
    176 ++begin;
    +
    177 }
    +
    178 else
    +
    179 {
    +
    180 for (std::size_t i = 0; i != c.dimension(); ++i)
    +
    181 {
    +
    182 begin += c.strides()[i] * difference_type(c.shape()[i] - 1);
    +
    183 }
    +
    184 if (l == layout_type::row_major)
    +
    185 {
    +
    186 begin += c.strides().back();
    +
    187 }
    +
    188 else
    +
    189 {
    +
    190 if (offset == 0)
    +
    191 {
    +
    192 begin += c.strides().front();
    +
    193 }
    +
    194 }
    +
    195 }
    +
    196 return begin;
    +
    197 }
    +
    198
    +
    199 /***********
    +
    200 * strides *
    +
    201 ***********/
    +
    202
    +
    203 namespace detail
    +
    204 {
    +
    205 template <class return_type, class S, class T, class D>
    +
    206 inline return_type compute_stride_impl(layout_type layout, const S& shape, T axis, D default_stride)
    +
    207 {
    +
    208 if (layout == layout_type::row_major)
    +
    209 {
    +
    210 return std::accumulate(
    +
    211 shape.cbegin() + axis + 1,
    +
    212 shape.cend(),
    +
    213 static_cast<return_type>(1),
    +
    214 std::multiplies<return_type>()
    +
    215 );
    +
    216 }
    +
    217 if (layout == layout_type::column_major)
    +
    218 {
    +
    219 return std::accumulate(
    +
    220 shape.cbegin(),
    +
    221 shape.cbegin() + axis,
    +
    222 static_cast<return_type>(1),
    +
    223 std::multiplies<return_type>()
    +
    224 );
    +
    225 }
    +
    226 return default_stride;
    +
    227 }
    +
    228 }
    +
    229
    +
    +
    234 enum class stride_type
    +
    235 {
    + +
    237 normal = 1,
    +
    238 bytes = 2,
    +
    239 };
    +
    +
    240
    +
    249 template <class E>
    +
    +
    250 inline auto strides(const E& e, stride_type type = stride_type::normal) noexcept
    +
    251 {
    +
    252 using strides_type = typename E::strides_type;
    +
    253 using return_type = typename strides_type::value_type;
    +
    254 strides_type ret = e.strides();
    +
    255 auto shape = e.shape();
    +
    256
    +
    257 if (type == stride_type::internal)
    +
    258 {
    +
    259 return ret;
    +
    260 }
    +
    261
    +
    262 for (std::size_t i = 0; i < ret.size(); ++i)
    +
    263 {
    +
    264 if (shape[i] == 1)
    +
    265 {
    +
    266 ret[i] = detail::compute_stride_impl<return_type>(e.layout(), shape, i, ret[i]);
    +
    267 }
    +
    268 }
    +
    269
    +
    270 if (type == stride_type::bytes)
    +
    271 {
    +
    272 return_type f = static_cast<return_type>(sizeof(typename E::value_type));
    +
    273 std::for_each(
    +
    274 ret.begin(),
    +
    275 ret.end(),
    +
    276 [f](auto& c)
    +
    277 {
    +
    278 c *= f;
    +
    279 }
    +
    280 );
    +
    281 }
    +
    282
    +
    283 return ret;
    +
    284 }
    +
    +
    285
    +
    295 template <class E>
    +
    +
    296 inline auto strides(const E& e, std::size_t axis, stride_type type = stride_type::normal) noexcept
    +
    297 {
    +
    298 using strides_type = typename E::strides_type;
    +
    299 using return_type = typename strides_type::value_type;
    +
    300
    +
    301 return_type ret = e.strides()[axis];
    +
    302
    +
    303 if (type == stride_type::internal)
    +
    304 {
    +
    305 return ret;
    +
    306 }
    +
    307
    +
    308 if (ret == 0)
    +
    309 {
    +
    310 if (e.shape(axis) == 1)
    +
    311 {
    +
    312 ret = detail::compute_stride_impl<return_type>(e.layout(), e.shape(), axis, ret);
    +
    313 }
    +
    314 }
    +
    315
    +
    316 if (type == stride_type::bytes)
    +
    317 {
    +
    318 return_type f = static_cast<return_type>(sizeof(typename E::value_type));
    +
    319 ret *= f;
    +
    320 }
    +
    321
    +
    322 return ret;
    +
    323 }
    +
    +
    324
    +
    325 /******************
    +
    326 * Implementation *
    +
    327 ******************/
    +
    328
    +
    329 namespace detail
    +
    330 {
    +
    331 template <class shape_type>
    +
    332 inline std::size_t compute_size_impl(const shape_type& shape, std::true_type /* is signed */)
    +
    333 {
    +
    334 using size_type = std::decay_t<typename shape_type::value_type>;
    +
    335 return static_cast<std::size_t>(std::abs(
    +
    336 std::accumulate(shape.cbegin(), shape.cend(), size_type(1), std::multiplies<size_type>())
    +
    337 ));
    +
    338 }
    +
    339
    +
    340 template <class shape_type>
    +
    341 inline std::size_t compute_size_impl(const shape_type& shape, std::false_type /* is not signed */)
    +
    342 {
    +
    343 using size_type = std::decay_t<typename shape_type::value_type>;
    +
    344 return static_cast<std::size_t>(
    +
    345 std::accumulate(shape.cbegin(), shape.cend(), size_type(1), std::multiplies<size_type>())
    +
    346 );
    +
    347 }
    +
    348 }
    +
    349
    +
    350 template <class shape_type>
    +
    351 inline std::size_t compute_size(const shape_type& shape) noexcept
    +
    352 {
    +
    353 return detail::compute_size_impl(
    +
    354 shape,
    +
    355 xtl::is_signed<std::decay_t<typename std::decay_t<shape_type>::value_type>>()
    +
    356 );
    +
    357 }
    +
    358
    +
    359 namespace detail
    +
    360 {
    +
    361
    +
    362 template <std::size_t dim, class S>
    +
    363 inline auto raw_data_offset(const S&) noexcept
    +
    364 {
    +
    365 using strides_value_type = std::decay_t<decltype(std::declval<S>()[0])>;
    +
    366 return strides_value_type(0);
    +
    367 }
    +
    368
    +
    369 template <std::size_t dim, class S>
    +
    370 inline auto raw_data_offset(const S&, missing_type) noexcept
    +
    371 {
    +
    372 using strides_value_type = std::decay_t<decltype(std::declval<S>()[0])>;
    +
    373 return strides_value_type(0);
    +
    374 }
    +
    375
    +
    376 template <std::size_t dim, class S, class Arg, class... Args>
    +
    377 inline auto raw_data_offset(const S& strides, Arg arg, Args... args) noexcept
    +
    378 {
    +
    379 return static_cast<std::ptrdiff_t>(arg) * strides[dim] + raw_data_offset<dim + 1>(strides, args...);
    +
    380 }
    +
    381
    +
    382 template <layout_type L, std::ptrdiff_t static_dim>
    +
    383 struct layout_data_offset
    +
    384 {
    +
    385 template <std::size_t dim, class S, class Arg, class... Args>
    +
    386 inline static auto run(const S& strides, Arg arg, Args... args) noexcept
    +
    387 {
    +
    388 return raw_data_offset<dim>(strides, arg, args...);
    +
    389 }
    +
    390 };
    +
    391
    +
    392 template <std::ptrdiff_t static_dim>
    +
    393 struct layout_data_offset<layout_type::row_major, static_dim>
    +
    394 {
    +
    395 using self_type = layout_data_offset<layout_type::row_major, static_dim>;
    +
    396
    +
    397 template <std::size_t dim, class S, class Arg>
    +
    398 inline static auto run(const S& strides, Arg arg) noexcept
    +
    399 {
    +
    400 if (std::ptrdiff_t(dim) + 1 == static_dim)
    +
    401 {
    +
    402 return arg;
    +
    403 }
    +
    404 else
    +
    405 {
    +
    406 return arg * strides[dim];
    +
    407 }
    +
    408 }
    +
    409
    +
    410 template <std::size_t dim, class S, class Arg, class... Args>
    +
    411 inline static auto run(const S& strides, Arg arg, Args... args) noexcept
    +
    412 {
    +
    413 return arg * strides[dim] + self_type::template run<dim + 1>(strides, args...);
    +
    414 }
    +
    415 };
    +
    416
    +
    417 template <std::ptrdiff_t static_dim>
    +
    418 struct layout_data_offset<layout_type::column_major, static_dim>
    +
    419 {
    +
    420 using self_type = layout_data_offset<layout_type::column_major, static_dim>;
    +
    421
    +
    422 template <std::size_t dim, class S, class Arg>
    +
    423 inline static auto run(const S& strides, Arg arg) noexcept
    +
    424 {
    +
    425 if (dim == 0)
    +
    426 {
    +
    427 return arg;
    +
    428 }
    +
    429 else
    +
    430 {
    +
    431 return arg * strides[dim];
    +
    432 }
    +
    433 }
    +
    434
    +
    435 template <std::size_t dim, class S, class Arg, class... Args>
    +
    436 inline static auto run(const S& strides, Arg arg, Args... args) noexcept
    +
    437 {
    +
    438 if (dim == 0)
    +
    439 {
    +
    440 return arg + self_type::template run<dim + 1>(strides, args...);
    +
    441 }
    +
    442 else
    +
    443 {
    +
    444 return arg * strides[dim] + self_type::template run<dim + 1>(strides, args...);
    +
    445 }
    +
    446 }
    +
    447 };
    +
    448 }
    +
    449
    +
    450 template <class offset_type, class S>
    +
    451 inline offset_type data_offset(const S&) noexcept
    +
    452 {
    +
    453 return offset_type(0);
    +
    454 }
    +
    455
    +
    456 template <class offset_type, class S, class Arg, class... Args>
    +
    +
    457 inline offset_type data_offset(const S& strides, Arg arg, Args... args) noexcept
    +
    458 {
    +
    459 constexpr std::size_t nargs = sizeof...(Args) + 1;
    +
    460 if (nargs == strides.size())
    +
    461 {
    +
    462 // Correct number of arguments: iterate
    +
    463 return static_cast<offset_type>(detail::raw_data_offset<0>(strides, arg, args...));
    +
    464 }
    +
    465 else if (nargs > strides.size())
    +
    466 {
    +
    467 // Too many arguments: drop the first
    +
    468 return data_offset<offset_type, S>(strides, args...);
    +
    469 }
    +
    470 else if (detail::last_type_is_missing<Args...>)
    +
    471 {
    +
    472 // Too few arguments & last argument xt::missing: postfix index with zeros
    +
    473 return static_cast<offset_type>(detail::raw_data_offset<0>(strides, arg, args...));
    +
    474 }
    +
    475 else
    +
    476 {
    +
    477 // Too few arguments: right to left scalar product
    +
    478 auto view = strides.cend() - nargs;
    +
    479 return static_cast<offset_type>(detail::raw_data_offset<0>(view, arg, args...));
    +
    480 }
    +
    481 }
    +
    +
    482
    +
    483 template <class offset_type, layout_type L, class S, class... Args>
    +
    484 inline offset_type unchecked_data_offset(const S& strides, Args... args) noexcept
    +
    485 {
    +
    486 return static_cast<offset_type>(
    +
    487 detail::layout_data_offset<L, static_dimension<S>::value>::template run<0>(strides.cbegin(), args...)
    +
    488 );
    +
    489 }
    +
    490
    +
    491 template <class offset_type, class S, class It>
    +
    492 inline offset_type element_offset(const S& strides, It first, It last) noexcept
    +
    493 {
    +
    494 using difference_type = typename std::iterator_traits<It>::difference_type;
    +
    495 auto size = static_cast<difference_type>(
    +
    496 (std::min)(static_cast<typename S::size_type>(std::distance(first, last)), strides.size())
    +
    497 );
    +
    498 return std::inner_product(last - size, last, strides.cend() - size, offset_type(0));
    +
    499 }
    +
    500
    +
    501 namespace detail
    +
    502 {
    +
    503 template <class shape_type, class strides_type, class bs_ptr>
    +
    504 inline void adapt_strides(
    +
    505 const shape_type& shape,
    +
    506 strides_type& strides,
    +
    507 bs_ptr backstrides,
    +
    508 typename strides_type::size_type i
    +
    509 ) noexcept
    +
    510 {
    +
    511 if (shape[i] == 1)
    +
    512 {
    +
    513 strides[i] = 0;
    +
    514 }
    +
    515 (*backstrides)[i] = strides[i] * std::ptrdiff_t(shape[i] - 1);
    +
    516 }
    +
    517
    +
    518 template <class shape_type, class strides_type>
    +
    519 inline void adapt_strides(
    +
    520 const shape_type& shape,
    +
    521 strides_type& strides,
    +
    522 std::nullptr_t,
    +
    523 typename strides_type::size_type i
    +
    524 ) noexcept
    +
    525 {
    +
    526 if (shape[i] == 1)
    +
    527 {
    +
    528 strides[i] = 0;
    +
    529 }
    +
    530 }
    +
    531
    +
    532 template <layout_type L, class shape_type, class strides_type, class bs_ptr>
    +
    533 inline std::size_t
    +
    534 compute_strides(const shape_type& shape, layout_type l, strides_type& strides, bs_ptr bs)
    +
    535 {
    +
    536 using strides_value_type = typename std::decay_t<strides_type>::value_type;
    +
    537 strides_value_type data_size = 1;
    +
    538
    +
    539#if defined(_MSC_VER) && (1931 <= _MSC_VER)
    +
    540 // Workaround MSVC compiler optimization bug, xtensor#2568
    +
    541 if (0 == shape.size())
    +
    542 {
    +
    543 return static_cast<std::size_t>(data_size);
    +
    544 }
    +
    545#endif
    +
    546
    + +
    548 {
    +
    549 for (std::size_t i = shape.size(); i != 0; --i)
    +
    550 {
    +
    551 strides[i - 1] = data_size;
    +
    552 data_size = strides[i - 1] * static_cast<strides_value_type>(shape[i - 1]);
    +
    553 adapt_strides(shape, strides, bs, i - 1);
    +
    554 }
    +
    555 }
    +
    556 else
    +
    557 {
    +
    558 for (std::size_t i = 0; i < shape.size(); ++i)
    +
    559 {
    +
    560 strides[i] = data_size;
    +
    561 data_size = strides[i] * static_cast<strides_value_type>(shape[i]);
    +
    562 adapt_strides(shape, strides, bs, i);
    +
    563 }
    +
    564 }
    +
    565 return static_cast<std::size_t>(data_size);
    +
    566 }
    +
    567 }
    +
    568
    +
    569 template <layout_type L, class shape_type, class strides_type>
    +
    +
    570 inline std::size_t compute_strides(const shape_type& shape, layout_type l, strides_type& strides)
    +
    571 {
    +
    572 return detail::compute_strides<L>(shape, l, strides, nullptr);
    +
    573 }
    +
    +
    574
    +
    575 template <layout_type L, class shape_type, class strides_type, class backstrides_type>
    +
    576 inline std::size_t
    +
    577 compute_strides(const shape_type& shape, layout_type l, strides_type& strides, backstrides_type& backstrides)
    +
    578 {
    +
    579 return detail::compute_strides<L>(shape, l, strides, &backstrides);
    +
    580 }
    +
    581
    +
    582 template <class T1, class T2>
    +
    583 inline bool
    +
    584 stride_match_condition(const T1& stride, const T2& shape, const T1& data_size, bool zero_strides)
    +
    585 {
    +
    586 return (shape == T2(1) && stride == T1(0) && zero_strides) || (stride == data_size);
    +
    587 }
    +
    588
    +
    589 // zero_strides should be true when strides are set to 0 if the corresponding dimensions are 1
    +
    590 template <class shape_type, class strides_type>
    +
    591 inline bool
    +
    592 do_strides_match(const shape_type& shape, const strides_type& strides, layout_type l, bool zero_strides)
    +
    593 {
    +
    594 using value_type = typename strides_type::value_type;
    +
    595 value_type data_size = 1;
    +
    596 if (l == layout_type::row_major)
    +
    597 {
    +
    598 for (std::size_t i = strides.size(); i != 0; --i)
    +
    599 {
    +
    600 if (!stride_match_condition(strides[i - 1], shape[i - 1], data_size, zero_strides))
    +
    601 {
    +
    602 return false;
    +
    603 }
    +
    604 data_size *= static_cast<value_type>(shape[i - 1]);
    +
    605 }
    +
    606 return true;
    +
    607 }
    +
    608 else if (l == layout_type::column_major)
    +
    609 {
    +
    610 for (std::size_t i = 0; i < strides.size(); ++i)
    +
    611 {
    +
    612 if (!stride_match_condition(strides[i], shape[i], data_size, zero_strides))
    +
    613 {
    +
    614 return false;
    +
    615 }
    +
    616 data_size *= static_cast<value_type>(shape[i]);
    +
    617 }
    +
    618 return true;
    +
    619 }
    +
    620 else
    +
    621 {
    +
    622 return false;
    +
    623 }
    +
    624 }
    +
    625
    +
    626 template <class shape_type, class strides_type>
    +
    627 inline void adapt_strides(const shape_type& shape, strides_type& strides) noexcept
    +
    628 {
    +
    629 for (typename shape_type::size_type i = 0; i < shape.size(); ++i)
    +
    630 {
    +
    631 detail::adapt_strides(shape, strides, nullptr, i);
    +
    632 }
    +
    633 }
    +
    634
    +
    635 template <class shape_type, class strides_type, class backstrides_type>
    +
    636 inline void
    +
    637 adapt_strides(const shape_type& shape, strides_type& strides, backstrides_type& backstrides) noexcept
    +
    638 {
    +
    639 for (typename shape_type::size_type i = 0; i < shape.size(); ++i)
    +
    640 {
    +
    641 detail::adapt_strides(shape, strides, &backstrides, i);
    +
    642 }
    +
    643 }
    +
    644
    +
    645 namespace detail
    +
    646 {
    +
    647 template <class S>
    +
    648 inline S unravel_noexcept(typename S::value_type idx, const S& strides, layout_type l) noexcept
    +
    649 {
    +
    650 using value_type = typename S::value_type;
    +
    651 using size_type = typename S::size_type;
    +
    652 S result = xtl::make_sequence<S>(strides.size(), 0);
    +
    653 if (l == layout_type::row_major)
    +
    654 {
    +
    655 for (size_type i = 0; i < strides.size(); ++i)
    +
    656 {
    +
    657 value_type str = strides[i];
    +
    658 value_type quot = str != 0 ? idx / str : 0;
    +
    659 idx = str != 0 ? idx % str : idx;
    +
    660 result[i] = quot;
    +
    661 }
    +
    662 }
    +
    663 else
    +
    664 {
    +
    665 for (size_type i = strides.size(); i != 0; --i)
    +
    666 {
    +
    667 value_type str = strides[i - 1];
    +
    668 value_type quot = str != 0 ? idx / str : 0;
    +
    669 idx = str != 0 ? idx % str : idx;
    +
    670 result[i - 1] = quot;
    +
    671 }
    +
    672 }
    +
    673 return result;
    +
    674 }
    +
    675 }
    +
    676
    +
    677 template <class S>
    +
    678 inline S unravel_from_strides(typename S::value_type index, const S& strides, layout_type l)
    +
    679 {
    + +
    681 {
    +
    682 XTENSOR_THROW(std::runtime_error, "unravel_index: dynamic layout not supported");
    +
    683 }
    +
    684 return detail::unravel_noexcept(index, strides, l);
    +
    685 }
    +
    686
    +
    687 template <class S, class T>
    +
    688 inline get_value_type_t<T> ravel_from_strides(const T& index, const S& strides)
    +
    689 {
    +
    690 return element_offset<get_value_type_t<T>>(strides, index.begin(), index.end());
    +
    691 }
    +
    692
    +
    693 template <class S>
    +
    694 inline get_strides_t<S> unravel_index(typename S::value_type index, const S& shape, layout_type l)
    +
    695 {
    +
    696 using strides_type = get_strides_t<S>;
    +
    697 using strides_value_type = typename strides_type::value_type;
    +
    698 strides_type strides = xtl::make_sequence<strides_type>(shape.size(), 0);
    +
    699 compute_strides(shape, l, strides);
    +
    700 return unravel_from_strides(static_cast<strides_value_type>(index), strides, l);
    +
    701 }
    +
    702
    +
    703 template <class S, class T>
    +
    704 inline std::vector<get_strides_t<S>> unravel_indices(const T& idx, const S& shape, layout_type l)
    +
    705 {
    +
    706 using strides_type = get_strides_t<S>;
    +
    707 using strides_value_type = typename strides_type::value_type;
    +
    708 strides_type strides = xtl::make_sequence<strides_type>(shape.size(), 0);
    +
    709 compute_strides(shape, l, strides);
    +
    710 std::vector<get_strides_t<S>> out(idx.size());
    +
    711 auto out_iter = out.begin();
    +
    712 auto idx_iter = idx.begin();
    +
    713 for (; out_iter != out.end(); ++out_iter, ++idx_iter)
    +
    714 {
    +
    715 *out_iter = unravel_from_strides(static_cast<strides_value_type>(*idx_iter), strides, l);
    +
    716 }
    +
    717 return out;
    +
    718 }
    +
    719
    +
    720 template <class S, class T>
    +
    721 inline get_value_type_t<T> ravel_index(const T& index, const S& shape, layout_type l)
    +
    722 {
    +
    723 using strides_type = get_strides_t<S>;
    +
    724 strides_type strides = xtl::make_sequence<strides_type>(shape.size(), 0);
    +
    725 compute_strides(shape, l, strides);
    +
    726 return ravel_from_strides(index, strides);
    +
    727 }
    +
    728
    +
    729 template <class S, class stype>
    +
    730 inline S uninitialized_shape(stype size)
    +
    731 {
    +
    732 using value_type = typename S::value_type;
    +
    733 using size_type = typename S::size_type;
    +
    734 return xtl::make_sequence<S>(static_cast<size_type>(size), std::numeric_limits<value_type>::max());
    +
    735 }
    +
    736
    +
    737 template <class S1, class S2>
    +
    738 inline bool broadcast_shape(const S1& input, S2& output)
    +
    739 {
    +
    740 bool trivial_broadcast = (input.size() == output.size());
    +
    741 // Indices are faster than reverse iterators
    +
    742 using value_type = typename S2::value_type;
    +
    743 auto output_index = output.size();
    +
    744 auto input_index = input.size();
    +
    745
    +
    746 if (output_index < input_index)
    +
    747 {
    +
    748 throw_broadcast_error(output, input);
    +
    749 }
    +
    750 for (; input_index != 0; --input_index, --output_index)
    +
    751 {
    +
    752 // First case: output = (MAX, MAX, ...., MAX)
    +
    753 // output is a new shape that has not been through
    +
    754 // the broadcast process yet; broadcast is trivial
    +
    755 if (output[output_index - 1] == std::numeric_limits<value_type>::max())
    +
    756 {
    +
    757 output[output_index - 1] = static_cast<value_type>(input[input_index - 1]);
    +
    758 }
    +
    759 // Second case: output has been initialized to 1. Broadcast is trivial
    +
    760 // only if input is 1 to.
    +
    761 else if (output[output_index - 1] == 1)
    +
    762 {
    +
    763 output[output_index - 1] = static_cast<value_type>(input[input_index - 1]);
    +
    764 trivial_broadcast = trivial_broadcast && (input[input_index - 1] == 1);
    +
    765 }
    +
    766 // Third case: output has been initialized to something different from 1.
    +
    767 // if input is 1, then the broadcast is not trivial
    +
    768 else if (input[input_index - 1] == 1)
    +
    769 {
    +
    770 trivial_broadcast = false;
    +
    771 }
    +
    772 // Last case: input and output must have the same value, else
    +
    773 // shape are not compatible and an exception is thrown
    +
    774 else if (static_cast<value_type>(input[input_index - 1]) != output[output_index - 1])
    +
    775 {
    +
    776 throw_broadcast_error(output, input);
    +
    777 }
    +
    778 }
    +
    779 return trivial_broadcast;
    +
    780 }
    +
    781
    +
    782 template <class S1, class S2>
    +
    783 inline bool broadcastable(const S1& src_shape, const S2& dst_shape)
    +
    784 {
    +
    785 auto src_iter = src_shape.crbegin();
    +
    786 auto dst_iter = dst_shape.crbegin();
    +
    787 bool res = dst_shape.size() >= src_shape.size();
    +
    788 for (; src_iter != src_shape.crend() && res; ++src_iter, ++dst_iter)
    +
    789 {
    +
    790 res = (static_cast<std::size_t>(*src_iter) == static_cast<std::size_t>(*dst_iter))
    +
    791 || (*src_iter == 1);
    +
    792 }
    +
    793 return res;
    +
    794 }
    +
    795
    +
    796 template <>
    +
    + +
    798 {
    +
    799 template <class S1, class S2>
    +
    800 static std::size_t get(const S1& s1, const S2& s2)
    +
    801 {
    +
    802 using value_type = typename S1::value_type;
    +
    803 // Indices are faster than reverse iterators
    +
    804 auto s1_index = s1.size();
    +
    805 auto s2_index = s2.size();
    +
    806
    +
    807 for (; s2_index != 0; --s1_index, --s2_index)
    +
    808 {
    +
    809 if (static_cast<value_type>(s1[s1_index - 1]) != static_cast<value_type>(s2[s2_index - 1]))
    +
    810 {
    +
    811 break;
    +
    812 }
    +
    813 }
    +
    814 return s1_index;
    +
    815 }
    +
    816 };
    +
    +
    817
    +
    818 template <>
    +
    + +
    820 {
    +
    821 template <class S1, class S2>
    +
    822 static std::size_t get(const S1& s1, const S2& s2)
    +
    823 {
    +
    824 // Indices are faster than reverse iterators
    +
    825 using size_type = typename S1::size_type;
    +
    826 using value_type = typename S1::value_type;
    +
    827 size_type index = 0;
    +
    828
    +
    829 // This check is necessary as column major "broadcasting" is still
    +
    830 // performed in a row major fashion
    +
    831 if (s1.size() != s2.size())
    +
    832 {
    +
    833 return 0;
    +
    834 }
    +
    835
    +
    836 auto size = s2.size();
    +
    837
    +
    838 for (; index < size; ++index)
    +
    839 {
    +
    840 if (static_cast<value_type>(s1[index]) != static_cast<value_type>(s2[index]))
    +
    841 {
    +
    842 break;
    +
    843 }
    +
    844 }
    +
    845 return index;
    +
    846 }
    +
    847 };
    +
    +
    848
    +
    849 namespace detail
    +
    850 {
    +
    851 template <class S, std::size_t dim>
    +
    852 inline bool check_in_bounds_impl(const S&)
    +
    853 {
    +
    854 return true;
    +
    855 }
    +
    856
    +
    857 template <class S, std::size_t dim>
    +
    858 inline bool check_in_bounds_impl(const S&, missing_type)
    +
    859 {
    +
    860 return true;
    +
    861 }
    +
    862
    +
    863 template <class S, std::size_t dim, class T, class... Args>
    +
    864 inline bool check_in_bounds_impl(const S& shape, T& arg, Args&... args)
    +
    865 {
    +
    866 if (sizeof...(Args) + 1 > shape.size())
    +
    867 {
    +
    868 return check_in_bounds_impl<S, dim>(shape, args...);
    +
    869 }
    +
    870 else
    +
    871 {
    +
    872 return arg >= T(0) && arg < static_cast<T>(shape[dim])
    +
    873 && check_in_bounds_impl<S, dim + 1>(shape, args...);
    +
    874 }
    +
    875 }
    +
    876 }
    +
    877
    +
    878 template <class S, class... Args>
    +
    879 inline bool check_in_bounds(const S& shape, Args&... args)
    +
    880 {
    +
    881 return detail::check_in_bounds_impl<S, 0>(shape, args...);
    +
    882 }
    +
    883
    +
    884 namespace detail
    +
    885 {
    +
    886 template <class S, std::size_t dim>
    +
    887 inline void normalize_periodic_impl(const S&)
    +
    888 {
    +
    889 }
    +
    890
    +
    891 template <class S, std::size_t dim>
    +
    892 inline void normalize_periodic_impl(const S&, missing_type)
    +
    893 {
    +
    894 }
    +
    895
    +
    896 template <class S, std::size_t dim, class T, class... Args>
    +
    897 inline void normalize_periodic_impl(const S& shape, T& arg, Args&... args)
    +
    898 {
    +
    899 if (sizeof...(Args) + 1 > shape.size())
    +
    900 {
    +
    901 normalize_periodic_impl<S, dim>(shape, args...);
    +
    902 }
    +
    903 else
    +
    904 {
    +
    905 T n = static_cast<T>(shape[dim]);
    +
    906 arg = (n + (arg % n)) % n;
    +
    907 normalize_periodic_impl<S, dim + 1>(shape, args...);
    +
    908 }
    +
    909 }
    +
    910 }
    +
    911
    +
    912 template <class S, class... Args>
    +
    +
    913 inline void normalize_periodic(const S& shape, Args&... args)
    +
    914 {
    +
    915 check_dimension(shape, args...);
    +
    916 detail::normalize_periodic_impl<S, 0>(shape, args...);
    +
    917 }
    +
    +
    918}
    +
    919
    +
    920#endif
    +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    stride_type
    Choose stride type.
    Definition xstrides.hpp:235
    +
    void normalize_periodic(const S &shape, Args &... args)
    Normalise an index of a periodic array.
    Definition xstrides.hpp:913
    +
    @ bytes
    Normal stride in bytes.
    Definition xstrides.hpp:238
    +
    @ internal
    As used internally (with stride(axis) == 0 if shape(axis) == 1)
    Definition xstrides.hpp:236
    +
    @ normal
    Normal stride corresponding to storage.
    Definition xstrides.hpp:237
    +
    standard mathematical functions for xexpressions
    +
    bool in_bounds(const S &shape, Args &... args)
    Check if the index is within the bounds of the array.
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    + +
    +
    + + + + diff --git a/xtensor_8hpp_source.html b/xtensor_8hpp_source.html new file mode 100644 index 000000000..1046532b6 --- /dev/null +++ b/xtensor_8hpp_source.html @@ -0,0 +1,1031 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/containers/xtensor.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtensor.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_TENSOR_HPP
    +
    11#define XTENSOR_TENSOR_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <utility>
    +
    17#include <vector>
    +
    18
    +
    19#include "../containers/xbuffer_adaptor.hpp"
    +
    20#include "../containers/xcontainer.hpp"
    +
    21#include "../core/xsemantic.hpp"
    +
    22
    +
    23namespace xt
    +
    24{
    +
    25
    +
    26 /***********************
    +
    27 * xtensor declaration *
    +
    28 ***********************/
    +
    29
    +
    30 namespace extension
    +
    31 {
    +
    32 template <class EC, std::size_t N, layout_type L, class Tag>
    + +
    34
    +
    35 template <class EC, std::size_t N, layout_type L>
    +
    + +
    37 {
    +
    38 using type = xtensor_empty_base;
    +
    39 };
    +
    +
    40
    +
    41 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    42 using xtensor_container_base_t = typename xtensor_container_base<EC, N, L, Tag>::type;
    +
    43 }
    +
    44
    +
    45 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    47 {
    +
    48 using storage_type = EC;
    +
    49 using reference = inner_reference_t<storage_type>;
    +
    50 using const_reference = typename storage_type::const_reference;
    +
    51 using size_type = typename storage_type::size_type;
    +
    52 using shape_type = std::array<typename storage_type::size_type, N>;
    +
    53 using strides_type = get_strides_t<shape_type>;
    +
    54 using backstrides_type = get_strides_t<shape_type>;
    +
    55 using inner_shape_type = shape_type;
    +
    56 using inner_strides_type = strides_type;
    +
    57 using inner_backstrides_type = backstrides_type;
    +
    58 using temporary_type = xtensor_container<EC, N, L, Tag>;
    +
    59 static constexpr layout_type layout = L;
    +
    60 };
    +
    +
    61
    +
    62 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    64 : xcontainer_iterable_types<xtensor_container<EC, N, L, Tag>>
    +
    65 {
    +
    66 };
    +
    +
    67
    +
    82 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    83 class xtensor_container : public xstrided_container<xtensor_container<EC, N, L, Tag>>,
    +
    84 public xcontainer_semantic<xtensor_container<EC, N, L, Tag>>,
    +
    85 public extension::xtensor_container_base_t<EC, N, L, Tag>
    +
    86 {
    +
    87 public:
    +
    88
    +
    89 using self_type = xtensor_container<EC, N, L, Tag>;
    +
    90 using base_type = xstrided_container<self_type>;
    +
    91 using semantic_base = xcontainer_semantic<self_type>;
    +
    92 using extension_base = extension::xtensor_container_base_t<EC, N, L, Tag>;
    +
    93 using storage_type = typename base_type::storage_type;
    +
    94 using allocator_type = typename base_type::allocator_type;
    +
    95 using value_type = typename base_type::value_type;
    +
    96 using reference = typename base_type::reference;
    +
    97 using const_reference = typename base_type::const_reference;
    +
    98 using pointer = typename base_type::pointer;
    +
    99 using const_pointer = typename base_type::const_pointer;
    +
    100 using shape_type = typename base_type::shape_type;
    +
    101 using inner_shape_type = typename base_type::inner_shape_type;
    +
    102 using strides_type = typename base_type::strides_type;
    +
    103 using backstrides_type = typename base_type::backstrides_type;
    +
    104 using inner_backstrides_type = typename base_type::inner_backstrides_type;
    +
    105 using inner_strides_type = typename base_type::inner_strides_type;
    +
    106 using temporary_type = typename semantic_base::temporary_type;
    +
    107 using expression_tag = Tag;
    +
    108 static constexpr std::size_t rank = N;
    +
    109
    + +
    111 xtensor_container(nested_initializer_list_t<value_type, N> t);
    +
    112 explicit xtensor_container(const shape_type& shape, layout_type l = L);
    +
    113 explicit xtensor_container(const shape_type& shape, const_reference value, layout_type l = L);
    +
    114 explicit xtensor_container(const shape_type& shape, const strides_type& strides);
    +
    115 explicit xtensor_container(const shape_type& shape, const strides_type& strides, const_reference value);
    +
    116 explicit xtensor_container(storage_type&& storage, inner_shape_type&& shape, inner_strides_type&& strides);
    +
    117
    +
    118 template <class S = shape_type>
    +
    119 static xtensor_container from_shape(S&& s);
    +
    120
    +
    121 ~xtensor_container() = default;
    +
    122
    +
    123 xtensor_container(const xtensor_container&) = default;
    +
    124 xtensor_container& operator=(const xtensor_container&) = default;
    +
    125
    + +
    127 xtensor_container& operator=(xtensor_container&&) = default;
    +
    128
    +
    129 template <class SC>
    + +
    131 template <class SC>
    + +
    133
    +
    134 template <class E>
    + +
    136
    +
    137 template <class E>
    +
    138 xtensor_container& operator=(const xexpression<E>& e);
    +
    139
    +
    140 private:
    +
    141
    +
    142 storage_type m_storage;
    +
    143
    +
    144 storage_type& storage_impl() noexcept;
    +
    145 const storage_type& storage_impl() const noexcept;
    +
    146
    +
    147 friend class xcontainer<xtensor_container<EC, N, L, Tag>>;
    +
    148 };
    +
    +
    149
    +
    150 /*****************************************
    +
    151 * xtensor_container_adaptor declaration *
    +
    152 *****************************************/
    +
    153
    +
    154 namespace extension
    +
    155 {
    +
    156 template <class EC, std::size_t N, layout_type L, class Tag>
    + +
    158
    +
    159 template <class EC, std::size_t N, layout_type L>
    +
    + +
    161 {
    +
    162 using type = xtensor_empty_base;
    +
    163 };
    +
    +
    164
    +
    165 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    166 using xtensor_adaptor_base_t = typename xtensor_adaptor_base<EC, N, L, Tag>::type;
    +
    167 }
    +
    168
    +
    169 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    171 {
    +
    172 using storage_type = std::remove_reference_t<EC>;
    +
    173 using reference = inner_reference_t<storage_type>;
    +
    174 using const_reference = typename storage_type::const_reference;
    +
    175 using size_type = typename storage_type::size_type;
    +
    176 using shape_type = std::array<typename storage_type::size_type, N>;
    +
    177 using strides_type = get_strides_t<shape_type>;
    +
    178 using backstrides_type = get_strides_t<shape_type>;
    +
    179 using inner_shape_type = shape_type;
    +
    180 using inner_strides_type = strides_type;
    +
    181 using inner_backstrides_type = backstrides_type;
    +
    182 using temporary_type = xtensor_container<temporary_container_t<storage_type>, N, L, Tag>;
    +
    183 static constexpr layout_type layout = L;
    +
    184 };
    +
    +
    185
    +
    186 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    188 : xcontainer_iterable_types<xtensor_adaptor<EC, N, L, Tag>>
    +
    189 {
    +
    190 };
    +
    +
    191
    +
    208 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    209 class xtensor_adaptor : public xstrided_container<xtensor_adaptor<EC, N, L, Tag>>,
    +
    210 public xcontainer_semantic<xtensor_adaptor<EC, N, L, Tag>>,
    +
    211 public extension::xtensor_adaptor_base_t<EC, N, L, Tag>
    +
    212 {
    +
    213 public:
    +
    214
    +
    215 using container_closure_type = EC;
    +
    216
    +
    217 using self_type = xtensor_adaptor<EC, N, L, Tag>;
    +
    218 using base_type = xstrided_container<self_type>;
    +
    219 using semantic_base = xcontainer_semantic<self_type>;
    +
    220 using extension_base = extension::xtensor_adaptor_base_t<EC, N, L, Tag>;
    +
    221 using storage_type = typename base_type::storage_type;
    +
    222 using allocator_type = typename base_type::allocator_type;
    +
    223 using shape_type = typename base_type::shape_type;
    +
    224 using strides_type = typename base_type::strides_type;
    +
    225 using backstrides_type = typename base_type::backstrides_type;
    +
    226 using temporary_type = typename semantic_base::temporary_type;
    +
    227 using expression_tag = Tag;
    +
    228 static constexpr std::size_t rank = N;
    +
    229
    +
    230 xtensor_adaptor(storage_type&& storage);
    +
    231 xtensor_adaptor(const storage_type& storage);
    +
    232
    +
    233 template <class D>
    +
    234 xtensor_adaptor(D&& storage, const shape_type& shape, layout_type l = L);
    +
    235
    +
    236 template <class D>
    +
    237 xtensor_adaptor(D&& storage, const shape_type& shape, const strides_type& strides);
    +
    238
    +
    239 ~xtensor_adaptor() = default;
    +
    240
    +
    241 xtensor_adaptor(const xtensor_adaptor&) = default;
    +
    242 xtensor_adaptor& operator=(const xtensor_adaptor&);
    +
    243
    +
    244 xtensor_adaptor(xtensor_adaptor&&) = default;
    +
    245 xtensor_adaptor& operator=(xtensor_adaptor&&);
    +
    246 xtensor_adaptor& operator=(temporary_type&&);
    +
    247
    +
    248 template <class E>
    +
    249 xtensor_adaptor& operator=(const xexpression<E>& e);
    +
    250
    +
    251 template <class P, class S>
    +
    252 void reset_buffer(P&& pointer, S&& size);
    +
    253
    +
    254 private:
    +
    255
    +
    256 container_closure_type m_storage;
    +
    257
    +
    258 storage_type& storage_impl() noexcept;
    +
    259 const storage_type& storage_impl() const noexcept;
    +
    260
    +
    261 friend class xcontainer<xtensor_adaptor<EC, N, L, Tag>>;
    +
    262 };
    +
    +
    263
    +
    264 /****************************
    +
    265 * xtensor_view declaration *
    +
    266 ****************************/
    +
    267
    +
    268 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    269 class xtensor_view;
    +
    270
    +
    271 namespace extension
    +
    272 {
    +
    273 template <class EC, std::size_t N, layout_type L, class Tag>
    + +
    275
    +
    276 template <class EC, std::size_t N, layout_type L>
    +
    + +
    278 {
    +
    279 using type = xtensor_empty_base;
    +
    280 };
    +
    +
    281
    +
    282 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    283 using xtensor_view_base_t = typename xtensor_view_base<EC, N, L, Tag>::type;
    +
    284 }
    +
    285
    +
    286 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    288 {
    +
    289 using storage_type = std::remove_reference_t<EC>;
    +
    290 using reference = inner_reference_t<storage_type>;
    +
    291 using const_reference = typename storage_type::const_reference;
    +
    292 using size_type = typename storage_type::size_type;
    +
    293 using shape_type = std::array<typename storage_type::size_type, N>;
    +
    294 using strides_type = get_strides_t<shape_type>;
    +
    295 using backstrides_type = get_strides_t<shape_type>;
    +
    296 using inner_shape_type = shape_type;
    +
    297 using inner_strides_type = strides_type;
    +
    298 using inner_backstrides_type = backstrides_type;
    +
    299 using temporary_type = xtensor_container<temporary_container_t<storage_type>, N, L, Tag>;
    +
    300 static constexpr layout_type layout = L;
    +
    301 };
    +
    +
    302
    +
    303 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    304 struct xiterable_inner_types<xtensor_view<EC, N, L, Tag>>
    +
    305 : xcontainer_iterable_types<xtensor_view<EC, N, L, Tag>>
    +
    306 {
    +
    307 };
    +
    +
    308
    +
    325 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    326 class xtensor_view : public xstrided_container<xtensor_view<EC, N, L, Tag>>,
    +
    327 public xview_semantic<xtensor_view<EC, N, L, Tag>>,
    +
    328 public extension::xtensor_view_base_t<EC, N, L, Tag>
    +
    329 {
    +
    330 public:
    +
    331
    +
    332 using container_closure_type = EC;
    +
    333
    +
    334 using self_type = xtensor_view<EC, N, L, Tag>;
    +
    335 using base_type = xstrided_container<self_type>;
    +
    336 using semantic_base = xview_semantic<self_type>;
    +
    337 using extension_base = extension::xtensor_adaptor_base_t<EC, N, L, Tag>;
    +
    338 using storage_type = typename base_type::storage_type;
    +
    339 using allocator_type = typename base_type::allocator_type;
    +
    340 using shape_type = typename base_type::shape_type;
    +
    341 using strides_type = typename base_type::strides_type;
    +
    342 using backstrides_type = typename base_type::backstrides_type;
    +
    343 using temporary_type = typename semantic_base::temporary_type;
    +
    344 using expression_tag = Tag;
    +
    345
    +
    346 xtensor_view(storage_type&& storage);
    +
    347 xtensor_view(const storage_type& storage);
    +
    348
    +
    349 template <class D>
    +
    350 xtensor_view(D&& storage, const shape_type& shape, layout_type l = L);
    +
    351
    +
    352 template <class D>
    +
    353 xtensor_view(D&& storage, const shape_type& shape, const strides_type& strides);
    +
    354
    +
    355 ~xtensor_view() = default;
    +
    356
    +
    357 xtensor_view(const xtensor_view&) = default;
    +
    358 xtensor_view& operator=(const xtensor_view&);
    +
    359
    +
    360 xtensor_view(xtensor_view&&) = default;
    +
    361 xtensor_view& operator=(xtensor_view&&);
    +
    362
    +
    363 template <class E>
    +
    364 self_type& operator=(const xexpression<E>& e);
    +
    365
    +
    366 template <class E>
    +
    367 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    368
    +
    369 private:
    +
    370
    +
    371 container_closure_type m_storage;
    +
    372
    +
    373 storage_type& storage_impl() noexcept;
    +
    374 const storage_type& storage_impl() const noexcept;
    +
    375
    +
    376 void assign_temporary_impl(temporary_type&& tmp);
    +
    377
    +
    378 friend class xcontainer<xtensor_view<EC, N, L, Tag>>;
    +
    379 friend class xview_semantic<xtensor_view<EC, N, L, Tag>>;
    +
    380 };
    +
    +
    381
    +
    382 namespace detail
    +
    383 {
    +
    384 template <class V>
    +
    385 struct tensor_view_simd_helper
    +
    386 {
    +
    387 using valid_return_type = detail::has_simd_interface_impl<V, typename V::value_type>;
    +
    388 using valid_reference = std::is_lvalue_reference<typename V::reference>;
    +
    389 static constexpr bool value = valid_return_type::value && valid_reference::value;
    +
    390 using type = std::integral_constant<bool, value>;
    +
    391 };
    +
    392 }
    +
    393
    +
    394 // xtensor_view can be used on pseudo containers, i.e. containers
    +
    395 // whose access operator does not return a reference. Since it
    +
    396 // is not possible to take the address f a temporary, the load_simd
    +
    397 // method implementation leads to a compilation error.
    +
    398 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    399 struct has_simd_interface<xtensor_view<EC, N, L, Tag>>
    +
    400 : detail::tensor_view_simd_helper<xtensor_view<EC, N, L, Tag>>::type
    +
    401 {
    +
    402 };
    +
    +
    403
    +
    404 /************************************
    +
    405 * xtensor_container implementation *
    +
    406 ************************************/
    +
    407
    +
    412
    +
    415 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    417 : base_type()
    +
    418 , m_storage(N == 0 ? 1 : 0, value_type())
    +
    419 {
    +
    420 }
    +
    +
    421
    +
    425 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    426 inline xtensor_container<EC, N, L, Tag>::xtensor_container(nested_initializer_list_t<value_type, N> t)
    +
    427 : base_type()
    +
    428 {
    +
    429 base_type::resize(xt::shape<shape_type>(t), true);
    +
    430 constexpr auto tmp = layout_type::row_major;
    +
    431 L == tmp ? nested_copy(m_storage.begin(), t) : nested_copy(this->template begin<tmp>(), t);
    +
    432 }
    +
    +
    433
    +
    440 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    442 : base_type()
    +
    443 {
    +
    444 base_type::resize(shape, l);
    +
    445 }
    +
    +
    446
    +
    454 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    456 const shape_type& shape,
    +
    457 const_reference value,
    + +
    459 )
    +
    460 : base_type()
    +
    461 {
    +
    462 base_type::resize(shape, l);
    +
    463 std::fill(m_storage.begin(), m_storage.end(), value);
    +
    464 }
    +
    +
    465
    +
    471 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    +
    472 inline xtensor_container<EC, N, L, Tag>::xtensor_container(const shape_type& shape, const strides_type& strides)
    +
    473 : base_type()
    +
    474 {
    + +
    476 }
    +
    +
    477
    +
    485 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    487 const shape_type& shape,
    +
    488 const strides_type& strides,
    +
    489 const_reference value
    +
    490 )
    +
    491 : base_type()
    +
    492 {
    + +
    494 std::fill(m_storage.begin(), m_storage.end(), value);
    +
    495 }
    +
    +
    496
    +
    504 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    506 storage_type&& storage,
    +
    507 inner_shape_type&& shape,
    +
    508 inner_strides_type&& strides
    +
    509 )
    +
    510 : base_type(std::move(shape), std::move(strides))
    +
    511 , m_storage(std::move(storage))
    +
    512 {
    +
    513 }
    +
    +
    514
    +
    515 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    516 template <class SC>
    + +
    518 : base_type(
    +
    519 xtl::forward_sequence<inner_shape_type, decltype(rhs.shape())>(rhs.shape()),
    +
    520 xtl::forward_sequence<inner_strides_type, decltype(rhs.strides())>(rhs.strides()),
    +
    521 xtl::forward_sequence<inner_backstrides_type, decltype(rhs.backstrides())>(rhs.backstrides()),
    +
    522 std::move(rhs.layout())
    +
    523 )
    +
    524 , m_storage(std::move(rhs.storage()))
    +
    525 {
    +
    526 }
    +
    527
    +
    528 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    529 template <class SC>
    +
    530 inline xtensor_container<EC, N, L, Tag>&
    +
    531 xtensor_container<EC, N, L, Tag>::operator=(xarray_container<EC, L, SC, Tag>&& rhs)
    +
    532 {
    +
    533 XTENSOR_ASSERT_MSG(N == rhs.dimension(), "Cannot change dimension of xtensor.");
    +
    534 std::copy(rhs.shape().begin(), rhs.shape().end(), this->shape_impl().begin());
    +
    535 std::copy(rhs.strides().cbegin(), rhs.strides().cend(), this->strides_impl().begin());
    +
    536 std::copy(rhs.backstrides().cbegin(), rhs.backstrides().cend(), this->backstrides_impl().begin());
    +
    537 this->mutable_layout() = std::move(rhs.layout());
    +
    538 m_storage = std::move(std::move(rhs.storage()));
    +
    539 return *this;
    +
    540 }
    +
    541
    +
    542 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    543 template <class S>
    +
    544 inline xtensor_container<EC, N, L, Tag> xtensor_container<EC, N, L, Tag>::from_shape(S&& s)
    +
    545 {
    +
    546 XTENSOR_ASSERT_MSG(s.size() == N, "Cannot change dimension of xtensor.");
    +
    547 shape_type shape = xtl::forward_sequence<shape_type, S>(s);
    +
    548 return self_type(shape);
    +
    549 }
    +
    550
    +
    552
    +
    557
    +
    560 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    561 template <class E>
    +
    + +
    563 : base_type()
    +
    564 {
    +
    565 XTENSOR_ASSERT_MSG(N == e.derived_cast().dimension(), "Cannot change dimension of xtensor.");
    +
    566 // Avoids uninitialized data because of (m_shape == shape) condition
    +
    567 // in resize (called by assign), which is always true when dimension() == 0.
    +
    568 if (e.derived_cast().dimension() == 0)
    +
    569 {
    +
    570 detail::resize_data_container(m_storage, std::size_t(1));
    +
    571 }
    +
    572 semantic_base::assign(e);
    +
    573 }
    +
    +
    574
    +
    578 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    579 template <class E>
    +
    +
    580 inline auto xtensor_container<EC, N, L, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    581 {
    +
    582 return semantic_base::operator=(e);
    +
    583 }
    +
    +
    584
    +
    586
    +
    587 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    588 inline auto xtensor_container<EC, N, L, Tag>::storage_impl() noexcept -> storage_type&
    +
    589 {
    +
    590 return m_storage;
    +
    591 }
    +
    592
    +
    593 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    594 inline auto xtensor_container<EC, N, L, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    595 {
    +
    596 return m_storage;
    +
    597 }
    +
    598
    +
    599 /**********************************
    +
    600 * xtensor_adaptor implementation *
    +
    601 **********************************/
    +
    602
    +
    607
    +
    611 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    613 : base_type()
    +
    614 , m_storage(std::move(storage))
    +
    615 {
    +
    616 }
    +
    +
    617
    +
    622 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    624 : base_type()
    +
    625 , m_storage(storage)
    +
    626 {
    +
    627 }
    +
    +
    628
    +
    636 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    637 template <class D>
    +
    + +
    639 : base_type()
    +
    640 , m_storage(std::forward<D>(storage))
    +
    641 {
    +
    642 base_type::resize(shape, l);
    +
    643 }
    +
    +
    644
    +
    652 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    653 template <class D>
    +
    + +
    655 D&& storage,
    +
    656 const shape_type& shape,
    +
    657 const strides_type& strides
    +
    658 )
    +
    659 : base_type()
    +
    660 , m_storage(std::forward<D>(storage))
    +
    661 {
    + +
    663 }
    +
    +
    664
    +
    666
    +
    667 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    668 inline auto xtensor_adaptor<EC, N, L, Tag>::operator=(const xtensor_adaptor& rhs) -> self_type&
    +
    669 {
    +
    670 base_type::operator=(rhs);
    +
    671 m_storage = rhs.m_storage;
    +
    672 return *this;
    +
    673 }
    +
    674
    +
    675 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    676 inline auto xtensor_adaptor<EC, N, L, Tag>::operator=(xtensor_adaptor&& rhs) -> self_type&
    +
    677 {
    +
    678 base_type::operator=(std::move(rhs));
    +
    679 m_storage = rhs.m_storage;
    +
    680 return *this;
    +
    681 }
    +
    682
    +
    683 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    684 inline auto xtensor_adaptor<EC, N, L, Tag>::operator=(temporary_type&& rhs) -> self_type&
    +
    685 {
    +
    686 base_type::shape_impl() = std::move(const_cast<shape_type&>(rhs.shape()));
    +
    687 base_type::strides_impl() = std::move(const_cast<strides_type&>(rhs.strides()));
    +
    688 base_type::backstrides_impl() = std::move(const_cast<backstrides_type&>(rhs.backstrides()));
    +
    689 m_storage = std::move(rhs.storage());
    +
    690 return *this;
    +
    691 }
    +
    692
    +
    697
    +
    700 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    701 template <class E>
    +
    +
    702 inline auto xtensor_adaptor<EC, N, L, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    703 {
    +
    704 return semantic_base::operator=(e);
    +
    705 }
    +
    +
    706
    +
    708
    +
    709 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    710 inline auto xtensor_adaptor<EC, N, L, Tag>::storage_impl() noexcept -> storage_type&
    +
    711 {
    +
    712 return m_storage;
    +
    713 }
    +
    714
    +
    715 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    716 inline auto xtensor_adaptor<EC, N, L, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    717 {
    +
    718 return m_storage;
    +
    719 }
    +
    720
    +
    721 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    722 template <class P, class S>
    +
    723 inline void xtensor_adaptor<EC, N, L, Tag>::reset_buffer(P&& pointer, S&& size)
    +
    724 {
    +
    725 return m_storage.reset_data(std::forward<P>(pointer), std::forward<S>(size));
    +
    726 }
    +
    727
    +
    728 /*******************************
    +
    729 * xtensor_view implementation *
    +
    730 *******************************/
    +
    731
    +
    736
    +
    740 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    742 : base_type()
    +
    743 , m_storage(std::move(storage))
    +
    744 {
    +
    745 }
    +
    +
    746
    +
    751 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    + +
    753 : base_type()
    +
    754 , m_storage(storage)
    +
    755 {
    +
    756 }
    +
    +
    757
    +
    765 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    766 template <class D>
    +
    +
    767 inline xtensor_view<EC, N, L, Tag>::xtensor_view(D&& storage, const shape_type& shape, layout_type l)
    +
    768 : base_type()
    +
    769 , m_storage(std::forward<D>(storage))
    +
    770 {
    +
    771 base_type::resize(shape, l);
    +
    772 }
    +
    +
    773
    +
    781 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    782 template <class D>
    +
    +
    783 inline xtensor_view<EC, N, L, Tag>::xtensor_view(D&& storage, const shape_type& shape, const strides_type& strides)
    +
    784 : base_type()
    +
    785 , m_storage(std::forward<D>(storage))
    +
    786 {
    + +
    788 }
    +
    +
    789
    +
    791
    +
    792 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    793 inline auto xtensor_view<EC, N, L, Tag>::operator=(const xtensor_view& rhs) -> self_type&
    +
    794 {
    +
    795 base_type::operator=(rhs);
    +
    796 m_storage = rhs.m_storage;
    +
    797 return *this;
    +
    798 }
    +
    799
    +
    800 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    801 inline auto xtensor_view<EC, N, L, Tag>::operator=(xtensor_view&& rhs) -> self_type&
    +
    802 {
    +
    803 base_type::operator=(std::move(rhs));
    +
    804 m_storage = rhs.m_storage;
    +
    805 return *this;
    +
    806 }
    +
    807
    +
    812
    +
    815 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    816 template <class E>
    +
    +
    817 inline auto xtensor_view<EC, N, L, Tag>::operator=(const xexpression<E>& e) -> self_type&
    +
    818 {
    +
    819 return semantic_base::operator=(e);
    +
    820 }
    +
    +
    821
    +
    823
    +
    824 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    825 template <class E>
    +
    826 inline auto xtensor_view<EC, N, L, Tag>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    827 {
    +
    828 std::fill(m_storage.begin(), m_storage.end(), e);
    +
    829 return *this;
    +
    830 }
    +
    831
    +
    832 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    833 inline auto xtensor_view<EC, N, L, Tag>::storage_impl() noexcept -> storage_type&
    +
    834 {
    +
    835 return m_storage;
    +
    836 }
    +
    837
    +
    838 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    839 inline auto xtensor_view<EC, N, L, Tag>::storage_impl() const noexcept -> const storage_type&
    +
    840 {
    +
    841 return m_storage;
    +
    842 }
    +
    843
    +
    844 template <class EC, std::size_t N, layout_type L, class Tag>
    +
    845 inline void xtensor_view<EC, N, L, Tag>::assign_temporary_impl(temporary_type&& tmp)
    +
    846 {
    +
    847 std::copy(tmp.cbegin(), tmp.cend(), m_storage.begin());
    +
    848 }
    +
    849
    +
    857 template <class T>
    +
    +
    858 inline auto from_indices(const std::vector<T>& idx)
    +
    859 {
    +
    860 using return_type = xtensor<typename T::value_type, 2>;
    +
    861 using size_type = typename return_type::size_type;
    +
    862
    +
    863 if (idx.size() == 0)
    +
    864 {
    +
    865 return return_type::from_shape({size_type(0), size_type(0)});
    +
    866 }
    +
    867
    +
    868 return_type out = return_type::from_shape({idx.size(), idx[0].size()});
    +
    869
    +
    870 for (size_type i = 0; i < out.shape()[0]; ++i)
    +
    871 {
    +
    872 for (size_type j = 0; j < out.shape()[1]; ++j)
    +
    873 {
    +
    874 out(i, j) = idx[i][j];
    +
    875 }
    +
    876 }
    +
    877
    +
    878 return out;
    +
    879 }
    +
    +
    880
    +
    889 template <class T>
    +
    +
    890 inline auto flatten_indices(const std::vector<T>& idx)
    +
    891 {
    +
    892 auto n = idx.size();
    +
    893 if (n != 0)
    +
    894 {
    +
    895 n *= idx[0].size();
    +
    896 }
    +
    897
    +
    898 using return_type = xtensor<typename T::value_type, 1>;
    +
    899 return_type out = return_type::from_shape({n});
    +
    900 auto iter = out.begin();
    +
    901 for_each(
    +
    902 idx.begin(),
    +
    903 idx.end(),
    +
    904 [&iter](const auto& t)
    +
    905 {
    +
    906 iter = std::copy(t.cbegin(), t.cend(), iter);
    +
    907 }
    +
    908 );
    +
    909
    +
    910 return out;
    +
    911 }
    +
    +
    912
    +
    913 struct ravel_vector_tag;
    +
    914 struct ravel_tensor_tag;
    +
    915
    +
    916 namespace detail
    +
    917 {
    +
    918 template <class C, class Tag>
    +
    919 struct ravel_return_type;
    +
    920
    +
    921 template <class C>
    +
    922 struct ravel_return_type<C, ravel_vector_tag>
    +
    923 {
    +
    924 using index_type = typename C::value_type;
    +
    925 using value_type = typename index_type::value_type;
    +
    926 using type = std::vector<value_type>;
    +
    927
    +
    928 template <class T>
    +
    929 static std::vector<value_type> init(T n)
    +
    930 {
    +
    931 return std::vector<value_type>(n);
    +
    932 }
    +
    933 };
    +
    934
    +
    935 template <class C>
    +
    936 struct ravel_return_type<C, ravel_tensor_tag>
    +
    937 {
    +
    938 using index_type = typename C::value_type;
    +
    939 using value_type = typename index_type::value_type;
    +
    940 using type = xt::xtensor<value_type, 1>;
    +
    941
    +
    942 template <class T>
    +
    943 static xt::xtensor<value_type, 1> init(T n)
    +
    944 {
    +
    945 return xtensor<value_type, 1>::from_shape({n});
    +
    946 }
    +
    947 };
    +
    948 }
    +
    949
    +
    950 template <class C, class Tag>
    +
    951 using ravel_return_type_t = typename detail::ravel_return_type<C, Tag>::type;
    +
    952
    +
    963 template <class Tag = ravel_tensor_tag, class C, class S>
    +
    964 ravel_return_type_t<C, Tag>
    +
    +
    965 ravel_indices(const C& idx, const S& shape, layout_type l = layout_type::row_major)
    +
    966 {
    +
    967 using return_type = typename detail::ravel_return_type<C, Tag>::type;
    +
    968 using value_type = typename detail::ravel_return_type<C, Tag>::value_type;
    +
    969 using strides_type = get_strides_t<S>;
    +
    970 strides_type strides = xtl::make_sequence<strides_type>(shape.size(), 0);
    +
    971 compute_strides(shape, l, strides);
    +
    972 return_type out = detail::ravel_return_type<C, Tag>::init(idx.size());
    +
    973 auto out_iter = out.begin();
    +
    974 auto idx_iter = idx.begin();
    +
    975 for (; out_iter != out.end(); ++out_iter, ++idx_iter)
    +
    976 {
    +
    977 *out_iter = element_offset<value_type>(strides, (*idx_iter).cbegin(), (*idx_iter).cend());
    +
    978 }
    +
    979 return out;
    +
    980 }
    +
    +
    981}
    +
    982
    +
    983#endif
    +
    Dense multidimensional container with tensor semantic.
    Definition xarray.hpp:84
    +
    Base class for dense multidimensional containers.
    +
    storage_type & storage() noexcept
    Returns a reference to the buffer containing the elements of the container.
    +
    size_type size() const noexcept
    Returns the number of element in the container.
    +
    constexpr size_type dimension() const noexcept
    Returns the number of dimensions of the container.
    +
    constexpr const inner_strides_type & strides() const noexcept
    Returns the strides of the container.
    +
    constexpr const inner_shape_type & shape() const noexcept
    Returns the shape of the container.
    + +
    Base class for xexpressions.
    +
    derived_type & derived_cast() &noexcept
    Returns a reference to the actual derived type of the xexpression.
    +
    void resize(S &&shape, bool force=false)
    +
    Dense multidimensional container adaptor with tensor semantics and fixed dimension.
    Definition xtensor.hpp:212
    +
    xtensor_adaptor(D &&storage, const shape_type &shape, layout_type l=L)
    Constructs an xtensor_adaptor of the given stl-like container, with the specified shape and layout_ty...
    Definition xtensor.hpp:638
    +
    xtensor_adaptor(const storage_type &storage)
    Constructs an xtensor_adaptor of the given stl-like container.
    Definition xtensor.hpp:623
    +
    xtensor_adaptor(D &&storage, const shape_type &shape, const strides_type &strides)
    Constructs an xtensor_adaptor of the given stl-like container, with the specified shape and strides.
    Definition xtensor.hpp:654
    +
    xtensor_adaptor(storage_type &&storage)
    Constructs an xtensor_adaptor of the given stl-like container.
    Definition xtensor.hpp:612
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    xtensor_container(const shape_type &shape, const strides_type &strides)
    Allocates an uninitialized xtensor_container with the specified shape and strides.
    Definition xtensor.hpp:472
    +
    xtensor_container(const shape_type &shape, const_reference value, layout_type l=L)
    Allocates an xtensor_container with the specified shape and layout_type.
    Definition xtensor.hpp:455
    +
    xtensor_container(nested_initializer_list_t< value_type, N > t)
    Allocates an xtensor_container with nested initializer lists.
    Definition xtensor.hpp:426
    +
    xtensor_container(const xexpression< E > &e)
    The extended copy constructor.
    Definition xtensor.hpp:562
    +
    xtensor_container()
    Allocates an uninitialized xtensor_container that holds 0 elements.
    Definition xtensor.hpp:416
    +
    xtensor_container(const shape_type &shape, const strides_type &strides, const_reference value)
    Allocates an uninitialized xtensor_container with the specified shape and strides.
    Definition xtensor.hpp:486
    +
    xtensor_container(storage_type &&storage, inner_shape_type &&shape, inner_strides_type &&strides)
    Allocates an xtensor_container by moving specified data, shape and strides.
    Definition xtensor.hpp:505
    +
    xtensor_container(const shape_type &shape, layout_type l=L)
    Allocates an uninitialized xtensor_container with the specified shape and layout_type.
    Definition xtensor.hpp:441
    +
    Dense multidimensional container adaptor with view semantics and fixed dimension.
    Definition xtensor.hpp:329
    +
    xtensor_view(storage_type &&storage)
    Constructs an xtensor_view of the given stl-like container.
    Definition xtensor.hpp:741
    +
    xtensor_view(D &&storage, const shape_type &shape, layout_type l=L)
    Constructs an xtensor_view of the given stl-like container, with the specified shape and layout_type.
    Definition xtensor.hpp:767
    +
    xtensor_view(const storage_type &storage)
    Constructs an xtensor_view of the given stl-like container.
    Definition xtensor.hpp:752
    +
    xtensor_view(D &&storage, const shape_type &shape, const strides_type &strides)
    Constructs an xtensor_view of the given stl-like container, with the specified shape and strides.
    Definition xtensor.hpp:783
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    layout_type
    Definition xlayout.hpp:24
    + +
    auto flatten_indices(const std::vector< T > &idx)
    Converts std::vector<index_type> (returned e.g.
    Definition xtensor.hpp:890
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    ravel_return_type_t< C, Tag > ravel_indices(const C &idx, const S &shape, layout_type l=layout_type::row_major)
    Converts std::vector<index_type> (returned e.g.
    Definition xtensor.hpp:965
    +
    auto from_indices(const std::vector< T > &idx)
    Converts std::vector<index_type> (returned e.g.
    Definition xtensor.hpp:858
    + + + + + + + + + + +
    +
    + + + + diff --git a/xtensor__config_8hpp_source.html b/xtensor__config_8hpp_source.html new file mode 100644 index 000000000..d62e5e2bd --- /dev/null +++ b/xtensor__config_8hpp_source.html @@ -0,0 +1,258 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xtensor_config.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtensor_config.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CONFIG_HPP
    +
    11#define XTENSOR_CONFIG_HPP
    +
    12
    +
    13#define XTENSOR_VERSION_MAJOR 0
    +
    14#define XTENSOR_VERSION_MINOR 27
    +
    15#define XTENSOR_VERSION_PATCH 1
    +
    16
    +
    17
    +
    18// Define if the library is going to be using exceptions.
    +
    19#if (!defined(__cpp_exceptions) && !defined(__EXCEPTIONS) && !defined(_CPPUNWIND))
    +
    20#undef XTENSOR_DISABLE_EXCEPTIONS
    +
    21#define XTENSOR_DISABLE_EXCEPTIONS
    +
    22#endif
    +
    23
    +
    24// Exception support.
    +
    25#if defined(XTENSOR_DISABLE_EXCEPTIONS)
    +
    26#include <iostream>
    +
    27#define XTENSOR_THROW(_, msg) \
    +
    28 { \
    +
    29 std::cerr << msg << std::endl; \
    +
    30 std::abort(); \
    +
    31 }
    +
    32#else
    +
    33#define XTENSOR_THROW(exception, msg) throw exception(msg)
    +
    34#endif
    +
    35
    +
    36// Workaround for some missing constexpr functionality in MSVC 2015 and MSVC 2017 x86
    +
    37#if defined(_MSC_VER)
    +
    38#define XTENSOR_CONSTEXPR_ENHANCED const
    +
    39// The following must not be defined to const, otherwise
    +
    40// it prevents generation of copy operators of classes
    +
    41// containing XTENSOR_CONSTEXPR_ENHANCED_STATIC members
    +
    42#define XTENSOR_CONSTEXPR_ENHANCED_STATIC
    +
    43#define XTENSOR_CONSTEXPR_RETURN inline
    +
    44#else
    +
    45#define XTENSOR_CONSTEXPR_ENHANCED constexpr
    +
    46#define XTENSOR_CONSTEXPR_RETURN constexpr
    +
    47#define XTENSOR_CONSTEXPR_ENHANCED_STATIC constexpr static
    +
    48#define XTENSOR_HAS_CONSTEXPR_ENHANCED
    +
    49#endif
    +
    50
    +
    51#ifndef XTENSOR_DEFAULT_DATA_CONTAINER
    +
    52#define XTENSOR_DEFAULT_DATA_CONTAINER(T, A) uvector<T, A>
    +
    53#endif
    +
    54
    +
    55#ifndef XTENSOR_DEFAULT_SHAPE_CONTAINER
    +
    56#define XTENSOR_DEFAULT_SHAPE_CONTAINER(T, EA, SA) \
    +
    57 xt::svector<typename XTENSOR_DEFAULT_DATA_CONTAINER(T, EA)::size_type, 4, SA, true>
    +
    58#endif
    +
    59
    +
    60#ifdef XTENSOR_USE_XSIMD
    +
    61#include <xsimd/xsimd.hpp>
    +
    62#define XSIMD_DEFAULT_ALIGNMENT xsimd::default_arch::alignment()
    +
    63#endif
    +
    64
    +
    65
    +
    66#ifndef XTENSOR_DEFAULT_ALLOCATOR
    +
    67#ifdef XTENSOR_ALLOC_TRACKING
    +
    68#ifndef XTENSOR_ALLOC_TRACKING_POLICY
    +
    69#define XTENSOR_ALLOC_TRACKING_POLICY xt::alloc_tracking::policy::print
    +
    70#endif
    +
    71#ifdef XTENSOR_USE_XSIMD
    +
    72#include <xsimd/xsimd.hpp>
    +
    73#define XTENSOR_DEFAULT_ALLOCATOR(T) \
    +
    74 xt::tracking_allocator<T, xsimd::aligned_allocator<T, XSIMD_DEFAULT_ALIGNMENT>, XTENSOR_ALLOC_TRACKING_POLICY>
    +
    75#else
    +
    76#define XTENSOR_DEFAULT_ALLOCATOR(T) \
    +
    77 xt::tracking_allocator<T, std::allocator<T>, XTENSOR_ALLOC_TRACKING_POLICY>
    +
    78#endif
    +
    79#else
    +
    80#ifdef XTENSOR_USE_XSIMD
    +
    81
    +
    82#define XTENSOR_DEFAULT_ALLOCATOR(T) xsimd::aligned_allocator<T, XTENSOR_DEFAULT_ALIGNMENT>
    +
    83#else
    +
    84#define XTENSOR_DEFAULT_ALLOCATOR(T) std::allocator<T>
    +
    85#endif
    +
    86#endif
    +
    87#endif
    +
    88
    +
    89#ifndef XTENSOR_DEFAULT_ALIGNMENT
    +
    90#ifdef XTENSOR_USE_XSIMD
    +
    91#define XTENSOR_DEFAULT_ALIGNMENT XSIMD_DEFAULT_ALIGNMENT
    +
    92#else
    +
    93#define XTENSOR_DEFAULT_ALIGNMENT 0
    +
    94#endif
    +
    95#endif
    +
    96
    +
    97#ifndef XTENSOR_DEFAULT_LAYOUT
    +
    98#define XTENSOR_DEFAULT_LAYOUT ::xt::layout_type::row_major
    +
    99#endif
    +
    100
    +
    101#ifndef XTENSOR_DEFAULT_TRAVERSAL
    +
    102#define XTENSOR_DEFAULT_TRAVERSAL ::xt::layout_type::row_major
    +
    103#endif
    +
    104
    +
    105#ifndef XTENSOR_OPENMP_TRESHOLD
    +
    106#define XTENSOR_OPENMP_TRESHOLD 0
    +
    107#endif
    +
    108
    +
    109#ifndef XTENSOR_TBB_THRESHOLD
    +
    110#define XTENSOR_TBB_THRESHOLD 0
    +
    111#endif
    +
    112
    +
    113#ifndef XTENSOR_SELECT_ALIGN
    +
    114#define XTENSOR_SELECT_ALIGN(T) (XTENSOR_DEFAULT_ALIGNMENT != 0 ? XTENSOR_DEFAULT_ALIGNMENT : alignof(T))
    +
    115#endif
    +
    116
    +
    117#ifndef XTENSOR_FIXED_ALIGN
    +
    118#define XTENSOR_FIXED_ALIGN XTENSOR_SELECT_ALIGN(void*)
    +
    119#endif
    +
    120
    +
    121#ifdef IN_DOXYGEN
    +
    122namespace xtl
    +
    123{
    +
    124 template <class... T>
    +
    + +
    126 {
    +
    127 constexpr bool value = true;
    +
    128 };
    +
    +
    129
    +
    130 template <class... C>
    +
    131 using check_concept = std::enable_if_t<conjunction<C...>::value, int>;
    +
    132
    +
    133#define XTL_REQUIRES(...) xtl::check_concept<__VA_ARGS__> = 0
    +
    134}
    +
    135#endif
    +
    136
    +
    137#endif
    + +
    +
    + + + + diff --git a/xtensor__forward_8hpp_source.html b/xtensor__forward_8hpp_source.html new file mode 100644 index 000000000..6d20cd28d --- /dev/null +++ b/xtensor__forward_8hpp_source.html @@ -0,0 +1,267 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xtensor_forward.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtensor_forward.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_FORWARD_HPP
    +
    11#define XTENSOR_FORWARD_HPP
    +
    12
    +
    13// This file contains forward declarations and
    +
    14// alias types to solve the problem of circular
    +
    15// includes. It should not contain anything else
    +
    16// and should not bring additional dependencies to
    +
    17// the files that include it. So:
    +
    18// - do NOT define classes of metafunctions here
    +
    19// - do NOT include other headers
    +
    20//
    +
    21// If you need to do so, something is probably
    +
    22// going wrong (either your change, or xtensor
    +
    23// needs to be refactored).
    +
    24
    +
    25#include <memory>
    +
    26#include <vector>
    +
    27
    +
    28#include <xtl/xoptional_sequence.hpp>
    +
    29
    +
    30#include "../core/xlayout.hpp"
    +
    31#include "../core/xtensor_config.hpp"
    +
    32
    +
    33namespace xt
    +
    34{
    + + +
    37
    +
    38 template <class C>
    + +
    40
    +
    41 template <class D>
    +
    42 class xcontainer;
    +
    43
    +
    44 template <class T, class A>
    +
    45 class uvector;
    +
    46
    +
    47 template <class T, std::size_t N, class A, bool Init>
    +
    48 class svector;
    +
    49
    +
    50 template <
    +
    51 class EC,
    +
    52 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    53 class SC = XTENSOR_DEFAULT_SHAPE_CONTAINER(typename EC::value_type, typename EC::allocator_type, std::allocator<typename EC::size_type>),
    +
    54 class Tag = xtensor_expression_tag>
    +
    55 class xarray_container;
    +
    56
    +
    77 template <
    +
    78 class T,
    +
    79 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    80 class A = XTENSOR_DEFAULT_ALLOCATOR(T),
    +
    81 class SA = std::allocator<typename std::vector<T, A>::size_type>>
    +
    82 using xarray = xarray_container<XTENSOR_DEFAULT_DATA_CONTAINER(T, A), L, XTENSOR_DEFAULT_SHAPE_CONTAINER(T, A, SA)>;
    +
    83
    +
    84 template <
    +
    85 class EC,
    +
    86 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    87 class SC = XTENSOR_DEFAULT_SHAPE_CONTAINER(typename EC::value_type, std::allocator<typename EC::size_type>, std::allocator<typename EC::size_type>),
    +
    88 class Tag = xtensor_expression_tag>
    +
    89 class xarray_adaptor;
    +
    90
    +
    101 template <
    +
    102 class T,
    +
    103 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    104 class A = XTENSOR_DEFAULT_ALLOCATOR(T),
    +
    105 class BC = xtl::xdynamic_bitset<std::size_t>,
    +
    106 class SA = std::allocator<typename std::vector<T, A>::size_type>>
    + +
    108 xtl::xoptional_vector<T, A, BC>,
    +
    109 L,
    +
    110 XTENSOR_DEFAULT_SHAPE_CONTAINER(T, A, SA),
    + +
    112
    +
    113 template <class EC, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class Tag = xtensor_expression_tag>
    +
    114 class xtensor_container;
    +
    115
    +
    136 template <class T, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class A = XTENSOR_DEFAULT_ALLOCATOR(T)>
    +
    137 using xtensor = xtensor_container<XTENSOR_DEFAULT_DATA_CONTAINER(T, A), N, L>;
    +
    138
    +
    139 template <class EC, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class Tag = xtensor_expression_tag>
    +
    140 class xtensor_adaptor;
    +
    141
    +
    142 template <class EC, std::size_t N, layout_type L = XTENSOR_DEFAULT_LAYOUT, class Tag = xtensor_expression_tag>
    +
    143 class xtensor_view;
    +
    144
    +
    145 template <std::size_t... N>
    +
    146 class fixed_shape;
    +
    147
    +
    152 template <std::size_t... N>
    +
    153 using xshape = fixed_shape<N...>;
    +
    154
    +
    155 template <class ET, class S, layout_type L = XTENSOR_DEFAULT_LAYOUT, bool Sharable = true, class Tag = xtensor_expression_tag>
    +
    156 class xfixed_container;
    +
    157
    +
    158 template <class ET, class S, layout_type L = XTENSOR_DEFAULT_LAYOUT, bool Sharable = true, class Tag = xtensor_expression_tag>
    +
    159 class xfixed_adaptor;
    +
    160
    +
    181 template <class T, class FSH, layout_type L = XTENSOR_DEFAULT_LAYOUT, bool Sharable = true>
    + +
    183
    +
    194 template <
    +
    195 class T,
    +
    196 std::size_t N,
    +
    197 layout_type L = XTENSOR_DEFAULT_LAYOUT,
    +
    198 class A = XTENSOR_DEFAULT_ALLOCATOR(T),
    +
    199 class BC = xtl::xdynamic_bitset<std::size_t>>
    + +
    201
    +
    202 template <class CT, class... S>
    +
    203 class xview;
    +
    204
    +
    205 template <class F, class... CT>
    +
    206 class xfunction;
    +
    207}
    +
    208
    +
    209#endif
    +
    Fixed shape implementation for compile time defined arrays.
    + + +
    Dense multidimensional container adaptor with tensor semantic.
    Definition xarray.hpp:216
    +
    Dense multidimensional container with tensor semantic.
    Definition xarray.hpp:84
    +
    Base class for dense multidimensional containers.
    +
    Dense multidimensional container adaptor with tensor semantic and fixed dimension.
    Definition xfixed.hpp:432
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xfixed.hpp:297
    +
    Multidimensional function operating on xtensor expressions.
    +
    Dense multidimensional container adaptor with tensor semantics and fixed dimension.
    Definition xtensor.hpp:212
    +
    Dense multidimensional container with tensor semantic and fixed dimension.
    Definition xtensor.hpp:86
    +
    Dense multidimensional container adaptor with view semantics and fixed dimension.
    Definition xtensor.hpp:329
    +
    Multidimensional view with tensor semantic.
    Definition xview.hpp:365
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    xtensor_container< xtl::xoptional_vector< T, A, BC >, N, L, xoptional_expression_tag > xtensor_optional
    Alias template on xtensor_container for handling missing values.
    +
    layout_type
    Definition xlayout.hpp:24
    +
    xfixed_container< T, FSH, L, Sharable > xtensor_fixed
    Alias template on xfixed_container with default parameters for layout type.
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    +
    xarray_container< xtl::xoptional_vector< T, A, BC >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true >, xoptional_expression_tag > xarray_optional
    Alias template on xarray_container for handling missing values.
    +
    fixed_shape< N... > xshape
    Alias template for fixed_shape allows for a shorter template shape definition in xtensor_fixed.
    + + + +
    +
    + + + + diff --git a/xtensor__simd_8hpp_source.html b/xtensor__simd_8hpp_source.html new file mode 100644 index 000000000..061e88bb4 --- /dev/null +++ b/xtensor__simd_8hpp_source.html @@ -0,0 +1,514 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/utils/xtensor_simd.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtensor_simd.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_SIMD_HPP
    +
    11#define XTENSOR_SIMD_HPP
    +
    12
    +
    13#include <vector>
    +
    14
    +
    15#include <xtl/xdynamic_bitset.hpp>
    +
    16
    +
    17#include "../utils/xutils.hpp"
    +
    18
    +
    19#ifdef XTENSOR_USE_XSIMD
    +
    20
    +
    21#include <xsimd/xsimd.hpp>
    +
    22// #include <xsimd/memory/xsimd_load_store.hpp>
    +
    23
    +
    24#if defined(_MSV_VER) && (_MSV_VER < 1910)
    +
    25template <class T, class A>
    +
    26inline xsimd::batch_bool<T, A> isnan(const xsimd::batch<T, A>& b)
    +
    27{
    +
    28 return xsimd::isnan(b);
    +
    29}
    +
    30#endif
    +
    31
    +
    32namespace xt_simd
    +
    33{
    +
    34 template <class T, std::size_t A>
    +
    35 using aligned_allocator = xsimd::aligned_allocator<T, A>;
    +
    36
    +
    37 using aligned_mode = xsimd::aligned_mode;
    +
    38 using unaligned_mode = xsimd::unaligned_mode;
    +
    39
    +
    40 template <class A>
    +
    41 using allocator_alignment = xsimd::allocator_alignment<A>;
    +
    42
    +
    43 template <class A>
    +
    44 using allocator_alignment_t = xsimd::allocator_alignment_t<A>;
    +
    45
    +
    46 template <class C>
    +
    47 using container_alignment = xsimd::container_alignment<C>;
    +
    48
    +
    49 template <class C>
    +
    50 using container_alignment_t = xsimd::container_alignment_t<C>;
    +
    51
    +
    52 template <class T>
    +
    53 using simd_traits = xsimd::simd_traits<T>;
    +
    54
    +
    55 template <class T>
    +
    56 using revert_simd_traits = xsimd::revert_simd_traits<T>;
    +
    57
    +
    58 template <class T>
    +
    59 using simd_type = xsimd::simd_type<T>;
    +
    60
    +
    61 template <class T>
    +
    62 using simd_bool_type = xsimd::simd_bool_type<T>;
    +
    63
    +
    64 template <class T>
    +
    65 using revert_simd_type = xsimd::revert_simd_type<T>;
    +
    66
    +
    67 template <class T1, class T2>
    +
    68 using simd_return_type = xsimd::simd_return_type<T1, T2>;
    +
    69
    +
    70 using xsimd::broadcast_as;
    +
    71 using xsimd::get_alignment_offset;
    +
    72 using xsimd::load_as;
    +
    73 using xsimd::select;
    +
    74 using xsimd::store_as;
    +
    75
    +
    76 template <class V>
    +
    77 using is_batch_bool = xsimd::is_batch_bool<V>;
    +
    78
    +
    79 template <class V>
    +
    80 using is_batch_complex = xsimd::is_batch_complex<V>;
    +
    81
    +
    82 template <class T1, class T2>
    +
    83 using simd_condition = xsimd::detail::simd_condition<T1, T2>;
    +
    84}
    +
    85
    +
    86#else // XTENSOR_USE_XSIMD
    +
    87
    +
    88namespace xt_simd
    +
    89{
    +
    90 template <class T, std::size_t A>
    + +
    92
    +
    + +
    94 {
    +
    95 };
    +
    +
    96
    +
    + +
    98 {
    +
    99 };
    +
    +
    100
    +
    101 template <class A>
    +
    + +
    103 {
    +
    104 using type = unaligned_mode;
    +
    105 };
    +
    +
    106
    +
    107 template <class A>
    +
    108 using allocator_alignment_t = typename allocator_alignment<A>::type;
    +
    109
    +
    110 template <class C>
    +
    + +
    112 {
    +
    113 using type = unaligned_mode;
    +
    114 };
    +
    +
    115
    +
    116 template <class C>
    +
    117 using container_alignment_t = typename container_alignment<C>::type;
    +
    118
    +
    119 template <class T>
    +
    + +
    121 {
    +
    122 using type = T;
    +
    123 using bool_type = bool;
    +
    124 using batch_bool = bool;
    +
    125 static constexpr std::size_t size = 1;
    +
    126 };
    +
    +
    127
    +
    128 template <class T>
    +
    + +
    130 {
    +
    131 using type = T;
    +
    132 static constexpr std::size_t size = simd_traits<type>::size;
    +
    133 };
    +
    +
    134
    +
    135 template <class T>
    +
    136 using simd_type = typename simd_traits<T>::type;
    +
    137
    +
    138 template <class T>
    +
    139 using simd_bool_type = typename simd_traits<T>::bool_type;
    +
    140
    +
    141 template <class T>
    +
    142 using revert_simd_type = typename revert_simd_traits<T>::type;
    +
    143
    +
    144 template <class R, class T>
    +
    145 inline simd_type<R> broadcast_as(const T& value)
    +
    146 {
    +
    147 return value;
    +
    148 }
    +
    149
    +
    150 template <class R, class T>
    +
    151 inline simd_type<R> load_as(const T* src, aligned_mode)
    +
    152 {
    +
    153 return *src;
    +
    154 }
    +
    155
    +
    156 template <class R, class T>
    +
    157 inline simd_type<R> load_as(const T* src, unaligned_mode)
    +
    158 {
    +
    159 return *src;
    +
    160 }
    +
    161
    +
    162 template <class R, class T>
    +
    163 inline void store_as(R* dst, const simd_type<T>& src, aligned_mode)
    +
    164 {
    +
    165 *dst = src;
    +
    166 }
    +
    167
    +
    168 template <class R, class T>
    +
    169 inline void store_as(R* dst, const simd_type<T>& src, unaligned_mode)
    +
    170 {
    +
    171 *dst = src;
    +
    172 }
    +
    173
    +
    174 template <class T>
    +
    175 inline T select(bool cond, const T& t1, const T& t2)
    +
    176 {
    +
    177 return cond ? t1 : t2;
    +
    178 }
    +
    179
    +
    180 template <class T>
    +
    181 inline std::size_t get_alignment_offset(const T* /*p*/, std::size_t size, std::size_t /*block_size*/)
    +
    182 {
    +
    183 return size;
    +
    184 }
    +
    185
    +
    186 template <class T1, class T2>
    +
    187 using simd_return_type = simd_type<T2>;
    +
    188
    +
    189 template <class V>
    +
    +
    190 struct is_batch_bool : std::false_type
    +
    191 {
    +
    192 };
    +
    +
    193
    +
    194 template <class V>
    +
    +
    195 struct is_batch_complex : std::false_type
    +
    196 {
    +
    197 };
    +
    +
    198
    +
    199 template <class T1, class T2>
    +
    +
    200 struct simd_condition : std::true_type
    +
    201 {
    +
    202 };
    +
    +
    203}
    +
    204
    +
    205#endif // XTENSOR_USE_XSIMD
    +
    206
    +
    207namespace xt
    +
    208{
    + + +
    211
    +
    + +
    213 {
    +
    214 };
    +
    +
    215
    +
    216 namespace detail
    +
    217 {
    +
    218 template <class A1, class A2>
    +
    219 struct driven_align_mode_impl
    +
    220 {
    +
    221 using type = std::conditional_t<std::is_same<A1, A2>::value, A1, ::xt_simd::unaligned_mode>;
    +
    222 };
    +
    223
    +
    224 template <class A>
    +
    225 struct driven_align_mode_impl<inner_aligned_mode, A>
    +
    226 {
    +
    227 using type = A;
    +
    228 };
    +
    229 }
    +
    230
    +
    231 template <class A1, class A2>
    +
    + +
    233 {
    +
    234 using type = typename detail::driven_align_mode_impl<A1, A2>::type;
    +
    235 };
    +
    +
    236
    +
    237 template <class A1, class A2>
    +
    238 using driven_align_mode_t = typename detail::driven_align_mode_impl<A1, A2>::type;
    +
    239
    +
    240 namespace detail
    +
    241 {
    +
    242 template <class E, class T, class = void>
    +
    243 struct has_load_simd : std::false_type
    +
    244 {
    +
    245 };
    +
    246
    +
    247 template <class E, class T>
    +
    248 struct has_load_simd<
    +
    249 E,
    +
    250 T,
    +
    251 void_t<decltype(std::declval<E>().template load_simd<aligned_mode, T>(typename E::size_type(0)))>>
    +
    252 : std::true_type
    +
    253 {
    +
    254 };
    +
    255
    +
    256 template <class E, class T, bool B = xt_simd::simd_condition<typename E::value_type, T>::value>
    +
    257 struct has_simd_interface_impl : has_load_simd<E, T>
    +
    258 {
    +
    259 };
    +
    260
    +
    261 template <class E, class T>
    +
    262 struct has_simd_interface_impl<E, T, false> : std::false_type
    +
    263 {
    +
    264 };
    +
    265 }
    +
    266
    +
    267 template <class E, class T = typename std::decay_t<E>::value_type>
    +
    +
    268 struct has_simd_interface : detail::has_simd_interface_impl<E, T>
    +
    269 {
    +
    270 };
    +
    +
    271
    +
    272 template <class E>
    + +
    274
    +
    275 template <class T>
    +
    +
    276 struct has_simd_type : std::integral_constant<bool, !std::is_same<T, xt_simd::simd_type<T>>::value>
    +
    277 {
    +
    278 };
    +
    +
    279
    +
    280 namespace detail
    +
    281 {
    +
    282 template <class F, class B, class = void>
    +
    283 struct has_simd_apply_impl : std::false_type
    +
    284 {
    +
    285 };
    +
    286
    +
    287 template <class F, class B>
    +
    288 struct has_simd_apply_impl<F, B, void_t<decltype(&F::template simd_apply<B>)>> : std::true_type
    +
    289 {
    +
    290 };
    +
    291 }
    +
    292
    +
    293 template <class F, class B>
    +
    +
    294 struct has_simd_apply : detail::has_simd_apply_impl<F, B>
    +
    295 {
    +
    296 };
    +
    +
    297
    +
    298 template <class T>
    +
    299 using bool_load_type = std::conditional_t<std::is_same<T, bool>::value, uint8_t, T>;
    +
    300
    +
    301 template <class T>
    +
    +
    302 struct forbid_simd : std::false_type
    +
    303 {
    +
    304 };
    +
    +
    305
    +
    306 template <class A>
    +
    +
    307 struct forbid_simd<std::vector<bool, A>> : std::true_type
    +
    308 {
    +
    309 };
    +
    +
    310
    +
    311 template <class A>
    +
    +
    312 struct forbid_simd<const std::vector<bool, A>> : std::true_type
    +
    313 {
    +
    314 };
    +
    +
    315
    +
    316 template <class B, class A>
    +
    +
    317 struct forbid_simd<xtl::xdynamic_bitset<B, A>> : std::true_type
    +
    318 {
    +
    319 };
    +
    +
    320
    +
    321 template <class B, class A>
    +
    +
    322 struct forbid_simd<const xtl::xdynamic_bitset<B, A>> : std::true_type
    +
    323 {
    +
    324 };
    +
    +
    325
    +
    326 template <class C, class T1, class T2>
    +
    + +
    328 : std::enable_if<!forbid_simd<C>::value, xt_simd::simd_return_type<T1, bool_load_type<T2>>>
    +
    329 {
    +
    330 };
    +
    +
    331
    +
    332 template <class C, class T1, class T2>
    +
    333 using container_simd_return_type_t = typename container_simd_return_type<C, T1, T2>::type;
    +
    334}
    +
    335
    +
    336#endif
    + + +
    standard mathematical functions for xexpressions
    + + + + + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xtl__concepts_8hpp_source.html b/xtl__concepts_8hpp_source.html new file mode 100644 index 000000000..93734a744 --- /dev/null +++ b/xtl__concepts_8hpp_source.html @@ -0,0 +1,153 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/misc/xtl_concepts.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xtl_concepts.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_CONCEPTS_HPP
    +
    11#define XTENSOR_CONCEPTS_HPP
    +
    12
    +
    13#include <xtl/xcomplex.hpp>
    +
    14#include <xtl/xtype_traits.hpp>
    +
    15
    +
    16namespace xtl
    +
    17{
    +
    18 template <typename T>
    +
    19 concept integral_concept = xtl::is_integral<T>::value;
    +
    20
    +
    21 template <typename T>
    +
    22 concept non_integral_concept = !xtl::is_integral<T>::value;
    +
    23
    +
    24 template <typename T>
    +
    25 concept complex_concept = xtl::is_complex<typename std::decay<T>::type::value_type>::value;
    +
    26
    +
    27 template <typename T>
    +
    28 concept pointer_concept = std::is_pointer<T>::value;
    +
    29}
    +
    30
    +
    31#endif // XTENSOR_CONCEPTS_HPP
    + + + + +
    +
    + + + + diff --git a/xutils_8hpp_source.html b/xutils_8hpp_source.html new file mode 100644 index 000000000..a15839409 --- /dev/null +++ b/xutils_8hpp_source.html @@ -0,0 +1,1297 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/utils/xutils.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xutils.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_UTILS_HPP
    +
    11#define XTENSOR_UTILS_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <initializer_list>
    +
    17#include <iostream>
    +
    18#include <memory>
    +
    19#include <tuple>
    +
    20#include <type_traits>
    +
    21#include <utility>
    +
    22#include <vector>
    +
    23
    +
    24#include <xtl/xfunctional.hpp>
    +
    25#include <xtl/xmeta_utils.hpp>
    +
    26#include <xtl/xsequence.hpp>
    +
    27#include <xtl/xtype_traits.hpp>
    +
    28
    +
    29#include "../core/xtensor_config.hpp"
    +
    30
    +
    31#if (defined(_MSC_VER) && _MSC_VER >= 1910)
    +
    32#define NOEXCEPT(T)
    +
    33#else
    +
    34#define NOEXCEPT(T) noexcept(T)
    +
    35#endif
    +
    36
    +
    37namespace xt
    +
    38{
    +
    39 /****************
    +
    40 * declarations *
    +
    41 ****************/
    +
    42
    +
    43 template <class T>
    +
    44 struct remove_class;
    +
    45
    +
    46 /*template <class F, class... T>
    +
    47 void for_each(F&& f, std::tuple<T...>& t) noexcept(implementation_dependent);*/
    +
    48
    +
    49 /*template <class F, class R, class... T>
    +
    50 R accumulate(F&& f, R init, const std::tuple<T...>& t) noexcept(implementation_dependent);*/
    +
    51
    +
    52 template <std::size_t I, class... Args>
    +
    53 constexpr decltype(auto) argument(Args&&... args) noexcept;
    +
    54
    +
    55 template <class R, class F, class... S>
    +
    56 R apply(std::size_t index, F&& func, const std::tuple<S...>& s) NOEXCEPT(noexcept(func(std::get<0>(s))));
    +
    57
    +
    58 template <class T, class S>
    +
    59 void nested_copy(T&& iter, const S& s);
    +
    60
    +
    61 template <class T, class S>
    +
    62 void nested_copy(T&& iter, std::initializer_list<S> s);
    +
    63
    +
    64 template <class C>
    +
    65 bool resize_container(C& c, typename C::size_type size);
    +
    66
    +
    67 template <class T, std::size_t N>
    +
    68 bool resize_container(std::array<T, N>& a, typename std::array<T, N>::size_type size);
    +
    69
    +
    70 template <std::size_t... I>
    +
    71 class fixed_shape;
    +
    72
    +
    73 template <std::size_t... I>
    +
    74 bool resize_container(fixed_shape<I...>& a, std::size_t size);
    +
    75
    +
    76 template <class X, class C>
    + +
    78
    +
    79 template <class X, class C>
    +
    80 using rebind_container_t = typename rebind_container<X, C>::type;
    +
    81
    +
    82 std::size_t normalize_axis(std::size_t dim, std::ptrdiff_t axis);
    +
    83
    +
    84 // gcc 4.9 is affected by C++14 defect CGW 1558
    +
    85 // see http://open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1558
    +
    86 template <class... T>
    +
    +
    87 struct make_void
    +
    88 {
    +
    89 using type = void;
    +
    90 };
    +
    +
    91
    +
    92 template <class... T>
    +
    93 using void_t = typename make_void<T...>::type;
    +
    94
    +
    95 // This is used for non existent types (e.g. storage for some expressions
    +
    96 // like generators)
    +
    + +
    98 {
    +
    99 };
    +
    +
    100
    +
    101 template <class... T>
    +
    + +
    103 {
    +
    104 using type = invalid_type;
    +
    105 };
    +
    +
    106
    +
    107 template <class T, class R>
    +
    108 using disable_integral_t = std::enable_if_t<!xtl::is_integral<T>::value, R>;
    +
    109
    +
    110 /********************************
    +
    111 * meta identity implementation *
    +
    112 ********************************/
    +
    113
    +
    114 template <class T>
    +
    + +
    116 {
    +
    117 using type = T;
    +
    118 };
    +
    +
    119
    +
    120 /***************************************
    +
    121 * is_specialization_of implementation *
    +
    122 ***************************************/
    +
    123
    +
    124 template <template <class...> class TT, class T>
    +
    +
    125 struct is_specialization_of : std::false_type
    +
    126 {
    +
    127 };
    +
    +
    128
    +
    129 template <template <class...> class TT, class... Ts>
    +
    +
    130 struct is_specialization_of<TT, TT<Ts...>> : std::true_type
    +
    131 {
    +
    132 };
    +
    +
    133
    +
    134 /*******************************
    +
    135 * remove_class implementation *
    +
    136 *******************************/
    +
    137
    +
    138 template <class T>
    +
    + +
    140 {
    +
    141 };
    +
    +
    142
    +
    143 template <class C, class R, class... Args>
    +
    +
    144 struct remove_class<R (C::*)(Args...)>
    +
    145 {
    +
    146 typedef R type(Args...);
    +
    147 };
    +
    +
    148
    +
    149 template <class C, class R, class... Args>
    +
    +
    150 struct remove_class<R (C::*)(Args...) const>
    +
    151 {
    +
    152 typedef R type(Args...);
    +
    153 };
    +
    +
    154
    +
    155 template <class T>
    +
    156 using remove_class_t = typename remove_class<T>::type;
    +
    157
    +
    158 /***************************
    +
    159 * for_each implementation *
    +
    160 ***************************/
    +
    161
    +
    162 namespace detail
    +
    163 {
    +
    164 template <class F, size_t... I, class... Ts>
    +
    165 void for_each(F&& f, std::tuple<Ts...>& t, std::index_sequence<I...>) noexcept(
    +
    166 (noexcept(f(std::get<I>(t))) && ...)
    +
    167 )
    +
    168 {
    +
    169 (f(std::get<I>(t)), ...);
    +
    170 }
    +
    171
    +
    172 template <class F, size_t... I, class... Ts>
    +
    173 void for_each(F&& f, const std::tuple<Ts...>& t, std::index_sequence<I...>) noexcept(
    +
    174 (noexcept(f(std::get<I>(t))) && ...)
    +
    175 )
    +
    176 {
    +
    177 (f(std::get<I>(t)), ...);
    +
    178 }
    +
    179 }
    +
    180
    +
    181 template <class F, class... Ts>
    +
    182 inline void for_each(F&& f, std::tuple<Ts...>& t) noexcept(
    +
    183 noexcept(detail::for_each(std::forward<F>(f), t, std::make_index_sequence<sizeof...(Ts)>{}))
    +
    184 )
    +
    185 {
    +
    186 detail::for_each(std::forward<F>(f), t, std::make_index_sequence<sizeof...(Ts)>{});
    +
    187 }
    +
    188
    +
    189 template <class F, class... Ts>
    +
    190 inline void for_each(F&& f, const std::tuple<Ts...>& t) noexcept(
    +
    191 noexcept(detail::for_each(std::forward<F>(f), t, std::make_index_sequence<sizeof...(Ts)>{}))
    +
    192 )
    +
    193 {
    +
    194 detail::for_each(std::forward<F>(f), t, std::make_index_sequence<sizeof...(Ts)>{});
    +
    195 }
    +
    196
    +
    197 /*****************************
    +
    198 * accumulate implementation *
    +
    199 *****************************/
    +
    200
    +
    202
    +
    203 namespace detail
    +
    204 {
    +
    205 template <class F, class R, class... T, size_t... I>
    +
    206 R accumulate_impl(F&& f, R init, const std::tuple<T...>& t, std::index_sequence<I...> /*I*/) noexcept(
    +
    207 (noexcept(f(init, std::get<I>(t))) && ...)
    +
    208 )
    +
    209 {
    +
    210 R res = init;
    +
    211 auto wrapper = [&](const auto& i, const auto& j)
    +
    212 {
    +
    213 res = f(i, j);
    +
    214 };
    +
    215 (wrapper(res, std::get<I>(t)), ...);
    +
    216 return res;
    +
    217 }
    +
    218 }
    +
    219
    +
    220 template <class F, class R, class... T>
    +
    221 inline R accumulate(F&& f, R init, const std::tuple<T...>& t) noexcept(
    +
    222 noexcept(detail::accumulate_impl(std::forward<F>(f), init, t, std::make_index_sequence<sizeof...(T)>{}))
    +
    223 )
    +
    224 {
    +
    225 return detail::accumulate_impl(std::forward<F>(f), init, t, std::make_index_sequence<sizeof...(T)>{});
    +
    226 }
    +
    227
    +
    229
    +
    230 /***************************
    +
    231 * argument implementation *
    +
    232 ***************************/
    +
    233
    +
    234 namespace detail
    +
    235 {
    +
    236 template <std::size_t I>
    +
    237 struct getter
    +
    238 {
    +
    239 template <class Arg, class... Args>
    +
    240 static constexpr decltype(auto) get(Arg&& /*arg*/, Args&&... args) noexcept
    +
    241 {
    +
    242 return getter<I - 1>::get(std::forward<Args>(args)...);
    +
    243 }
    +
    244 };
    +
    245
    +
    246 template <>
    +
    247 struct getter<0>
    +
    248 {
    +
    249 template <class Arg, class... Args>
    +
    250 static constexpr Arg&& get(Arg&& arg, Args&&... /*args*/) noexcept
    +
    251 {
    +
    252 return std::forward<Arg>(arg);
    +
    253 }
    +
    254 };
    +
    255 }
    +
    256
    +
    257 template <std::size_t I, class... Args>
    +
    258 constexpr decltype(auto) argument(Args&&... args) noexcept
    +
    259 {
    +
    260 static_assert(I < sizeof...(Args), "I should be lesser than sizeof...(Args)");
    +
    261 return detail::getter<I>::get(std::forward<Args>(args)...);
    +
    262 }
    +
    263
    +
    264 /************************
    +
    265 * apply implementation *
    +
    266 ************************/
    +
    267
    +
    268 template <class R, class F, class... S>
    +
    269 inline R apply(std::size_t index, F&& func, const std::tuple<S...>& s)
    +
    270 NOEXCEPT(noexcept(func(std::get<0>(s))))
    +
    271 {
    +
    272 XTENSOR_ASSERT(sizeof...(S) > index);
    +
    273 return std::apply(
    +
    274 [&](const S&... args) -> R
    +
    275 {
    +
    276 auto f_impl = [&](auto&& self, auto&& i, auto&& h, auto&&... t) -> R
    +
    277 {
    +
    278 if (i == index)
    +
    279 {
    +
    280 return static_cast<R>(func(h));
    +
    281 }
    +
    282 if constexpr (sizeof...(t) > 0)
    +
    283 {
    +
    284 return self(self, std::size_t{i + 1}, t...);
    +
    285 }
    +
    286 return R{};
    +
    287 };
    +
    288 return f_impl(f_impl, std::size_t{0}, args...);
    +
    289 },
    +
    290 s
    +
    291 );
    +
    292 }
    +
    293
    +
    294 /***************************
    +
    295 * nested_initializer_list *
    +
    296 ***************************/
    +
    297
    +
    298 template <class T, std::size_t I>
    +
    + +
    300 {
    +
    301 using type = std::initializer_list<typename nested_initializer_list<T, I - 1>::type>;
    +
    302 };
    +
    +
    303
    +
    304 template <class T>
    +
    + +
    306 {
    +
    307 using type = T;
    +
    308 };
    +
    +
    309
    +
    310 template <class T, std::size_t I>
    +
    311 using nested_initializer_list_t = typename nested_initializer_list<T, I>::type;
    +
    312
    +
    313 /******************************
    +
    314 * nested_copy implementation *
    +
    315 ******************************/
    +
    316
    +
    317 template <class T, class S>
    +
    318 inline void nested_copy(T&& iter, const S& s)
    +
    319 {
    +
    320 *iter++ = s;
    +
    321 }
    +
    322
    +
    323 template <class T, class S>
    +
    324 inline void nested_copy(T&& iter, std::initializer_list<S> s)
    +
    325 {
    +
    326 for (auto it = s.begin(); it != s.end(); ++it)
    +
    327 {
    +
    328 nested_copy(std::forward<T>(iter), *it);
    +
    329 }
    +
    330 }
    +
    331
    +
    332 /***********************************
    +
    333 * resize_container implementation *
    +
    334 ***********************************/
    +
    335 template <class C>
    +
    336 inline bool resize_container(C& c, typename C::size_type size)
    +
    337 {
    +
    338 c.resize(size);
    +
    339 return true;
    +
    340 }
    +
    341
    +
    342 template <class T, std::size_t N>
    +
    343 inline bool resize_container(std::array<T, N>& /*a*/, typename std::array<T, N>::size_type size)
    +
    344 {
    +
    345 return size == N;
    +
    346 }
    +
    347
    +
    348 template <std::size_t... I>
    +
    349 inline bool resize_container(xt::fixed_shape<I...>&, std::size_t size)
    +
    350 {
    +
    351 return sizeof...(I) == size;
    +
    352 }
    +
    353
    +
    354 /*********************************
    +
    355 * normalize_axis implementation *
    +
    356 *********************************/
    +
    357
    +
    358 // scalar normalize axis
    +
    359 inline std::size_t normalize_axis(std::size_t dim, std::ptrdiff_t axis)
    +
    360 {
    +
    361 return axis < 0 ? static_cast<std::size_t>(static_cast<std::ptrdiff_t>(dim) + axis)
    +
    362 : static_cast<std::size_t>(axis);
    +
    363 }
    +
    364
    +
    365 template <class E, class C>
    +
    366 inline std::enable_if_t<
    +
    367 !xtl::is_integral<std::decay_t<C>>::value && xtl::is_signed<typename std::decay_t<C>::value_type>::value,
    +
    368 rebind_container_t<std::size_t, std::decay_t<C>>>
    +
    369 normalize_axis(E& expr, C&& axes)
    +
    370 {
    +
    371 rebind_container_t<std::size_t, std::decay_t<C>> res;
    +
    372 resize_container(res, axes.size());
    +
    373
    +
    374 for (std::size_t i = 0; i < axes.size(); ++i)
    +
    375 {
    +
    376 res[i] = normalize_axis(expr.dimension(), axes[i]);
    +
    377 }
    +
    378
    +
    379 XTENSOR_ASSERT(std::all_of(
    +
    380 res.begin(),
    +
    381 res.end(),
    +
    382 [&expr](auto ax_el)
    +
    383 {
    +
    384 return ax_el < expr.dimension();
    +
    385 }
    +
    386 ));
    +
    387
    +
    388 return res;
    +
    389 }
    +
    390
    +
    391 template <class C, class E>
    +
    392 inline std::enable_if_t<
    +
    393 !xtl::is_integral<std::decay_t<C>>::value && std::is_unsigned<typename std::decay_t<C>::value_type>::value,
    +
    394 C&&>
    +
    395 normalize_axis(E& expr, C&& axes)
    +
    396 {
    +
    397 static_cast<void>(expr);
    +
    398 XTENSOR_ASSERT(std::all_of(
    +
    399 axes.begin(),
    +
    400 axes.end(),
    +
    401 [&expr](auto ax_el)
    +
    402 {
    +
    403 return ax_el < expr.dimension();
    +
    404 }
    +
    405 ));
    +
    406 return std::forward<C>(axes);
    +
    407 }
    +
    408
    +
    409 template <class R, class E, class C>
    +
    410 inline auto forward_normalize(E& expr, C&& axes)
    +
    411 -> std::enable_if_t<xtl::is_signed<std::decay_t<decltype(*std::begin(axes))>>::value, R>
    +
    412 {
    +
    413 R res;
    +
    414 xt::resize_container(res, std::size(axes));
    +
    415 auto dim = expr.dimension();
    +
    416 std::transform(
    +
    417 std::begin(axes),
    +
    418 std::end(axes),
    +
    419 std::begin(res),
    +
    420 [&dim](auto ax_el)
    +
    421 {
    +
    422 return normalize_axis(dim, ax_el);
    +
    423 }
    +
    424 );
    +
    425
    +
    426 XTENSOR_ASSERT(std::all_of(
    +
    427 res.begin(),
    +
    428 res.end(),
    +
    429 [&expr](auto ax_el)
    +
    430 {
    +
    431 return ax_el < expr.dimension();
    +
    432 }
    +
    433 ));
    +
    434
    +
    435 return res;
    +
    436 }
    +
    437
    +
    438 template <class R, class E, class C>
    +
    439 inline auto forward_normalize(E& expr, C&& axes) -> std::enable_if_t<
    +
    440 !xtl::is_signed<std::decay_t<decltype(*std::begin(axes))>>::value && !std::is_same<R, std::decay_t<C>>::value,
    +
    441 R>
    +
    442 {
    +
    443 static_cast<void>(expr);
    +
    444
    +
    445 R res;
    +
    446 xt::resize_container(res, std::size(axes));
    +
    447 std::copy(std::begin(axes), std::end(axes), std::begin(res));
    +
    448 XTENSOR_ASSERT(std::all_of(
    +
    449 res.begin(),
    +
    450 res.end(),
    +
    451 [&expr](auto ax_el)
    +
    452 {
    +
    453 return ax_el < expr.dimension();
    +
    454 }
    +
    455 ));
    +
    456 return res;
    +
    457 }
    +
    458
    +
    459 template <class R, class E, class C>
    +
    460 inline auto forward_normalize(E& expr, C&& axes) -> std::enable_if_t<
    +
    461 !xtl::is_signed<std::decay_t<decltype(*std::begin(axes))>>::value && std::is_same<R, std::decay_t<C>>::value,
    +
    462 R&&>
    +
    463 {
    +
    464 static_cast<void>(expr);
    +
    465 XTENSOR_ASSERT(std::all_of(
    +
    466 std::begin(axes),
    +
    467 std::end(axes),
    +
    468 [&expr](auto ax_el)
    +
    469 {
    +
    470 return ax_el < expr.dimension();
    +
    471 }
    +
    472 ));
    +
    473 return std::move(axes);
    +
    474 }
    +
    475
    +
    476 /******************
    +
    477 * get_value_type *
    +
    478 ******************/
    +
    479
    +
    480 template <class T, class = void_t<>>
    +
    + +
    482 {
    +
    483 using type = T;
    +
    484 };
    +
    +
    485
    +
    486 template <class T>
    +
    +
    487 struct get_value_type<T, void_t<typename T::value_type>>
    +
    488 {
    +
    489 using type = typename T::value_type;
    +
    490 };
    +
    +
    491
    +
    492 template <class T>
    +
    493 using get_value_type_t = typename get_value_type<T>::type;
    +
    494
    +
    495 /**********************
    +
    496 * get implementation *
    +
    497 **********************/
    +
    498
    +
    499 // When subclassing from std::tuple not all compilers are able to correctly instantiate get
    +
    500 // See here: https://stackoverflow.com/a/37188019/2528668
    +
    501 template <std::size_t I, template <typename... Args> class T, typename... Args>
    +
    502 decltype(auto) get(T<Args...>&& v)
    +
    503 {
    +
    504 return std::get<I>(static_cast<std::tuple<Args...>&&>(v));
    +
    505 }
    +
    506
    +
    507 template <std::size_t I, template <typename... Args> class T, typename... Args>
    +
    508 decltype(auto) get(T<Args...>& v)
    +
    509 {
    +
    510 return std::get<I>(static_cast<std::tuple<Args...>&>(v));
    +
    511 }
    +
    512
    +
    513 template <std::size_t I, template <typename... Args> class T, typename... Args>
    +
    514 decltype(auto) get(const T<Args...>& v)
    +
    515 {
    +
    516 return std::get<I>(static_cast<const std::tuple<Args...>&>(v));
    +
    517 }
    +
    518
    +
    519 /**************************
    +
    520 * to_array implementation *
    +
    521 ***************************/
    +
    522
    +
    523 namespace detail
    +
    524 {
    +
    525 template <class T, std::size_t N, std::size_t... I>
    +
    526 constexpr std::array<std::remove_cv_t<T>, N> to_array_impl(T (&a)[N], std::index_sequence<I...>)
    +
    527 {
    +
    528 return {{a[I]...}};
    +
    529 }
    +
    530 }
    +
    531
    +
    532 template <class T, std::size_t N>
    +
    533 constexpr std::array<std::remove_cv_t<T>, N> to_array(T (&a)[N])
    +
    534 {
    +
    535 return detail::to_array_impl(a, std::make_index_sequence<N>{});
    +
    536 }
    +
    537
    +
    538 /***********************************
    +
    539 * has_storage_type implementation *
    +
    540 ***********************************/
    +
    541
    +
    542 template <class T, class = void>
    +
    +
    543 struct has_storage_type : std::false_type
    +
    544 {
    +
    545 };
    +
    +
    546
    +
    547 template <class T>
    + +
    549
    +
    550 template <class T>
    +
    +
    551 struct has_storage_type<T, void_t<typename xcontainer_inner_types<T>::storage_type>>
    +
    552 : std::negation<
    +
    553 std::is_same<typename std::remove_cv<typename xcontainer_inner_types<T>::storage_type>::type, invalid_type>>
    +
    554 {
    +
    555 };
    +
    +
    556
    +
    557 /*************************************
    +
    558 * has_data_interface implementation *
    +
    559 *************************************/
    +
    560
    +
    561 template <class E, class = void>
    +
    +
    562 struct has_data_interface : std::false_type
    +
    563 {
    +
    564 };
    +
    +
    565
    +
    566 template <class E>
    +
    +
    567 struct has_data_interface<E, void_t<decltype(std::declval<E>().data())>> : std::true_type
    +
    568 {
    +
    569 };
    +
    +
    570
    +
    571 template <class E>
    + +
    573
    +
    574 template <class E, class = void>
    +
    +
    575 struct has_strides : std::false_type
    +
    576 {
    +
    577 };
    +
    +
    578
    +
    579 template <class E>
    +
    +
    580 struct has_strides<E, void_t<decltype(std::declval<E>().strides())>> : std::true_type
    +
    581 {
    +
    582 };
    +
    +
    583
    +
    584 template <class E, class = void>
    +
    +
    585 struct has_iterator_interface : std::false_type
    +
    586 {
    +
    587 };
    +
    +
    588
    +
    589 template <class E>
    +
    +
    590 struct has_iterator_interface<E, void_t<decltype(std::declval<E>().begin())>> : std::true_type
    +
    591 {
    +
    592 };
    +
    +
    593
    +
    594 template <class E>
    + +
    596
    +
    597 /******************************
    +
    598 * is_iterator implementation *
    +
    599 ******************************/
    +
    600
    +
    601 template <class E, class = void>
    +
    +
    602 struct is_iterator : std::false_type
    +
    603 {
    +
    604 };
    +
    +
    605
    +
    606 template <class E>
    +
    + +
    608 E,
    +
    609 void_t<
    +
    610 decltype(*std::declval<const E>(), std::declval<const E>() == std::declval<const E>(), std::declval<const E>() != std::declval<const E>(), ++(*std::declval<E*>()), (*std::declval<E*>())++, std::true_type())>>
    +
    611 : std::true_type
    +
    612 {
    +
    613 };
    +
    +
    614
    +
    615 template <typename E>
    + +
    617
    +
    618 /********************************************
    +
    619 * xtrivial_default_construct implemenation *
    +
    620 ********************************************/
    +
    621
    +
    622#if defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE >= 7
    +
    623// has_trivial_default_constructor has not been available since libstdc++-7.
    +
    624#define XTENSOR_GLIBCXX_USE_CXX11_ABI 1
    +
    625#else
    +
    626#if defined(_GLIBCXX_USE_CXX11_ABI)
    +
    627#if _GLIBCXX_USE_CXX11_ABI || (defined(_GLIBCXX_USE_DUAL_ABI) && !_GLIBCXX_USE_DUAL_ABI)
    +
    628#define XTENSOR_GLIBCXX_USE_CXX11_ABI 1
    +
    629#endif
    +
    630#endif
    +
    631#endif
    +
    632
    +
    633#if !defined(__GNUG__) || defined(_LIBCPP_VERSION) || defined(XTENSOR_GLIBCXX_USE_CXX11_ABI)
    +
    634
    +
    635 template <class T>
    +
    636 using xtrivially_default_constructible = std::is_trivially_default_constructible<T>;
    +
    637
    +
    638#else
    +
    639
    +
    640 template <class T>
    +
    641 using xtrivially_default_constructible = std::has_trivial_default_constructor<T>;
    +
    642
    +
    643#endif
    +
    644#undef XTENSOR_GLIBCXX_USE_CXX11_ABI
    +
    645
    +
    646 /*************************
    +
    647 * conditional type cast *
    +
    648 *************************/
    +
    649
    +
    650 template <bool condition, class T>
    + +
    652
    +
    653 template <class T>
    +
    +
    654 struct conditional_cast_functor<false, T> : public xtl::identity
    +
    655 {
    +
    656 };
    +
    +
    657
    +
    658 template <class T>
    +
    + +
    660 {
    +
    661 template <class U>
    +
    662 inline auto operator()(U&& u) const
    +
    663 {
    +
    664 return static_cast<T>(std::forward<U>(u));
    +
    665 }
    +
    666 };
    +
    +
    667
    +
    676 template <bool condition, class T, class U>
    +
    +
    677 inline auto conditional_cast(U&& u)
    +
    678 {
    +
    679 return conditional_cast_functor<condition, T>()(std::forward<U>(u));
    +
    680 }
    +
    +
    681
    +
    682 /**********************
    +
    683 * tracking allocator *
    +
    684 **********************/
    +
    685
    +
    686 namespace alloc_tracking
    +
    687 {
    +
    688 inline bool& enabled()
    +
    689 {
    +
    690 static bool enabled;
    +
    691 return enabled;
    +
    692 }
    +
    693
    +
    694 inline void enable()
    +
    695 {
    +
    696 enabled() = true;
    +
    697 }
    +
    698
    +
    699 inline void disable()
    +
    700 {
    +
    701 enabled() = false;
    +
    702 }
    +
    703
    +
    704 enum policy
    +
    705 {
    +
    706 print,
    +
    707 assert
    +
    708 };
    +
    709 }
    +
    710
    +
    711 template <class T, class A, alloc_tracking::policy P>
    +
    +
    712 struct tracking_allocator : private A
    +
    713 {
    +
    714 using base_type = A;
    +
    715 using value_type = typename A::value_type;
    +
    716 using reference = value_type&;
    +
    717 using const_reference = const value_type&;
    +
    718 using pointer = typename std::allocator_traits<A>::pointer;
    +
    719 using const_pointer = typename std::allocator_traits<A>::const_pointer;
    +
    720 using size_type = typename std::allocator_traits<A>::size_type;
    +
    721 using difference_type = typename std::allocator_traits<A>::difference_type;
    +
    722
    +
    723 tracking_allocator() = default;
    +
    724
    +
    725 T* allocate(std::size_t n)
    +
    726 {
    +
    727 if (alloc_tracking::enabled())
    +
    728 {
    +
    729 if (P == alloc_tracking::print)
    +
    730 {
    +
    731 std::cout << "xtensor allocating: " << n << "" << std::endl;
    +
    732 }
    +
    733 else if (P == alloc_tracking::assert)
    +
    734 {
    +
    735 XTENSOR_THROW(
    +
    736 std::runtime_error,
    +
    737 "xtensor allocation of " + std::to_string(n) + " elements detected"
    +
    738 );
    +
    739 }
    +
    740 }
    +
    741 return base_type::allocate(n);
    +
    742 }
    +
    743
    +
    744 using base_type::deallocate;
    +
    745
    +
    746// Construct and destroy are removed in --std=c++-20
    +
    747#if ((defined(__cplusplus) && __cplusplus < 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG < 202002L))
    +
    748 using base_type::construct;
    +
    749 using base_type::destroy;
    +
    750#endif
    +
    751
    +
    752 template <class U>
    +
    +
    753 struct rebind
    +
    754 {
    +
    755 using traits = std::allocator_traits<A>;
    +
    756 using other = tracking_allocator<U, typename traits::template rebind_alloc<U>, P>;
    +
    757 };
    +
    +
    758 };
    +
    +
    759
    +
    760 template <class T, class AT, alloc_tracking::policy PT, class U, class AU, alloc_tracking::policy PU>
    +
    761 inline bool operator==(const tracking_allocator<T, AT, PT>&, const tracking_allocator<U, AU, PU>&)
    +
    762 {
    +
    763 return std::is_same<AT, AU>::value;
    +
    764 }
    +
    765
    +
    766 template <class T, class AT, alloc_tracking::policy PT, class U, class AU, alloc_tracking::policy PU>
    +
    767 inline bool operator!=(const tracking_allocator<T, AT, PT>& a, const tracking_allocator<U, AU, PU>& b)
    +
    768 {
    +
    769 return !(a == b);
    +
    770 }
    +
    771
    +
    772 /*****************
    +
    773 * has_assign_to *
    +
    774 *****************/
    +
    775
    +
    776 template <class E1, class E2, class = void>
    +
    +
    777 struct has_assign_to : std::false_type
    +
    778 {
    +
    779 };
    +
    +
    780
    +
    781 template <class E1, class E2>
    +
    +
    782 struct has_assign_to<E1, E2, void_t<decltype(std::declval<const E2&>().assign_to(std::declval<E1&>()))>>
    +
    783 : std::true_type
    +
    784 {
    +
    785 };
    +
    +
    786
    +
    787 template <class E1, class E2>
    +
    788 constexpr bool has_assign_to_v = has_assign_to<E1, E2>::value;
    +
    789
    +
    790 /*************************************
    +
    791 * overlapping_memory_checker_traits *
    +
    792 *************************************/
    +
    793
    +
    794 template <class T, class Enable = void>
    +
    +
    795 struct has_memory_address : std::false_type
    +
    796 {
    +
    797 };
    +
    +
    798
    +
    799 template <class T>
    +
    +
    800 struct has_memory_address<T, void_t<decltype(std::addressof(*std::declval<T>().begin()))>> : std::true_type
    +
    801 {
    +
    802 };
    +
    +
    803
    +
    804 template <typename T>
    + +
    806 template <typename T>
    + +
    808
    +
    +
    809 struct memory_range
    +
    810 {
    +
    811 // Checking pointer overlap is more correct in integer values,
    +
    812 // for more explanation check https://devblogs.microsoft.com/oldnewthing/20170927-00/?p=97095
    +
    813 const uintptr_t m_first = 0;
    +
    814 const uintptr_t m_last = 0;
    +
    815
    +
    816 explicit memory_range() = default;
    +
    817
    +
    818 template <class T>
    +
    819 explicit memory_range(T* first, T* last)
    +
    820 : m_first(reinterpret_cast<uintptr_t>(last < first ? last : first))
    +
    821 , m_last(reinterpret_cast<uintptr_t>(last < first ? first : last))
    +
    822 {
    +
    823 }
    +
    824
    +
    825 template <class T>
    +
    826 bool overlaps(T* first, T* last) const
    +
    827 {
    +
    828 if (first <= last)
    +
    829 {
    +
    830 return reinterpret_cast<uintptr_t>(first) <= m_last
    +
    831 && reinterpret_cast<uintptr_t>(last) >= m_first;
    +
    832 }
    +
    833 else
    +
    834 {
    +
    835 return reinterpret_cast<uintptr_t>(last) <= m_last
    +
    836 && reinterpret_cast<uintptr_t>(first) >= m_first;
    +
    837 }
    +
    838 }
    +
    839 };
    +
    +
    840
    +
    841 template <class E, class Enable = void>
    +
    + +
    843 {
    +
    844 static bool check_overlap(const E&, const memory_range&)
    +
    845 {
    +
    846 return true;
    +
    847 }
    +
    848 };
    +
    +
    849
    +
    850 template <class E>
    +
    +
    851 struct overlapping_memory_checker_traits<E, std::enable_if_t<has_memory_address<E>::value>>
    +
    852 {
    +
    853 static bool check_overlap(const E& expr, const memory_range& dst_range)
    +
    854 {
    +
    855 if (expr.size() == 0)
    +
    856 {
    +
    857 return false;
    +
    858 }
    +
    859 else
    +
    860 {
    +
    861 return dst_range.overlaps(std::addressof(*expr.begin()), std::addressof(*expr.rbegin()));
    +
    862 }
    +
    863 }
    +
    864 };
    +
    +
    865
    +
    +
    866 struct overlapping_memory_checker_base
    +
    867 {
    +
    868 memory_range m_dst_range;
    +
    869
    +
    870 explicit overlapping_memory_checker_base() = default;
    +
    871
    +
    872 explicit overlapping_memory_checker_base(memory_range dst_memory_range)
    +
    873 : m_dst_range(std::move(dst_memory_range))
    +
    874 {
    +
    875 }
    +
    876
    +
    877 template <class E>
    +
    878 bool check_overlap(const E& expr) const
    +
    879 {
    +
    880 if (!m_dst_range.m_first || !m_dst_range.m_last)
    +
    881 {
    +
    882 return false;
    +
    883 }
    +
    884 else
    +
    885 {
    +
    886 return overlapping_memory_checker_traits<E>::check_overlap(expr, m_dst_range);
    +
    887 }
    +
    888 }
    +
    889 };
    +
    +
    890
    +
    891 template <class Dst, class Enable = void>
    +
    +
    892 struct overlapping_memory_checker : overlapping_memory_checker_base
    +
    893 {
    +
    894 explicit overlapping_memory_checker(const Dst&)
    +
    895 : overlapping_memory_checker_base()
    +
    896 {
    +
    897 }
    +
    898 };
    +
    +
    899
    +
    900 template <class Dst>
    +
    +
    901 struct overlapping_memory_checker<Dst, std::enable_if_t<has_memory_address<Dst>::value>>
    +
    902 : overlapping_memory_checker_base
    +
    903 {
    +
    904 explicit overlapping_memory_checker(const Dst& aDst)
    +
    905 : overlapping_memory_checker_base(
    +
    906 [&]()
    +
    907 {
    +
    908 if (aDst.size() == 0)
    +
    909 {
    +
    910 return memory_range();
    +
    911 }
    +
    912 else
    +
    913 {
    +
    914 return memory_range(std::addressof(*aDst.begin()), std::addressof(*aDst.rbegin()));
    +
    915 }
    +
    916 }()
    +
    917 )
    +
    918 {
    +
    919 }
    +
    920 };
    +
    +
    921
    +
    922 template <class Dst>
    +
    923 auto make_overlapping_memory_checker(const Dst& a_dst)
    +
    924 {
    + +
    926 }
    +
    927
    +
    928 /********************
    +
    929 * rebind_container *
    +
    930 ********************/
    +
    931
    +
    932 template <class X, template <class, class> class C, class T, class A>
    +
    +
    933 struct rebind_container<X, C<T, A>>
    +
    934 {
    +
    935 using traits = std::allocator_traits<A>;
    +
    936 using allocator = typename traits::template rebind_alloc<X>;
    +
    937 using type = C<X, allocator>;
    +
    938 };
    +
    +
    939
    +
    940// Workaround for rebind_container problems when C++17 feature is enabled
    +
    941#ifdef __cpp_template_template_args
    +
    942 template <class X, class T, std::size_t N>
    +
    943 struct rebind_container<X, std::array<T, N>>
    +
    944 {
    +
    945 using type = std::array<X, N>;
    +
    946 };
    +
    947#else
    +
    948 template <class X, template <class, std::size_t> class C, class T, std::size_t N>
    +
    +
    949 struct rebind_container<X, C<T, N>>
    +
    950 {
    +
    951 using type = C<X, N>;
    +
    952 };
    +
    +
    953#endif
    +
    954
    +
    955 /********************
    +
    956 * get_strides_type *
    +
    957 ********************/
    +
    958
    +
    959 template <class S>
    +
    + +
    961 {
    +
    962 using type = typename rebind_container<std::ptrdiff_t, S>::type;
    +
    963 };
    +
    +
    964
    +
    965 template <std::size_t... I>
    +
    + +
    967 {
    +
    968 // TODO we could compute the strides statically here.
    +
    969 // But we'll need full constexpr support to have a
    +
    970 // homogenous ``compute_strides`` method
    +
    971 using type = std::array<std::ptrdiff_t, sizeof...(I)>;
    +
    972 };
    +
    +
    973
    +
    974 template <class CP, class O, class A>
    +
    975 class xbuffer_adaptor;
    +
    976
    +
    977 template <class CP, class O, class A>
    +
    + +
    979 {
    +
    980 // In bindings this mapping is called by reshape_view with an inner shape of type
    +
    981 // xbuffer_adaptor.
    +
    982 // Since we cannot create a buffer adaptor holding data, we map it to an std::vector.
    +
    983 using type = std::vector<
    +
    984 typename xbuffer_adaptor<CP, O, A>::value_type,
    +
    985 typename xbuffer_adaptor<CP, O, A>::allocator_type>;
    +
    986 };
    +
    +
    987
    +
    988
    +
    989 template <class C>
    +
    990 using get_strides_t = typename get_strides_type<C>::type;
    +
    991
    +
    992 /*******************
    +
    993 * inner_reference *
    +
    994 *******************/
    +
    995
    +
    996 template <class ST>
    +
    + +
    998 {
    +
    999 using storage_type = std::decay_t<ST>;
    +
    1000 using type = std::conditional_t<
    +
    1001 std::is_const<std::remove_reference_t<ST>>::value,
    +
    1002 typename storage_type::const_reference,
    +
    1003 typename storage_type::reference>;
    +
    1004 };
    +
    +
    1005
    +
    1006 template <class ST>
    +
    1007 using inner_reference_t = typename inner_reference<ST>::type;
    +
    1008
    +
    1009 /************
    +
    1010 * get_rank *
    +
    1011 ************/
    +
    1012
    +
    1013 template <class E, typename = void>
    +
    + +
    1015 {
    +
    1016 static constexpr std::size_t value = SIZE_MAX;
    +
    1017 };
    +
    +
    1018
    +
    1019 template <class E>
    +
    +
    1020 struct get_rank<E, decltype((void) E::rank, void())>
    +
    1021 {
    +
    1022 static constexpr std::size_t value = E::rank;
    +
    1023 };
    +
    +
    1024
    +
    1025 /******************
    +
    1026 * has_fixed_rank *
    +
    1027 ******************/
    +
    1028
    +
    1029 template <class E>
    +
    + +
    1031 {
    +
    1032 using type = std::integral_constant<bool, get_rank<std::decay_t<E>>::value != SIZE_MAX>;
    +
    1033 };
    +
    +
    1034
    +
    1035 template <class E>
    +
    1036 using has_fixed_rank_t = typename has_fixed_rank<std::decay_t<E>>::type;
    +
    1037
    +
    1038 /************
    +
    1039 * has_rank *
    +
    1040 ************/
    +
    1041
    +
    1042 template <class E, size_t N>
    +
    + +
    1044 {
    +
    1045 using type = std::integral_constant<bool, get_rank<std::decay_t<E>>::value == N>;
    +
    1046 };
    +
    +
    1047
    +
    1048 template <class E, size_t N>
    +
    1049 using has_rank_t = typename has_rank<std::decay_t<E>, N>::type;
    +
    1050
    +
    1051}
    +
    1052
    +
    1053#endif
    +
    Fixed shape implementation for compile time defined arrays.
    + + + + + + +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    auto strides(const E &e, stride_type type=stride_type::normal) noexcept
    Get strides of an object.
    Definition xstrides.hpp:250
    +
    standard mathematical functions for xexpressions
    +
    auto accumulate(F &&f, E &&e, EVS evaluation_strategy=EVS())
    Accumulate and flatten array NOTE This function is not lazy!
    +
    auto conditional_cast(U &&u)
    Perform a type cast when a condition is true.
    Definition xutils.hpp:677
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + diff --git a/xvectorize_8hpp_source.html b/xvectorize_8hpp_source.html new file mode 100644 index 000000000..5e03b0801 --- /dev/null +++ b/xvectorize_8hpp_source.html @@ -0,0 +1,227 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/core/xvectorize.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xvectorize.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_VECTORIZE_HPP
    +
    11#define XTENSOR_VECTORIZE_HPP
    +
    12
    +
    13#include <type_traits>
    +
    14#include <utility>
    +
    15
    +
    16#include "../core/xfunction.hpp"
    +
    17#include "../utils/xutils.hpp"
    +
    18
    +
    19namespace xt
    +
    20{
    +
    21
    +
    22 /***************
    +
    23 * xvectorizer *
    +
    24 ***************/
    +
    25
    +
    26 template <class F, class R>
    +
    +
    27 class xvectorizer
    +
    28 {
    +
    29 public:
    +
    30
    +
    31 template <class... E>
    +
    32 using xfunction_type = xfunction<F, xclosure_t<E>...>;
    +
    33
    +
    34 template <class Func, class = std::enable_if_t<!std::is_same<std::decay_t<Func>, xvectorizer>::value>>
    +
    35 xvectorizer(Func&& f);
    +
    36
    +
    37 template <class... E>
    +
    38 xfunction_type<E...> operator()(E&&... e) const;
    +
    39
    +
    40 private:
    +
    41
    +
    42 typename std::remove_reference<F>::type m_f;
    +
    43 };
    +
    +
    44
    +
    45 namespace detail
    +
    46 {
    +
    47 template <class F>
    +
    48 using get_function_type = remove_class_t<decltype(&std::remove_reference_t<F>::operator())>;
    +
    49 }
    +
    50
    +
    51 template <class R, class... Args>
    +
    52 xvectorizer<R (*)(Args...), R> vectorize(R (*f)(Args...));
    +
    53
    +
    54 template <class F, class R, class... Args>
    +
    55 xvectorizer<F, R> vectorize(F&& f, R (*)(Args...));
    +
    56
    +
    57// Workaround for Visual Studio 15.7.1.
    +
    58// Error C2668 (ambiguous call to overloaded function) mistaking a declarations
    +
    59// for the definition of another overload.
    +
    60#ifndef _MSC_VER
    +
    61 template <class F>
    +
    62 auto vectorize(F&& f)
    +
    63 -> decltype(vectorize(std::forward<F>(f), std::declval<detail::get_function_type<F>*>()));
    +
    64#endif
    +
    65
    +
    66 /******************************
    +
    67 * xvectorizer implementation *
    +
    68 ******************************/
    +
    69
    +
    70 template <class F, class R>
    +
    71 template <class Func, class>
    +
    72 inline xvectorizer<F, R>::xvectorizer(Func&& f)
    +
    73 : m_f(std::forward<Func>(f))
    +
    74 {
    +
    75 }
    +
    76
    +
    77 template <class F, class R>
    +
    78 template <class... E>
    +
    79 inline auto xvectorizer<F, R>::operator()(E&&... e) const -> xfunction_type<E...>
    +
    80 {
    +
    81 return xfunction_type<E...>(m_f, std::forward<E>(e)...);
    +
    82 }
    +
    83
    +
    84 template <class R, class... Args>
    +
    85 inline xvectorizer<R (*)(Args...), R> vectorize(R (*f)(Args...))
    +
    86 {
    +
    87 return xvectorizer<R (*)(Args...), R>(f);
    +
    88 }
    +
    89
    +
    90 template <class F, class R, class... Args>
    +
    91 inline xvectorizer<F, R> vectorize(F&& f, R (*)(Args...))
    +
    92 {
    +
    93 return xvectorizer<F, R>(std::forward<F>(f));
    +
    94 }
    +
    95
    +
    96 template <class F>
    +
    97 inline auto vectorize(F&& f)
    +
    98 -> decltype(vectorize(std::forward<F>(f), std::declval<detail::get_function_type<F>*>()))
    +
    99 {
    +
    100 return vectorize(std::forward<F>(f), static_cast<detail::get_function_type<F>*>(nullptr));
    +
    101 }
    +
    102}
    +
    103
    +
    104#endif
    +
    Multidimensional function operating on xtensor expressions.
    + +
    standard mathematical functions for xexpressions
    +
    +
    + + + + diff --git a/xview_8hpp_source.html b/xview_8hpp_source.html new file mode 100644 index 000000000..4dbd28a3f --- /dev/null +++ b/xview_8hpp_source.html @@ -0,0 +1,2352 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xview.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xview.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_VIEW_HPP
    +
    11#define XTENSOR_VIEW_HPP
    +
    12
    +
    13#include <algorithm>
    +
    14#include <array>
    +
    15#include <cstddef>
    +
    16#include <tuple>
    +
    17#include <type_traits>
    +
    18#include <utility>
    +
    19
    +
    20#include <xtl/xclosure.hpp>
    +
    21#include <xtl/xmeta_utils.hpp>
    +
    22#include <xtl/xsequence.hpp>
    +
    23#include <xtl/xtype_traits.hpp>
    +
    24
    +
    25#include "../containers/xarray.hpp"
    +
    26#include "../containers/xcontainer.hpp"
    +
    27#include "../containers/xtensor.hpp"
    +
    28#include "../core/xaccessible.hpp"
    +
    29#include "../core/xiterable.hpp"
    +
    30#include "../core/xsemantic.hpp"
    +
    31#include "../core/xtensor_config.hpp"
    +
    32#include "../core/xtensor_forward.hpp"
    +
    33#include "../views/xbroadcast.hpp"
    +
    34#include "../views/xslice.hpp"
    +
    35#include "../views/xview_utils.hpp"
    +
    36
    +
    37namespace xt
    +
    38{
    +
    39
    +
    40 /*******************
    +
    41 * xview extension *
    +
    42 *******************/
    +
    43
    +
    44 namespace extension
    +
    45 {
    +
    46 template <class Tag, class CT, class... S>
    + +
    48
    +
    49 template <class CT, class... S>
    +
    + +
    51 {
    +
    52 using type = xtensor_empty_base;
    +
    53 };
    +
    +
    54
    +
    55 template <class CT, class... S>
    +
    +
    56 struct xview_base : xview_base_impl<xexpression_tag_t<CT>, CT, S...>
    +
    57 {
    +
    58 };
    +
    +
    59
    +
    60 template <class CT, class... S>
    +
    61 using xview_base_t = typename xview_base<CT, S...>::type;
    +
    62 }
    +
    63
    +
    64 /*********************
    +
    65 * xview declaration *
    +
    66 *********************/
    +
    67
    +
    68 template <bool is_const, class CT, class... S>
    +
    69 class xview_stepper;
    +
    70
    +
    71 template <class ST, class... S>
    +
    72 struct xview_shape_type;
    +
    73
    +
    74 namespace detail
    +
    75 {
    +
    76
    +
    77 template <class T>
    +
    78 struct is_xrange : std::false_type
    +
    79 {
    +
    80 };
    +
    81
    +
    82 template <class T>
    +
    83 struct is_xrange<xrange<T>> : std::true_type
    +
    84 {
    +
    85 };
    +
    86
    +
    87 template <class S>
    +
    88 struct is_xall_slice : std::false_type
    +
    89 {
    +
    90 };
    +
    91
    +
    92 template <class T>
    +
    93 struct is_xall_slice<xall<T>> : std::true_type
    +
    94 {
    +
    95 };
    +
    96
    +
    97 template <layout_type L, bool valid, bool all_seen, bool range_seen, class V>
    +
    98 struct is_contiguous_view_impl
    +
    99 {
    +
    100 static constexpr bool value = false;
    +
    101 };
    +
    102
    +
    103 template <class T>
    +
    104 struct static_dimension
    +
    105 {
    +
    106 static constexpr std::ptrdiff_t value = -1;
    +
    107 };
    +
    108
    +
    109 template <class T, std::size_t N>
    +
    110 struct static_dimension<std::array<T, N>>
    +
    111 {
    +
    112 static constexpr std::ptrdiff_t value = static_cast<std::ptrdiff_t>(N);
    +
    113 };
    +
    114
    +
    115 template <class T, std::size_t N>
    +
    116 struct static_dimension<xt::const_array<T, N>>
    +
    117 {
    +
    118 static constexpr std::ptrdiff_t value = static_cast<std::ptrdiff_t>(N);
    +
    119 };
    +
    120
    +
    121 template <std::size_t... I>
    +
    122 struct static_dimension<xt::fixed_shape<I...>>
    +
    123 {
    +
    124 static constexpr std::ptrdiff_t value = sizeof...(I);
    +
    125 };
    +
    126
    +
    127 // if we have the same number of integers as we have static dimensions
    +
    128 // this can be interpreted like a xscalar
    +
    129 template <class CT, class... S>
    +
    130 struct is_xscalar_impl<xview<CT, S...>>
    +
    131 {
    +
    132 static constexpr bool value = static_cast<std::ptrdiff_t>(integral_count<S...>()
    +
    133 ) == static_dimension<typename std::decay_t<CT>::shape_type>::value
    +
    134 ? true
    +
    135 : false;
    +
    136 };
    +
    137
    +
    138 template <class S>
    +
    139 struct is_strided_slice_impl : std::true_type
    +
    140 {
    +
    141 };
    +
    142
    +
    143 template <class T>
    +
    144 struct is_strided_slice_impl<xkeep_slice<T>> : std::false_type
    +
    145 {
    +
    146 };
    +
    147
    +
    148 template <class T>
    +
    149 struct is_strided_slice_impl<xdrop_slice<T>> : std::false_type
    +
    150 {
    +
    151 };
    +
    152
    +
    153 // If we have no discontiguous slices, we can calculate strides for this view.
    +
    154 template <class E, class... S>
    +
    155 struct is_strided_view
    +
    156 : std::integral_constant<
    +
    157 bool,
    +
    158 std::conjunction<has_data_interface<E>, is_strided_slice_impl<std::decay_t<S>>...>::value>
    +
    159 {
    +
    160 };
    +
    161
    +
    162 // if row major the view can only be (statically) computed as contiguous if:
    +
    163 // any number of integers is followed by either one or no range which
    +
    164 // are followed by explicit (or implicit) all's
    +
    165 //
    +
    166 // e.g.
    +
    167 // (i, j, all(), all()) == contiguous
    +
    168 // (i, range(0, 2), all()) == contiguous
    +
    169 // (i) == contiguous (implicit all slices)
    +
    170 // (i, all(), j) == *not* contiguous
    +
    171 // (i, range(0, 2), range(0, 2)) == *not* contiguous etc.
    +
    172 template <bool valid, bool all_seen, bool range_seen, class V>
    +
    173 struct is_contiguous_view_impl<layout_type::row_major, valid, all_seen, range_seen, V>
    +
    174 {
    +
    175 using slice = xtl::mpl::front_t<V>;
    +
    176 static constexpr bool is_range_slice = is_xrange<slice>::value;
    +
    177 static constexpr bool is_int_slice = xtl::is_integral<slice>::value;
    +
    178 static constexpr bool is_all_slice = is_xall_slice<slice>::value;
    +
    179 static constexpr bool have_all_seen = all_seen || is_all_slice;
    +
    180 static constexpr bool have_range_seen = is_range_slice;
    +
    181
    +
    182 static constexpr bool is_valid = valid
    +
    183 && (have_all_seen
    +
    184 ? is_all_slice
    +
    185 : (!range_seen && (is_int_slice || is_range_slice)));
    +
    186
    +
    187 static constexpr bool value = is_contiguous_view_impl < layout_type::row_major, is_valid,
    +
    188 have_all_seen, range_seen || is_range_slice,
    +
    189 xtl::mpl::pop_front_t < V >> ::value;
    +
    190 };
    +
    191
    +
    192 template <bool valid, bool all_seen, bool range_seen>
    +
    193 struct is_contiguous_view_impl<layout_type::row_major, valid, all_seen, range_seen, xtl::mpl::vector<>>
    +
    194 {
    +
    195 static constexpr bool value = valid;
    +
    196 };
    +
    197
    +
    198 // For column major the *same* but reverse is true -- with the additional
    +
    199 // constraint that we have to know the dimension at compile time otherwise
    +
    200 // we cannot make the decision as there might be implicit all's following.
    +
    201 template <bool valid, bool int_seen, bool range_seen, class V>
    +
    202 struct is_contiguous_view_impl<layout_type::column_major, valid, int_seen, range_seen, V>
    +
    203 {
    +
    204 using slice = xtl::mpl::front_t<V>;
    +
    205 static constexpr bool is_range_slice = is_xrange<slice>::value;
    +
    206 static constexpr bool is_int_slice = xtl::is_integral<slice>::value;
    +
    207 static constexpr bool is_all_slice = is_xall_slice<slice>::value;
    +
    208
    +
    209 static constexpr bool have_int_seen = int_seen || is_int_slice;
    +
    210
    +
    211 static constexpr bool is_valid = valid
    +
    212 && (have_int_seen
    +
    213 ? is_int_slice
    +
    214 : (!range_seen && (is_all_slice || is_range_slice)));
    +
    215 static constexpr bool value = is_contiguous_view_impl < layout_type::column_major, is_valid,
    +
    216 have_int_seen, is_range_slice || range_seen,
    +
    217 xtl::mpl::pop_front_t < V >> ::value;
    +
    218 };
    +
    219
    +
    220 template <bool valid, bool int_seen, bool range_seen>
    +
    221 struct is_contiguous_view_impl<layout_type::column_major, valid, int_seen, range_seen, xtl::mpl::vector<>>
    +
    222 {
    +
    223 static constexpr bool value = valid;
    +
    224 };
    +
    225
    +
    226 // TODO relax has_data_interface constraint here!
    +
    227 template <class E, class... S>
    +
    228 struct is_contiguous_view
    +
    229 : std::integral_constant<
    +
    230 bool,
    +
    231 has_data_interface<E>::value
    +
    232 && !(
    +
    233 E::static_layout == layout_type::column_major
    +
    234 && static_cast<std::size_t>(static_dimension<typename E::shape_type>::value) != sizeof...(S)
    +
    235 )
    +
    236 && is_contiguous_view_impl<E::static_layout, true, false, false, xtl::mpl::vector<S...>>::value>
    +
    237 {
    +
    238 };
    +
    239
    +
    240 template <layout_type L, class T, std::ptrdiff_t offset>
    +
    241 struct unwrap_offset_container
    +
    242 {
    +
    243 using type = void;
    +
    244 };
    +
    245
    +
    246 template <class T, std::ptrdiff_t offset>
    +
    247 struct unwrap_offset_container<layout_type::row_major, T, offset>
    +
    248 {
    +
    249 using type = sequence_view<T, offset, static_dimension<T>::value>;
    +
    250 };
    +
    251
    +
    252 template <class T, std::ptrdiff_t start, std::ptrdiff_t end, std::ptrdiff_t offset>
    +
    253 struct unwrap_offset_container<layout_type::row_major, sequence_view<T, start, end>, offset>
    +
    254 {
    +
    255 using type = sequence_view<T, start + offset, end>;
    +
    256 };
    +
    257
    +
    258 template <class T, std::ptrdiff_t offset>
    +
    259 struct unwrap_offset_container<layout_type::column_major, T, offset>
    +
    260 {
    +
    261 using type = sequence_view<T, 0, static_dimension<T>::value - offset>;
    +
    262 };
    +
    263
    +
    264 template <class T, std::ptrdiff_t start, std::ptrdiff_t end, std::ptrdiff_t offset>
    +
    265 struct unwrap_offset_container<layout_type::column_major, sequence_view<T, start, end>, offset>
    +
    266 {
    +
    267 using type = sequence_view<T, start, end - offset>;
    +
    268 };
    +
    269
    +
    270 template <class E, class... S>
    +
    271 struct get_contigous_shape_type
    +
    272 {
    +
    273 // if we have no `range` in the slices we can re-use the shape with an offset
    +
    274 using type = std::conditional_t<
    +
    275 std::disjunction<is_xrange<S>...>::value,
    +
    276 typename xview_shape_type<typename E::shape_type, S...>::type,
    +
    277 // In the false branch we know that we have only integers at the front OR end, and NO range
    +
    278 typename unwrap_offset_container<E::static_layout, typename E::inner_shape_type, integral_count<S...>()>::type>;
    +
    279 };
    +
    280
    +
    281 template <class T>
    +
    282 struct is_sequence_view : std::integral_constant<bool, false>
    +
    283 {
    +
    284 };
    +
    285
    +
    286 template <class T, std::ptrdiff_t S, std::ptrdiff_t E>
    +
    287 struct is_sequence_view<sequence_view<T, S, E>> : std::integral_constant<bool, true>
    +
    288 {
    +
    289 };
    +
    290 }
    +
    291
    +
    292 template <class E, class... S>
    +
    293 concept contiguous_view_concept = detail::is_contiguous_view<E, S...>::value;
    +
    294 template <class E, class... S>
    +
    295 concept strided_view_concept = detail::is_strided_view<std::decay_t<E>, S...>::value;
    +
    296
    +
    297 template <class CT, class... S>
    +
    + +
    299 {
    +
    300 using xexpression_type = std::decay_t<CT>;
    +
    301 using reference = inner_reference_t<CT>;
    +
    302 using const_reference = typename xexpression_type::const_reference;
    +
    303 using size_type = typename xexpression_type::size_type;
    +
    304 using temporary_type = view_temporary_type_t<xexpression_type, S...>;
    +
    305
    +
    306 static constexpr layout_type layout = detail::is_contiguous_view<xexpression_type, S...>::value
    +
    307 ? xexpression_type::static_layout
    + +
    309
    +
    310 static constexpr bool is_const = std::is_const<std::remove_reference_t<CT>>::value;
    +
    311
    +
    312 using extract_storage_type = xtl::mpl::eval_if_t<
    + +
    314 detail::expr_storage_type<xexpression_type>,
    + +
    316 using storage_type = std::conditional_t<is_const, const extract_storage_type, extract_storage_type>;
    +
    317 };
    +
    +
    318
    +
    319 template <class CT, class... S>
    +
    +
    320 struct xiterable_inner_types<xview<CT, S...>>
    +
    321 {
    +
    322 using xexpression_type = std::decay_t<CT>;
    +
    323
    +
    324 static constexpr bool is_strided_view = detail::is_strided_view<xexpression_type, S...>::value;
    +
    325 static constexpr bool is_contiguous_view = detail::is_contiguous_view<xexpression_type, S...>::value;
    +
    326
    +
    327 using inner_shape_type = std::conditional_t<
    +
    328 is_contiguous_view,
    +
    329 typename detail::get_contigous_shape_type<xexpression_type, S...>::type,
    +
    330 typename xview_shape_type<typename xexpression_type::shape_type, S...>::type>;
    +
    331
    +
    332 using stepper = std::conditional_t<
    +
    333 is_strided_view,
    +
    334 xstepper<xview<CT, S...>>,
    + +
    336
    +
    337 using const_stepper = std::conditional_t<
    +
    338 is_strided_view,
    +
    339 xstepper<const xview<CT, S...>>,
    + +
    341 };
    +
    +
    342
    +
    357 template <class CT, class... S>
    +
    +
    358 class xview : public xview_semantic<xview<CT, S...>>,
    +
    359 public std::conditional_t<
    +
    360 detail::is_contiguous_view<std::decay_t<CT>, S...>::value,
    +
    361 xcontiguous_iterable<xview<CT, S...>>,
    +
    362 xiterable<xview<CT, S...>>>,
    +
    363 public xaccessible<xview<CT, S...>>,
    +
    364 public extension::xview_base_t<CT, S...>
    +
    365 {
    +
    366 public:
    +
    367
    +
    368 using self_type = xview<CT, S...>;
    +
    369 using inner_types = xcontainer_inner_types<self_type>;
    +
    370 using xexpression_type = std::decay_t<CT>;
    +
    371 using semantic_base = xview_semantic<self_type>;
    +
    372 using temporary_type = typename xcontainer_inner_types<self_type>::temporary_type;
    +
    373
    +
    374 using accessible_base = xaccessible<self_type>;
    +
    375 using extension_base = extension::xview_base_t<CT, S...>;
    +
    376 using expression_tag = typename extension_base::expression_tag;
    +
    377
    +
    378 static constexpr bool is_const = std::is_const<std::remove_reference_t<CT>>::value;
    +
    379 using value_type = typename xexpression_type::value_type;
    +
    380 using simd_value_type = xt_simd::simd_type<value_type>;
    +
    381 using bool_load_type = typename xexpression_type::bool_load_type;
    +
    382 using reference = typename inner_types::reference;
    +
    383 using const_reference = typename inner_types::const_reference;
    +
    384 using pointer = std::
    +
    385 conditional_t<is_const, typename xexpression_type::const_pointer, typename xexpression_type::pointer>;
    +
    386 using const_pointer = typename xexpression_type::const_pointer;
    +
    387 using size_type = typename inner_types::size_type;
    +
    388 using difference_type = typename xexpression_type::difference_type;
    +
    389
    +
    390 static constexpr layout_type static_layout = inner_types::layout;
    +
    391 static constexpr bool contiguous_layout = static_layout != layout_type::dynamic;
    +
    392
    +
    393 static constexpr bool is_strided_view = detail::is_strided_view<xexpression_type, S...>::value;
    +
    394 static constexpr bool is_contiguous_view = contiguous_layout;
    +
    395
    +
    396 using iterable_base = xiterable<self_type>;
    +
    397 using inner_shape_type = typename iterable_base::inner_shape_type;
    +
    398 using shape_type = typename xview_shape_type<typename xexpression_type::shape_type, S...>::type;
    +
    399
    +
    400 using xexpression_inner_strides_type = xtl::mpl::eval_if_t<
    + +
    402 detail::expr_inner_strides_type<xexpression_type>,
    + +
    404
    +
    405 using xexpression_inner_backstrides_type = xtl::mpl::eval_if_t<
    + +
    407 detail::expr_inner_backstrides_type<xexpression_type>,
    + +
    409
    +
    410 using storage_type = typename inner_types::storage_type;
    +
    411
    +
    412 static constexpr bool has_trivial_strides = is_contiguous_view
    +
    413 && !std::disjunction<detail::is_xrange<S>...>::value;
    +
    414 using inner_strides_type = std::conditional_t<
    +
    415 has_trivial_strides,
    +
    416 typename detail::unwrap_offset_container<
    +
    417 xexpression_type::static_layout,
    +
    418 xexpression_inner_strides_type,
    +
    419 integral_count<S...>()>::type,
    +
    420 get_strides_t<shape_type>>;
    +
    421
    +
    422 using inner_backstrides_type = std::conditional_t<
    +
    423 has_trivial_strides,
    +
    424 typename detail::unwrap_offset_container<
    +
    425 xexpression_type::static_layout,
    +
    426 xexpression_inner_backstrides_type,
    +
    427 integral_count<S...>()>::type,
    +
    428 get_strides_t<shape_type>>;
    +
    429
    +
    430 using strides_type = get_strides_t<shape_type>;
    +
    431 using backstrides_type = strides_type;
    +
    432
    +
    433
    +
    434 using slice_type = std::tuple<S...>;
    +
    435
    +
    436 using stepper = typename iterable_base::stepper;
    +
    437 using const_stepper = typename iterable_base::const_stepper;
    +
    438
    +
    439 using linear_iterator = std::conditional_t<
    + +
    441 std::conditional_t<is_const, typename xexpression_type::const_linear_iterator, typename xexpression_type::linear_iterator>,
    +
    442 typename iterable_base::linear_iterator>;
    +
    443 using const_linear_iterator = std::conditional_t<
    + +
    445 typename xexpression_type::const_linear_iterator,
    +
    446 typename iterable_base::const_linear_iterator>;
    +
    447
    +
    448 using reverse_linear_iterator = std::reverse_iterator<linear_iterator>;
    +
    449 using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>;
    +
    450
    +
    451 using container_iterator = pointer;
    +
    452 using const_container_iterator = const_pointer;
    +
    453 static constexpr std::size_t rank = SIZE_MAX;
    +
    454
    +
    455 // The FSL argument prevents the compiler from calling this constructor
    +
    456 // instead of the copy constructor when sizeof...(SL) == 0.
    +
    457 template <class CTA, class FSL, class... SL>
    +
    458 explicit xview(CTA&& e, FSL&& first_slice, SL&&... slices) noexcept;
    +
    459
    +
    460 xview(const xview&) = default;
    +
    461 self_type& operator=(const xview& rhs);
    +
    462
    +
    463 template <class E>
    +
    464 self_type& operator=(const xexpression<E>& e);
    +
    465
    +
    466 template <class E>
    +
    467 disable_xexpression<E, self_type>& operator=(const E& e);
    +
    468
    +
    469 const inner_shape_type& shape() const noexcept;
    +
    470 const slice_type& slices() const noexcept;
    +
    471 layout_type layout() const noexcept;
    +
    472 bool is_contiguous() const noexcept;
    +
    473 using accessible_base::shape;
    +
    474
    +
    475 template <class T>
    +
    476 void fill(const T& value);
    +
    477
    +
    478 template <class... Args>
    +
    479 reference operator()(Args... args);
    +
    480 template <class... Args>
    +
    481 reference unchecked(Args... args);
    +
    482 template <class It>
    +
    483 reference element(It first, It last);
    +
    484
    +
    485 template <class... Args>
    +
    486 const_reference operator()(Args... args) const;
    +
    487 template <class... Args>
    +
    488 const_reference unchecked(Args... args) const;
    +
    489 template <class It>
    +
    490 const_reference element(It first, It last) const;
    +
    491
    +
    492 xexpression_type& expression() noexcept;
    +
    493 const xexpression_type& expression() const noexcept;
    +
    494
    +
    495 template <class ST>
    +
    496 bool broadcast_shape(ST& shape, bool reuse_cache = false) const;
    +
    497
    +
    498 template <class ST>
    +
    499 bool has_linear_assign(const ST& strides) const;
    +
    500
    +
    501 template <class ST>
    +
    502 stepper stepper_begin(const ST& shape);
    +
    503 template <class ST>
    +
    504 stepper stepper_end(const ST& shape, layout_type l);
    +
    505
    +
    506 template <class ST>
    +
    507 const_stepper stepper_begin(const ST& shape) const;
    +
    508 template <class ST>
    +
    509 const_stepper stepper_end(const ST& shape, layout_type l) const;
    +
    510
    +
    511 template <class T = xexpression_type>
    +
    512 storage_type& storage()
    +
    513 requires(has_data_interface_concept<T>);
    +
    514
    +
    515 template <class T = xexpression_type>
    +
    516 const storage_type& storage() const
    +
    517 requires(has_data_interface_concept<T>);
    +
    518
    +
    519 template <class T = xexpression_type>
    +
    520 linear_iterator linear_begin()
    +
    521 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    522
    +
    523 template <class T = xexpression_type>
    +
    524 linear_iterator linear_end()
    +
    525 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    526
    +
    527 template <class T = xexpression_type>
    +
    528 const_linear_iterator linear_begin() const
    +
    529 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    530
    +
    531 template <class T = xexpression_type>
    +
    532 const_linear_iterator linear_end() const
    +
    533 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    534
    +
    535 template <class T = xexpression_type>
    +
    536 const_linear_iterator linear_cbegin() const
    +
    537 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    538
    +
    539 template <class T = xexpression_type>
    +
    540 const_linear_iterator linear_cend() const
    +
    541 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    542
    +
    543 template <class T = xexpression_type>
    +
    544 reverse_linear_iterator linear_rbegin()
    +
    545 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    546
    +
    547 template <class T = xexpression_type>
    +
    548 reverse_linear_iterator linear_rend()
    +
    549 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    550
    +
    551 template <class T = xexpression_type>
    +
    552 const_reverse_linear_iterator linear_rbegin() const
    +
    553 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    554
    +
    555 template <class T = xexpression_type>
    +
    556 const_reverse_linear_iterator linear_rend() const
    +
    557 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    558
    +
    559 template <class T = xexpression_type>
    +
    560 const_reverse_linear_iterator linear_crbegin() const
    +
    561 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    562
    +
    563 template <class T = xexpression_type>
    +
    564 const_reverse_linear_iterator linear_crend() const
    +
    565 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    566
    +
    567 template <class T = xexpression_type>
    +
    568 const inner_strides_type& strides() const
    +
    569 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    570
    +
    571 template <class T = xexpression_type>
    +
    572 const inner_strides_type& backstrides() const
    +
    573 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    574
    +
    575 template <class T = xexpression_type>
    +
    576 const_pointer data() const
    +
    577 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    578
    +
    579 template <class T = xexpression_type>
    +
    580 pointer data()
    +
    581 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    582
    +
    583 template <class T = xexpression_type>
    +
    584 std::size_t data_offset() const noexcept
    +
    585 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    586
    +
    587 template <class It>
    +
    588 inline It data_xbegin_impl(It begin) const noexcept;
    +
    589
    +
    590 template <class It>
    +
    591 inline It data_xend_impl(It begin, layout_type l, size_type offset) const noexcept;
    +
    592 inline container_iterator data_xbegin() noexcept;
    +
    593 inline const_container_iterator data_xbegin() const noexcept;
    +
    594 inline container_iterator data_xend(layout_type l, size_type offset) noexcept;
    +
    595
    +
    596 inline const_container_iterator data_xend(layout_type l, size_type offset) const noexcept;
    +
    597
    +
    598 // Conversion operator enabled for statically "scalar" views
    +
    599 template <xscalar_concept ST = self_type>
    +
    600 operator reference()
    +
    601 {
    +
    602 return (*this)();
    +
    603 }
    +
    604
    +
    605 template <xscalar_concept ST = self_type>
    +
    606 operator const_reference() const
    +
    607 {
    +
    608 return (*this)();
    +
    609 }
    +
    610
    +
    611 size_type underlying_size(size_type dim) const;
    +
    612
    +
    613 xtl::xclosure_pointer<self_type&> operator&() &;
    +
    614 xtl::xclosure_pointer<const self_type&> operator&() const&;
    +
    615 xtl::xclosure_pointer<self_type> operator&() &&;
    +
    616
    +
    617 template <class E, class T = xexpression_type>
    +
    618 void assign_to(xexpression<E>& e, bool force_resize) const
    +
    619 requires(has_data_interface_concept<T> and contiguous_view_concept<E, S...>);
    +
    620
    +
    621 template <class E>
    +
    622 using rebind_t = xview<E, S...>;
    +
    623
    +
    624 template <class E>
    +
    625 rebind_t<E> build_view(E&& e) const;
    +
    626
    +
    627 //
    +
    628 // SIMD interface
    +
    629 //
    +
    630
    +
    631 template <class requested_type>
    +
    632 using simd_return_type = xt_simd::simd_return_type<value_type, requested_type>;
    +
    633
    +
    634 template <class align, class simd, class T = xexpression_type>
    +
    635 void store_simd(size_type i, const simd& e)
    +
    636 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    637
    +
    638 template <
    +
    639 class align,
    +
    640 class requested_type = value_type,
    +
    641 std::size_t N = xt_simd::simd_traits<requested_type>::size,
    +
    642 class T = xexpression_type>
    +
    643 simd_return_type<requested_type> load_simd(size_type i) const
    +
    644 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    645
    +
    646 template <class T = xexpression_type>
    +
    647 reference data_element(size_type i)
    +
    648 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    649
    +
    650 template <class T = xexpression_type>
    +
    651 const_reference data_element(size_type i) const
    +
    652 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    653
    +
    654 template <class T = xexpression_type>
    +
    655 reference flat(size_type i)
    +
    656 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    657
    +
    658 template <class T = xexpression_type>
    +
    659 const_reference flat(size_type i) const
    +
    660 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>);
    +
    661
    +
    662 private:
    +
    663
    +
    664 // VS 2015 workaround (yes, really)
    +
    665 template <std::size_t I>
    +
    666 struct lesser_condition
    +
    667 {
    +
    668 static constexpr bool value = (I + newaxis_count_before<S...>(I + 1) < sizeof...(S));
    +
    669 };
    +
    670
    +
    671 CT m_e;
    +
    672 slice_type m_slices;
    +
    673 inner_shape_type m_shape;
    +
    674 mutable inner_strides_type m_strides;
    +
    675 mutable inner_backstrides_type m_backstrides;
    +
    676 mutable std::size_t m_data_offset;
    +
    677 mutable bool m_strides_computed;
    +
    678
    +
    679 template <class CTA, class FSL, class... SL>
    +
    680 explicit xview(std::true_type, CTA&& e, FSL&& first_slice, SL&&... slices) noexcept;
    +
    681
    +
    682 template <class CTA, class FSL, class... SL>
    +
    683 explicit xview(std::false_type, CTA&& e, FSL&& first_slice, SL&&... slices) noexcept;
    +
    684
    +
    685 template <class... Args>
    +
    686 auto make_index_sequence(Args... args) const noexcept;
    +
    687
    +
    688 void compute_strides(std::true_type) const;
    +
    689 void compute_strides(std::false_type) const;
    +
    690
    +
    691 reference access();
    +
    692
    +
    693 template <class Arg, class... Args>
    +
    694 reference access(Arg arg, Args... args);
    +
    695
    +
    696 const_reference access() const;
    +
    697
    +
    698 template <class Arg, class... Args>
    +
    699 const_reference access(Arg arg, Args... args) const;
    +
    700
    +
    701 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    702 reference unchecked_impl(std::index_sequence<I...>, Args... args);
    +
    703
    +
    704 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    705 const_reference unchecked_impl(std::index_sequence<I...>, Args... args) const;
    +
    706
    +
    707 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    708 reference access_impl(std::index_sequence<I...>, Args... args);
    +
    709
    +
    710 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    711 const_reference access_impl(std::index_sequence<I...>, Args... args) const;
    +
    712
    +
    713 template <typename std::decay_t<CT>::size_type I, class... Args>
    +
    714 size_type index(Args... args) const;
    +
    715
    +
    716 template <typename std::decay_t<CT>::size_type, class T>
    +
    717 size_type sliced_access(const xslice<T>& slice) const;
    +
    718
    +
    719 template <typename std::decay_t<CT>::size_type I, class T, class Arg, class... Args>
    +
    720 size_type sliced_access(const xslice<T>& slice, Arg arg, Args... args) const;
    +
    721
    +
    722 template <typename std::decay_t<CT>::size_type I, class T, class... Args>
    +
    723 size_type sliced_access(const T& squeeze, Args...) const
    +
    724 requires(!is_xslice<T>::value);
    +
    725
    +
    726 using base_index_type = xindex_type_t<typename xexpression_type::shape_type>;
    +
    727
    +
    728 template <class It>
    +
    729 base_index_type make_index(It first, It last) const;
    +
    730
    +
    731 void assign_temporary_impl(temporary_type&& tmp);
    +
    732
    +
    733 template <std::size_t... I>
    +
    734 std::size_t data_offset_impl(std::index_sequence<I...>) const noexcept;
    +
    735
    +
    736 template <std::size_t... I>
    +
    737 auto compute_strides_impl(std::index_sequence<I...>) const noexcept;
    +
    738
    +
    739 inner_shape_type compute_shape(std::true_type) const;
    +
    740 inner_shape_type compute_shape(std::false_type) const;
    +
    741
    +
    742 template <class E, std::size_t... I>
    +
    743 rebind_t<E> build_view_impl(E&& e, std::index_sequence<I...>) const;
    +
    744
    +
    745 friend class xview_semantic<xview<CT, S...>>;
    +
    746 };
    +
    +
    747
    +
    748 template <class E, class... S>
    +
    749 auto view(E&& e, S&&... slices);
    +
    750
    +
    751 template <class E>
    +
    752 auto row(E&& e, std::ptrdiff_t index);
    +
    753
    +
    754 template <class E>
    +
    755 auto col(E&& e, std::ptrdiff_t index);
    +
    756
    +
    757 /*****************************
    +
    758 * xview_stepper declaration *
    +
    759 *****************************/
    +
    760
    +
    761 namespace detail
    +
    762 {
    +
    763 template <class V>
    +
    764 struct get_stepper_impl
    +
    765 {
    +
    766 using xexpression_type = typename V::xexpression_type;
    +
    767 using type = typename xexpression_type::stepper;
    +
    768 };
    +
    769
    +
    770 template <class V>
    +
    771 struct get_stepper_impl<const V>
    +
    772 {
    +
    773 using xexpression_type = typename V::xexpression_type;
    +
    774 using type = typename xexpression_type::const_stepper;
    +
    775 };
    +
    776 }
    +
    777
    +
    778 template <class V>
    +
    779 using get_stepper = typename detail::get_stepper_impl<V>::type;
    +
    780
    +
    781 template <bool is_const, class CT, class... S>
    +
    +
    782 class xview_stepper
    +
    783 {
    +
    784 public:
    +
    785
    +
    786 using view_type = std::conditional_t<is_const, const xview<CT, S...>, xview<CT, S...>>;
    +
    787 using substepper_type = get_stepper<view_type>;
    +
    788
    +
    789 using value_type = typename substepper_type::value_type;
    +
    790 using reference = typename substepper_type::reference;
    +
    791 using pointer = typename substepper_type::pointer;
    +
    792 using difference_type = typename substepper_type::difference_type;
    +
    793 using size_type = typename view_type::size_type;
    +
    794
    +
    795 using shape_type = typename substepper_type::shape_type;
    +
    796
    +
    797 xview_stepper() = default;
    +
    798 xview_stepper(
    +
    799 view_type* view,
    +
    800 substepper_type it,
    +
    801 size_type offset,
    +
    802 bool end = false,
    +
    803 layout_type l = XTENSOR_DEFAULT_TRAVERSAL
    +
    804 );
    +
    805
    +
    806 reference operator*() const;
    +
    807
    +
    808 void step(size_type dim);
    +
    809 void step_back(size_type dim);
    +
    810 void step(size_type dim, size_type n);
    +
    811 void step_back(size_type dim, size_type n);
    +
    812 void reset(size_type dim);
    +
    813 void reset_back(size_type dim);
    +
    814
    +
    815 void to_begin();
    +
    816 void to_end(layout_type l);
    +
    817
    +
    818 private:
    +
    819
    +
    820 bool is_newaxis_slice(size_type index) const noexcept;
    +
    821 void to_end_impl(layout_type l);
    +
    822
    +
    823 template <class F>
    +
    824 void common_step_forward(size_type dim, F f);
    +
    825 template <class F>
    +
    826 void common_step_backward(size_type dim, F f);
    +
    827
    +
    828 template <class F>
    +
    829 void common_step_forward(size_type dim, size_type n, F f);
    +
    830 template <class F>
    +
    831 void common_step_backward(size_type dim, size_type n, F f);
    +
    832
    +
    833 template <class F>
    +
    834 void common_reset(size_type dim, F f, bool backwards);
    +
    835
    +
    836 view_type* p_view;
    +
    837 substepper_type m_it;
    +
    838 size_type m_offset;
    +
    839 std::array<std::size_t, sizeof...(S)> m_index_keeper;
    +
    840 };
    +
    +
    841
    +
    842 // meta-function returning the shape type for an xview
    +
    843 template <class ST, class... S>
    +
    + +
    845 {
    +
    846 using type = ST;
    +
    847 };
    +
    +
    848
    +
    849 template <class I, std::size_t L, class... S>
    +
    +
    850 struct xview_shape_type<std::array<I, L>, S...>
    +
    851 {
    +
    852 using type = std::array<I, L - integral_count<S...>() + newaxis_count<S...>()>;
    +
    853 };
    +
    +
    854
    +
    855 template <std::size_t... I, class... S>
    +
    +
    856 struct xview_shape_type<fixed_shape<I...>, S...>
    +
    857 {
    +
    858 using type = typename xview_shape_type<std::array<std::size_t, sizeof...(I)>, S...>::type;
    +
    859 };
    +
    +
    860
    +
    861 /************************
    +
    862 * xview implementation *
    +
    863 ************************/
    +
    864
    +
    868
    +
    870
    +
    879 template <class CT, class... S>
    +
    880 template <class CTA, class FSL, class... SL>
    +
    +
    881 xview<CT, S...>::xview(CTA&& e, FSL&& first_slice, SL&&... slices) noexcept
    +
    882 : xview(
    +
    883 std::integral_constant<bool, has_trivial_strides>{},
    +
    884 std::forward<CTA>(e),
    +
    885 std::forward<FSL>(first_slice),
    +
    886 std::forward<SL>(slices)...
    +
    887 )
    +
    888 {
    +
    889 }
    +
    +
    890
    +
    891 // trivial strides initializer
    +
    892 template <class CT, class... S>
    +
    893 template <class CTA, class FSL, class... SL>
    +
    894 xview<CT, S...>::xview(std::true_type, CTA&& e, FSL&& first_slice, SL&&... slices) noexcept
    +
    895 : m_e(std::forward<CTA>(e))
    +
    896 , m_slices(std::forward<FSL>(first_slice), std::forward<SL>(slices)...)
    +
    897 , m_shape(compute_shape(detail::is_sequence_view<inner_shape_type>{}))
    +
    898 , m_strides(m_e.strides())
    +
    899 , m_backstrides(m_e.backstrides())
    +
    900 , m_data_offset(data_offset_impl(std::make_index_sequence<sizeof...(S)>()))
    +
    901 , m_strides_computed(true)
    +
    902 {
    +
    903 }
    +
    904
    +
    905 template <class CT, class... S>
    +
    906 template <class CTA, class FSL, class... SL>
    +
    907 xview<CT, S...>::xview(std::false_type, CTA&& e, FSL&& first_slice, SL&&... slices) noexcept
    +
    908 : m_e(std::forward<CTA>(e))
    +
    909 , m_slices(std::forward<FSL>(first_slice), std::forward<SL>(slices)...)
    +
    910 , m_shape(compute_shape(std::false_type{}))
    +
    911 , m_strides_computed(false)
    +
    912 {
    +
    913 }
    +
    914
    +
    916
    +
    917 template <class CT, class... S>
    +
    918 inline auto xview<CT, S...>::operator=(const xview& rhs) -> self_type&
    +
    919 {
    +
    920 temporary_type tmp(rhs);
    +
    921 return this->assign_temporary(std::move(tmp));
    +
    922 }
    +
    923
    +
    928
    +
    931 template <class CT, class... S>
    +
    932 template <class E>
    +
    +
    933 inline auto xview<CT, S...>::operator=(const xexpression<E>& e) -> self_type&
    +
    934 {
    +
    935 return semantic_base::operator=(e);
    +
    936 }
    +
    +
    937
    +
    939
    +
    940 template <class CT, class... S>
    +
    941 template <class E>
    +
    942 inline auto xview<CT, S...>::operator=(const E& e) -> disable_xexpression<E, self_type>&
    +
    943 {
    +
    944 this->fill(e);
    +
    945 return *this;
    +
    946 }
    +
    947
    +
    952
    +
    955 template <class CT, class... S>
    +
    +
    956 inline auto xview<CT, S...>::shape() const noexcept -> const inner_shape_type&
    +
    957 {
    +
    958 return m_shape;
    +
    959 }
    +
    +
    960
    +
    964 template <class CT, class... S>
    +
    +
    965 inline auto xview<CT, S...>::slices() const noexcept -> const slice_type&
    +
    966 {
    +
    967 return m_slices;
    +
    968 }
    +
    +
    969
    +
    973 template <class CT, class... S>
    +
    +
    974 inline layout_type xview<CT, S...>::layout() const noexcept
    +
    975 {
    +
    976 if constexpr (is_strided_view)
    +
    977 {
    +
    978 if (static_layout != layout_type::dynamic)
    +
    979 {
    +
    980 return static_layout;
    +
    981 }
    +
    982 else
    +
    983 {
    +
    984 bool strides_match = do_strides_match(shape(), strides(), m_e.layout(), true);
    +
    985 return strides_match ? m_e.layout() : layout_type::dynamic;
    +
    986 }
    +
    987 }
    +
    988 else
    +
    989 {
    + +
    991 }
    +
    992 }
    +
    +
    993
    +
    994 template <class CT, class... S>
    +
    995 inline bool xview<CT, S...>::is_contiguous() const noexcept
    +
    996 {
    +
    997 return layout() != layout_type::dynamic;
    +
    998 }
    +
    999
    +
    1001
    +
    1006
    +
    1011 template <class CT, class... S>
    +
    1012 template <class T>
    +
    +
    1013 inline void xview<CT, S...>::fill(const T& value)
    +
    1014 {
    +
    1015 if constexpr (static_layout != layout_type::dynamic)
    +
    1016 {
    +
    1017 std::fill(linear_begin(), linear_end(), value);
    +
    1018 }
    +
    1019 else
    +
    1020 {
    +
    1021 std::fill(this->begin(), this->end(), value);
    +
    1022 }
    +
    1023 }
    +
    +
    1024
    +
    1031 template <class CT, class... S>
    +
    1032 template <class... Args>
    +
    +
    1033 inline auto xview<CT, S...>::operator()(Args... args) -> reference
    +
    1034 {
    +
    1035 XTENSOR_TRY(check_index(shape(), args...));
    +
    1036 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    1037 // The static cast prevents the compiler from instantiating the template methods with signed integers,
    +
    1038 // leading to warning about signed/unsigned conversions in the deeper layers of the access methods
    +
    1039 return access(static_cast<size_type>(args)...);
    +
    1040 }
    +
    +
    1041
    +
    1061 template <class CT, class... S>
    +
    1062 template <class... Args>
    +
    +
    1063 inline auto xview<CT, S...>::unchecked(Args... args) -> reference
    +
    1064 {
    +
    1065 return unchecked_impl(make_index_sequence(args...), static_cast<size_type>(args)...);
    +
    1066 }
    +
    +
    1067
    +
    1068 template <class CT, class... S>
    +
    1069 template <class It>
    +
    1070 inline auto xview<CT, S...>::element(It first, It last) -> reference
    +
    1071 {
    +
    1072 XTENSOR_TRY(check_element_index(shape(), first, last));
    +
    1073 // TODO: avoid memory allocation
    +
    1074 auto index = make_index(first, last);
    +
    1075 return m_e.element(index.cbegin(), index.cend());
    +
    1076 }
    +
    1077
    +
    1084 template <class CT, class... S>
    +
    1085 template <class... Args>
    +
    +
    1086 inline auto xview<CT, S...>::operator()(Args... args) const -> const_reference
    +
    1087 {
    +
    1088 XTENSOR_TRY(check_index(shape(), args...));
    +
    1089 XTENSOR_CHECK_DIMENSION(shape(), args...);
    +
    1090 // The static cast prevents the compiler from instantiating the template methods with signed integers,
    +
    1091 // leading to warning about signed/unsigned conversions in the deeper layers of the access methods
    +
    1092 return access(static_cast<size_type>(args)...);
    +
    1093 }
    +
    +
    1094
    +
    1114 template <class CT, class... S>
    +
    1115 template <class... Args>
    +
    +
    1116 inline auto xview<CT, S...>::unchecked(Args... args) const -> const_reference
    +
    1117 {
    +
    1118 return unchecked_impl(make_index_sequence(args...), static_cast<size_type>(args)...);
    +
    1119 }
    +
    +
    1120
    +
    1121 template <class CT, class... S>
    +
    1122 template <class It>
    +
    1123 inline auto xview<CT, S...>::element(It first, It last) const -> const_reference
    +
    1124 {
    +
    1125 // TODO: avoid memory allocation
    +
    1126 auto index = make_index(first, last);
    +
    1127 return m_e.element(index.cbegin(), index.cend());
    +
    1128 }
    +
    1129
    +
    1133 template <class CT, class... S>
    +
    +
    1134 inline auto xview<CT, S...>::expression() noexcept -> xexpression_type&
    +
    1135 {
    +
    1136 return m_e;
    +
    1137 }
    +
    +
    1138
    +
    1142 template <class CT, class... S>
    +
    +
    1143 inline auto xview<CT, S...>::expression() const noexcept -> const xexpression_type&
    +
    1144 {
    +
    1145 return m_e;
    +
    1146 }
    +
    +
    1147
    +
    1153 template <class CT, class... S>
    +
    1154 template <class T>
    +
    +
    1155 inline auto xview<CT, S...>::storage() -> storage_type&
    + +
    1157 {
    +
    1158 return m_e.storage();
    +
    1159 }
    +
    +
    1160
    +
    1161 template <class CT, class... S>
    +
    1162 template <class T>
    +
    1163 inline auto xview<CT, S...>::storage() const -> const storage_type&
    +
    1164 requires(has_data_interface_concept<T>)
    +
    1165 {
    +
    1166 return m_e.storage();
    +
    1167 }
    +
    1168
    +
    1169 template <class CT, class... S>
    +
    1170 template <class T>
    +
    1171 auto xview<CT, S...>::linear_begin() -> linear_iterator
    +
    1172 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1173 {
    +
    1174 return m_e.storage().begin() + data_offset();
    +
    1175 }
    +
    1176
    +
    1177 template <class CT, class... S>
    +
    1178 template <class T>
    +
    1179 auto xview<CT, S...>::linear_end() -> linear_iterator
    +
    1180 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1181 {
    +
    1182 return m_e.storage().begin() + data_offset() + this->size();
    +
    1183 }
    +
    1184
    +
    1185 template <class CT, class... S>
    +
    1186 template <class T>
    +
    1187 auto xview<CT, S...>::linear_begin() const -> const_linear_iterator
    +
    1188 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1189 {
    +
    1190 return linear_cbegin();
    +
    1191 }
    +
    1192
    +
    1193 template <class CT, class... S>
    +
    1194 template <class T>
    +
    1195 auto xview<CT, S...>::linear_end() const -> const_linear_iterator
    +
    1196 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1197 {
    +
    1198 return linear_cend();
    +
    1199 }
    +
    1200
    +
    1201 template <class CT, class... S>
    +
    1202 template <class T>
    +
    1203 auto xview<CT, S...>::linear_cbegin() const -> const_linear_iterator
    +
    1204 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1205 {
    +
    1206 return m_e.storage().cbegin() + data_offset();
    +
    1207 }
    +
    1208
    +
    1209 template <class CT, class... S>
    +
    1210 template <class T>
    +
    1211 auto xview<CT, S...>::linear_cend() const -> const_linear_iterator
    +
    1212 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1213 {
    +
    1214 return m_e.storage().cbegin() + data_offset() + this->size();
    +
    1215 }
    +
    1216
    +
    1217 template <class CT, class... S>
    +
    1218 template <class T>
    +
    1219 auto xview<CT, S...>::linear_rbegin() -> reverse_linear_iterator
    +
    1220 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1221 {
    +
    1222 return reverse_linear_iterator(linear_end());
    +
    1223 }
    +
    1224
    +
    1225 template <class CT, class... S>
    +
    1226 template <class T>
    +
    1227 auto xview<CT, S...>::linear_rend() -> reverse_linear_iterator
    +
    1228 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1229 {
    +
    1230 return reverse_linear_iterator(linear_begin());
    +
    1231 }
    +
    1232
    +
    1233 template <class CT, class... S>
    +
    1234 template <class T>
    +
    1235 auto xview<CT, S...>::linear_rbegin() const -> const_reverse_linear_iterator
    +
    1236 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1237 {
    +
    1238 return linear_crbegin();
    +
    1239 }
    +
    1240
    +
    1241 template <class CT, class... S>
    +
    1242 template <class T>
    +
    1243 auto xview<CT, S...>::linear_rend() const -> const_reverse_linear_iterator
    +
    1244 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1245 {
    +
    1246 return linear_crend();
    +
    1247 }
    +
    1248
    +
    1249 template <class CT, class... S>
    +
    1250 template <class T>
    +
    1251 auto xview<CT, S...>::linear_crbegin() const -> const_reverse_linear_iterator
    +
    1252 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1253 {
    +
    1254 return const_reverse_linear_iterator(linear_end());
    +
    1255 }
    +
    1256
    +
    1257 template <class CT, class... S>
    +
    1258 template <class T>
    +
    1259 auto xview<CT, S...>::linear_crend() const -> const_reverse_linear_iterator
    +
    1260 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1261 {
    +
    1262 return const_reverse_linear_iterator(linear_begin());
    +
    1263 }
    +
    1264
    +
    1268 template <class CT, class... S>
    +
    1269 template <class T>
    +
    +
    1270 inline auto xview<CT, S...>::strides() const
    +
    1271 -> const inner_strides_type& requires(has_data_interface_concept<T>and strided_view_concept<CT, S...>) {
    +
    1272 if (!m_strides_computed)
    +
    1273 {
    +
    1274 compute_strides(std::integral_constant<bool, has_trivial_strides>{});
    +
    1275 m_strides_computed = true;
    +
    1276 }
    +
    1277 return m_strides;
    +
    1278 }
    +
    +
    1279
    +
    1280 template <class CT, class... S>
    +
    1281 template <class T>
    +
    1282 inline auto xview<CT, S...>::backstrides() const
    +
    1283 -> const inner_strides_type& requires(has_data_interface_concept<T>and strided_view_concept<CT, S...>) {
    +
    1284 if (!m_strides_computed)
    +
    1285 {
    +
    1286 compute_strides(std::integral_constant<bool, has_trivial_strides>{});
    +
    1287 m_strides_computed = true;
    +
    1288 }
    +
    1289 return m_backstrides;
    +
    1290 }
    +
    1291
    +
    1295 template <class CT, class... S>
    +
    1296 template <class T>
    +
    +
    1297 inline auto xview<CT, S...>::data() const -> const_pointer
    +
    1298 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1299 {
    +
    1300 return m_e.data();
    +
    1301 }
    +
    +
    1302
    +
    1303 template <class CT, class... S>
    +
    1304 template <class T>
    +
    1305 inline auto xview<CT, S...>::data() -> pointer
    + +
    1307 {
    +
    1308 return m_e.data();
    +
    1309 }
    +
    1310
    +
    1311 template <class CT, class... S>
    +
    1312 template <std::size_t... I>
    +
    1313 inline std::size_t xview<CT, S...>::data_offset_impl(std::index_sequence<I...>) const noexcept
    +
    1314 {
    +
    1315 auto temp = std::array<std::ptrdiff_t, sizeof...(S)>(
    +
    1316 {(static_cast<ptrdiff_t>(xt::value(std::get<I>(m_slices), 0)))...}
    +
    1317 );
    +
    1318
    +
    1319 std::ptrdiff_t result = 0;
    +
    1320 std::size_t i = 0;
    +
    1321 for (; i < std::min(sizeof...(S), m_e.strides().size()); ++i)
    +
    1322 {
    +
    1323 result += temp[i] * m_e.strides()[i - newaxis_count_before<S...>(i)];
    +
    1324 }
    +
    1325 for (; i < sizeof...(S); ++i)
    +
    1326 {
    +
    1327 result += temp[i];
    +
    1328 }
    +
    1329 return static_cast<std::size_t>(result) + m_e.data_offset();
    +
    1330 }
    +
    1331
    +
    1335 template <class CT, class... S>
    +
    1336 template <class T>
    +
    +
    1337 inline std::size_t xview<CT, S...>::data_offset() const noexcept
    +
    1338 requires(has_data_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1339 {
    +
    1340 if (!m_strides_computed)
    +
    1341 {
    +
    1342 compute_strides(std::integral_constant<bool, has_trivial_strides>{});
    +
    1343 m_strides_computed = true;
    +
    1344 }
    +
    1345 return m_data_offset;
    +
    1346 }
    +
    +
    1347
    +
    1349
    +
    1350 template <class CT, class... S>
    +
    1351 inline auto xview<CT, S...>::underlying_size(size_type dim) const -> size_type
    +
    1352 {
    +
    1353 return m_e.shape()[dim];
    +
    1354 }
    +
    1355
    +
    1356 template <class CT, class... S>
    +
    1357 inline auto xview<CT, S...>::operator&() & -> xtl::xclosure_pointer<self_type&>
    +
    1358 {
    +
    1359 return xtl::closure_pointer(*this);
    +
    1360 }
    +
    1361
    +
    1362 template <class CT, class... S>
    +
    1363 inline auto xview<CT, S...>::operator&() const& -> xtl::xclosure_pointer<const self_type&>
    +
    1364 {
    +
    1365 return xtl::closure_pointer(*this);
    +
    1366 }
    +
    1367
    +
    1368 template <class CT, class... S>
    +
    1369 inline auto xview<CT, S...>::operator&() && -> xtl::xclosure_pointer<self_type>
    +
    1370 {
    +
    1371 return xtl::closure_pointer(std::move(*this));
    +
    1372 }
    +
    1373
    +
    1378
    +
    1384 template <class CT, class... S>
    +
    1385 template <class ST>
    +
    +
    1386 inline bool xview<CT, S...>::broadcast_shape(ST& shape, bool) const
    +
    1387 {
    +
    1388 return xt::broadcast_shape(m_shape, shape);
    +
    1389 }
    +
    +
    1390
    +
    1396 template <class CT, class... S>
    +
    1397 template <class ST>
    +
    +
    1398 inline bool xview<CT, S...>::has_linear_assign(const ST& str) const
    +
    1399 {
    +
    1400 if constexpr (is_strided_view)
    +
    1401 {
    +
    1402 return str.size() == strides().size() && std::equal(str.cbegin(), str.cend(), strides().begin());
    +
    1403 }
    +
    1404 else
    +
    1405 {
    +
    1406 return false;
    +
    1407 }
    +
    1408 }
    +
    +
    1409
    +
    1411
    +
    1412 template <class CT, class... S>
    +
    1413 template <class It>
    +
    1414 inline It xview<CT, S...>::data_xbegin_impl(It begin) const noexcept
    +
    1415 {
    +
    1416 return begin + data_offset();
    +
    1417 }
    +
    1418
    +
    1419 template <class CT, class... S>
    +
    1420 template <class It>
    +
    1421 inline It xview<CT, S...>::data_xend_impl(It begin, layout_type l, size_type offset) const noexcept
    +
    1422 {
    +
    1423 return strided_data_end(*this, begin, l, offset);
    +
    1424 }
    +
    1425
    +
    1426 template <class CT, class... S>
    +
    1427 inline auto xview<CT, S...>::data_xbegin() noexcept -> container_iterator
    +
    1428 {
    +
    1429 return data_xbegin_impl(data());
    +
    1430 }
    +
    1431
    +
    1432 template <class CT, class... S>
    +
    1433 inline auto xview<CT, S...>::data_xbegin() const noexcept -> const_container_iterator
    +
    1434 {
    +
    1435 return data_xbegin_impl(data());
    +
    1436 }
    +
    1437
    +
    1438 template <class CT, class... S>
    +
    1439 inline auto xview<CT, S...>::data_xend(layout_type l, size_type offset) noexcept -> container_iterator
    +
    1440 {
    +
    1441 return data_xend_impl(data() + data_offset(), l, offset);
    +
    1442 }
    +
    1443
    +
    1444 template <class CT, class... S>
    +
    1445 inline auto xview<CT, S...>::data_xend(layout_type l, size_type offset) const noexcept
    +
    1446 -> const_container_iterator
    +
    1447 {
    +
    1448 return data_xend_impl(data() + data_offset(), l, offset);
    +
    1449 }
    +
    1450
    +
    1451 // Assign to operator enabled for contigous views
    +
    1452 template <class CT, class... S>
    +
    1453 template <class E, class T>
    +
    1454 void xview<CT, S...>::assign_to(xexpression<E>& e, bool force_resize) const
    +
    1455 requires(has_data_interface_concept<T> and contiguous_view_concept<E, S...>)
    +
    1456 {
    +
    1457 auto& de = e.derived_cast();
    +
    1458 de.resize(shape(), force_resize);
    +
    1459 std::copy(data() + data_offset(), data() + data_offset() + de.size(), de.template begin<static_layout>());
    +
    1460 }
    +
    1461
    +
    1462 template <class CT, class... S>
    +
    1463 template <class E, std::size_t... I>
    +
    1464 inline auto xview<CT, S...>::build_view_impl(E&& e, std::index_sequence<I...>) const -> rebind_t<E>
    +
    1465 {
    +
    1466 return rebind_t<E>(std::forward<E>(e), std::get<I>(m_slices)...);
    +
    1467 }
    +
    1468
    +
    1469 template <class CT, class... S>
    +
    1470 template <class E>
    +
    1471 inline auto xview<CT, S...>::build_view(E&& e) const -> rebind_t<E>
    +
    1472 {
    +
    1473 return build_view_impl(std::forward<E>(e), std::make_index_sequence<sizeof...(S)>());
    +
    1474 }
    +
    1475
    +
    1476 template <class CT, class... S>
    +
    1477 template <class align, class simd, class T>
    +
    1478 inline auto xview<CT, S...>::store_simd(size_type i, const simd& e) -> void
    +
    1479 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1480 {
    +
    1481 return m_e.template store_simd<xt_simd::unaligned_mode>(data_offset() + i, e);
    +
    1482 }
    +
    1483
    +
    1484 template <class CT, class... S>
    +
    1485 template <class align, class requested_type, std::size_t N, class T>
    +
    1486 inline auto xview<CT, S...>::load_simd(size_type i) const -> simd_return_type<requested_type>
    +
    1487 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1488 {
    +
    1489 return m_e.template load_simd<xt_simd::unaligned_mode, requested_type>(data_offset() + i);
    +
    1490 }
    +
    1491
    +
    1492 template <class CT, class... S>
    +
    1493 template <class T>
    +
    1494 inline auto xview<CT, S...>::data_element(size_type i) -> reference
    +
    1495 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1496 {
    +
    1497 return m_e.data_element(data_offset() + i);
    +
    1498 }
    +
    1499
    +
    1500 template <class CT, class... S>
    +
    1501 template <class T>
    +
    1502 inline auto xview<CT, S...>::data_element(size_type i) const -> const_reference
    +
    1503 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1504 {
    +
    1505 return m_e.data_element(data_offset() + i);
    +
    1506 }
    +
    1507
    +
    1508 template <class CT, class... S>
    +
    1509 template <class T>
    +
    1510 inline auto xview<CT, S...>::flat(size_type i) -> reference
    +
    1511 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1512 {
    +
    1513 XTENSOR_ASSERT(is_contiguous());
    +
    1514 return m_e.flat(data_offset() + i);
    +
    1515 }
    +
    1516
    +
    1517 template <class CT, class... S>
    +
    1518 template <class T>
    +
    1519 inline auto xview<CT, S...>::flat(size_type i) const -> const_reference
    +
    1520 requires(has_simd_interface_concept<T> and strided_view_concept<CT, S...>)
    +
    1521 {
    +
    1522 XTENSOR_ASSERT(is_contiguous());
    +
    1523 return m_e.flat(data_offset() + i);
    +
    1524 }
    +
    1525
    +
    1526 template <class CT, class... S>
    +
    1527 template <class... Args>
    +
    1528 inline auto xview<CT, S...>::make_index_sequence(Args...) const noexcept
    +
    1529 {
    +
    1530 return std::make_index_sequence<
    +
    1531 (sizeof...(Args) + integral_count<S...>() > newaxis_count<S...>()
    +
    1532 ? sizeof...(Args) + integral_count<S...>() - newaxis_count<S...>()
    +
    1533 : 0)>();
    +
    1534 }
    +
    1535
    +
    1536 template <class CT, class... S>
    +
    1537 template <std::size_t... I>
    +
    1538 inline auto xview<CT, S...>::compute_strides_impl(std::index_sequence<I...>) const noexcept
    +
    1539 {
    +
    1540 std::size_t original_dim = m_e.dimension();
    +
    1541 return std::array<std::ptrdiff_t, sizeof...(I)>(
    +
    1542 {(static_cast<std::ptrdiff_t>(xt::step_size(std::get<integral_skip<S...>(I)>(m_slices), 1))
    +
    1543 * ((integral_skip<S...>(I) - newaxis_count_before<S...>(integral_skip<S...>(I))) < original_dim
    +
    1544 ? m_e.strides()[integral_skip<S...>(I) - newaxis_count_before<S...>(integral_skip<S...>(I))]
    +
    1545 : 1))...}
    +
    1546 );
    +
    1547 }
    +
    1548
    +
    1549 template <class CT, class... S>
    +
    1550 inline void xview<CT, S...>::compute_strides(std::false_type) const
    +
    1551 {
    +
    1552 m_strides = xtl::make_sequence<inner_strides_type>(this->dimension(), 0);
    +
    1553 m_backstrides = xtl::make_sequence<inner_strides_type>(this->dimension(), 0);
    +
    1554
    +
    1555 constexpr std::size_t n_strides = sizeof...(S) - integral_count<S...>();
    +
    1556
    +
    1557 auto slice_strides = compute_strides_impl(std::make_index_sequence<n_strides>());
    +
    1558
    +
    1559 for (std::size_t i = 0; i < n_strides; ++i)
    +
    1560 {
    +
    1561 m_strides[i] = slice_strides[i];
    +
    1562 // adapt strides for shape[i] == 1 to make consistent with rest of xtensor
    +
    1563 detail::adapt_strides(shape(), m_strides, &m_backstrides, i);
    +
    1564 }
    +
    1565 for (std::size_t i = n_strides; i < this->dimension(); ++i)
    +
    1566 {
    +
    1567 m_strides[i] = m_e.strides()[i + integral_count<S...>() - newaxis_count<S...>()];
    +
    1568 detail::adapt_strides(shape(), m_strides, &m_backstrides, i);
    +
    1569 }
    +
    1570
    +
    1571 m_data_offset = data_offset_impl(std::make_index_sequence<sizeof...(S)>());
    +
    1572 }
    +
    1573
    +
    1574 template <class CT, class... S>
    +
    1575 inline void xview<CT, S...>::compute_strides(std::true_type) const
    +
    1576 {
    +
    1577 }
    +
    1578
    +
    1579 template <class CT, class... S>
    +
    1580 inline auto xview<CT, S...>::access() -> reference
    +
    1581 {
    +
    1582 return access_impl(make_index_sequence());
    +
    1583 }
    +
    1584
    +
    1585 template <class CT, class... S>
    +
    1586 template <class Arg, class... Args>
    +
    1587 inline auto xview<CT, S...>::access(Arg arg, Args... args) -> reference
    +
    1588 {
    +
    1589 if (sizeof...(Args) >= this->dimension())
    +
    1590 {
    +
    1591 return access(args...);
    +
    1592 }
    +
    1593 return access_impl(make_index_sequence(arg, args...), arg, args...);
    +
    1594 }
    +
    1595
    +
    1596 template <class CT, class... S>
    +
    1597 inline auto xview<CT, S...>::access() const -> const_reference
    +
    1598 {
    +
    1599 return access_impl(make_index_sequence());
    +
    1600 }
    +
    1601
    +
    1602 template <class CT, class... S>
    +
    1603 template <class Arg, class... Args>
    +
    1604 inline auto xview<CT, S...>::access(Arg arg, Args... args) const -> const_reference
    +
    1605 {
    +
    1606 if (sizeof...(Args) >= this->dimension())
    +
    1607 {
    +
    1608 return access(args...);
    +
    1609 }
    +
    1610 return access_impl(make_index_sequence(arg, args...), arg, args...);
    +
    1611 }
    +
    1612
    +
    1613 template <class CT, class... S>
    +
    1614 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    1615 inline auto xview<CT, S...>::unchecked_impl(std::index_sequence<I...>, Args... args) -> reference
    +
    1616 {
    +
    1617 return m_e.unchecked(index<I>(args...)...);
    +
    1618 }
    +
    1619
    +
    1620 template <class CT, class... S>
    +
    1621 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    1622 inline auto xview<CT, S...>::unchecked_impl(std::index_sequence<I...>, Args... args) const
    +
    1623 -> const_reference
    +
    1624 {
    +
    1625 return m_e.unchecked(index<I>(args...)...);
    +
    1626 }
    +
    1627
    +
    1628 template <class CT, class... S>
    +
    1629 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    1630 inline auto xview<CT, S...>::access_impl(std::index_sequence<I...>, Args... args) -> reference
    +
    1631 {
    +
    1632 return m_e(index<I>(args...)...);
    +
    1633 }
    +
    1634
    +
    1635 template <class CT, class... S>
    +
    1636 template <typename std::decay_t<CT>::size_type... I, class... Args>
    +
    1637 inline auto xview<CT, S...>::access_impl(std::index_sequence<I...>, Args... args) const -> const_reference
    +
    1638 {
    +
    1639 return m_e(index<I>(args...)...);
    +
    1640 }
    +
    1641
    +
    1642 template <class CT, class... S>
    +
    1643 template <typename std::decay_t<CT>::size_type I, class... Args>
    +
    1644 inline auto xview<CT, S...>::index(Args... args) const -> size_type
    +
    1645 {
    +
    1646 if constexpr (lesser_condition<I>::value)
    +
    1647 {
    +
    1648 return sliced_access<I - integral_count_before<S...>(I) + newaxis_count_before<S...>(I + 1)>(
    +
    1649 std::get<I + newaxis_count_before<S...>(I + 1)>(m_slices),
    +
    1650 args...
    +
    1651 );
    +
    1652 }
    +
    1653 else
    +
    1654 {
    +
    1655 return argument<I - integral_count<S...>() + newaxis_count<S...>()>(args...);
    +
    1656 }
    +
    1657 }
    +
    1658
    +
    1659 template <class CT, class... S>
    +
    1660 template <typename std::decay_t<CT>::size_type I, class T>
    +
    1661 inline auto xview<CT, S...>::sliced_access(const xslice<T>& slice) const -> size_type
    +
    1662 {
    +
    1663 return static_cast<size_type>(slice.derived_cast()(0));
    +
    1664 }
    +
    1665
    +
    1666 template <class CT, class... S>
    +
    1667 template <typename std::decay_t<CT>::size_type I, class T, class Arg, class... Args>
    +
    1668 inline auto xview<CT, S...>::sliced_access(const xslice<T>& slice, Arg arg, Args... args) const -> size_type
    +
    1669 {
    +
    1670 using ST = typename T::size_type;
    +
    1671 return static_cast<size_type>(
    +
    1672 slice.derived_cast()(argument<I>(static_cast<ST>(arg), static_cast<ST>(args)...))
    +
    1673 );
    +
    1674 }
    +
    1675
    +
    1676 template <class CT, class... S>
    +
    1677 template <typename std::decay_t<CT>::size_type I, class T, class... Args>
    +
    1678 inline auto xview<CT, S...>::sliced_access(const T& squeeze, Args...) const -> size_type
    +
    1679 requires(!is_xslice<T>::value)
    +
    1680 {
    +
    1681 return static_cast<size_type>(squeeze);
    +
    1682 }
    +
    1683
    +
    1684 template <class CT, class... S>
    +
    1685 template <class It>
    +
    1686 inline auto xview<CT, S...>::make_index(It first, It last) const -> base_index_type
    +
    1687 {
    +
    1688 auto index = xtl::make_sequence<base_index_type>(m_e.dimension(), 0);
    +
    1689 using diff_type = typename std::iterator_traits<It>::difference_type;
    +
    1690 using ivalue_type = typename base_index_type::value_type;
    +
    1691 auto func1 = [&first](const auto& s) noexcept
    +
    1692 {
    +
    1693 return get_slice_value(s, first);
    +
    1694 };
    +
    1695 auto func2 = [](const auto& s) noexcept
    +
    1696 {
    +
    1697 return xt::value(s, 0);
    +
    1698 };
    +
    1699
    +
    1700 auto s = static_cast<diff_type>(
    +
    1701 (std::min)(static_cast<size_type>(std::distance(first, last)), this->dimension())
    +
    1702 );
    +
    1703 auto first_copy = last - s;
    +
    1704 for (size_type i = 0; i != m_e.dimension(); ++i)
    +
    1705 {
    +
    1706 size_type k = newaxis_skip<S...>(i);
    +
    1707
    +
    1708 // need to advance captured `first`
    +
    1709 first = first_copy;
    +
    1710 std::advance(first, static_cast<diff_type>(k - xt::integral_count_before<S...>(i)));
    +
    1711
    +
    1712 if (first < last)
    +
    1713 {
    +
    1714 index[i] = k < sizeof...(S) ? apply<size_type>(k, func1, m_slices)
    +
    1715 : static_cast<ivalue_type>(*first);
    +
    1716 }
    +
    1717 else
    +
    1718 {
    +
    1719 index[i] = k < sizeof...(S) ? apply<size_type>(k, func2, m_slices) : ivalue_type(0);
    +
    1720 }
    +
    1721 }
    +
    1722 return index;
    +
    1723 }
    +
    1724
    +
    1725 template <class CT, class... S>
    +
    1726 inline auto xview<CT, S...>::compute_shape(std::true_type) const -> inner_shape_type
    +
    1727 {
    +
    1728 return inner_shape_type(m_e.shape());
    +
    1729 }
    +
    1730
    +
    1731 template <class CT, class... S>
    +
    1732 inline auto xview<CT, S...>::compute_shape(std::false_type) const -> inner_shape_type
    +
    1733 {
    +
    1734 std::size_t dim = m_e.dimension() - integral_count<S...>() + newaxis_count<S...>();
    +
    1735 auto shape = xtl::make_sequence<inner_shape_type>(dim, 0);
    +
    1736 auto func = [](const auto& s) noexcept
    +
    1737 {
    +
    1738 return get_size(s);
    +
    1739 };
    +
    1740 for (size_type i = 0; i != dim; ++i)
    +
    1741 {
    +
    1742 size_type index = integral_skip<S...>(i);
    +
    1743 shape[i] = index < sizeof...(S) ? apply<size_type>(index, func, m_slices)
    +
    1744 : m_e.shape()[index - newaxis_count_before<S...>(index)];
    +
    1745 }
    +
    1746 return shape;
    +
    1747 }
    +
    1748
    +
    1749 namespace xview_detail
    +
    1750 {
    +
    1751 template <class V, class T>
    +
    1752 inline void run_assign_temporary_impl(V& v, const T& t, std::true_type /* enable strided assign */)
    +
    1753 {
    +
    1754 strided_loop_assigner<true>::run(v, t);
    +
    1755 }
    +
    1756
    +
    1757 template <class V, class T>
    +
    1758 inline void
    +
    1759 run_assign_temporary_impl(V& v, const T& t, std::false_type /* fallback to iterator assign */)
    +
    1760 {
    +
    1761 std::copy(t.cbegin(), t.cend(), v.begin());
    +
    1762 }
    +
    1763 }
    +
    1764
    +
    1765 template <class CT, class... S>
    +
    1766 inline void xview<CT, S...>::assign_temporary_impl(temporary_type&& tmp)
    +
    1767 {
    +
    1768 constexpr bool fast_assign = detail::is_strided_view<xexpression_type, S...>::value
    +
    1769 && xassign_traits<xview<CT, S...>, temporary_type>::simd_strided_assign();
    +
    1770 xview_detail::run_assign_temporary_impl(*this, tmp, std::integral_constant<bool, fast_assign>{});
    +
    1771 }
    +
    1772
    +
    1773 namespace detail
    +
    1774 {
    +
    1775 template <class E, class... S>
    +
    1776 inline std::size_t get_underlying_shape_index(std::size_t I)
    +
    1777 {
    +
    1778 return I - newaxis_count_before<get_slice_type<E, S>...>(I);
    +
    1779 }
    +
    1780
    +
    1781 template <class... S>
    +
    1782 struct check_slice;
    +
    1783
    +
    1784 template <>
    +
    1785 struct check_slice<>
    +
    1786 {
    +
    1787 using type = void_t<>;
    +
    1788 };
    +
    1789
    +
    1790 template <class S, class... SL>
    +
    1791 struct check_slice<S, SL...>
    +
    1792 {
    +
    1793 static_assert(!std::is_same<S, xellipsis_tag>::value, "ellipsis not supported vith xview");
    +
    1794 using type = typename check_slice<SL...>::type;
    +
    1795 };
    +
    1796
    +
    1797 template <class E, std::size_t... I, class... S>
    +
    1798 inline auto make_view_impl(E&& e, std::index_sequence<I...>, S&&... slices)
    +
    1799 {
    +
    1800 // Checks that no ellipsis slice is used
    +
    1801 using view_type = xview<xtl::closure_type_t<E>, get_slice_type<std::decay_t<E>, S>...>;
    +
    1802 return view_type(
    +
    1803 std::forward<E>(e),
    +
    1804 get_slice_implementation(
    +
    1805 e,
    +
    1806 std::forward<S>(slices),
    +
    1807 get_underlying_shape_index<std::decay_t<E>, S...>(I)
    +
    1808 )...
    +
    1809 );
    +
    1810 }
    +
    1811 }
    +
    1812
    +
    1822 template <class E, class... S>
    +
    +
    1823 inline auto view(E&& e, S&&... slices)
    +
    1824 {
    +
    1825 return detail::make_view_impl(
    +
    1826 std::forward<E>(e),
    +
    1827 std::make_index_sequence<sizeof...(S)>(),
    +
    1828 std::forward<S>(slices)...
    +
    1829 );
    +
    1830 }
    +
    +
    1831
    +
    1832 namespace detail
    +
    1833 {
    +
    1834 class row_impl
    +
    1835 {
    +
    1836 public:
    +
    1837
    +
    1838 template <class E>
    +
    1839 inline static auto make(E&& e, const std::ptrdiff_t index)
    +
    1840 {
    +
    1841 const auto shape = e.shape();
    +
    1842 check_dimension(shape);
    +
    1843 return view(e, index, xt::all());
    +
    1844 }
    +
    1845
    +
    1846 private:
    +
    1847
    +
    1848 template <class S>
    +
    1849 inline static void check_dimension(const S& shape)
    +
    1850 {
    +
    1851 if (shape.size() != 2)
    +
    1852 {
    +
    1853 XTENSOR_THROW(
    +
    1854 std::invalid_argument,
    +
    1855 "A row can only be accessed on an expression with exact two dimensions"
    +
    1856 );
    +
    1857 }
    +
    1858 }
    +
    1859
    +
    1860 template <class T, std::size_t N>
    +
    1861 inline static void check_dimension(const std::array<T, N>&)
    +
    1862 {
    +
    1863 static_assert(N == 2, "A row can only be accessed on an expression with exact two dimensions");
    +
    1864 }
    +
    1865 };
    +
    1866
    +
    1867 class column_impl
    +
    1868 {
    +
    1869 public:
    +
    1870
    +
    1871 template <class E>
    +
    1872 inline static auto make(E&& e, const std::ptrdiff_t index)
    +
    1873 {
    +
    1874 const auto shape = e.shape();
    +
    1875 check_dimension(shape);
    +
    1876 return view(e, xt::all(), index);
    +
    1877 }
    +
    1878
    +
    1879 private:
    +
    1880
    +
    1881 template <class S>
    +
    1882 inline static void check_dimension(const S& shape)
    +
    1883 {
    +
    1884 if (shape.size() != 2)
    +
    1885 {
    +
    1886 XTENSOR_THROW(
    +
    1887 std::invalid_argument,
    +
    1888 "A column can only be accessed on an expression with exact two dimensions"
    +
    1889 );
    +
    1890 }
    +
    1891 }
    +
    1892
    +
    1893 template <class T, std::size_t N>
    +
    1894 inline static void check_dimension(const std::array<T, N>&)
    +
    1895 {
    +
    1896 static_assert(N == 2, "A column can only be accessed on an expression with exact two dimensions");
    +
    1897 }
    +
    1898 };
    +
    1899 }
    +
    1900
    +
    1910 template <class E>
    +
    +
    1911 inline auto row(E&& e, std::ptrdiff_t index)
    +
    1912 {
    +
    1913 return detail::row_impl::make(e, index);
    +
    1914 }
    +
    +
    1915
    +
    1925 template <class E>
    +
    +
    1926 inline auto col(E&& e, std::ptrdiff_t index)
    +
    1927 {
    +
    1928 return detail::column_impl::make(e, index);
    +
    1929 }
    +
    +
    1930
    +
    1931 /***************
    +
    1932 * stepper api *
    +
    1933 ***************/
    +
    1934
    +
    1935 template <class CT, class... S>
    +
    1936 template <class ST>
    +
    1937 inline auto xview<CT, S...>::stepper_begin(const ST& shape) -> stepper
    +
    1938 {
    +
    1939 const size_type offset = shape.size() - this->dimension();
    +
    1940 if constexpr (is_strided_view)
    +
    1941 {
    +
    1942 return stepper(this, data_xbegin(), offset);
    +
    1943 }
    +
    1944 else
    +
    1945 {
    +
    1946 return stepper(this, m_e.stepper_begin(m_e.shape()), offset);
    +
    1947 }
    +
    1948 }
    +
    1949
    +
    1950 template <class CT, class... S>
    +
    1951 template <class ST>
    +
    1952 inline auto xview<CT, S...>::stepper_end(const ST& shape, layout_type l) -> stepper
    +
    1953 {
    +
    1954 const size_type offset = shape.size() - this->dimension();
    +
    1955 if constexpr (is_strided_view)
    +
    1956 {
    +
    1957 return stepper(this, data_xend(l, offset), offset);
    +
    1958 }
    +
    1959 else
    +
    1960 {
    +
    1961 return stepper(this, m_e.stepper_end(m_e.shape(), l), offset, true, l);
    +
    1962 }
    +
    1963 }
    +
    1964
    +
    1965 template <class CT, class... S>
    +
    1966 template <class ST>
    +
    1967 inline auto xview<CT, S...>::stepper_begin(const ST& shape) const -> const_stepper
    +
    1968 {
    +
    1969 const size_type offset = shape.size() - this->dimension();
    +
    1970 if constexpr (is_strided_view)
    +
    1971 {
    +
    1972 return const_stepper(this, data_xbegin(), offset);
    +
    1973 }
    +
    1974 else
    +
    1975 {
    +
    1976 const xexpression_type& e = m_e;
    +
    1977 return const_stepper(this, e.stepper_begin(m_e.shape()), offset);
    +
    1978 }
    +
    1979 }
    +
    1980
    +
    1981 template <class CT, class... S>
    +
    1982 template <class ST>
    +
    1983 inline auto xview<CT, S...>::stepper_end(const ST& shape, layout_type l) const -> const_stepper
    +
    1984 {
    +
    1985 const size_type offset = shape.size() - this->dimension();
    +
    1986 if constexpr (is_strided_view)
    +
    1987 {
    +
    1988 return const_stepper(this, data_xend(l, offset), offset);
    +
    1989 }
    +
    1990 else
    +
    1991 {
    +
    1992 const xexpression_type& e = m_e;
    +
    1993 return const_stepper(this, e.stepper_end(m_e.shape(), l), offset, true, l);
    +
    1994 }
    +
    1995 }
    +
    1996
    +
    1997 /********************************
    +
    1998 * xview_stepper implementation *
    +
    1999 ********************************/
    +
    2000
    +
    2001 template <bool is_const, class CT, class... S>
    +
    2002 inline xview_stepper<is_const, CT, S...>::xview_stepper(
    +
    2003 view_type* view,
    +
    2004 substepper_type it,
    +
    2005 size_type offset,
    +
    2006 bool end,
    +
    2007 layout_type l
    +
    2008 )
    +
    2009 : p_view(view)
    +
    2010 , m_it(it)
    +
    2011 , m_offset(offset)
    +
    2012 {
    +
    2013 if (!end)
    +
    2014 {
    +
    2015 std::fill(m_index_keeper.begin(), m_index_keeper.end(), 0);
    +
    2016 auto func = [](const auto& s) noexcept
    +
    2017 {
    +
    2018 return xt::value(s, 0);
    +
    2019 };
    +
    2020 for (size_type i = 0; i < sizeof...(S); ++i)
    +
    2021 {
    +
    2022 if (!is_newaxis_slice(i))
    +
    2023 {
    +
    2024 size_type s = apply<size_type>(i, func, p_view->slices());
    +
    2025 size_type index = i - newaxis_count_before<S...>(i);
    +
    2026 m_it.step(index, s);
    +
    2027 }
    +
    2028 }
    +
    2029 }
    +
    2030 else
    +
    2031 {
    +
    2032 to_end_impl(l);
    +
    2033 }
    +
    2034 }
    +
    2035
    +
    2036 template <bool is_const, class CT, class... S>
    +
    2037 inline auto xview_stepper<is_const, CT, S...>::operator*() const -> reference
    +
    2038 {
    +
    2039 return *m_it;
    +
    2040 }
    +
    2041
    +
    2042 template <bool is_const, class CT, class... S>
    +
    2043 inline void xview_stepper<is_const, CT, S...>::step(size_type dim)
    +
    2044 {
    +
    2045 auto func = [this](size_type index, size_type offset)
    +
    2046 {
    +
    2047 m_it.step(index, offset);
    +
    2048 };
    +
    2049 common_step_forward(dim, func);
    +
    2050 }
    +
    2051
    +
    2052 template <bool is_const, class CT, class... S>
    +
    2053 inline void xview_stepper<is_const, CT, S...>::step_back(size_type dim)
    +
    2054 {
    +
    2055 auto func = [this](size_type index, size_type offset)
    +
    2056 {
    +
    2057 m_it.step_back(index, offset);
    +
    2058 };
    +
    2059 common_step_backward(dim, func);
    +
    2060 }
    +
    2061
    +
    2062 template <bool is_const, class CT, class... S>
    +
    2063 inline void xview_stepper<is_const, CT, S...>::step(size_type dim, size_type n)
    +
    2064 {
    +
    2065 auto func = [this](size_type index, size_type offset)
    +
    2066 {
    +
    2067 m_it.step(index, offset);
    +
    2068 };
    +
    2069 common_step_forward(dim, n, func);
    +
    2070 }
    +
    2071
    +
    2072 template <bool is_const, class CT, class... S>
    +
    2073 inline void xview_stepper<is_const, CT, S...>::step_back(size_type dim, size_type n)
    +
    2074 {
    +
    2075 auto func = [this](size_type index, size_type offset)
    +
    2076 {
    +
    2077 m_it.step_back(index, offset);
    +
    2078 };
    +
    2079 common_step_backward(dim, n, func);
    +
    2080 }
    +
    2081
    +
    2082 template <bool is_const, class CT, class... S>
    +
    2083 inline void xview_stepper<is_const, CT, S...>::reset(size_type dim)
    +
    2084 {
    +
    2085 auto func = [this](size_type index, size_type offset)
    +
    2086 {
    +
    2087 m_it.step_back(index, offset);
    +
    2088 };
    +
    2089 common_reset(dim, func, false);
    +
    2090 }
    +
    2091
    +
    2092 template <bool is_const, class CT, class... S>
    +
    2093 inline void xview_stepper<is_const, CT, S...>::reset_back(size_type dim)
    +
    2094 {
    +
    2095 auto func = [this](size_type index, size_type offset)
    +
    2096 {
    +
    2097 m_it.step(index, offset);
    +
    2098 };
    +
    2099 common_reset(dim, func, true);
    +
    2100 }
    +
    2101
    +
    2102 template <bool is_const, class CT, class... S>
    +
    2103 inline void xview_stepper<is_const, CT, S...>::to_begin()
    +
    2104 {
    +
    2105 std::fill(m_index_keeper.begin(), m_index_keeper.end(), 0);
    +
    2106 m_it.to_begin();
    +
    2107 }
    +
    2108
    +
    2109 template <bool is_const, class CT, class... S>
    +
    2110 inline void xview_stepper<is_const, CT, S...>::to_end(layout_type l)
    +
    2111 {
    +
    2112 m_it.to_end(l);
    +
    2113 to_end_impl(l);
    +
    2114 }
    +
    2115
    +
    2116 template <bool is_const, class CT, class... S>
    +
    2117 inline bool xview_stepper<is_const, CT, S...>::is_newaxis_slice(size_type index) const noexcept
    +
    2118 {
    +
    2119 // A bit tricky but avoids a lot of template instantiations
    +
    2120 return newaxis_count_before<S...>(index + 1) != newaxis_count_before<S...>(index);
    +
    2121 }
    +
    2122
    +
    2123 template <bool is_const, class CT, class... S>
    +
    2124 inline void xview_stepper<is_const, CT, S...>::to_end_impl(layout_type l)
    +
    2125 {
    +
    2126 auto func = [](const auto& s) noexcept
    +
    2127 {
    +
    2128 return xt::value(s, get_size(s) - 1);
    +
    2129 };
    +
    2130 auto size_func = [](const auto& s) noexcept
    +
    2131 {
    +
    2132 return get_size(s);
    +
    2133 };
    +
    2134
    +
    2135 for (size_type i = 0; i < sizeof...(S); ++i)
    +
    2136 {
    +
    2137 if (!is_newaxis_slice(i))
    +
    2138 {
    +
    2139 size_type s = apply<size_type>(i, func, p_view->slices());
    +
    2140 size_type ix = apply<size_type>(i, size_func, p_view->slices());
    +
    2141 m_index_keeper[i] = ix - size_type(1);
    +
    2142 size_type index = i - newaxis_count_before<S...>(i);
    +
    2143 s = p_view->underlying_size(index) - 1 - s;
    +
    2144 m_it.step_back(index, s);
    +
    2145 }
    +
    2146 }
    +
    2147 if (l == layout_type::row_major)
    +
    2148 {
    +
    2149 for (size_type i = sizeof...(S); i > 0; --i)
    +
    2150 {
    +
    2151 if (!is_newaxis_slice(i - 1))
    +
    2152 {
    +
    2153 m_index_keeper[i - 1]++;
    +
    2154 break;
    +
    2155 }
    +
    2156 }
    +
    2157 }
    +
    2158 else if (l == layout_type::column_major)
    +
    2159 {
    +
    2160 for (size_type i = 0; i < sizeof...(S); ++i)
    +
    2161 {
    +
    2162 if (!is_newaxis_slice(i))
    +
    2163 {
    +
    2164 m_index_keeper[i]++;
    +
    2165 break;
    +
    2166 }
    +
    2167 }
    +
    2168 }
    +
    2169 else
    +
    2170 {
    +
    2171 XTENSOR_THROW(std::runtime_error, "Iteration only allowed in row or column major.");
    +
    2172 }
    +
    2173 }
    +
    2174
    +
    2175 template <bool is_const, class CT, class... S>
    +
    2176 template <class F>
    +
    2177 void xview_stepper<is_const, CT, S...>::common_step_forward(size_type dim, F f)
    +
    2178 {
    +
    2179 if (dim >= m_offset)
    +
    2180 {
    +
    2181 auto func = [&dim, this](const auto& s) noexcept
    +
    2182 {
    +
    2183 return step_size(s, this->m_index_keeper[dim]++, 1);
    +
    2184 };
    +
    2185 size_type index = integral_skip<S...>(dim);
    +
    2186 if (!is_newaxis_slice(index))
    +
    2187 {
    +
    2188 size_type step_size = index < sizeof...(S) ? apply<size_type>(index, func, p_view->slices())
    +
    2189 : 1;
    +
    2190 index -= newaxis_count_before<S...>(index);
    +
    2191 f(index, step_size);
    +
    2192 }
    +
    2193 }
    +
    2194 }
    +
    2195
    +
    2196 template <bool is_const, class CT, class... S>
    +
    2197 template <class F>
    +
    2198 void xview_stepper<is_const, CT, S...>::common_step_forward(size_type dim, size_type n, F f)
    +
    2199 {
    +
    2200 if (dim >= m_offset)
    +
    2201 {
    +
    2202 auto func = [&dim, &n, this](const auto& s) noexcept
    +
    2203 {
    +
    2204 auto st_size = step_size(s, this->m_index_keeper[dim], n);
    +
    2205 this->m_index_keeper[dim] += n;
    +
    2206 return size_type(st_size);
    +
    2207 };
    +
    2208
    +
    2209 size_type index = integral_skip<S...>(dim);
    +
    2210 if (!is_newaxis_slice(index))
    +
    2211 {
    +
    2212 size_type step_size = index < sizeof...(S) ? apply<size_type>(index, func, p_view->slices())
    +
    2213 : n;
    +
    2214 index -= newaxis_count_before<S...>(index);
    +
    2215 f(index, step_size);
    +
    2216 }
    +
    2217 }
    +
    2218 }
    +
    2219
    +
    2220 template <bool is_const, class CT, class... S>
    +
    2221 template <class F>
    +
    2222 void xview_stepper<is_const, CT, S...>::common_step_backward(size_type dim, F f)
    +
    2223 {
    +
    2224 if (dim >= m_offset)
    +
    2225 {
    +
    2226 auto func = [&dim, this](const auto& s) noexcept
    +
    2227 {
    +
    2228 this->m_index_keeper[dim]--;
    +
    2229 return step_size(s, this->m_index_keeper[dim], 1);
    +
    2230 };
    +
    2231 size_type index = integral_skip<S...>(dim);
    +
    2232 if (!is_newaxis_slice(index))
    +
    2233 {
    +
    2234 size_type step_size = index < sizeof...(S) ? apply<size_type>(index, func, p_view->slices())
    +
    2235 : 1;
    +
    2236 index -= newaxis_count_before<S...>(index);
    +
    2237 f(index, step_size);
    +
    2238 }
    +
    2239 }
    +
    2240 }
    +
    2241
    +
    2242 template <bool is_const, class CT, class... S>
    +
    2243 template <class F>
    +
    2244 void xview_stepper<is_const, CT, S...>::common_step_backward(size_type dim, size_type n, F f)
    +
    2245 {
    +
    2246 if (dim >= m_offset)
    +
    2247 {
    +
    2248 auto func = [&dim, &n, this](const auto& s) noexcept
    +
    2249 {
    +
    2250 this->m_index_keeper[dim] -= n;
    +
    2251 return step_size(s, this->m_index_keeper[dim], n);
    +
    2252 };
    +
    2253
    +
    2254 size_type index = integral_skip<S...>(dim);
    +
    2255 if (!is_newaxis_slice(index))
    +
    2256 {
    +
    2257 size_type step_size = index < sizeof...(S) ? apply<size_type>(index, func, p_view->slices())
    +
    2258 : n;
    +
    2259 index -= newaxis_count_before<S...>(index);
    +
    2260 f(index, step_size);
    +
    2261 }
    +
    2262 }
    +
    2263 }
    +
    2264
    +
    2265 template <bool is_const, class CT, class... S>
    +
    2266 template <class F>
    +
    2267 void xview_stepper<is_const, CT, S...>::common_reset(size_type dim, F f, bool backwards)
    +
    2268 {
    +
    2269 auto size_func = [](const auto& s) noexcept
    +
    2270 {
    +
    2271 return get_size(s);
    +
    2272 };
    +
    2273 auto end_func = [](const auto& s) noexcept
    +
    2274 {
    +
    2275 return xt::value(s, get_size(s) - 1) - xt::value(s, 0);
    +
    2276 };
    +
    2277
    +
    2278 size_type index = integral_skip<S...>(dim);
    +
    2279 if (!is_newaxis_slice(index))
    +
    2280 {
    +
    2281 if (dim < m_index_keeper.size())
    +
    2282 {
    +
    2283 size_type size = index < sizeof...(S) ? apply<size_type>(index, size_func, p_view->slices())
    +
    2284 : p_view->shape()[dim];
    +
    2285 m_index_keeper[dim] = backwards ? size - 1 : 0;
    +
    2286 }
    +
    2287
    +
    2288 size_type reset_n = index < sizeof...(S) ? apply<size_type>(index, end_func, p_view->slices())
    +
    2289 : p_view->shape()[dim] - 1;
    +
    2290 index -= newaxis_count_before<S...>(index);
    +
    2291 f(index, reset_n);
    +
    2292 }
    +
    2293 }
    +
    2294}
    +
    2295
    +
    2296#endif
    +
    Fixed shape implementation for compile time defined arrays.
    +
    size_type size() const noexcept(noexcept(derived_cast().shape()))
    + +
    Base class for xexpressions.
    +
    Base class for multidimensional iterable expressions.
    + +
    derived_type & assign_temporary(temporary_type &&)
    + +
    Multidimensional view with tensor semantic.
    Definition xview.hpp:365
    +
    xview(CTA &&e, FSL &&first_slice, SL &&... slices) noexcept
    Constructs a view on the specified xexpression.
    Definition xview.hpp:881
    +
    const slice_type & slices() const noexcept
    +
    bool has_linear_assign(const ST &strides) const
    +
    const inner_shape_type & shape() const noexcept
    Returns the shape of the view.
    Definition xview.hpp:956
    +
    bool broadcast_shape(ST &shape, bool reuse_cache=false) const
    +
    xexpression_type & expression() noexcept
    +
    void fill(const T &value)
    +
    std::size_t data_offset() const noexcept
    +
    layout_type layout() const noexcept
    + + + + +
    bool all(E &&e)
    Any.
    +
    auto arg(E &&e) noexcept
    Calculates the phase angle (in radians) elementwise for the complex numbers in e.
    Definition xcomplex.hpp:221
    +
    auto squeeze(E &&e)
    Returns a squeeze view of the given expression.
    +
    std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides)
    Compute the strides given the shape and the layout of an array.
    Definition xstrides.hpp:570
    +
    standard mathematical functions for xexpressions
    +
    auto all() noexcept
    Returns a slice representing a full dimension, to be used as an argument of view function.
    Definition xslice.hpp:231
    +
    auto row(E &&e, std::ptrdiff_t index)
    Constructs and returns a row (sliced view) on the specified expression.
    Definition xview.hpp:1911
    +
    layout_type
    Definition xlayout.hpp:24
    + + + +
    auto col(E &&e, std::ptrdiff_t index)
    Constructs and returns a column (sliced view) on the specified expression.
    Definition xview.hpp:1926
    +
    auto view(E &&e, S &&... slices)
    Constructs and returns a view on the specified xexpression.
    Definition xview.hpp:1823
    + + + + + + + + + + + +
    +
    + + + + diff --git a/xview__utils_8hpp_source.html b/xview__utils_8hpp_source.html new file mode 100644 index 000000000..c1b16f2e7 --- /dev/null +++ b/xview__utils_8hpp_source.html @@ -0,0 +1,412 @@ + + + + + + + +xtensor: /home/runner/work/xtensor/xtensor/include/xtensor/views/xview_utils.hpp Source File + + + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    xtensor +
    +
    + +   + + + + +
    +
    +
    + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    xview_utils.hpp
    +
    +
    +
    1/***************************************************************************
    +
    2 * Copyright (c) Johan Mabille, Sylvain Corlay and Wolf Vollprecht *
    +
    3 * Copyright (c) QuantStack *
    +
    4 * *
    +
    5 * Distributed under the terms of the BSD 3-Clause License. *
    +
    6 * *
    +
    7 * The full license is in the file LICENSE, distributed with this software. *
    +
    8 ****************************************************************************/
    +
    9
    +
    10#ifndef XTENSOR_VIEW_UTILS_HPP
    +
    11#define XTENSOR_VIEW_UTILS_HPP
    +
    12
    +
    13#include <array>
    +
    14
    +
    15#include "../core/xlayout.hpp"
    +
    16#include "../core/xtensor_forward.hpp"
    +
    17#include "../views/xslice.hpp"
    +
    18
    +
    19namespace xt
    +
    20{
    +
    21
    +
    22 /********************************
    +
    23 * helper functions declaration *
    +
    24 ********************************/
    +
    25
    +
    26 // number of integral types in the specified sequence of types
    +
    27 template <class... S>
    +
    28 constexpr std::size_t integral_count();
    +
    29
    +
    30 // number of integral types in the specified sequence of types before specified index
    +
    31 template <class... S>
    +
    32 constexpr std::size_t integral_count_before(std::size_t i);
    +
    33
    +
    34 // index in the specified sequence of types of the ith non-integral type
    +
    35 template <class... S>
    +
    36 constexpr std::size_t integral_skip(std::size_t i);
    +
    37
    +
    38 // number of newaxis types in the specified sequence of types
    +
    39 template <class... S>
    +
    40 constexpr std::size_t newaxis_count();
    +
    41
    +
    42 // number of newaxis types in the specified sequence of types before specified index
    +
    43 template <class... S>
    +
    44 constexpr std::size_t newaxis_count_before(std::size_t i);
    +
    45
    +
    46 // index in the specified sequence of types of the ith non-newaxis type
    +
    47 template <class... S>
    +
    48 constexpr std::size_t newaxis_skip(std::size_t i);
    +
    49
    +
    50 template <class S, class It>
    +
    51 inline auto get_slice_value(const S& slice, It& it) noexcept
    +
    52 {
    +
    53 if constexpr (is_xslice<S>::value)
    +
    54 {
    +
    55 return slice(typename S::size_type(*it));
    +
    56 }
    +
    57 else
    +
    58 {
    +
    59 return static_cast<std::size_t>(slice);
    +
    60 }
    +
    61 }
    +
    62
    +
    63 /***********************
    +
    64 * view_temporary_type *
    +
    65 ***********************/
    +
    66
    +
    67 namespace detail
    +
    68 {
    +
    69 template <class T, class S, layout_type L, class... SL>
    +
    70 struct view_temporary_type_impl
    +
    71 {
    +
    72 using type = xt::xarray<T, L>;
    +
    73 };
    +
    74
    +
    75 template <class T, class I, std::size_t N, layout_type L, class... SL>
    +
    76 struct view_temporary_type_impl<T, std::array<I, N>, L, SL...>
    +
    77 {
    +
    78 using type = xt::xtensor<T, N + newaxis_count<SL...>() - integral_count<SL...>(), L>;
    +
    79 };
    +
    80 }
    +
    81
    +
    82 template <class E, class... SL>
    +
    + +
    84 {
    +
    85 using type = typename detail::view_temporary_type_impl<
    +
    86 std::decay_t<typename E::value_type>,
    +
    87 typename E::shape_type,
    +
    88 E::static_layout,
    +
    89 SL...>::type;
    +
    90 };
    +
    +
    91
    +
    92 template <class E, class... SL>
    +
    93 using view_temporary_type_t = typename view_temporary_type<E, SL...>::type;
    +
    94
    +
    95 /************************
    +
    96 * count integral types *
    +
    97 ************************/
    +
    98
    +
    99 namespace detail
    +
    100 {
    +
    101
    +
    102 template <class T, class... S>
    +
    103 struct integral_count_impl
    +
    104 {
    +
    105 static constexpr std::size_t count(std::size_t i) noexcept
    +
    106 {
    +
    107 return i
    +
    108 ? (integral_count_impl<S...>::count(i - 1)
    +
    109 + (xtl::is_integral<std::remove_reference_t<T>>::value ? 1 : 0))
    +
    110 : 0;
    +
    111 }
    +
    112 };
    +
    113
    +
    114 template <>
    +
    115 struct integral_count_impl<void>
    +
    116 {
    +
    117 static constexpr std::size_t count(std::size_t /*i*/) noexcept
    +
    118 {
    +
    119 return 0;
    +
    120 }
    +
    121 };
    +
    122 }
    +
    123
    +
    124 template <class... S>
    +
    125 constexpr std::size_t integral_count()
    +
    126 {
    +
    127 return detail::integral_count_impl<S..., void>::count(sizeof...(S));
    +
    128 }
    +
    129
    +
    130 template <class... S>
    +
    131 constexpr std::size_t integral_count_before(std::size_t i)
    +
    132 {
    +
    133 return detail::integral_count_impl<S..., void>::count(i);
    +
    134 }
    +
    135
    +
    136 /***********************
    +
    137 * count newaxis types *
    +
    138 ***********************/
    +
    139
    +
    140 namespace detail
    +
    141 {
    +
    142 template <class T>
    +
    143 struct is_newaxis : std::false_type
    +
    144 {
    +
    145 };
    +
    146
    +
    147 template <class T>
    +
    148 struct is_newaxis<xnewaxis<T>> : public std::true_type
    +
    149 {
    +
    150 };
    +
    151
    +
    152 template <class T>
    +
    153 constexpr bool is_newaxis_v = is_newaxis<T>::value;
    +
    154
    +
    155 template <class T, class... S>
    +
    156 struct newaxis_count_impl
    +
    157 {
    +
    158 static constexpr std::size_t count(std::size_t i) noexcept
    +
    159 {
    +
    160 return i
    +
    161 ? (newaxis_count_impl<S...>::count(i - 1)
    +
    162 + (is_newaxis<std::remove_reference_t<T>>::value ? 1 : 0))
    +
    163 : 0;
    +
    164 }
    +
    165 };
    +
    166
    +
    167 template <>
    +
    168 struct newaxis_count_impl<void>
    +
    169 {
    +
    170 static constexpr std::size_t count(std::size_t /*i*/) noexcept
    +
    171 {
    +
    172 return 0;
    +
    173 }
    +
    174 };
    +
    175 }
    +
    176
    +
    177 template <class... S>
    +
    178 constexpr std::size_t newaxis_count()
    +
    179 {
    +
    180 return detail::newaxis_count_impl<S..., void>::count(sizeof...(S));
    +
    181 }
    +
    182
    +
    183 template <class... S>
    +
    184 constexpr std::size_t newaxis_count_before(std::size_t i)
    +
    185 {
    +
    186 return detail::newaxis_count_impl<S..., void>::count(i);
    +
    187 }
    +
    188
    +
    189 /**********************************
    +
    190 * index of ith non-integral type *
    +
    191 **********************************/
    +
    192
    +
    193 namespace detail
    +
    194 {
    +
    195
    +
    196 template <class T, class... S>
    +
    197 struct integral_skip_impl
    +
    198 {
    +
    199 static constexpr std::size_t count(std::size_t i) noexcept
    +
    200 {
    +
    201 return i == 0 ? count_impl() : count_impl(i);
    +
    202 }
    +
    203
    +
    204 private:
    +
    205
    +
    206 static constexpr std::size_t count_impl(std::size_t i) noexcept
    +
    207 {
    +
    208 return 1
    +
    209 + (xtl::is_integral<std::remove_reference_t<T>>::value
    +
    210 ? integral_skip_impl<S...>::count(i)
    +
    211 : integral_skip_impl<S...>::count(i - 1));
    +
    212 }
    +
    213
    +
    214 static constexpr std::size_t count_impl() noexcept
    +
    215 {
    +
    216 return xtl::is_integral<std::remove_reference_t<T>>::value
    +
    217 ? 1 + integral_skip_impl<S...>::count(0)
    +
    218 : 0;
    +
    219 }
    +
    220 };
    +
    221
    +
    222 template <>
    +
    223 struct integral_skip_impl<void>
    +
    224 {
    +
    225 static constexpr std::size_t count(std::size_t i) noexcept
    +
    226 {
    +
    227 return i;
    +
    228 }
    +
    229 };
    +
    230 }
    +
    231
    +
    232 template <class... S>
    +
    233 constexpr std::size_t integral_skip(std::size_t i)
    +
    234 {
    +
    235 return detail::integral_skip_impl<S..., void>::count(i);
    +
    236 }
    +
    237
    +
    238 /*********************************
    +
    239 * index of ith non-newaxis type *
    +
    240 *********************************/
    +
    241
    +
    242 namespace detail
    +
    243 {
    +
    244
    +
    245 template <class T, class... S>
    +
    246 struct newaxis_skip_impl
    +
    247 {
    +
    248 static constexpr std::size_t count(std::size_t i) noexcept
    +
    249 {
    +
    250 return i == 0 ? count_impl() : count_impl(i);
    +
    251 }
    +
    252
    +
    253 private:
    +
    254
    +
    255 static constexpr std::size_t count_impl(std::size_t i) noexcept
    +
    256 {
    +
    257 return 1
    +
    258 + (is_newaxis<std::remove_reference_t<T>>::value
    +
    259 ? newaxis_skip_impl<S...>::count(i)
    +
    260 : newaxis_skip_impl<S...>::count(i - 1));
    +
    261 }
    +
    262
    +
    263 static constexpr std::size_t count_impl() noexcept
    +
    264 {
    +
    265 return is_newaxis<std::remove_reference_t<T>>::value ? 1 + newaxis_skip_impl<S...>::count(0)
    +
    266 : 0;
    +
    267 }
    +
    268 };
    +
    269
    +
    270 template <>
    +
    271 struct newaxis_skip_impl<void>
    +
    272 {
    +
    273 static constexpr std::size_t count(std::size_t i) noexcept
    +
    274 {
    +
    275 return i;
    +
    276 }
    +
    277 };
    +
    278 }
    +
    279
    +
    280 template <class... S>
    +
    281 constexpr std::size_t newaxis_skip(std::size_t i)
    +
    282 {
    +
    283 return detail::newaxis_skip_impl<S..., void>::count(i);
    +
    284 }
    +
    285}
    +
    286
    +
    287#endif
    +
    standard mathematical functions for xexpressions
    +
    xarray_container< uvector< T, A >, L, xt::svector< typename uvector< T, A >::size_type, 4, SA, true > > xarray
    Alias template on xarray_container with default parameters for data container type and shape / stride...
    +
    layout_type
    Definition xlayout.hpp:24
    +
    xtensor_container< uvector< T, A >, N, L > xtensor
    Alias template on xtensor_container with default parameters for data container type.
    + +
    +
    + + + +